Skip to content

The architecture pack

No. 012

The architecture pack is an opt-in layer for a knowledge base made with The Cube. A team that keeps its application and technology architecture in the knowledge base adds it; a team that does not never sees it. It works with any base kit and any stack.

Add it as any layer pack:

tar -xzf pack-architecture-0.1.0.tar.gz
cube pack add ./pack-architecture-0.1.0
Part What it does
documenting-architecture skill Writes or refreshes an architecture baseline of up to ten documents (container diagram, interface catalogue, data model, stack register, security architecture, sequence diagrams, retroactive decision records, data classification, functional components, solution architecture document) from the code and the knowledge base.
modeling-systems skill Builds a small, checked landscape model in shared/landscape/: application components, technology services and data objects, one Markdown file each, linked to the specs that realize them.
reviewing-architecture skill Reviews a design, a spec or a diff against the decision records, the landscape model and the baseline, and returns tiered findings with references. It never approves.
architecture-reviewer agent A read-only helper agent (Read, Grep, Glob) that runs the review in a fresh context.

The skills and the agent use Claude Code’s .claude/ layout. Every skill follows the Agent Skills format: a SKILL.md with a workflow checklist that runs cube check after each file it writes. Approvals and status changes stay with people.

Item What it is
Kinds application_component (shared/landscape/components/*.md), technology_service (shared/landscape/technology/*.md) and data_object (shared/landscape/data/*.md). Each has a global id, a status and a required tl;dr.
Lifecycle element: PROPOSED, ACTIVE, DEPRECATED, RETIRED. A move to RETIRED needs retired_reason. An unknown state is a warning.
Edges realized_by, served_by and serves on components; owned_by and stored_in on data objects; governs on decision records; identity.realizes on sub-specs. A value that no element or spec has is REF_DANGLING.
Coverage EDGE_MISSING (a warning): a component with sourcing: built and no realized_by; a data object with no owned_by (once a component exists); an ACCEPTED decision record with an archimate_type and no governs.

A knowledge base without a landscape model gets no new finding. cube pack add copies no files into shared/: the modeling-systems skill writes the shared/landscape/ module the first time it runs.

Decision records (shared/architecture/) belong to the base kit, as does the skill that records them. The pack reads them and adds two optional fields to a record: governs and archimate_type.

The documenting-architecture and reviewing-architecture skills put open security findings in one file, architecture-findings.md, that belongs in the knowledge base only. A pack may not change the kit’s export rules, so add the file to your kit’s never_export yourself, in kit.yml, as a rule change:

never_export:
- "**/architecture-findings*.md"

Until you do, nothing stops the file from being exported with the rest of the knowledge base.

cube pack remove architecture takes the pack out. That is a rule change: commit it with a rule-change act, or the hooks refuse the commit (SHORTCUT_RULE_WEAKENED).

The pack is licensed under MIT-0, in its LICENSE file; the licence covers the pack, not the content you write with it. cube pack add copies LICENSE and NOTICE beside the pack’s pack.yml in the kit’s machinery folder.

The pack’s NOTICE file credits the third-party work it adapts: the review order and reviewer checklist adapted from the BMAD Method (MIT licence), the layers and relations of ArchiMate 3.2 described in the pack’s own words, and the Agent Skills format.