Phase 4: Archive Automation
Goal: Keep boards clean by archiving old Done/Punt cards automatically.
Steps
- [x] Add
archive-cardcommand to kanban.mjs — moves card to the board's archive list - [x] Create
/kanban-archiveskill (Claude + Codex) — archives Done/Punt cards older than N days
Plan: Create /kanban-archive skill (Claude + Codex)
What: A standalone skill that bulk-archives Done/Punt cards older than N days (default 30). Shows which cards will be archived, asks for confirmation, then archives them using the archive-card command added in Step 1.
Files to create (4):
claude/kanban-archive/SKILL.mdcodex/kanban-archive/SKILL.md(same content)codex/kanban-archive/agents/openai.yaml
File to update (1):
docs/skills-reference.md— add/kanban-archiveentry (if this file exists)
SKILL.md structure:
- Board Resolution — reuse the standard protocol from other
-kanbanskills:
- Check
tasks/.kanban-boardfor saved board ID - If not found, run
kanban.mjs boardsand auto-match by repo directory name - If no match, ask user; save to
tasks/.kanban-board - If no board exists, offer to create with
--template standard
- Find archivable cards:
- Run
kanban.mjs board <id>to get all lists and cards - Filter to lists with
type: "done"ortype: "punt" - Filter cards where
updatedAtis older than N days (default 30, override with--days <N>) - If no cards match, report "No cards to archive" and stop
- Show candidates:
- Display a table/list: card name, list name, last updated date, age in days
- Show total count
- Confirm with user:
- Ask: "Archive these N cards? (y/n)"
- If no, stop
- Archive cards:
- For each card, run
kanban.mjs archive-card --id <card-id> - Report progress
- Summary:
- "Archived N cards (X from Done, Y from Punt)"
agents/openai.yaml content:
interface:
display_name: "Kanban Archive"
short_description: "Archive old Done/Punt cards from kanban board"
default_prompt: "Use $kanban-archive to archive old Done/Punt cards."
policy:
allow_implicit_invocation: true
Key context:
- The
archive-cardcommand inkanban.mjshandles auto-creating the Archive list if needed — the skill doesn't need to worry about that - Card
updatedAtfield is available in the board response (it's returned bycmdBoard) - The Board Resolution protocol is identical across all 6 existing
-kanbanskills — copy fromclaude/brainstorm-kanban/SKILL.md - Script path:
claude/poketo-kanban/scripts/kanban.mjs(referenced as$KANBANin skills) - The
--daysflag parsing happens in the skill prompt itself (parse from user args), not in kanban.mjs
Acceptance criteria:
claude/kanban-archive/SKILL.mdandcodex/kanban-archive/SKILL.mdexist with full skill contentcodex/kanban-archive/agents/openai.yamlexists- Skill follows Board Resolution protocol consistent with other
-kanbanskills - Skill filters Done/Punt cards by age, shows candidates, confirms before archiving
- Supports
--days <N>to override the 30-day default bash install.shpicks up the new skill
Milestone
- [x]
/kanban-archivecleans up Done/Punt cards older than 30 days with user confirmation