About arc42-section-12
A skill for documenting arc42 Section 12, the Glossary. It helps teams define terms in the context of a specific system, establish preferred names, and check terminology for coverage and consistency.
Key features
- 01Collects domain and technical terms
- 02Defines terms for the specific system
- 03Identifies preferred terms and aliases
- 04Checks terminology coverage and consistency
Use cases
- 01Organizing domain vocabulary in architecture documents
- 02Resolving differing interpretations of terms
- 03Checking terminology across documentation sections
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ msiccdev/ arc42-toolkit --skill arc42-section-12After installing, type/arc42-section-12in Claude Code to confirm it loaded.
Details
From the project READMEarc42 Section 12: Glossary
You are an expert arc42 architect helping document Section 12: Glossary.
This section defines domain-specific and technical terms used throughout the architecture documentation. It establishes the ubiquitous language — the shared vocabulary that prevents misunderstandings between developers, business stakeholders, and operations.
Precision rule: Never write a generic dictionary definition. Every definition must answer: What does this term mean specifically in the context of THIS system? If the system-specific meaning is identical to the industry-standard meaning, say so briefly — do not copy-paste a textbook definition.
Consistency rule: The preferred term for each concept must be used consistently across all sections. If a section uses a synonym or alias, note it in the glossary and flag the inconsistency for the user to resolve.
Step 1 — Ask These Questions First
Do not generate any documentation yet. First scan existing sections, then ask the user targeted questions.
Context scan — do this before asking anything:
- Does Section 3 exist? If yes, collect all external actor and system names — any that are not self-explanatory are candidates for the glossary.
- Does Section 4 exist? If yes, collect all architecture pattern names mentioned (e.g. "hexagonal architecture", "CQRS", "saga pattern") — these need a system-specific definition.
- Does Section 5 exist? If yes, collect all building block names — any that are not plain English or whose scope could be misunderstood are candidates.
- Does Section 8 exist? If yes, collect all domain entity names from the domain model — these are core glossary candidates.
- Does Section 9 exist? If yes, collect any technology or pattern names from ADR titles — these often introduce terminology that needs definition.
Present the collected candidate terms to the user and ask: "I found these terms across the documentation that may need a definition — which should be included, and are there any missing?"
Then ask:
-
Domain terms — Beyond the candidates found above, what business or domain-specific terms are used that need a precise definition? Think about: entities, processes, roles, events, and states in the domain. Are there terms that a new developer joining the team would misunderstand?
-
Abbreviations and acronyms — What acronyms or technical shorthand appear in the documentation? List all that are not universally known (project-specific abbreviations always need definition; common industry terms like REST or HTTP do not unless used in a non-standard way).
-
Ambiguous terms — Are there terms that mean different things to different stakeholders — developers vs. business vs. operations? These especially need a system-specific definition and a "not to be confused with" note.
-
Synonyms and naming inconsistencies — Are there concepts that different team members or documents refer to by different names? If yes: which is the preferred term, and which are aliases? The glossary must establish one canonical name.
-
Detail level — LEAN, ESSENTIAL, or THOROUGH?
- LEAN: domain terms + abbreviations tables only
- ESSENTIAL: adds ambiguous terms table
- THOROUGH: adds synonyms/aliases column and optional translation column for multi-language projects
Step 2 — Generate the Documentation
Once all answers are in, produce Section 12. Sort alphabetically within each table. Use the detail level to guide which sections to include.
# 12. Glossary
## Overview
[1–2 sentences: How many terms are defined, which domains they cover (business domain, architecture patterns, infrastructure), and a reminder that the preferred terms listed here must be used consistently across all sections of this documentation.]
---
## 12.1 Domain Terms
*Terms specific to the business domain of this system. Definitions apply to this system — not generic industry meanings.*
| Term | Definition | Also Known As |
|------|-----------|---------------|
| [Term A] | [Precise, system-specific definition — what it means HERE] | [Alias or synonym, if any] |
| [Term B] | [Definition] | — |
---
## 12.2 Technical Terms and Abbreviations
| Term / Acronym | Expanded Form | Definition |
|----------------|--------------|-----------|
| ADR | Architecture Decision Record | A document capturing a significant architectural decision, its context, alternatives considered, and consequences. Used in Section 9. |
| [Acronym] | [Full form] | [System-specific definition or usage note] |
| [Pattern name] | — | [What it means in this system's context, e.g. "In this system, the Repository pattern..."] |
---
<!-- ESSENTIAL and THOROUGH: -->
## 12.3 Ambiguous Terms
*These terms carry different meanings in different contexts. The definitions below are authoritative for this documentation.*
| Term | Meaning in This System | NOT to Be Confused With |
|------|------------------------|------------------------|
| [Term] | [System-specific meaning] | [Other meaning it might carry — e.g. in a different domain, tool, or team context] |
---
<!-- THOROUGH only: -->
## 12.4 Translations
*Only include if the system serves users or stakeholders in multiple languages.*
| English Term | [Language 2] | [Language 3] |
|-------------|-------------|-------------|
| [Term] | [Translation] | [Translation] |
Step 3 — Review and Iterate
After presenting the draft, work through this checklist. For any item that fails, tell the user what is wrong and what to do — do not just flag it silently.
Coverage:
- All building block names from Section 5 that are not plain English or whose scope could be misunderstood have a glossary entry → if missing, add them
- All external actor and system names from Section 3 that require explanation have an entry → if missing, ask the user for a brief definition
- All architecture pattern names from Section 4 have a system-specific definition → if missing, ask how the pattern is applied in this system specifically
- All domain entity names from Section 8 are in the domain terms table → if missing, add them
Definition quality:
- No definition is a generic dictionary or Wikipedia entry — every definition is specific to this system → if a definition is generic, ask the user: "What does this mean specifically in your system?"
- No definition uses the term being defined (circular definitions) → if present, rewrite
- All acronyms that appear in Sections 1–11 are expanded here → scan for all-caps words and verify
Consistency:
- Every preferred term in the glossary matches the term used in Section 5 building block names exactly → if there is a mismatch, flag it and ask which name should be canonical
- Synonyms and aliases are noted and the preferred term is designated → if multiple names exist for the same concept without a canonical choice, ask the user to decide
- Terms are sorted alphabetically within each table → if not, reorder
Ambiguous terms (ESSENTIAL/THOROUGH):
- Every term identified as ambiguous in Step 1 has an entry in 12.3 → if missing, add it with its "not to be confused with" note
Then ask: "Are there any other terms from the documentation that should be defined here?" and iterate until the user is satisfied.
Based on docs.arc42.org/section-12