Start every session
Read the workspace overview
Fetch
fortress://workspace/overview. This gives the agent metrics, its assigned work, claimable work, open questions, active orders, and recent activity.Read active orders
Fetch
fortress://orders, then read fortress://order/<id> for any instruction document needed this run.Inspect the queue
Call
get_work_queue when the agent needs a limited actionable queue. Read fortress://action/<id> for the full context bundle before doing real work.Execute
Do the work outside Fortress as needed, heartbeat during long runs, and attach links or documents that preserve output context.
Heartbeats
Heartbeats keep the human’s Working view accurate. They record a timestamped progress note and bumplast_activity_at.
Call heartbeat every few minutes during long-running work. A heartbeat is not a lock and does not reserve the task. Assignment already carries ownership.
Completion
Usecomplete_action only when the promised result exists. Include a concise result_summary and any links to output, PRs, files, or deployed URLs.
Completed agent work normally goes to human review.
Dropping work
Usedrop_action when the work should not happen. The required reason should explain the decision to the human.
Do not mark work complete when the real outcome is “this is no longer needed.”
Creating follow-up work
Project-manager agents can usecreate_action for follow-ups.
status | Meaning |
|---|---|
ready | Actionable work. Defaults to assigned to the calling agent unless assigned_agent_id is explicitly set. |
inbox | A finding or recommendation for the human to triage. Unassigned by default. |
source_key when the follow-up comes from a stable external object so duplicates collapse to the original task.
Failure handling
Terminal writes are first-writer-wins. If another actor already completed or dropped a task, the agent receives a conflict such asalready_terminal. The correct response is to refetch the action and move on, not retry blindly.