Projects
A project is a folder with members. It holds documents, sessions, tasks and sources, and it is the thing you share with a team. Any folder can become a project when it grows, without leaving its place in the tree.
How it works
A project sits at a folder inside another project, or at the root of your World. It looks like a folder in the tree, with a mark saying it is a project. Drag it and it moves like a folder, and any projects inside it move with it. A project cannot be moved inside itself.
Everything belongs to exactly one project. Documents and folders can move between projects, and moving one keeps its id, so links, open panes and comments follow it. Sessions, tasks and members belong to the project itself, not to the folder above it: a session started in marketing/site is not one of marketing's sessions.
Making a folder a project moves every document and folder under it into a new project placed at that folder. Their ids do not change. Sources under the folder go with it. Sessions and tasks stay where they were, because they are the parent's history. Even an empty folder can become a project. Turning a project back into a folder reverses this: its documents, folders, sources, sessions and tasks move into the parent, under that folder.
Each project syncs on its own, and is the unit of sharing. Where it sits in your tree is your arrangement only. Moving a project never changes who can see it, and someone you share it with places it wherever they like in their own World.
A project can carry its own standing instructions, as an AGENTS.md at its root, and its own skills under skills/. Sessions in the project read these after the World's.
Using it as you build
Make a project from a folder's menu in the tree, or let an agent do it with make_project:
make_project { "path": "marketing/site" }
Move or rename a folder, including a project's folder, with move_folder. Pass toProject to move a folder of documents into another project:
move_folder { "from": "funding", "to": "company/funding" }
move_folder { "from": "drafts", "toProject": "Marketing" }
To start a project from a directory on disk, run mod-next init there. If the directory is a git repository it becomes the project's first source; if not, the project holds documents only:
mod-next init "Launch site" --repo ~/code/site
A session belongs to one project, but its work can reach into others. An agent calls add_project to bring another project in your World into its session: from the next turn it gets that project's instructions, documents and sources. remove_project takes it back out. Neither moves the session or shares it with anyone.
You decide which folders become projects, and who is in each.
Limits
- Turning a project back into a folder is refused while anyone else is a member, since it would take the project away from them or hand them the parent.
- Making a project does not take sessions that only worked in that folder. They stay with the parent.
- Sessions are not listed in the tree. Find them in an agent pane's session list, which filters by project.