Overview
Every issue in Tracer has a status that indicates its current state in the workflow. The status determines whether work is ready to start, in progress, blocked, or complete.Status Values
Tracer supports four status values:Open
The default status for new issues. Indicates work that is ready to be started.tracer ready shows issues with open status that have no unresolved blockers.- No assignee required
- Available for any agent to claim
- May have dependencies blocking it from being “ready”
In Progress
Indicates work that is actively being done.- Automatically assigns to current actor (via
--actorflag orTRACE_ACTORenv var) - Signals to other agents that work is underway
- Can be updated with progress comments
Blocked
Indicates work that cannot proceed due to external factors.- Waiting for external dependencies (not tracked in Tracer)
- Blocked by circumstances (missing credentials, unclear requirements)
- Temporary impediments that will be resolved
The
blocked status is for external blockers. For dependencies between issues, use the blocks dependency type instead. See Dependencies.- Does not appear in
tracer ready - Keeps assignee (work can resume when unblocked)
- Should include comment explaining the blocker
Closed
Indicates completed work.- Sets
closed_attimestamp - Records closing reason in events
- Unblocks any issues that depend on it
- Excluded from
tracer readyand active work queries
Status Transitions
Typical workflow progression:Common Transitions
- Open → In Progress
- In Progress → Blocked
- Blocked → In Progress
- In Progress → Closed
- Open → Closed
Most common transition when starting work.What happens:
- Issue assigned to current actor
- Status change recorded in events
- Issue no longer appears in ready work for others
Assignee Behavior
The assignee field tracks who is responsible for an issue:Auto-assignment
When status changes toin_progress, Tracer automatically assigns the issue:
Manual assignment
You can explicitly set assignee without changing status:Clearing assignee
Assignee is for coordination - it doesn’t restrict who can work on an issue. Use it to avoid conflicts in multi-agent scenarios.
Querying by Status
List Issues by Status
Ready Work
sqlite.rs:594, ready work is defined as:
- Status is
open - No unresolved
blocksdependencies
Blocked Issues
- Issues with unresolved
blocksdependencies - What’s blocking each issue
- Count of blockers
Statistics
Thestats command breaks down issues by status:
sqlite.rs:741, this counts:
- Total issues across all statuses
- Count per status
- Issues ready to work (open + unblocked)
Status Events
Every status change creates an event in the audit trail:- Who changed the status
- Old and new values
- When it changed
- Associated comments
types.rs:206 for StatusChanged event type.
Best Practices
Always comment when blocking
Always comment when blocking
When setting status to This helps others understand the blocker and potentially resolve it.
blocked, add a comment explaining why:Use in_progress to claim work
Use in_progress to claim work
In multi-agent environments, move issues to
in_progress before starting work to signal you’re working on it:Provide meaningful close reasons
Provide meaningful close reasons
The closing reason becomes part of the permanent record:Good: “Feature implemented, tested, and deployed to staging”
Bad: “Done”
Bad: “Done”
Don't confuse blocked status with blocks dependencies
Don't confuse blocked status with blocks dependencies
- Use
blockedstatus for external impediments - Use
blocksdependency type for inter-issue dependencies
Check ready work regularly
Check ready work regularly
Run
tracer ready at the start of each session to find unblocked work:Multi-Agent Coordination
Status and assignee work together for coordination:Next Steps
- Learn about Dependencies to understand blocking relationships
- Read Issues for core issue concepts
- See Priorities for prioritization strategies