Kanban & Documentation Workflow
Instructions for progressing tasks through the kanban system and maintaining project documentation
On Start
When this skill is invoked, immediately perform these steps in order:
Step 0: Clean Up Completed Sprint
- Read
docs/kanban/1-backlog.md - If the backlog contains items marked ✅ (completed) or 🔄/👀 with no matching in-progress/reviewing entry:
a. Check
docs/kanban/5-done.mdanddocs/kanban/sprints.mdto verify these items are recorded there b. If all backlog items are ✅, the sprint is complete — close it:- Update
sprints.md: mark the sprint ✅, add completed tasks list and velocity - Move done items to
docs/kanban/9-archive.mdif they belong to a previous sprint - Clear
1-backlog.mdcompletely (leave only the header) - Clear
2-todo.mdsprint section (leave only the header) - Update
dashboard.mdto reflect the closed sprint c. If only some items are ✅, leave them but flag for the user
- Update
- If the backlog is clean (empty or only unmarked items), skip to Step 1
Step 1: Process Intray
- Read
docs/intray.md - If the intray has items:
a. Parse each item and present them back to the user as a numbered list with a proposed backlog title and one-line summary for each
b. If any item is ambiguous or unclear, ask clarifying questions before adding to backlog — do not guess
c. Once confirmed, append items to
docs/kanban/1-backlog.mdusing the standardised backlog format (see below) d. Cleardocs/intray.md(leave the file empty) - If the intray is empty, skip to Step 2
Standardised Backlog Format (one entry per item in 1-backlog.md):
### [Short imperative title]
[One-line description of what needs to happen and why]
Example:
### Fix background label resolution on concept pages
Predicate labels like "altLabel" show raw camelCase instead of resolved human-readable labels from background vocabularies.
Step 2: Read Board State
- Read all kanban files:
1-backlog.md,2-todo.md,3-in-progress.md,5-reviewing.md,5-done.md,dashboard.md,sprints.md - Assess current state across all columns
Step 3: Present Status and Options
Show a brief status summary — one line per column that has items, skip empty columns.
Then, based on board state, present actionable options using AskUserQuestion:
- If items are in progress: offer "Continue [task name]" with a one-line summary of where it left off
- If items are in review: offer "Approve [task name]" to move to done
- If backlog has items but nothing is in progress: offer "Start [highest priority task]"
- Always include "Stop here" as an option
Do NOT wait for further instructions before reading files. Start processing immediately.
Visual Workflow
┌─────────────────────────────────────────────────────────────────┐
│ TASK LIFECYCLE │
└─────────────────────────────────────────────────────────────────┘
📋 BACKLOG (1-backlog.md)
│ All unstarted tasks
│
↓ [Prioritize: Add done criteria]
│ Mark: 🎯 [Task Name]
↓
📝 TODO (2-todo.md)
│ Prioritized for current sprint
│ Has done criteria defined
│
↓ [Start work]
│ Mark: 🔄 [Task Name] in backlog
↓
⚙️ IN PROGRESS (3-in-progress.md)
│ Actively implementing
│ Testing incrementally
│
↓ [Complete implementation + docs + tests]
│ Mark: 👀 [Task Name] in backlog
↓
👀 REVIEWING (5-reviewing.md)
│ Awaiting human manual review
│ User verifies against done criteria
│
↓ [User approves] OR [Request changes → back to In Progress]
│ Mark: ✅ [Task Name] in backlog
↓
✅ DONE (5-done.md)
│ Reviewed & complete
│ Update sprints.md
│
↓ [After sprint ends + ALL backlog complete]
│
↓
🗄️ ARCHIVE (9-archive.md)
│ Historical completed tasks
│ Previous sprint outcomes
└
Backlog Status Markers:
- (no marker) = Not started
- 🎯 = Prioritized (in todo)
- 🔄 = In progress
- 👀 = In review
- ✅ = Complete
Task Lifecycle
1. Prioritizing Tasks (Backlog → Todo)
When Moving to Todo:
- Review all items in
1-backlog.md - Select highest priority items for current sprint
- Move selected tasks to
2-todo.mdwith:- Priority ranking (High/Medium/Low)
- Detailed requirements
- Acceptance criteria
- Done criteria (what "complete" means)
- Keep task in backlog but mark it (e.g.,
🎯or→ Todo) - Update
sprints.mdwith current sprint goals
Prioritization Criteria:
- User value / impact
- Dependencies (blockers for other work)
- Effort vs. benefit
- Security/critical fixes first
2. Starting a New Task (Todo → In Progress)
From Todo:
- Read task details from
2-todo.md - Mark in backlog as currently active:
🔄 [Task Name] - Move task to
3-in-progress.md - Update
dashboard.mdswim lanes to reflect status - Add start date and owner (if team context)
Task Information Required:
- Clear description of what needs to be done
- Expected deliverables (code, docs, analysis)
- Files that will be affected
- Done criteria (from todo phase)
- Testing instructions (if applicable)
3. During Task Execution (In Progress)
Code Changes:
- Make focused changes related to the task
- Avoid scope creep - stick to the task description
- Test changes incrementally
- Build successfully before moving to review
If Issues Arise:
- Document the problem clearly
- Try alternative approaches
- Ask user for clarification if blocked
- Update task notes in
3-in-progress.mdwith findings
4. Moving to Review (In Progress → Reviewing)
Before Moving to Review:
- ✅ All code changes tested and working
- ✅ Build passes (
pnpm buildsuccessful) - ✅ Relevant documentation updated
- ✅ Testing instructions provided
- ✅ Done criteria met (from todo phase)
Move to Reviewing:
- Move task from
3-in-progress.mdto5-reviewing.md - Update dashboard swim lanes
- Keep backlog item marked as in-review:
👀 [Task Name] - Include in review request:
- What was accomplished
- Files modified/created
- How to test/verify
- Done criteria checklist
Review Requires:
- Human manual review by user
- Verification against done criteria
- Testing of functionality
- Review of code/documentation quality
5. After Review (Reviewing → Done)
If Review Passes:
- Move task from
5-reviewing.mdto5-done.md - Mark in backlog as complete:
✅ [Task Name] - Update
dashboard.mdwith new metrics - Update
sprints.mdwith completed task
Completion Summary in Done Should Include:
- What was accomplished
- Files modified/created
- Key technical decisions made
- Test results
- Any follow-up items discovered
- Completion date
If Review Requires Changes:
- Move task back to
3-in-progress.md - Document required changes
- Make changes and re-test
- Move back to
5-reviewing.mdwhen ready
6. Archiving (After Backlog Complete)
When to Archive:
- Only after ALL items in backlog are complete (✅ marked)
- Tasks have been reviewed and moved to done
- Sprint is concluded
Archive Process:
- Review all completed tasks in
5-done.md - Move historical/completed tasks to
9-archive.md - Keep recent achievements visible in
5-done.md - Archive format: Task name + completion date + outcome summary
- Update
sprints.mdto close current sprint - Clear ALL items from
1-backlog.md(REQUIRED - leave completely empty)- No sprint history in backlog (history is in sprints.md and archive)
- Backlog should be ready for new work only
What to Archive:
- Completed tasks from previous sprints
- Cancelled/obsolete tasks
- Historical context that's no longer actively referenced
What to Keep in Done:
- Recent achievements (current sprint)
- Important outcomes for reference
- Tasks referenced in current work
7. Updating the Dashboard
After Each Task Completion:
# Update these sections in dashboard.md:
- Progress Overview (percentages)
- Swim Lanes table (move cards)
- Metrics (files modified, build success)
- Recent Achievements (major completions)
- Next Actions (if priorities changed)
Dashboard Metrics to Track:
- Tasks Started / Completed
- Build Success Rate
- Files Modified
- Documentation Created
- Issues Found/Fixed
- Bundle Size Changes
8. Updating Sprints
Current Sprint (sprints.md):
- Sprint goal/theme
- Start date
- Planned tasks (from todo)
- In-progress tasks
- Completed tasks (move from done)
- Sprint metrics
After Sprint Completion:
- Close current sprint section in
sprints.md - Document:
- Completed tasks
- Sprint velocity
- Key achievements
- Lessons learned
- Archive old done items to
9-archive.md - Start new sprint section
Sprint Format:
## Sprint N (YYYY-MM-DD to YYYY-MM-DD)
**Goal:** [Sprint theme/objective]
**Completed:**
- ✅ Task 1 - [Brief outcome]
- ✅ Task 2 - [Brief outcome]
**Velocity:** X tasks completed
**Key Achievements:** [Major wins]
**Lessons Learned:** [Process improvements]
Documentation Maintenance
When to Update Documentation
Feature Complete:
- Update feature doc in
docs/3-features/ - Add entry to
docs/4-roadmap/CHANGELOG.md - Update
docs/4-roadmap/current.mdif milestone completed
Specification Change:
- Update relevant spec in
docs/2-specification/ - Note change in spec's changelog section
- Check if other docs reference the changed spec
New Work Planning:
- Add to
docs/4-roadmap/backlog.mdwith priority - Create
Idea-*.mdfile only for exploratory design - Move to
docs/3-features/once design is stable
Bug Fix or Small Change:
- Commit message only (no doc update needed)
Documentation Structure
docs/
├── 1-vision/ # Principles, standards, architecture
├── 2-specification/ # Normative specs (data model, profiles, APIs)
├── 3-features/ # Feature documentation
├── 4-roadmap/ # Status, milestones, changelog, backlog
├── 5-technical/ # Setup, deployment, performance, security
├── kanban/ # Task management (this workflow)
└── archive/ # Historical documents
Status Indicators
Use these in document headers and inline:
| Symbol | Meaning |
|---|---|
| ✅ | Complete |
| 🔄 | In Progress |
| ⚠️ | Needs Update |
| ❌ | Not Started |
| 📋 | Planned |
| 💡 | Future Idea |
Security Workflow
When Security Issues Are Found
Severity Classification:
- 🔴 Critical (CVSS 9.0-10.0): Immediate action (same day)
- 🟠 High (CVSS 7.0-8.9): Fix within 1 week
- 🟡 Medium (CVSS 4.0-6.9): Fix within 2 weeks
- 🟢 Low (CVSS 0.1-3.9): Address in next sprint
- ℹ️ Info (CVSS 0.0): Best practices review
Fix Workflow:
- Document issue in
docs/5-technical/security-audit.md - Assign CVSS score and priority
- Provide fix code/approach in audit doc
- Implement fix in affected files
- Test fix with
pnpm build - Update audit doc with ✅ RESOLVED status
- Update executive summary with resolved count
- Commit with clear message:
fix(security): <description> (CVSS X.X)
Testing Security Fixes:
- Always run full build after security changes
- Test in browser if UI-related (CSP, XSS fixes)
- Verify no new errors in console
- Check that functionality still works
Build & Test Workflow
Before Committing
Required Checks:
# 1. Build successfully
pnpm --filter web build
# 2. Type check (if TypeScript changes)
pnpm --filter web nuxt typecheck
# 3. Test affected features manually
pnpm --filter web dev
# Navigate to changed pages/components
# 4. Process data if data-processing changes
pnpm --filter data-processing process
After Major Changes
Full System Check:
# Build all packages
pnpm build
# Generate static site
pnpm --filter web generate
# Preview production build
pnpm --filter web preview
Common Task Patterns
Pattern: Add New Feature
- Prioritize: Add to todo with done criteria
- Start: Mark 🔄 in backlog, move to in-progress
- Plan: Enter plan mode if non-trivial (multiple files/approaches)
- Implement: Make focused code changes
- Test: Build + manual testing
- Document: Update
docs/3-features/+CHANGELOG.md - Review Request: Move to reviewing with test instructions
- User Review: Human verification against done criteria
- Complete: Move to done, mark ✅ in backlog, update sprints
Pattern: Fix Bug
- Prioritize: Add to todo with done criteria (bug fixed + tested)
- Start: Mark 🔄 in backlog, move to in-progress
- Reproduce: Verify bug exists
- Identify: Find root cause in code
- Fix: Minimal change to address issue
- Test: Verify fix works, no regressions
- Review Request: Move to reviewing with before/after demo
- User Review: Verify bug is fixed
- Complete: Move to done, mark ✅ in backlog
Pattern: Analysis Task
- Prioritize: Add to todo with done criteria (report complete)
- Start: Mark 🔄 in backlog, move to in-progress
- Research: Explore codebase, external standards, data
- Document: Create detailed markdown in
docs/5-technical/ - Summarize: Key findings + recommendations
- Review Request: Move to reviewing for user feedback
- User Review: Verify analysis is complete and accurate
- Complete: Move to done, update dashboard, mark ✅ in backlog
- Next Steps: Create follow-up tasks if issues found
Pattern: Security Fix
- Prioritize: Add to todo (Critical = immediate, High = 1 week)
- Start: Mark 🔄 in backlog, move to in-progress
- Assess: Read security audit, understand issue
- Implement: Apply fix from audit recommendations
- Test: Build + browser testing for UI fixes
- Document: Update audit doc with ✅ RESOLVED
- Review Request: Move to reviewing with security test plan
- User Review: Verify security issue is resolved
- Complete: Move to done, mark ✅ in backlog, update sprints
- Commit: Security commit message with CVSS score
Kanban File Purposes
1-backlog.md
Purpose: Unstarted tasks waiting to be prioritized or started Format: Task name + brief description + priority Important: Backlog contains ONLY unstarted/active work. After sprint ends, backlog is COMPLETELY EMPTY.
Status Markers (during active sprint):
- (no marker) = Not started
- 🎯 = Moved to todo (prioritized)
- 🔄 = Currently in progress
- 👀 = In review
- ✅ = Complete (will be cleared when sprint ends)
After Sprint Ends:
- Completely empty (no items, no history, no summaries)
- Sprint history is in
sprints.mdand9-archive.md - Ready for new work only
2-todo.md
Purpose: Prioritized tasks for current sprint, ready to start Format:
- Task name + priority (High/Medium/Low)
- Detailed requirements
- Acceptance criteria
- Done criteria (what complete means)
- Expected deliverables
3-in-progress.md
Purpose: Currently active work being implemented Format:
- Task name + owner
- Progress notes
- Blockers (if any)
- Start date
- Files being modified
5-reviewing.md
Purpose: Tasks awaiting human manual review/approval Format:
- Task name
- What to review (code, docs, functionality)
- How to test/verify
- Done criteria checklist
- Review request date
Important: Tasks stay here until user reviews and approves
5-done.md
Purpose: Completed and reviewed tasks (current sprint) Format:
- Task name + completion date
- Summary of what was accomplished
- Files modified/created
- Key decisions made
- Test results
- Follow-up items (if any)
Note: Keep only recent/current sprint items here
9-archive.md
Purpose: Historical completed tasks from previous sprints Format:
- Sprint identifier
- Task name + completion date
- Brief outcome summary
- Reason for archival (sprint ended, obsolete, cancelled)
When to Archive: After ALL backlog items complete and sprint ends
dashboard.md
Purpose: High-level overview + real-time metrics Format:
- Progress percentages (backlog → done)
- Swim lanes table (visual kanban board)
- Metrics (velocity, files changed, build success)
- Recent achievements
- Next actions
sprints.md
Purpose: Sprint planning, tracking, and retrospectives Format:
- Current Sprint: Goals + in-progress + completed tasks
- Previous Sprints: Closed sprints with outcomes + velocity + lessons
Update: Add completed tasks from 5-done.md to current sprint section
Key Files to Update
| When... | Update... |
|---|---|
| Prioritizing tasks | 2-todo.md (add task) + 1-backlog.md (mark 🎯) |
| Starting task | 3-in-progress.md (add) + 1-backlog.md (mark 🔄) |
| Ready for review | 5-reviewing.md (add) + 1-backlog.md (mark 👀) |
| Task reviewed & complete | 5-done.md (add) + 1-backlog.md (mark ✅) + sprints.md |
| Sprint ends | sprints.md (close sprint) + 9-archive.md (move old done items) |
| Feature complete | docs/4-roadmap/CHANGELOG.md |
| Starting new phase | docs/4-roadmap/current.md |
| Bug fix or small change | Commit message only |
| API/spec change | docs/2-specification/ + changelog |
| New idea documented | Create Idea-*.md, later migrate |
| Security issue fixed | docs/5-technical/security-audit.md |
| Analysis complete | docs/5-technical/*.md |
| Any task state change | dashboard.md (swim lanes + metrics) |
Communication Pattern
Task Completion Messages
Good Pattern:
✅ Issue #6: Path Traversal Fixed
Fixed in 5 scripts:
- process-vocab.js
- generate-vocab-metadata.js
...
Fix: Added path validation to prevent traversal attacks.
Testing: Build passed successfully.
What to Include:
- Clear confirmation of what was done
- List of affected files
- Key technical approach
- Test results
- Any follow-up needed
Progress Updates
When Working on Long Tasks:
- Update every 3-5 tool calls
- Show incremental progress
- Flag blockers immediately
- Ask questions early, not after implementing
Exceptions & Edge Cases
When Build Fails
- Don't mark task complete
- Document the error
- Investigate root cause
- Try alternative approach or ask for help
- Only mark done after successful build
When Requirements Unclear
- Don't guess and implement
- Ask specific clarifying questions
- Provide 2-3 options if multiple approaches viable
- Wait for confirmation before proceeding
When Discovering New Issues
- Document in appropriate file (security audit, backlog, etc.)
- Don't automatically expand scope
- Finish current task first
- Create new task for newly discovered work
When User Feedback Requires Changes
- Re-open task or create follow-up task
- Apply requested changes
- Re-test
- Update completion summary with iterations
Quality Standards
Code Quality
- ✅ Builds successfully
- ✅ No new console errors
- ✅ Follows existing patterns
- ✅ Minimal scope (focused changes)
- ✅ Security-conscious
Documentation Quality
- ✅ Clear, concise language
- ✅ Code examples where relevant
- ✅ Status indicators used correctly
- ✅ Cross-references to related docs
- ✅ Maintained structure/formatting
Task Completion Quality
- ✅ All acceptance criteria met
- ✅ Testing instructions provided
- ✅ Relevant docs updated
- ✅ Dashboard metrics updated
- ✅ Clear completion summary
Tools & Commands Reference
Build & Dev
pnpm --filter web dev # Start dev server
pnpm --filter web build # Build for production
pnpm --filter web generate # Generate static site
pnpm --filter web preview # Preview production build
Data Processing
pnpm --filter data-processing process # Process vocabularies
Web Components
cd packages/web-components
pnpm build # Build web components
Type Checking
pnpm --filter web nuxt typecheck # Check TypeScript types
Best Practices
DO:
- ✅ Define done criteria when prioritizing to todo
- ✅ Mark backlog status (🎯 🔄 👀 ✅) as tasks progress
- ✅ Move to reviewing (not done) after implementation
- ✅ Wait for human review before marking done
- ✅ Update sprints.md when tasks complete
- ✅ Test changes before requesting review
- ✅ Keep tasks focused and scoped
- ✅ Document security fixes thoroughly
- ✅ Provide clear test instructions for reviewers
- ✅ Ask questions when requirements unclear
- ✅ Archive only after sprint ends and ALL backlog complete
DON'T:
- ❌ Skip defining done criteria in todo phase
- ❌ Move directly from in-progress to done (must go through reviewing)
- ❌ Mark tasks done without human review
- ❌ Archive before all backlog items complete
- ❌ Leave completed items in backlog after sprint ends
- ❌ Forget to update backlog status markers
- ❌ Skip updating sprints.md with completions
- ❌ Expand scope without discussion
- ❌ Skip documentation updates
- ❌ Ignore build failures
- ❌ Guess at unclear requirements
- ❌ Leave tasks in "in progress" limbo
Summary
The Complete Workflow:
Backlog (unstarted)
↓ [Prioritize]
Todo (prioritized, ready to start)
↓ [Start work, mark 🔄 in backlog]
In Progress (actively working)
↓ [Implement, test, document]
Reviewing (awaiting human review)
↓ [User reviews against done criteria]
Done (reviewed & complete, mark ✅ in backlog)
↓ [Update sprints.md with completion]
Archive (after sprint ends, all backlog complete)
The Core Loop:
- Prioritize: Select from backlog → move to todo with done criteria
- Start: Pick task from todo → mark 🔄 in backlog → move to in-progress
- Implement: Make changes → test with build → update docs
- Review Request: Move to reviewing with test instructions
- Human Review: User verifies against done criteria
- Complete: Move to done → mark ✅ in backlog → update sprints
- Archive: After sprint ends and all backlog complete → move to archive
- Next task
Key Principles:
- Prioritize explicitly with done criteria before starting
- Mark backlog status (🎯 todo, 🔄 in-progress, 👀 reviewing, ✅ done)
- Human review required before marking done
- Archive only after sprint ends and all backlog complete
- Update sprints.md with completed tasks
- Progress tasks systematically, document thoroughly, test completely
Quick Reference
Backlog Status Markers (1-backlog.md)
| Marker | Meaning | File Location |
|---|---|---|
| (none) | Not started | 1-backlog.md only |
| 🎯 | Prioritized | 1-backlog.md + 2-todo.md |
| 🔄 | In progress | 1-backlog.md + 3-in-progress.md |
| 👀 | In review | 1-backlog.md + 5-reviewing.md |
| ✅ | Complete | 1-backlog.md + 5-done.md + sprints.md |
File Update Checklist
When moving task through workflow:
Backlog → Todo:
☐ Add to 2-todo.md with done criteria
☐ Mark 🎯 in 1-backlog.md
☐ Update dashboard swim lanes
Todo → In Progress:
☐ Add to 3-in-progress.md with start date
☐ Mark 🔄 in 1-backlog.md
☐ Update dashboard swim lanes
In Progress → Reviewing:
☐ Add to 5-reviewing.md with test instructions
☐ Mark 👀 in 1-backlog.md
☐ Update dashboard swim lanes
☐ Include done criteria checklist
Reviewing → Done:
☐ Add to 5-done.md with completion summary
☐ Mark ✅ in 1-backlog.md
☐ Add to sprints.md current sprint section
☐ Update dashboard swim lanes + metrics
Sprint End (All backlog ✅):
☐ Close sprint in sprints.md
☐ Move old done items to 9-archive.md
☐ **CLEAR ALL items from 1-backlog.md** (leave completely empty)
☐ Backlog ready for new work (history is in sprints.md/archive)
Critical Workflow Rules
- Never skip reviewing stage - Tasks must have human review
- Never archive mid-sprint - Only after ALL backlog complete
- Always clear backlog after sprint - Backlog is for unstarted work only
- Always mark backlog status - Keep 1-backlog.md current during sprint
- Always define done criteria - In todo phase before starting
- Always update sprints.md - When tasks complete