/plans - List All Plans
Usage
/plans # All non-archived plans (excludes implemented + superseded)
/plans all # All plans regardless of status
/plans --status=draft # Filter by status
/plans --type=migration # Filter by plan typeExecution
Step 1 — Parse Arguments
Parse the user's input for optional filters:
| Argument | Maps To | Values |
|---|---|---|
all | no filter | show everything |
--status=X | status filter | draft, accepted, stories-created, in-progress, implemented, superseded, archived |
--type=X | plan_type filter | feature, refactor, migration, infra, tooling, workflow, audit, spike |
--prefix=X | story_prefix filter | e.g., APIP, SKCR, DASH |
| *(no args)* | default | exclude implemented and superseded |
Step 2 — Query KB
Call kb_list_plans with the appropriate filters and limit: 100.
If the default filter (no args), make TWO calls and combine:
kb_list_plans({status: 'draft', limit: 100})kb_list_plans({status: 'in-progress', limit: 100})- Also include
stories-createdandacceptedif any exist
Simpler approach: Call kb_list_plans({limit: 100}) once, then filter client-side to exclude implemented and superseded when no explicit filter is given.
Step 3 — Format Output
Display results as a markdown table with these columns:
| Plan Slug | Title | Status | Type | Prefix | Priority | Stories | Tags | Updated |Column formatting:
- Plan Slug: backtick-wrapped slug
- Title: truncate to 50 chars if needed
- Status: as-is
- Type: as-is
- Prefix: story_prefix or
— - Priority: P1-P5
- Stories: estimated_stories or
— - Tags: first 3 tags comma-separated,
+Nif more - Updated: relative date (e.g., "2h ago", "3d ago")
Sort order: status (draft/in-progress first), then priority (P1 first), then slug.
Step 4 — Summary Line
After the table, output a one-line summary:
N plans total: X draft, Y in-progress, Z implemented, W superseded