spec-kitty

Kanban Workflow Explained

Spec Kitty uses a kanban-style workflow to track work package progress. This document explains how lanes work, why we track status this way, and what happens when work moves between lanes.

The Four Lanes

Work packages move through four lanes during their lifecycle:

┌─────────────┐    ┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│   PLANNED   │ →  │    DOING    │ →  │  FOR_REVIEW │ →  │    DONE     │
├─────────────┤    ├─────────────┤    ├─────────────┤    ├─────────────┤
│ Ready to    │    │ Agent is    │    │ Waiting for │    │ Reviewed    │
│ start       │    │ implementing│    │ review      │    │ and merged  │
└─────────────┘    └─────────────┘    └─────────────┘    └─────────────┘

planned

Meaning: Work package is defined and ready to start.

How it gets here:

What happens:

doing

Meaning: An agent is actively implementing this work package.

How it gets here:

What happens:

for_review

Meaning: Implementation is complete, waiting for review.

How it gets here:

What happens:

done

Meaning: Work package has been reviewed and accepted.

How it gets here:

What happens:

How Work Moves Between Lanes

Normal Flow: planned → doing → for_review → done

1. WP created by /spec-kitty.tasks
   └── lane: planned

2. Agent claims WP
   └── spec-kitty agent tasks move-task WP01 --to doing --assignee claude
   └── lane: doing

3. Agent completes implementation
   └── spec-kitty agent tasks move-task WP01 --to for_review --note "Ready"
   └── lane: for_review

4. Reviewer approves and moves WP
   └── spec-kitty agent tasks move-task WP01 --to done
   └── lane: done
   └── (Once ALL WPs are done: /spec-kitty.accept validates entire feature)

Review Feedback: for_review → planned (with feedback)

When review finds issues:

1. WP in for_review, reviewer examines code

2. Reviewer finds problems
   └── /spec-kitty.review WP01
   └── Adds feedback to WP file
   └── lane: planned (reset)
   └── review_status: has_feedback

3. Agent re-claims WP
   └── Reads feedback section in WP
   └── Addresses issues
   └── lane: doing → for_review

4. Reviewer re-reviews
   └── If good: lane: done
   └── If issues remain: repeat

Lane Status in Frontmatter

Lane status is stored in each work package’s YAML frontmatter:

---
work_package_id: "WP01"
title: "Database Schema"
lane: "doing"
assignee: "claude"
agent: "claude"
shell_pid: "12345"
review_status: ""
---

Key Fields

Field Purpose
lane Current status (planned/doing/for_review/done)
assignee Who is working on this WP
agent Which AI agent claimed this
shell_pid Process ID of the agent (for tracking)
review_status Empty or has_feedback if returned from review

Not Directories, Just a Field

In many kanban systems, you move cards between columns (directories). In Spec Kitty, the WP file stays in the same place—only the lane: field changes.

kitty-specs/012-feature/tasks/
├── WP01-database.md      # lane: done
├── WP02-api.md           # lane: for_review
├── WP03-frontend.md      # lane: doing
└── WP04-tests.md         # lane: planned

This design keeps all WP files in one location for easier discovery.

Who Moves Work?

Agents Move Work Forward

Agents are responsible for:

Commands:

# Claim a WP
spec-kitty agent tasks move-task WP01 --to doing --assignee claude

# Mark complete
spec-kitty agent tasks move-task WP01 --to for_review --note "Implementation complete"

Reviewers Make Accept/Reject Decisions

Reviewers are responsible for:

Commands:

# Review a WP (opens review workflow)
/spec-kitty.review WP01

# Move WP to done after review passes
spec-kitty agent tasks move-task WP01 --to done

# Once ALL WPs are done, validate entire feature
/spec-kitty.accept

Users/Orchestrators Can Move Anything

Users can override any lane transition if needed:

# Force move (e.g., to un-block stuck work)
spec-kitty agent tasks move-task WP01 --to planned

Activity Log

Every lane transition is logged in the WP file’s history field:

history:
  - timestamp: "2026-01-15T10:00:00Z"
    lane: "planned"
    agent: "system"
    action: "Prompt generated via /spec-kitty.tasks"

  - timestamp: "2026-01-15T11:00:00Z"
    lane: "doing"
    agent: "claude"
    shell_pid: "12345"
    action: "Claimed for implementation"

  - timestamp: "2026-01-15T14:00:00Z"
    lane: "for_review"
    agent: "claude"
    shell_pid: "12345"
    action: "Implementation complete, ready for review"

  - timestamp: "2026-01-15T15:00:00Z"
    lane: "done"
    agent: "reviewer"
    action: "Approved and moved to done"

Why Track Activity?

Debugging: If something goes wrong, you can trace what happened.

Metrics: Calculate time-in-lane, cycle time, throughput.

Audit trail: Know who did what and when.

Coordination: Multiple agents can see what others are doing.

Kanban Board Visualization

Use /spec-kitty.status to see the current board state:

Feature: 012-user-authentication
═══════════════════════════════════════════════════════════════════════════════
 PLANNED         │ DOING           │ FOR_REVIEW      │ DONE
─────────────────┼─────────────────┼─────────────────┼─────────────────
 WP04-tests      │ WP03-frontend   │ WP02-api        │ WP01-database
                 │ (claude)        │                 │
─────────────────┴─────────────────┴─────────────────┴─────────────────
Progress: ████████░░░░░░░░ 25% (1/4 done)

Rules and Constraints

One Agent Per WP in Doing

When a WP is in doing:

Dependencies Must Be Satisfied

Before moving a WP to doing:

The implement command enforces this:

spec-kitty implement WP02 --base WP01  # Ensures WP01 code is available

Review Before Done

WPs cannot skip directly to done:

Subtask Validation

Before moving to for_review:

Common Patterns

Linear Workflow

WP01 → WP02 → WP03 → WP04

Each WP moves through lanes sequentially. One agent handles everything.

Parallel Workflow

        WP01 (done)
       /    \
WP02 (doing)  WP03 (doing)

Multiple WPs in doing simultaneously. Different agents work in parallel.

Review Feedback Loop

planned → doing → for_review → planned → doing → for_review → done
                                   ↑                            ↑
                              (feedback)                   (approved)

Work returned from review goes back to planned with feedback.

See Also


This document explains how lanes work. For practical steps on moving work, see the how-to guides.

Try It

How-To Guides

Reference