| name | decompose-architecture-aggregate |
| description | Use when a project has Architecture data that needs migrating to fine-grained entities (Decisions, Invariants, Components, Dependencies). Guides the agent through reading, mapping, confirming, and executing the migration with user oversight. |
Decompose Architecture Aggregate
Migrate Architecture entity data to fine-grained entities with user confirmation at each step.
The Architecture entity is deprecated. Its sections map to dedicated entity types as defined in ARCHITECTURE_MIGRATION_MAPPING (src/application/context/architecture/ArchitectureDeprecationConstants.ts):
| Architecture Section | Target Entity | Command |
|---|
| patterns | Decisions | jumbo decision add |
| principles | Invariants | jumbo invariant add |
| organization | Invariants | jumbo invariant add |
| dataStores | Components | jumbo component add |
| stack | Dependencies | jumbo dependency add |
Protocol
1. Read Current Architecture
jumbo architecture view
Parse the output. If no Architecture data exists, inform the user and stop.
2. Build Proposed Mappings
For each non-empty section in the Architecture view, build a mapping proposal:
- patterns — Each pattern becomes a Decision. Draft:
--title, --context (use the pattern description), --rationale (why this pattern was chosen, if stated).
- principles — Each principle becomes an Invariant. Draft:
--title, --description (the principle text), and --rationale if the source explains why the principle is non-negotiable.
- organization — Each organization entry becomes an Invariant. Draft:
--title, --description (the organizational rule), and --rationale if the source explains why the rule is non-negotiable.
- dataStores — Each data store becomes a Component. Draft:
--name, --type (select from: service, db, queue, ui, lib, api, worker, cache, storage), --description, --responsibility, --path (ask the user if not derivable from the data).
- stack — Each stack entry becomes a Dependency. Draft:
--name, --ecosystem (e.g., npm, pip, maven, service), --package-name, --version-constraint (if known).
3. Present Mappings for User Confirmation
Present all proposed mappings to the user in a single summary, grouped by target entity type. For each proposed mapping, show:
- The source section and original data
- The target entity type
- The drafted command with all flags
Ask the user to confirm, adjust, skip, or augment each mapping. Do not execute any commands until the user has reviewed the full set.
4. Execute Confirmed Mappings
Execute each confirmed mapping one at a time using the appropriate jumbo command:
jumbo decision add --title "..." --context "..." [--rationale "..."] [--alternative "..."]
jumbo invariant add --title "..." --description "..." [--rationale "..."]
jumbo component add --name "..." --type "..." --description "..." --responsibility "..." --path "..."
jumbo dependency add --name "..." --ecosystem "..." --package-name "..." [--version-constraint "..."]
Report the result of each command (success or failure) before proceeding to the next.
5. Present Summary
After all confirmed mappings are processed, present a summary:
- Count of entities created per type (Decisions, Invariants, Components, Dependencies)
- List of skipped items and the reason (user chose to skip, or data was insufficient)
- Any errors encountered during execution