Kanban → Versioning Integration Validation
Task: E4:S03:T02 – Validate Kanban → Versioning integration in dev-kit
Date: 2025-12-02
Author: AI Agent (Auto)
Status: ✅ COMPLETE
Executive Summary
This report validates the integration between Kanban and Versioning systems in the dev-kit. The validation reveals a critical inconsistency in how version numbers are assigned: Tasks are not correctly mapping to the TASK component in versions. Instead, all Tasks within a Story are using TASK=1, with BUILD incrementing across Tasks. This violates the versioning schema rules.
Key Findings:
- ✅ Epic/Story numbers correctly map to version
EPIC/STORYcomponents - ❌ CRITICAL: Task numbers are NOT correctly mapping to version
TASKcomponent - ⚠️ Version assignment happens at Task creation, but uses incorrect TASK number
- ⚠️ Version file updates align with Kanban Task creation, but reflect incorrect mapping
1. Validation Methodology
1.1 Test Cases
Test Case 1: Epic 4, Story 1 (Dev Kit Kanban Implementation)
- Tasks: E4:S01:T01 through E4:S01:T05
- Expected versions:
v0.4.1.1+1,v0.4.1.2+1,v0.4.1.3+1,v0.4.1.4+1,v0.4.1.5+1 - Actual versions:
v0.4.1.1+2,v0.4.1.1+3,v0.4.1.1+4,v0.4.1.1+5,v0.4.1.1+6
Test Case 2: Epic 2, Story 1 (RW Agent Execution & Docs)
- Tasks: E2:S01:T01 through E2:S01:T04
- Expected versions:
v0.2.1.1+1,v0.2.1.2+1,v0.2.1.3+1,v0.2.1.4+1 - Actual versions:
v0.2.1.1+3,v0.2.1.1+4,v0.2.1.1+5,v0.2.1.1+2
Test Case 3: Epic 3, Story 1 (Dev Kit Alignment with Versioning Framework)
- Tasks: E3:S01:T01 through E3:S01:T06
- Expected versions:
v0.3.1.1+1,v0.3.1.2+1,v0.3.1.3+1,v0.3.1.4+1,v0.3.1.5+1,v0.3.1.6+1 - Actual versions: (to be verified)
2. Validation Results
2.1 Epic/Story Number Mapping ✅
Validation: Epic and Story numbers correctly map to version EPIC and STORY components.
Examples:
- Epic 4, Story 1 →
v0.4.1.x+x✅ - Epic 2, Story 1 →
v0.2.1.x+x✅ - Epic 3, Story 1 →
v0.3.1.x+x✅
Status: ✅ PASS - Epic and Story numbers correctly map to version components.
2.2 Task Number Mapping ❌
Validation: Task numbers are NOT correctly mapping to version TASK component.
Expected Behavior (per versioning policy):
- Each new Task should increment
TASKand resetBUILDto 1 - Task 1 →
TASK=1, BUILD=1 - Task 2 →
TASK=2, BUILD=1 - Task 3 →
TASK=3, BUILD=1
Actual Behavior:
- All Tasks in a Story use
TASK=1 BUILDincrements across Tasks (2, 3, 4, 5, 6...)- Task 1 →
TASK=1, BUILD=2 - Task 2 →
TASK=1, BUILD=3 - Task 3 →
TASK=1, BUILD=4
Evidence:
Epic 4, Story 1:
- E4:S01:T01 →
v0.4.1.1+2❌ (should bev0.4.1.1+1) - E4:S01:T02 →
v0.4.1.1+3❌ (should bev0.4.1.2+1) - E4:S01:T03 →
v0.4.1.1+4❌ (should bev0.4.1.3+1) - E4:S01:T04 →
v0.4.1.1+5❌ (should bev0.4.1.4+1) - E4:S01:T05 →
v0.4.1.1+6❌ (should bev0.4.1.5+1)
Epic 2, Story 1:
- E2:S01:T01 →
v0.2.1.1+3❌ (should bev0.2.1.1+1) - E2:S01:T02 →
v0.2.1.1+4❌ (should bev0.2.1.2+1) - E2:S01:T03 →
v0.2.1.1+5❌ (should bev0.2.1.3+1) - E2:S01:T04 →
v0.2.1.1+2❌ (should bev0.2.1.4+1)
Status: ❌ FAIL - Task numbers are NOT correctly mapping to version TASK component.
Impact:
- Version numbers do not reflect actual Task progression
- Cannot distinguish between Tasks using version numbers alone
- Violates versioning schema rules
- Breaks forensic traceability (version → Task mapping is incorrect)
2.3 Version Assignment at Task Creation ⚠️
Validation: Version assignment happens at Task creation, but uses incorrect TASK number.
Process:
- Task is created in Story document
- Version is assigned using current
version.pyvalues version.pyis updated with new version- RW increments BUILD when Task is completed
Issue:
- Version assignment uses
VERSION_TASKfromversion.py VERSION_TASKis not updated when moving to a new TaskVERSION_TASKstays at 1, andVERSION_BUILDincrements instead
Status: ⚠️ PARTIAL - Version assignment happens, but uses incorrect TASK number.
2.4 Version File Updates ⚠️
Validation: Version file updates align with Kanban Task creation, but reflect incorrect mapping.
Current version.py Structure:
VERSION_EPIC = 4 # Epic number (Epic 4: Kanban Framework)
VERSION_STORY = 3 # Story number (Story 3: Kanban + Versioning + RW Integration)
VERSION_TASK = 1 # Task number (Task 1: Review existing integration documentation)
VERSION_BUILD = 1 # Build number (increments per release within task, bumped by RW)
Issue:
VERSION_TASKis manually set and not automatically updated when moving to a new TaskVERSION_BUILDincrements across Tasks instead of resetting to 1 for each new Task- No automatic mechanism to update
VERSION_TASKwhen a new Task is created
Status: ⚠️ PARTIAL - Version file updates align with Task creation, but reflect incorrect TASK mapping.
3. Root Cause Analysis
3.1 Why This Happened
Root Cause: The Release Workflow (RW) increments BUILD for each release, but does not update TASK when moving to a new Task. The TASK component is only updated manually in version.py, and this manual update is not happening when new Tasks are created.
Contributing Factors:
- Manual TASK Updates:
VERSION_TASKmust be manually updated inversion.pywhen starting a new Task - BUILD Increments: RW automatically increments
BUILD, which masks the need to updateTASK - No Validation: No validation checks that
TASKmatches the active Task number - Documentation Gap: Intake guides mention version assignment but don't emphasize TASK updates
3.2 Schema Violation
Versioning Policy Rule (from dev-kit-versioning-policy.md):
"Moving to Task 2 within the same Story:
0.1.1.2+1– First dev build for Task 2"
Current Practice:
- Moving to Task 2 →
0.1.1.1+2(TASK stays 1, BUILD increments)
Violation: This violates the versioning schema rules defined in the policy.
4. Gaps and Inconsistencies
4.1 Critical Gaps
-
No Automatic TASK Updates:
- When a new Task is created,
VERSION_TASKis not automatically updated - Manual update required, but not consistently done
- When a new Task is created,
-
BUILD Increments Across Tasks:
BUILDshould reset to 1 for each new Task- Currently,
BUILDincrements across Tasks (2, 3, 4, 5, 6...)
-
No Validation:
- No validation that
VERSION_TASKmatches the active Task number - No validation that
BUILDresets whenTASKchanges
- No validation that
-
Documentation Gap:
- Intake guides mention version assignment but don't emphasize TASK updates
- No clear process for updating
VERSION_TASKwhen starting a new Task
4.2 Inconsistencies
-
Version Numbers Don't Match Tasks:
v0.4.1.1+2is labeled as "Task 1" but BUILD=2 suggests it's the second releasev0.4.1.1+3is labeled as "Task 2" but TASK=1 and BUILD=3
-
Forensic Markers Are Misleading:
- Forensic markers show
v0.4.1.1+2for Task 1, but this doesn't clearly indicate it's Task 1 - Multiple Tasks share the same TASK number, making traceability difficult
- Forensic markers show
5. Recommendations
5.1 Immediate Fixes
-
Update Version Assignment Process:
- When creating a new Task,
VERSION_TASKMUST be updated to match the Task number VERSION_BUILDMUST reset to 1 for each new Task- Document this requirement in intake guides
- When creating a new Task,
-
Add Validation:
- Create validation script to check that
VERSION_TASKmatches active Task number - Add validation to RW Step 2 (Bump Version) to verify TASK matches active Task
- Create validation script to check that
-
Fix Existing Versions (Optional):
- Consider whether to retroactively fix version numbers for completed Tasks
- If fixing, update all forensic markers and changelog entries
- Document the correction in versioning policy
5.2 Process Improvements
-
Automate TASK Updates:
- When RW detects a new Task (different Task number), automatically update
VERSION_TASK - Reset
VERSION_BUILDto 1 whenVERSION_TASKchanges
- When RW detects a new Task (different Task number), automatically update
-
Enhance Intake Guides:
- Add explicit step: "Update
VERSION_TASKinversion.pyto match Task number" - Add validation checklist: "Verify
VERSION_TASKmatches Task number"
- Add explicit step: "Update
-
Update Documentation:
- Update versioning policy to emphasize TASK updates
- Update intake guides to include TASK update step
- Add examples showing correct version progression
5.3 Long-Term Solutions
-
Version File Management:
- Consider automatic version file updates during Task creation
- Integrate version file updates into intake process
-
Validation Integration:
- Add version validation to RW Step 1 (Branch Safety Check)
- Add version validation to intake process
-
Tooling:
- Create script to automatically update
VERSION_TASKwhen Task is created - Create script to validate version numbers match active Task
- Create script to automatically update
6. Correct Version Progression Examples
6.1 Correct Behavior
Epic 4, Story 1 (Corrected):
- E4:S01:T01 →
v0.4.1.1+1✅ (Epic 4, Story 1, Task 1, Build 1) - E4:S01:T02 →
v0.4.1.2+1✅ (Epic 4, Story 1, Task 2, Build 1) - E4:S01:T03 →
v0.4.1.3+1✅ (Epic 4, Story 1, Task 3, Build 1) - E4:S01:T04 →
v0.4.1.4+1✅ (Epic 4, Story 1, Task 4, Build 1) - E4:S01:T05 →
v0.4.1.5+1✅ (Epic 4, Story 1, Task 5, Build 1)
Epic 2, Story 1 (Corrected):
- E2:S01:T01 →
v0.2.1.1+1✅ (Epic 2, Story 1, Task 1, Build 1) - E2:S01:T02 →
v0.2.1.2+1✅ (Epic 2, Story 1, Task 2, Build 1) - E2:S01:T03 →
v0.2.1.3+1✅ (Epic 2, Story 1, Task 3, Build 1) - E2:S01:T04 →
v0.2.1.4+1✅ (Epic 2, Story 1, Task 4, Build 1)
6.2 BUILD Increments Within Task
If Task 1 has multiple releases:
- E4:S01:T01, Release 1 →
v0.4.1.1+1✅ - E4:S01:T01, Release 2 →
v0.4.1.1+2✅ (same Task, BUILD increments) - E4:S01:T01, Release 3 →
v0.4.1.1+3✅ (same Task, BUILD increments)
Moving to Task 2:
- E4:S01:T02, Release 1 →
v0.4.1.2+1✅ (new Task, TASK increments, BUILD resets to 1)
7. Conclusion
The Kanban → Versioning integration has a critical inconsistency: Task numbers are not correctly mapping to the version TASK component. All Tasks within a Story are using TASK=1, with BUILD incrementing across Tasks. This violates the versioning schema rules and breaks forensic traceability.
Status:
- ✅ Epic/Story mapping: CORRECT
- ❌ Task mapping: INCORRECT
- ⚠️ Version assignment: PARTIAL (happens but uses wrong TASK)
- ⚠️ Version file updates: PARTIAL (align but reflect wrong mapping)
Next Steps:
- Fix version assignment process to update
VERSION_TASKwhen creating new Tasks - Add validation to ensure
VERSION_TASKmatches active Task number - Update intake guides to include TASK update step
- Consider retroactive fixes for existing version numbers (optional)
References
docs/architecture/standards-and-adrs/dev-kit-versioning-policy.md(versioning policy)packages/frameworks/numbering & versioning/versioning-policy.md(framework policy)packages/frameworks/kanban/FR_BR_INTAKE_GUIDE.md(intake process)src/fynd_deals/version.py(current version file)
End of Kanban → Versioning Integration Validation