Skip to content

fix(arckit-togaf-adm): put the capability map in Phase B, register ACHG as multi-instance, use TOGAF's change classes (#949) - #976

Merged
tractorjuice merged 1 commit into
mainfrom
fix/949-togaf-adm
Oct 18, 2026
Merged

tractorjuice merged 1 commit into
mainfrom
fix/949-togaf-adm

Conversation

@tractorjuice

Copy link
Copy Markdown
Owner

Part of #949.

Fixes the TOGAF ADM items in the "TOGAF ADM and Open Agile Architecture" section, plus the interview, APP/PRIN and recipe findings for arckit-togaf-adm. Nothing under plugins/arckit-oaa/ was edited by hand; see "Core files changed" for the one mechanical sync that reaches it.

Decisions

Item Decision Source
Business capability map phase (command, guide, READMEs said Phase A; architecture-change said Phase B) Phase B (Business Architecture), with Phase A (Architecture Vision) sketching capabilities and value streams at a high level The Open Group, Advancement of Business Architecture in the TOGAF Ecosystem (2018), slides 7–9: Phase A "introduces initial business capabilities and value streams"; Business Capability Mapping is listed under "Key additions to steps, outputs, and approach" for Phase B, and Business Capability Map is an added Phase B output. The TOGAF Standard, 10th Edition carries the TOGAF 9.2 ADM text forward and lists the Business Capability map under the Phase B artefacts (Architecture Content, §3.6.3).
Application inventory phase (command said "Phase C (Technology)") Phase C (Information Systems Architectures — Application Architecture); technology-stack data is an input to Phase D, not a Phase D output TOGAF Standard, 10th Edition: ADM chapter 7 is "Phase C: Information Systems Architectures — Application Architecture"; Phase D is Technology Architecture; the Application Portfolio catalog sits under Phase C Application Architecture (Architecture Content, §3.6.5).
ACHG not multi-instance Registered: ACHG added to MULTI_INSTANCE_TYPES, 'ACHG': 'changes' added to SUBDIR_MAP Runtime behaviour. validate-arc-filename.mjs only splits -001 off for a multi-instance code, so it read ACHG-001 as the doc-type and blocked every write the command attempted.
Change types (command 3, guide 4, neither TOGAF's) TOGAF Phase H's three classes: simplification, incremental, re-architecting. Urgency (the guide's "Emergency") and remedial intent (the command's "Corrective") become Priority, not a type TOGAF Standard Phase H (ADM chapter 12, carried from TOGAF 9): a simplification change "can normally be handled via change management techniques"; an incremental change may be handled that way "or it may require partial re-architecting"; a re-architecting change "requires putting the whole architecture through the architecture development cycle again".
Two-round interviews One-message interview per references/interview-pattern.md, exactly one (Recommended) per single-select question tests/plugin/test_interview_pattern.py rules, mirrored from dfd.md / roadmap.md
APP used for principles gap-analysis, architecture-board, architecture-change now cite ARC-000-PRIN. Each listed ARC-{P}-APP (Application Inventory) as "Architecture Principles" and duplicated the PRIN prerequisite doc-types.mjs: APP is Application Inventory, PRIN is Architecture Principles in 000-global
Recipe wave order REQ now deps: [PRIN, STKE] in togaf-adm-full and togaf-agent-full Matches ca-federal-fitaa.yaml; requirements read the stakeholder analysis

pubs.opengroup.org redirects to a login, so I couldn't fetch the 10th Edition text directly. The phase decisions rest on The Open Group's own 2018 briefing (fetched) and the 10th Edition chapter and section titles in search results. The capability-map wording is true either way: TOGAF lists a Business Capability Map as an output of both A (initial) and B (developed). This command builds the full maturity-scored hierarchy, which is the Phase B artefact.

Files changed

Overlay (plugins/arckit-togaf-adm/)

  • commands/business-capability-map.md: Phase B in the description, intro and TOGAF Alignment note; one-message interview (Depth)
  • commands/application-inventory.md: Phase C Information Systems / Application Architecture; one-message interview (Coverage)
  • commands/adm-preliminary.md: next step and feeds-into say Phase B; TOGAF Alignment separates Preliminary outputs from the Phase A Architecture Vision; one-message interview (ADM scope)
  • commands/architecture-change.md: TOGAF change classes; one-message interview; the ADM re-entry question goes from 8 options (the question tool takes at most 4) to a 4-option single-select defaulting to "derive from the impact assessment"; PRIN instead of APP in Synthesised From; APP (Application Inventory) listed as an OPTIONAL input, matching DEPENDENCY-MATRIX
  • commands/architecture-board.md: one PRIN entry; the APP "domain principles" line removed; ACHG cross-reference names changes/ARC-{P}-ACHG-{NNN}
  • commands/gap-analysis.md: the duplicate PRIN entries merged; APP line removed; "STRAT and PRIN"; one-message interview (Weighting)
  • commands/application-rationalization.md, commands/transition-architecture.md: one-message interview
  • templates/architecture-change-template.md, templates/architecture-board-template.md (+ .arckit/templates/ copies, byte-identical)
  • references/togaf-adm-reference.md: Preliminary, A, B, C, D and H descriptions corrected (it had Phase C as "Data Architecture" only, Application Architecture under Phase D, and the Architecture Vision in Preliminary)
  • recipes/togaf-adm-full.yaml, recipes/togaf-agent-full.yaml
  • README.md
  • Guides: docs/guides/{business-capability-map,application-inventory,architecture-change}.md (canonical), synced to the overlay with check-guide-parity.py --sync

Site / root docs: README.md (BPCM row → Phase B), docs/commands.html (BPCM description → Phase B). No input level or handoff changed, so DEPENDENCY-MATRIX.md is unchanged.

Core files changed

  • plugins/arckit-claude/config/doc-types.mjs: ACHG in MULTI_INSTANCE_TYPES; 'ACHG': 'changes' in SUBDIR_MAP. I checked every consumer. generate-document-id.mjs, validate-arc-filename.mjs, okf-frontmatter.mjs, update-manifest.mjs, project-context-builder.mjs and sync-guides.mjs all import the sets and derive from them, so none needed an edit. pages.md already lists ACHG with a ARC-*-ACHG-*.md glob that matches the numbered form.
  • plugins/arckit-claude/references/quality-checklist.md (shared asset): the ACHG section now names the TOGAF classes and re-entry rule. sync-shared-assets.py copied it to all 16 community plugins and sync-claude-plugin-layout.py to the nested mirror. That includes plugins/arckit-oaa/references/quality-checklist.md, a byte copy CI requires; no OAA content changed.
  • tests/plugin/test_doc_type_registry.py: the docstring count goes from 20 to 21 multi-instance codes, plus a new test that fails when any command, agent, template or guide writes a numbered filename (-001-v, -{NUM}-v, -[NNN]-v) for a code outside MULTI_INSTANCE_TYPES. I checked that it fails on main's registry, naming ACHG at architecture-change.md:133/259/281 and docs/guides/architecture-change.md:28.
  • tests/plugin/generate-document-id.test.mjs: pins 001 ACHG --relpath → changes/ARC-001-ACHG-001-v1.0.md.

Judgement calls

  • The other four interviewing commands were converted too. adm-preliminary, application-inventory, business-capability-map and gap-analysis already had one question with a default, but no pattern pointer and no (Recommended) marker. Converting all seven keeps the overlay on one contract. I kept headers at 12 characters or fewer and avoided Scope, which the build harness's defaults table maps to Full system.
  • ADM re-entry question redesigned, because 8 options can't be asked through the question tool. The A–H Yes/No table in the artefact is unchanged.
  • Change classes replaced, not mapped. Neither existing set was TOGAF's. Existing ACHG artefacts that say EVOLUTIONARY/TRANSFORMATIONAL/CORRECTIVE stay valid. New ones use the TOGAF names, and the guide explains where urgency and remedial intent now go.
  • togaf-adm-reference.md isn't read by any command but ships in every extension, so it was corrected rather than left contradicting the commands.

Left open

  • gap-analysis: the guide and the recipe treat the Application Inventory as an input (deps: [BPCM, APP, APPR, ...]), but the command's prerequisites don't read it. This is a genuine APP use, not the principles confusion. I left the input level alone because changing it changes DEPENDENCY-MATRIX.
  • The /arckit:pages dashboard template renders no bucket for changes/, and none for audits/ or framework/ either. The manifest records the files, but the HTML template doesn't list them. This was already the case for the other two, and before this PR ACHG files couldn't be written at all.
  • scripts/python/generate-document-id.py and its plugin copy keep a stale hardcoded multi-instance list that was already missing TNDR, CMPT, GRNT and CDAU. Nothing calls them; I didn't add ACHG to a list that is already wrong.

Checks

  • uv run --no-project --with pytest --with pyyaml --with-editable . python -m pytest -q -p no:cacheprovider: 2421 passed, 228 skipped
  • node --test tests/plugin/*.test.mjs tests/plugin/test_*.mjs tests/certification/*.test.mjs: 654 pass, 0 fail
  • lint checks runner: 34 checks, 0 failed
  • npx --yes markdownlint-cli2@0.18.1 "**/*.md": 0 error(s)
  • check-guide-parity.py --sync, sync-shared-assets.py, sync-claude-plugin-layout.py and converter.py all run after rebasing on main (62a52ee); the generated Codex and Gemini outputs carry the new change classes.

🤖 Generated with Claude Code

…HG as multi-instance, use TOGAF's change classes (#949)

Business capability map phase. The command, guide and both READMEs put
/arckit:business-capability-map in Phase A; architecture-change put it in
Phase B. The Open Group's TOGAF 9.2 business-architecture briefing (2018),
whose ADM text the TOGAF Standard, 10th Edition carries forward, says Phase A
"introduces initial business capabilities and value streams" and lists
Business Capability Mapping as a key addition to Phase B's steps and outputs.
The command, guide, overlay README, root README, commands.html and
adm-preliminary's next steps now say Phase B and note that Phase A sketches
capabilities at a high level. pubs.opengroup.org needs a login, so the
wording is chosen to hold whichever phase a reader's edition stresses.

Application inventory phase. The command said "Phase C (Technology
Architecture)". In the TOGAF Standard, 10th Edition, Phase C is Information
Systems Architectures (Data and Application) and Phase D is Technology
Architecture; the Application Portfolio catalog is a Phase C Application
Architecture artefact. Command and guide now say so. The overlay's
togaf-adm-reference.md had the same errors (Phase C "Data Architecture",
Phase D "Application and Technology", Architecture Vision in Preliminary)
and is corrected too.

