What Are Issues?
Issues are the second tier in sudocode’s 4-tier abstraction structure. They capture agent intent - the HOW to implement what specs define. Think of issues as actionable work items scoped to what an AI agent (or human developer) can accomplish in a single focused session.- Implementation tasks - “Implement login endpoint”
- Bug fixes - “Fix token expiration bug”
- Feature work - “Add password reset flow”
- Epics - “Build authentication system” (contains sub-issues)
- Chores - “Update dependency versions”
Issues vs. Specs
Specs
- High-level requirements
- Written primarily by humans
- Long-lived, evolve over time
- Multiple issues per spec
Issues
- Actionable implementation
- Created by humans or agents
- Closed when complete
- One spec per issue (typically)
Issue Lifecycle
Issues progress through a well-defined lifecycle from creation to completion:open - Ready to be worked on
open - Ready to be worked on
open when created. An open issue means:- Ready to be claimed by an agent or developer
- No blocking dependencies (or blockers resolved)
- Has sufficient detail to begin work
- May be in the “ready” queue for execution
in_progress - Currently being worked on
in_progress - Currently being worked on
- Status changes to
in_progress - Assignee is set to the agent/user
- Other agents know this work is claimed
- Implementation is actively happening
blocked - Waiting on dependencies
blocked - Waiting on dependencies
- Another issue must be completed first
- External dependency is unavailable
- Waiting for spec clarification
- Blockers tracked via
blocksrelationships
needs_review - Implementation complete, awaiting review
needs_review - Implementation complete, awaiting review
- Code changes awaiting review
- Testing in progress
- Validation needed
- Feedback being incorporated
closed - Work completed
closed - Work completed
- Implementation is complete
- Tests pass
- Code reviewed and merged
- Requirements fulfilled
- Can be reopened if needed
Issue Types
Issues are categorized by type to help with organization and filtering:| Type | Purpose | Example |
|---|---|---|
| task | Implementation work | ”Create login endpoint” |
| bug | Fix defects | ”Fix token expiration bug” |
| feature | New functionality | ”Add password reset flow” |
| epic | Large work with sub-issues | ”Build authentication system” |
| chore | Maintenance work | ”Update dependencies” |
Issue Structure
Issues are stored as markdown files with YAML frontmatter in.sudocode/issues/:
File Format
Cross-References
Issues support bidirectional linking to specs and other issues:Link to Specs
Reference the spec(s) this issue implements:Link to Other Issues
Reference related issues:Relationships and Dependencies
Issues can have typed relationships to model dependencies and connections:Relationship Types
| Type | Description | Example |
|---|---|---|
| blocks | Hard blocker dependency | ”ISSUE-001 blocks ISSUE-002” |
| implements | Implements a spec | ”ISSUE-001 implements SPEC-001” |
| parent-child | Epic/subtask hierarchy | ”ISSUE-010 is parent of ISSUE-011” |
| related | Contextual connection | ”ISSUE-001 related to ISSUE-005” |
| discovered-from | Found during implementation | ”ISSUE-020 discovered from ISSUE-015” |
Creating Dependencies
Relationships Documentation
Hierarchical Organization
Issues can be organized hierarchically for complex work:- Break epics into manageable tasks
- Organize related work items
- Track progress on large features
- Enable agent handoffs between subtasks
Priority Levels
Issues use a 0-4 priority scale (same as specs):Priority Levels
Priority Levels
- 0 - Critical (highest priority)
- 1 - High
- 2 - Medium (default)
- 3 - Low
- 4 - Lowest
- Execution order - Combined with topological ordering of dependencies
- Ready queue - Higher priority issues surface first
- Agent selection - Agents claim highest priority ready work
Storage and Versioning
Issues are stored in three synchronized layers:Markdown Files (.md)
Markdown Files (.md)
- Located in
.sudocode/issues/ - YAML frontmatter + markdown body
- Edit directly or via CLI
- Synced to JSONL automatically
JSONL File (issues.jsonl)
JSONL File (issues.jsonl)
- One JSON object per line
- Contains all issue data
- Committed to version control
- Used for distribution via git
SQLite Cache (cache.db)
SQLite Cache (cache.db)
- Rebuilt from JSONL after git pull
- Enables efficient graph queries
- Not committed to git
- Auto-synced from JSONL
Best Practices
When to Create an Issue
✅ Good candidates for issues
✅ Good candidates for issues
- Concrete implementation tasks
- Bug fixes with clear reproduction steps
- Work that can be completed in one session
- Tasks scoped for a single agent or developer
- Subtasks of a larger spec or epic
- Actionable items with clear acceptance criteria
❌ Not good candidates for issues
❌ Not good candidates for issues
- Strategic decisions (create a spec instead)
- Vague ideas without clear implementation path
- Work requiring multiple independent components
- High-level requirements (should be specs)
Writing Effective Issues
Clear, actionable title
Detailed description
Concrete acceptance criteria
Link to specs
[[SPEC-XXX]] to reference requirementsSpecify dependencies
blocks relationships for hard dependenciesEstimate effort (optional)
Scoping Issues for Agents
Issues should be scoped to what an agent can complete in one focused session:✅ Well-scoped
- “Implement POST /api/auth/login endpoint”
- “Fix token expiration validation bug”
- “Add unit tests for user service”
- “Update API documentation for auth endpoints”
❌ Too broad
- “Build authentication system” (epic, not issue)
- “Improve performance” (too vague)
- “Refactor codebase” (too large)
- “Add features” (not specific)
CLI Commands
Quick reference for working with issues:Complete CLI Reference
Agent Workflows
Claiming and Executing Work
Agents use issues to coordinate work:Query ready work
Claim an issue
Implement and commit
Provide feedback (if needed)
Close the issue
Handling Blocked Work
When an issue is blocked:Common Workflows
Creating Issues from a Spec
Review the spec
Create implementation issues
Link issues to spec
Model dependencies
Converting a Bug Report to an Issue
Create bug issue
Add reproduction steps
.sudocode/issues/ISSUE-001.md to add:- Steps to reproduce
- Expected behavior
- Actual behavior
- System information
Link to related spec (if applicable)
Assign and track

