Cross-Repo References
Depth:
What it is
A cross-repo reference points at a task or a file in another aitasks project by that project’s name, not by where it sits on disk:
backend#42 # task 42 in the backend project
backend:src/protocol.rs # a file in the backend project
Each machine keeps its own list of projects, mapping each name to wherever that project is checked out there, and the name is looked up only when the reference is used. So the same reference, written once into a task, a plan or a commit message, works on your machine, on a teammate’s and inside a cloud agent, wherever each of them keeps the project.
The project name is part of what identifies a task: every project has its own
task 42, so 42 alone means nothing outside its own project.
Why it exists
The obvious way to point at another project is a path such as ../backend/. A
path records one machine’s folder layout in a file that every machine shares, so
it breaks as soon as a teammate, a cloud agent or a fresh clone puts the project
somewhere else — and a broken path looks just like a reference that was always
wrong.
A name that does not resolve is a clear problem you can fix: register the project on this machine.
How to use
- Register each project once per machine with
ait projects add, and check what resolves withait projects list— see Multi-Project. - Write references as
backend#42andbackend:pathin tasks, plans and commit messages. - Work in another project from where you are: commands such as
ait createandait lstake--project backend, and you can send one of its tasks a task note. - Wait for its work: mark a task as blocked until a task in the other project is done — see Cross-Project Dependencies, which also covers planning a change across two repos.
See also
- Multi-Project — the registry,
ait projects, how a name resolves, and the reference notation - Cross-Project Dependencies — blocking on another project’s work, and planning a change across two repos
- Task format — the task-file fields that record cross-repo links
- Parent and child tasks — the hierarchy that stays inside one project
- Task notes — sending context to a task in another project
Next: The IDE model