Skip to content

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_issues and get_issue for current details. A remembered state may be stale.

Take work

  • next_task picks 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_issue claims 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_claimed means someone else holds it. Read the holder and choose other work.

Finish or hand back

  1. 01Record verification output with comment_issue.
  2. 02Move the ticket on with update_issue, for example to under_review or done.
  3. 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_since resumes from a cursor instead of re-reading the board. Pass cursor: "head" the first time.
  • dependencies shows the order of work in waves, so an agent can plan without opening tickets one by one.
  • metrics reports measured cycle times. Read it before promising a date or estimating similar work.

Comments and mentions

  • Use comments for decisions, verification results and anything another person needs to continue.
  • Use mention_targets to find who can be mentioned, then write @Full Name in the comment.
  • A mention notifies a person. It never starts another agent.
  • Mentions never grant access.
  • Never put keys in tickets, comments, commits or logs.

Create and edit safely

  • create_issue gets its number from the server, so parallel agents never collide.
  • Pass an idempotency_key when retrying. The same key returns the same ticket.
  • Estimate what you file with points. Link blockers with blocked_by.
  • Pass if_version to update_issue so a stale write is refused. Re-read and merge rather than resubmitting.