Skip to main content

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

PackageStandalone?Hard DependenciesSoft/Optional DependenciesIntegration Points
Workflow Management✅ YesGit, Python 3, AI AssistantNumbering & Versioning (soft)Kanban (RW updates)
Numbering & Versioning✅ YesNoneNoneKanban (version markers), Workflow Management (version schema)
Kanban✅ YesGit, MarkdownNumbering & 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:

  1. Use Workflow Management's included versioning policy
  2. Or swap in your own custom versioning policy
  3. Update validation scripts if schema differs

To Use Without Kanban:

  1. Skip Kanban update steps in RW (Steps 3, 4)
  2. Or use custom Kanban update workflow
  3. RW will still work for version bumping and changelog generation

To Use Without Python:

  1. Remove validation scripts (not recommended)
  2. Or use alternative validation method
  3. 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:

  1. Skip version markers in Kanban docs
  2. Or use custom versioning format
  3. Kanban will still work for work item tracking

To Use Without Workflow Management:

  1. Update Kanban docs manually
  2. Or use custom workflow for updates
  3. 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

PackageIndependenceHard DepsSoft DepsIntegration PointsCan Break Deps?
Workflow Management9/10Git, Python, AINumbering & VersioningKanban✅ Yes
Numbering & Versioning10/10NoneNoneKanban, WorkflowN/A (no deps)
Kanban9/10Git, MarkdownNumbering & Versioning, WorkflowBoth✅ 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

  1. Maintain Independence: Keep packages independent, avoid hard dependencies
  2. Document Dependencies: Clearly label all dependencies as optional
  3. Provide Alternatives: Document what happens if dependencies are missing
  4. Test Standalone: Ensure packages work without other packages

8.2 For Package Users

  1. Start Small: Begin with one package, add more as needed
  2. Understand Dependencies: Read dependency documentation before adopting
  3. Test Integrations: Verify integrations work before relying on them
  4. 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