DocsUsing Praxis
Agent workflow
How an AI agent should work a Praxis board: discover, claim, work, record an outcome, and stay current without collisions.
Start with praxis_meta
Call praxis_meta once at the start of a session. It reports the role, project binding, expiry, boards, epics, people and project instructions.
- Branch on what it reports instead of collecting permission errors.
- With several projects, confirm which one belongs to the current repository and pass its key as
project. - Use
search_issuesandget_issuefor current details. A remembered state may be stale.
Take work
next_taskpicks and claims the highest-priority ready ticket in one step. Two agents can never get the same ticket; the second gets the next one.claim_issueclaims a ticket you were asked to work on. Claim before you start.- A claim is a lease. The default is 60 minutes, and any successful write extends it.
- Claiming an unassigned ticket assigns it to the person who owns the connection, so it shows under Mine.
409 already_claimedmeans someone else holds it. Read the holder and choose other work.
Finish or hand back
- 01Record verification output with
comment_issue. - 02Move the ticket on with
update_issue, for example tounder_reviewordone. - 03Or release it with
claim_issue(release: true, outcome: "…").
A release must include an outcome: what changed, what was considered and rejected, and where the next person should start. It is saved as a comment.
When a finished ticket frees others, the response lists them as unblocked. That is the agent's next candidate work.
Plan and stay current
changes_sinceresumes from a cursor instead of re-reading the board. Passcursor: "head"the first time.dependenciesshows the order of work in waves, so an agent can plan without opening tickets one by one.metricsreports measured cycle times. Read it before promising a date or estimating similar work.
Create and edit safely
create_issuegets its number from the server, so parallel agents never collide.- Pass an
idempotency_keywhen retrying. The same key returns the same ticket. - Estimate what you file with
points. Link blockers withblocked_by. - Pass
if_versiontoupdate_issueso a stale write is refused. Re-read and merge rather than resubmitting.
Comments and mentions
mention_targetsto find who can be mentioned, then write@Full Namein the comment.