Package Dependency Matrix
Task: E1:S02:T03 – Create package dependency matrix
Date: 2025-12-02
Status: ✅ COMPLETE
Executive Summary
This document provides a visual dependency matrix for the three framework packages in ai-dev-kit. It shows dependencies between packages, identifies optional vs required dependencies, documents how to break dependencies if needed, and provides guidance for standalone and combined usage.
Key Findings:
- ✅ No hard dependencies between packages
- ✅ All dependencies are soft/optional
- ✅ All packages can be used standalone
- ✅ Integration is optional and well-documented
1. Dependency Matrix Overview
1.1 Visual Matrix
┌─────────────────────────────────────────────────────────────────┐
│ PACKAGE DEPENDENCY MATRIX │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────┐ │
│ │ Workflow │ │
│ │ Management │ │
│ │ │ │
│ │ Standalone: ✅ │ │
│ │ Dependencies: │ │
│ │ • Git │ │
│ │ • Python 3 │ │
│ │ • AI Assistant │ │
│ │ │ │
│ │ Optional: │ │
│ │ └─► Numbering & │ │
│ │ Versioning │ │
│ │ (soft) │ │
│ └──────────────────┘ │
│ │ │
│ │ (optional integration) │
│ ▼ │
│ ┌──────────────────┐ │
│ │ Kanban │ │
│ │ │ │
│ │ Standalone: ✅ │ │
│ │ Dependencies: │ │
│ │ • Git │ │
│ │ • Markdown │ │
│ │ │ │
│ │ Optional: │ │
│ │ ├─► Numbering & │ │
│ │ │ Versioning │ │
│ │ │ (integration)│ │
│ │ └─► Workflow │ │
│ │ Management │ │
│ │ (integration)│ │
│ └──────────────────┘ │
│ ▲ │
│ │ (optional integration) │
│ │ │
│ ┌──────────────────┐ │
│ │ Numbering & │ │
│ │ Versioning │ │
│ │ │ │
│ │ Standalone: ✅ │ │
│ │ Dependencies: │ │
│ │ • None │ │
│ │ │ │
│ │ Optional: │ │
│ │ (none - pure │ │
│ │ documentation) │ │
│ └──────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
1.2 Tabular Matrix
| Package | Standalone? | Hard Dependencies | Soft/Optional Dependencies | Integration Points |
|---|---|---|---|---|
| Workflow Management | ✅ Yes | Git, Python 3, AI Assistant | Numbering & Versioning (soft) | Kanban (RW updates) |
| Numbering & Versioning | ✅ Yes | None | None | Kanban (version markers), Workflow Management (version schema) |
| Kanban | ✅ Yes | Git, Markdown | Numbering & Versioning (integration), Workflow Management (integration) | Both other packages (via integration guides) |
2. Dependency Details
2.1 Workflow Management Package
Standalone Capability: ✅ Yes (9/10 independence score)
Hard Dependencies (Required):
- Git (for version control)
- Python 3 (for validation scripts)
- AI Assistant (for workflow execution)
Soft/Optional Dependencies:
- Numbering & Versioning Package (soft)
- Purpose: Provides portable version schema policy
- Impact if Missing: Workflow Management includes its own versioning policy, so this is optional
- Alternative: Use Workflow Management's included versioning policy or swap in custom policy
- Integration: RW uses version schema from Numbering & Versioning (if available)
Integration Points:
- Kanban Package (optional)
- Purpose: RW can update Kanban docs automatically
- Impact if Missing: Can use RW without Kanban, just skip Kanban update steps
- Alternative: Manually update Kanban docs or use custom workflow
Breaking Dependencies:
- To use without Numbering & Versioning: Use included versioning policy or swap in custom policy
- To use without Kanban: Skip Kanban update steps in RW
- To use without Python: Remove validation scripts (not recommended)
2.2 Numbering & Versioning Package
Standalone Capability: ✅ Yes (10/10 independence score)
Hard Dependencies (Required):
- None (pure documentation package)
Soft/Optional Dependencies:
- None (fully independent)
Integration Points:
-
Workflow Management Package (optional)
- Purpose: Workflow Management can use Numbering & Versioning's version schema
- Impact if Missing: Workflow Management includes its own versioning policy
- Alternative: Use Workflow Management's included versioning policy
- Integration: Workflow Management references Numbering & Versioning schema (if available)
-
Kanban Package (optional)
- Purpose: Kanban uses version markers from Numbering & Versioning schema
- Impact if Missing: Kanban can work without versioning, just skip version markers
- Alternative: Use custom versioning or skip version markers
- Integration: Kanban references version schema for version markers
Breaking Dependencies:
- No dependencies to break (fully independent)
2.3 Kanban Package
Standalone Capability: ✅ Yes (9/10 independence score)
Hard Dependencies (Required):
- Git (for version control)
- Markdown (for documentation)
Soft/Optional Dependencies:
-
Numbering & Versioning Package (integration)
- Purpose: Provides version schema for version markers
- Impact if Missing: Kanban can work without versioning, just skip version markers
- Alternative: Use custom versioning or skip version markers
- Integration: Kanban uses version markers (e.g.,
✅ COMPLETE (v0.1.2.1+1))
-
Workflow Management Package (integration)
- Purpose: RW can update Kanban docs automatically
- Impact if Missing: Can use Kanban without RW, just update docs manually
- Alternative: Use custom workflow or update Kanban docs manually
- Integration: RW updates Kanban docs with version markers
Breaking Dependencies:
- To use without Numbering & Versioning: Skip version markers or use custom versioning
- To use without Workflow Management: Update Kanban docs manually or use custom workflow
3. Dependency Types
3.1 Hard Dependencies (Not Allowed)
Rule: No package can have a hard dependency on another dev-kit package.
Status: ✅ Compliant - No hard dependencies between packages
What This Means:
- Packages cannot require other packages to function
- Packages cannot break if other packages are missing
- Packages must work standalone
Exception: Standard tools (Git, Python, etc.) are allowed as dependencies.
3.2 Soft/Optional Dependencies
Rule: Packages can have soft/optional dependencies on other packages.
Status: ✅ Compliant - All dependencies are soft/optional
Examples:
- Workflow Management → Numbering & Versioning: Soft (optional version schema)
- Kanban → Numbering & Versioning: Integration (optional version markers)
- Kanban → Workflow Management: Integration (optional RW updates)
Documentation Requirements:
- ✅ Must clearly label dependencies as "optional"
- ✅ Must document what happens if dependency is not used
- ✅ Must provide alternatives if dependency is not available
3.3 Integration Dependencies
Rule: Integration between packages is optional and must be well-documented.
Status: ✅ Compliant - All integrations are optional and documented
Integration Patterns:
- Workflow Management ↔ Numbering & Versioning: RW uses version schema
- Kanban ↔ Numbering & Versioning: Kanban uses version markers
- Kanban ↔ Workflow Management: RW updates Kanban docs
Documentation:
- ✅ Integration guides exist (e.g.,
kanban/integration/) - ✅ Integration clearly marked as optional
- ✅ Standalone usage documented
4. Circular Dependencies
4.1 Analysis
Question: Are there any circular dependencies between packages?
Answer: ❌ No circular dependencies
Analysis:
- Workflow Management → Numbering & Versioning: One-way (soft)
- Kanban → Numbering & Versioning: One-way (integration)
- Kanban → Workflow Management: One-way (integration)
- No package depends on a package that depends on it
Conclusion: Dependency graph is acyclic (no cycles).
4. Breaking Dependencies
4.1 Workflow Management
To Use Without Numbering & Versioning:
- Use Workflow Management's included versioning policy
- Or swap in your own custom versioning policy
- Update validation scripts if schema differs
To Use Without Kanban:
- Skip Kanban update steps in RW (Steps 3, 4)
- Or use custom Kanban update workflow
- RW will still work for version bumping and changelog generation
To Use Without Python:
- Remove validation scripts (not recommended)
- Or use alternative validation method
- RW will still work, but validation will be manual
4.2 Numbering & Versioning
No Dependencies to Break:
- Numbering & Versioning is fully independent
- No dependencies on other packages
- Can be used in any context
4.3 Kanban
To Use Without Numbering & Versioning:
- Skip version markers in Kanban docs
- Or use custom versioning format
- Kanban will still work for work item tracking
To Use Without Workflow Management:
- Update Kanban docs manually
- Or use custom workflow for updates
- Kanban will still work for work item management
5. Dependency Graph
5.1 Visual Graph
┌─────────────────────┐
│ Standard Tools │
│ (Git, Python, etc.)│
└─────────────────────┘
│
│ (hard dependencies)
│
┌────────────────────┼────────────────────┐
│ │ │
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ Workflow │ │ Numbering │ │ Kanban │
│ Management │ │ & Versioning │ │ │
│ │ │ │ │ │
│ Standalone: ✅│ │ Standalone: ✅ │ │ Standalone: ✅│
└───────────────┘ └───────────────┘ └───────────────┘
│ │ │
│ │ │
│ (soft) │ (integration) │ (integration)
│ │ │
└────────────────────┼────────────────────┘
│
│ (optional integrations)
│
┌────────┴────────┐
│ Combined Usage │
│ (All Packages) │
└─────────────────┘
5.2 Dependency Flow
Standalone Usage:
- Each package → Standard Tools (hard)
- No inter-package dependencies
Combined Usage:
- Workflow Management → Numbering & Versioning (soft)
- Kanban → Numbering & Versioning (integration)
- Kanban → Workflow Management (integration)
- All packages → Standard Tools (hard)
6. Usage Scenarios
6.1 Standalone Usage
Scenario 1: Workflow Management Only
- Dependencies: Git, Python 3, AI Assistant
- Optional: None required
- Use Case: Just need RW trigger, don't need Kanban or versioning policy
Scenario 2: Numbering & Versioning Only
- Dependencies: None
- Optional: None required
- Use Case: Just need versioning policy, don't need workflows or Kanban
Scenario 3: Kanban Only
- Dependencies: Git, Markdown
- Optional: None required
- Use Case: Just need Kanban board, don't need workflows or versioning
6.2 Combined Usage
Scenario 4: Workflow Management + Numbering & Versioning
- Dependencies: Git, Python 3, AI Assistant
- Integration: RW uses Numbering & Versioning schema
- Use Case: RW with consistent versioning policy
Scenario 5: Kanban + Numbering & Versioning
- Dependencies: Git, Markdown
- Integration: Kanban uses version markers
- Use Case: Kanban with version-based traceability
Scenario 6: Kanban + Workflow Management
- Dependencies: Git, Python 3, AI Assistant, Markdown
- Integration: RW updates Kanban docs
- Use Case: Automated Kanban updates via RW
Scenario 7: All Three Packages
- Dependencies: Git, Python 3, AI Assistant, Markdown
- Integration: Full three-way integration
- Use Case: Complete integrated system with end-to-end traceability
7. Dependency Matrix Summary
| Package | Independence | Hard Deps | Soft Deps | Integration Points | Can Break Deps? |
|---|---|---|---|---|---|
| Workflow Management | 9/10 | Git, Python, AI | Numbering & Versioning | Kanban | ✅ Yes |
| Numbering & Versioning | 10/10 | None | None | Kanban, Workflow | N/A (no deps) |
| Kanban | 9/10 | Git, Markdown | Numbering & Versioning, Workflow | Both | ✅ Yes |
Key Points:
- ✅ All packages are highly independent (9-10/10)
- ✅ No hard dependencies between packages
- ✅ All dependencies are soft/optional
- ✅ All packages can be used standalone
- ✅ Dependencies can be broken if needed
8. Recommendations
8.1 For Package Maintainers
- Maintain Independence: Keep packages independent, avoid hard dependencies
- Document Dependencies: Clearly label all dependencies as optional
- Provide Alternatives: Document what happens if dependencies are missing
- Test Standalone: Ensure packages work without other packages
8.2 For Package Users
- Start Small: Begin with one package, add more as needed
- Understand Dependencies: Read dependency documentation before adopting
- Test Integrations: Verify integrations work before relying on them
- Customize Carefully: Understand impact of breaking dependencies
9. Conclusion
The ai-dev-kit framework packages demonstrate excellent modularity with:
- ✅ No hard dependencies between packages
- ✅ High independence scores (9-10/10)
- ✅ Flexible consumption (standalone, combined, incremental)
- ✅ Well-documented integrations (optional, clear alternatives)
Dependency Matrix Status: ✅ Healthy - No circular dependencies, all dependencies are optional, packages can be used independently or together.
10. Next Steps
This dependency matrix provides the foundation for:
- Task 4: Document consumption patterns for each framework (detailed examples)
- Task 5: Update package READMEs with modularity information (implementation)
Document completed: 2025-12-02
Task: E1:S02:T003
Next: E1:S02:T04 – Document consumption patterns for each framework