ACHG change requests. /arckit:architecture-change writes
changes/ARC-{P}-ACHG-{NUM}-v1.0.md, but ACHG was not in
MULTI_INSTANCE_TYPES and SUBDIR_MAP had no changes entry, so
validate-arc-filename.mjs read ACHG-001 as the doc-type and blocked every
write. doc-types.mjs now registers both. A new test fails any command,
agent, template or guide that writes a numbered filename for a
single-instance code. The command had 3 change types and the guide 4; both
now use TOGAF Phase H's three classes (simplification, incremental,
re-architecting) and treat urgency as priority. The core ACHG quality
checklist entry, the template and the board charter's cross-reference
follow, and the ADM re-entry question drops from 8 options (more than the
question tool takes) to 4.

One-message interviews. application-rationalization, architecture-change
and transition-architecture still allowed two rounds of questions. They,
and the four other overlay commands that ask a question, now follow
references/interview-pattern.md with one (Recommended) option per question.

APP used for principles. gap-analysis, architecture-board and
architecture-change listed ARC-{P}-APP (the Application Inventory) as an
Architecture Principles source and duplicated PRIN. They now read the one
PRIN artefact in 000-global.

Recipes. togaf-adm-full and togaf-agent-full ran REQ in the same wave as
STKE; REQ now depends on STKE.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@tractorjuice tractorjuice added the bug Something isn't working label Oct 18, 2026
@tractorjuice
tractorjuice merged commit 2b31e7b into main Oct 18, 2026
3 checks passed
@tractorjuice
tractorjuice deleted the fix/949-togaf-adm branch October 18, 2026 11:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant