find_project
The session passes every identifier it sees (the remote, URLs, names) and gets the project back. It never creates a second project for a repo that has one.
Open a Claude Code session in the repo and it matches the remote to its project. A claim carries the worktree and branch it works in, other chats keep out of them, and the task's outcome names the PR.
Matched from the git remoteOne worktree per claimPRs in the outcome, never a push to main
The session passes every identifier it sees (the remote, URLs, names) and gets the project back. It never creates a second project for a repo that has one.
claim_task takes the worktree and branch. Other chats are told to keep out, the room shows who touches what, and a lapsed claim frees them.
A CLAUDE.md block, added by Projectify, tells every session to start its Projectify session first and follow the project's Always lines.
Setup › Sources, or let the first session do it: find_project with the remote matches or imports the repo.
Projectify writes the CLAUDE.md block and the .mcp.json entry so every session on the repo connects and reads the briefing first.
Each claim names its worktree and branch; the task ends with a PR against main in its outcome. Runs started by a routine never push to main.
A session in the repo starts briefed, claims with its worktree and branch, posts in the room before touching shared code and ends with a handoff that names the PR.
Several sessions on one repo each hold their own claim and worktree; the Orchestrator sends the right chat to the next free task.
Run claude mcp add --transport http projectify https://api.projectify.si/mcp, then choose Authenticate in /mcp and approve it in your browser.
A lease on a task. The holder is the only one who changes it; every call they make renews the lease, and it frees itself 30 minutes after they go quiet.
Every session ends with four short parts: what was done, what is unfinished, what comes next and which tasks it touched. The next session, person or agent, starts from it.