AI Dev Kit – Kanban Governance Policy
Owner: AI Dev Kit / Book Project Lead
Last Updated: 2026-03-31
Applies To: All work tracked in the ai-dev-kit repo
Based On: packages/frameworks/kanban/policies/kanban-governance-policy.md (project-agnostic framework - CANONICAL SOURCE OF TRUTH)
1. Purpose
This policy defines how the AI Dev Kit repo runs Kanban for:
- Work on the AI Dev Kit frameworks themselves (workflow mgt, numbering & versioning, kanban, etc.)
- Work on the Vibe Coding For Dummies book project that lives in this repo
This policy adopts the full versioning schema and strategy from the Numbering & Versioning package:
- Version schema:
RC.EPIC.STORY.TASK+BUILD - All substantive work is Task-driven (Feature Requests and Bug Reports become Tasks)
The implementation in this repo starts simple:
- Uses Stories and Tasks as the primary work items (Epics will be added as the work grows)
- Uses a simple board view in
docs/project-management/kanban/_index.md - Can be evolved later to add Epics, swimlanes, WIP limits, etc.
1.1 RW Step 7 vs standalone UKW (FR-038)
- Per-release kanban sync: Release Workflow Step 7 — Scoped Kanban Sync (UKW Mode) aligns Task/Story/Epic docs and related board lines for the current release in a scoped manner (conservative MoSCOW; no whole-board reshuffle).
- Board-wide kanban sync: Update Kanban Workflow (UKW) in standalone mode handles full-board housekeeping, prioritisation, and narrative updates per UKW flags.
1.2 FR / BR / UXR intake (KG-R2, KG-R6)
Normative detail lives in the framework policy (single SoT): kanban-governance-policy.md (framework package) — key_rules KG-R2 and KG-R6.
In short (this repo):
- Atomic intake: New
fr-br/*.mdMUST ship in the same change set as its task document and bidirectional links (Implementing Task:↔ task body). No “file FR now, task later.” - ≥1 task per report: Every FR, BR, and UXR resolves to at least one Kanban task (shared task allowed if explicitly cited by every report).
- Story semantics over id symmetry: The primary task SHOULD live under the story that matches delivery. Matching FR-047 to E5:S01:T47 is optional, not required.
Approach D transition rule (FR-072):
- New intake cutover: New FR/BR/UXR intake MUST create the primary task in the most appropriate delivery story; do not create net-new intake tasks in dedicated FR/BR/UXR repository stories.
- Historical anchors preserved: Existing repository-story tasks remain valid for forensic traceability and cross-links; treat those stories as historical registries during migration/closure.
Operational guide: FR_BR_INTAKE_GUIDE.md (framework package). Agent skill: intake-process skill.
1.3 RW task-intent adoption flag (--art)
- RW Step 1d task-intent validation supports
--artin all RW trigger modes (RW,RW -d,RW -k) for explicit canonical release-anchor adoption. - Use
--artonly for intentional anchor adoption, not as a substitute for missing task token or missing task document checks (Steps 1b/1c remain mandatory and blocking). - Source behavior is defined by
.cursorrules+validate_rw_task_intent.py; packaged parity must remain aligned.
2. Board Structure (This Repo)
2.1 Location
Single Kanban Directory: All Kanban documentation lives under docs/project-management/kanban/:
-
Board files:
docs/project-management/kanban/_index.md(quick board view)docs/project-management/kanban/kboard.md(MoSCOW prioritized tasks)docs/project-management/kanban/kanban-structure.md(Epic/Story/Task structure)docs/project-management/kanban/kanban-board-guide.md(rules and explanations)docs/project-management/kanban/README.md(structure overview)
-
Epic files:
docs/project-management/kanban/epics/Epic-X.md(Epic overview document)
-
Story files:
docs/project-management/kanban/epics/Epic-X/stories/Story-XXX-*.md(Story documents and associated files)
2.2 Board Structure
The board serves as the parent document to Story documents, similar to how Story documents are parents of Task documents:
- Board → Story: The board links to and tracks all Story documents
- Story → Task: Story documents link to and track all Task documents
- This creates a clear hierarchy: Board (parent) → Story (child) → Task (grandchild)
2.2.1 MoSCOW Prioritized Task View
The board includes a MoSCOW Prioritized In-Progress Tasks section that shows all in-progress tasks (status: IN PROGRESS or TODO) organized by priority and ordered chronologically.
MoSCOW Priority Levels:
-
Must Have (M) – Critical Tasks
- Critical in-progress tasks that must be completed
- Highest priority items requiring immediate attention
- Tasks that block other work or are on critical path
-
Should Have (S) – Important Tasks
- Important in-progress tasks that should be completed
- High-value items that contribute significantly to goals
- Tasks that are important but not blocking
-
Could Have (C) – Nice-to-Have Tasks
- Nice-to-have in-progress tasks that could be completed
- Lower priority items that add value but are not essential
- Tasks that can be deferred if needed
-
Ongoing (O) – Perpetual Tasks
- Ongoing maintenance tasks that never complete
- Perpetual tasks that are tracked but don't block other work
- Tasks that require continuous attention (e.g., workflow maintenance, changelog management)
- These tasks are visible but don't interfere with prioritization of completable work
-
Won't Have (W) – Deferred Tasks
- Tasks that are deferred or not being actively worked on
- Items explicitly marked as out of scope for current cycle
- Tasks that may be revisited in future iterations
Chronological Ordering:
- Tasks within each MoSCOW section are ordered chronologically (most recently updated first)
- This ensures the most active work is visible at the top of each section
- Ordering is based on the task document's
Last updatedfield
Task Entry Format:
Each task entry in the MoSCOW sections includes:
- Task ID:
E\{epic\}:S\{story\}:T\{task\}format (e.g.,E4:S13:T02) - Task Description: Brief description of the task
- Last Updated: Date when task was last updated
- Links: Links to Task document and parent Story document
2.2.2 Story Checklist
After the MoSCOW sections, the board includes a Story Checklist section that lists all stories in a compact format (one line per story):
- Format: One line per story with status indicator
- Purpose: Provides quick overview of all stories and their completion status
- Forensic Markers: Includes version markers for completed stories (e.g.,
✅ COMPLETE (v0.4.13.1+1))
2.2.3 Traditional Column Structure (Optional)
Projects may also use a traditional column-based board structure with three columns:
- Backlog – Defined stories not yet started
- In Progress – Stories currently being worked on
- Done – Completed stories (implemented, documented, and—if relevant—released)
You can represent these as:
- A column in the board table (e.g.,
Status=Backlog/In Progress/Done), and/or - Separate sections in
_index.mdif the board grows more complex.
Note: The MoSCOW prioritized task view can be used alongside or instead of the traditional column structure, depending on project needs.
3. Work Items (This Repo)
3.1 Epics
Epics represent broad, conceptual areas of work (for example, “Kanban Framework”, “Workflow Framework”, “Book Manuscript”).
- Location:
docs/project-management/kanban/epics/Epic-X/Epic-X.md(Epic overview document) - Directory:
docs/project-management/kanban/epics/Epic-X/(contains all Epic files) - Template: Use
packages/frameworks/kanban/templates/EPIC_TEMPLATE.mdas starting point
Structure:
kanban/epics/
├── Epic-1/ # Epic 1 directory (all files here)
│ ├── Epic-1.md # Epic 1 overview
│ ├── Story-001-*.md # Story files
│ └── [other story files]
├── Epic-2/ # Epic 2 directory
│ ├── Epic-2.md
│ └── Story-XXX-*.md
Every Story must belong to an Epic. When creating a new Story, ensure its Epic exists (create Epic doc and directory if needed).
3.2 Stories
Stories are the primary unit of planning in this repo.
- Location:
docs/project-management/kanban/epics/Epic-X/Story-XXX-short-slug.md - ID:
XXX(numeric string, e.g.001,002) - Directory: Each Story lives in its Epic's directory, allowing for associated files (diagrams, notes, etc.) in Story subdirectories
- Examples:
docs/project-management/kanban/epics/Epic-1/Story-001-ai-dev-kit-kanban-and-versioning.md
Each Story file should include:
- Status (
TODO/In Progress/Done) - Owner
- Repo (usually
ai-dev-kit) - A brief overview of the goal
- A task checklist
3.3 Tasks
Tasks are checklist items inside a Story and are the atomic unit of work.
CRITICAL: 3-Tier Structure Requirement
All work MUST follow the explicit 3-tier structure: Epic → Story → Task. This structure is mandatory and non-negotiable.
- Epic contains Stories (high-level scope)
- Story contains Tasks (releasable slices)
- Task is the atomic work unit (implementation detail)
No implicit or inline tasks are permitted. Every task MUST be explicitly documented at the Task tier.
Task Document Requirements
Every Task MUST have a discrete Task document (or clearly delimited section within the Story document using the Task ID as a header). Tasks cannot be implicit, bundled, or introduced inline.
Task Document Formats:
-
Separate File Format (Recommended):
- Location:
docs/project-management/kanban/epics/Epic-X/Story-XXX/Task-YYY-description.mdordocs/project-management/kanban/epics/Epic-X/Story-XXX/TYYY-description.md - Example:
docs/project-management/kanban/epics/Epic-4/Story-011/Task-001-update-kanban-policy.md
- Location:
-
Delimited Section Format (Alternative):
- Location: Within the Story document, using Task ID as a clear header
- Format:
### E\{epic\}:S\{story\}:T\{task\} – Task Namefollowed by task content - Example:
### E4:S11:T01 – Update Kanban Governance Policy
Required Task Document Fields:
Every Task document MUST include the following fields:
- Task ID:
E\{epic\}:S\{story\}:T\{task\}(e.g.,E4:S11:T01) - Scope: Clear description of what the task accomplishes
- Acceptance Criteria: Measurable criteria for task completion
- Status: Current status (TODO, IN PROGRESS, COMPLETE)
- Version Anchor: Version marker when task is complete (e.g.,
✅ COMPLETE (v0.4.11.1+1)) - Completion Date: Date when task was completed (if applicable)
- Related BR/FR Links: Links to related Bug Reports or Feature Requests
- Input: What is required to start this task
- Deliverable: What is produced by this task
- Dependencies: Other tasks or work items this task depends on
- Blocker: Tasks or work items that block this task
- Parallel Development Candidacy: Whether this task can be worked on in parallel
Prohibited Patterns:
The following patterns are explicitly prohibited:
- ❌ Implicit Tasks: Tasks mentioned in Story text but not explicitly documented
- ❌ Inline Tasks: Tasks embedded in Story descriptions without Task ID
- ❌ Bundled Tasks: Multiple tasks described together without individual Task documents
- ❌ Undocumented Tasks: Tasks referenced in checklists without corresponding Task documents
Task Numbering and Format:
- Numbering:
Exx:Sxx:Txx(Epic, Story, Task with 2-digit zero padding) - Format:
E\{epic\}:S\{story\}:T\{task\}where task is 2-digit (01-99) - Example:
E4:S11:T01= Epic 4, Story 11, Task 1 - Example:
E1:S01:T01= Epic 1, Story 1, Task 1 - Tracked: Git commits reference task ID
- Version Mapping: The active Task maps to the
TASKcomponent in the version number (RC.EPIC.STORY.TASK+BUILD)
Size Guidelines:
- Each Task should be small enough to complete in 1–3 days.
- Tasks should be atomic and independently completable.
Validation Requirements:
The following validations MUST be enforced:
- Task Document Presence: Every task referenced in a Story checklist MUST have a corresponding Task document
- Task ID Alignment: Task ID in document MUST match Task ID in Story checklist
- Epic/Story/Task Alignment: Task document MUST be located under the correct Epic and Story
- Required Fields: Task document MUST contain all required fields listed above
- Version Alignment: When task is complete, version TASK component MUST match Task number
FR/BR Rule (This Repo - Updated):
Every Feature Request (FR) and Bug Report (BR) MUST:
- Check for existing Story that matches the FR/BR scope:
- If found → create a new Task document under that Story
- If no suitable Story exists:
- Create a new Story under the appropriate Epic
- Then create the Task document under that Story
- If no suitable Epic exists:
- Create or identify a broad, abstract Epic to host the new Story
- Then create the Story under that Epic
- Then create the Task document under that Story
CRITICAL: No FR/BR should exist without a corresponding Task document anchored to a Story (and, once epics are in use, an Epic). This ensures that all work flowing into the dev kit is Task / FR-driven and anchored in the Kanban system.
4. Board Usage Rules
-
Single Source of Truth:
- The board at
docs/project-management/kanban/_index.mdis the canonical quick view of active stories for this repo. - The detailed board at
docs/project-management/kanban/kboard.mdprovides full context. - Each row in the board must map to exactly one Story file in
kanban/epics/Epic-X/stories/.
- The board at
-
Status Field:
- Use
TODO,In Progress, orDonein the board’sStatuscolumn. - Keep the Story file’s internal
Statusfield in sync with the board.
- Use
-
Story Creation Flow:
- Ensure Epic exists:
- If Epic doesn't exist, create
docs/project-management/kanban/epics/Epic-X.mdandEpic-X/directory - Create
Epic-X/stories/subdirectory
- If Epic doesn't exist, create
- Create Story file:
docs/project-management/kanban/epics/Epic-X/stories/Story-XXX-short-slug.md- Story directory allows for associated files (diagrams, notes, etc.) as needed
- Update Epic doc:
- Add Story reference to Epic's Story Checklist
- Update board views:
- Add row to
_index.md(quick view) - Update
kboard.md(detailed view) with Story details
- Add row to
- Ensure Epic exists:
-
Updates:
- When you change a Story’s status or owner, update both:
- The Story file, and
- The board row in
_index.md.
- When you change a Story’s status or owner, update both:
5. Relationship to the Kanban Framework Package
CRITICAL: The framework policy (packages/frameworks/kanban/policies/kanban-governance-policy.md) is the CANONICAL SOURCE OF TRUTH for all Kanban governance principles, operational patterns, and requirements.
This dev-kit policy is a project-specific adaptation that:
- References the framework policy as the authoritative source
- Documents dev-kit-specific structure and paths
- Clarifies how the framework applies to this repo
Framework Policy Sections (Canonical SoT):
- The Harmonious Cycle (Task → Version → RW → Kanban Update)
- FR/BR → Task → Story → Epic flow
- Board Structure
- Work Items (Epics, Stories, Tasks)
- Versioning (RC.EPIC.STORY.TASK+BUILD schema)
- Task-Level Requirements
- Release Workflow
- Operational Principles (NEW - added in v0.4.1.1+3):
- Atomic Release Workflow Behaviour
- "ALL Sections" Update Requirement
- Accessibility Constraints
- Forensic Marker Standardization
- Consistency Requirements
- Review Schedules
- Maintenance Responsibilities
- Escalation Procedures
- Mandatory TODO Tracking
- Documentation requirements
- Rules (traceability, SoT, gate conditions, numbering, WIP)
- Templates & References
This Repo's Implementation:
- Uses full Kanban + Versioning + Workflow stack
- Story + Task checklists as primary work items
- Canonical board in
docs/project-management/kanban/_index.md - All substantive work is Task/FR-driven
- Epics for major areas of the dev kit
E\{epic\}:S\{story\}:T\{task\}numbering for Tasks (e.g.,E1:S01:T01,E2:S04:T05)- Full
RC.EPIC.STORY.TASK+BUILDalignment between Kanban and versioning
Framework References:
- Canonical Policy:
packages/frameworks/kanban/policies/kanban-governance-policy.md⭐ - Integration Guides:
packages/frameworks/kanban/integration/numbering-versioning-integration.mdpackages/frameworks/kanban/integration/workflow-management-integration.md
- Templates:
packages/frameworks/kanban/templates/EPIC_TEMPLATE.mdpackages/frameworks/kanban/templates/STORY_TEMPLATE.md
5.5. Abstract Spaces for Forensic Traceability
CRITICAL: Zero-numbered E/S/T documentation establishes the abstract space for forensic traceability, serving as the canonical anchor before any functional work is committed.
Purpose:
- Establish canonical version anchor for E/S/T documentation
- Begin forensic traceability arc at documentation creation
- Provide clear SOP for committing initial E/S/T docs
- Link Kanban documentation lifecycle to versioning schema
Zero-Numbered E/S/T Documentation
Abstract spaces use +0 build number to indicate documentation-only anchor:
Epic-Level Abstract Space:
- Format:
0.\{EPIC\}.0.0+0 - Example:
0.3.0.0+0= Epic 3's abstract space - Purpose: Establishes forensic traceability anchor for Epic 3
- When: Created when Epic document is first committed
Story-Level Abstract Space:
- Format:
0.\{EPIC\}.\{STORY\}.0+0 - Example:
0.2.5.0+0= Epic 2 Story 5's abstract space - Purpose: Establishes forensic traceability anchor for Story 5 within Epic 2
- When: Created when Story document is first committed
Task-Level Abstract Space:
- Format:
0.\{EPIC\}.\{STORY\}.\{TASK\}+0 - Example:
0.10.4.6+0= Epic 10 Story 4 Task 6's abstract space - Purpose: Establishes forensic traceability anchor for Task 6 within Story 4 within Epic 10
- When: Created when Task document is first committed
Relationship to Functional Work:
- Abstract space (
+0) = Documentation-only anchor (establishes traceability) - Functional work (
+1and beyond) = Actual implementation (builds on anchor) - Example progression:
0.4.11.1+0= Task document created (abstract space)0.4.11.1+1= First functional change for Task 10.4.11.1+2= Second functional change for Task 1
See: Dev-Kit Versioning Policy section "Abstract Space Version Schema" for complementary versioning schema details.
SOP for Committing Initial E/S/T Docs
When to Commit Abstract Space:
- Before any functional work on the E/S/T
- When creating new Epic/Story/Task documentation
- As part of documentation setup phase
Where to Commit:
- Epic:
docs/project-management/kanban/epics/Epic-X/Epic-X.md - Story:
docs/project-management/kanban/epics/Epic-X/Story-XXX-*.md - Task:
docs/project-management/kanban/epics/Epic-X/Story-XXX/Task-YYY-*.mdOR delimited section within Story
How to Commit:
- Create E/S/T document with required structure and fields
- Set version to abstract space (
+0build):- Epic:
0.\{EPIC\}.0.0+0 - Story:
0.\{EPIC\}.\{STORY\}.0+0 - Task:
0.\{EPIC\}.\{STORY\}.\{TASK\}+0
- Epic:
- Commit via Release Workflow (RW) with doc-init path (see FR-017)
- RW Step 1 detects docs-only change
- RW Step 2 sets version to
+0(abstract space) - RW Step 3 creates changelog entry with "Doc Init" type
- Alternative: Manual commit with explicit version annotation
- Commit message:
📋 Doc Init (Abstract Space): E\{epic\}:S\{story\}:T\{task\} - [Description] - Version: Explicitly set to abstract space (
+0)
- Commit message:
Validation:
- Release Workflow validates abstract space version format
- Validators check that
+0is only used for docs-only changes - Validators ensure abstract space precedes functional work
Related:
- FR-017: Versioning Policy Hardening — Doc-Init Build (+0) for New E/S/T (implementation)
- FR-018: Abstract Space for Zero-Numbered E/S/T Docs (this feature)
- Dev-Kit Versioning Policy: Abstract Space Version Schema (complementary section)
6. Versioning (This Repo)
This repo adopts the RC.EPIC.STORY.TASK+BUILD schema from the Numbering & Versioning framework, but with a dev-kit–specific interpretation to be finalised in dev-kit-versioning-policy.md:
- All releases are expressed as
RC.EPIC.STORY.TASK+BUILD. - Over time, each Task in Kanban will map to the
TASKcomponent of the version. - Feature Requests and Bug Reports feed into Tasks, which then feed into versions (via Release Workflow) and documentation (via Kanban + RW integration).
Story 001 (“Set Up Kanban and Versioning for AI Dev Kit”) owns the work of:
- Defining the dev-kit epic/story/task ranges.
- Documenting the mapping between Kanban items and version components.
- Updating this policy once that mapping is locked in.
7. Next Steps
-
Finish Story 001 – Set Up Kanban and Versioning for AI Dev Kit:
- Decide on a dev-kit versioning schema.
- Document it under
docs/architecture/standards-and-adrs/. - Update this policy to align with that schema.
-
As work grows:
- Consider introducing Epics for major areas (e.g., “Kanban Framework”, “Workflow Framework”, “Book Manuscript”).
- Use the templates in
packages/frameworks/kanban/templates/as starting points.