architecture-decision-record repo maintainer skill
Helps maintain this repository: a curated collection of ADR templates,
examples, teamwork guidance, and tool/guardrail links, published as
README.md and mirrored per-locale under locales/.
Repo layout
README.md canonical English content — most PRs touch only this
locales/README.md language index (links to locales/<lang>/)
locales/index.md same, duplicate for the doc-site renderer
locales/<lang>/documents/ per-section mirrors of README.md prose sections
locales/<lang>/examples/ one dir per ADR example, each with index.md + README.md
locales/<lang>/templates/ one dir per ADR template, each with index.md (+ LICENSE.md)
locales/{cy,es,fr,ja,ko,tr}/ non-English translations
Every content directory has an index.md and (where meant for GitHub
browsing) an identical README.md — keep both in sync if you touch one.
.locale-peer-id files are opaque IDs used by the maintainer's own
translation/sync tooling; never hand-edit them, and don't worry about
regenerating them.
The <div class="include"> mirroring pattern
Several README.md sections are wrapped like this:
<div class="include" data-path="locales/en/documents/how-to-start-using-adrs">
## How to start using ADRs
...
</div>
The wrapped content is duplicated (sometimes with tiny wording drift) in
locales/en/documents/<slug>/index.md. In practice, contributor PRs only
ever touch README.md, editing content inside these divs directly — see
recent history (git log --stat -- README.md, and note it's the only file
changed in typo fixes, new tool links, etc.). Assume the repo owner's own
tooling reconciles locales/en/documents/ and the other-language
translations from README.md afterward; don't attempt to keep them in sync
yourself unless the user explicitly asks you to edit inside locales/.
Practical rule: for prose changes to an existing ## Section in
README.md (wording tweaks, typo fixes, new paragraphs of guidance),
edit README.md only.
Adding a new tool / guardrail link
This repo tracks two different kinds of external tool:
- A PR/CI guardrail (something that gates or surfaces ADRs on a pull
request) — add it in two places in
README.md:
- A short paragraph under
## Decision guardrails for pull requests
(name as a link, what it does, CI/hook compatibility, license).
- A one-line bullet under
Tools: in ## For more information.
- A general-purpose tool (CLI, framework support, AI agent skill, etc.,
not specifically a PR guardrail) — add it only under
Tools: in
## For more information.
Follow the existing terse style: name as a markdown link, then a short
factual description, license noted only if open source. See the "ADR Guard"
and "Decision Guardian" entries as the pattern to match.
Adding a new ADR template
- Create
locales/en/templates/decision-record-template-<slug>/index.md
(and a LICENSE.md if the source template carries one, e.g. Nygard's).
Title the file # Decision record template <by|for|using> <name>, credit
the source with a link, then either narrative field descriptions or a
literal copy of the template's headings.
- Add the same content as
README.md in that directory too (contributors
before you have kept these byte-identical — diff the two before
committing).
- Add a bullet linking to the new directory in both
locales/en/templates/index.md and locales/en/templates/README.md
(these two files are kept byte-identical — verify with diff).
- Add the template to
README.md in two places:
- The
Templates: bullet list near the top of the file.
- The
## ADR example templates section further down, with a short
parenthetical characterizing it (e.g. "(simple and popular)",
"(more MBA-oriented, with costs, SWOT, and more opinions)").
Adding a new ADR example
- Create
locales/en/examples/<slug>/ with index.md (and matching
README.md) containing the worked example.
- Add a bullet in
locales/en/examples/index.md (and its README.md twin).
- Add a bullet under
Examples: near the top of README.md if it's
prominent enough to feature there (the top list is a curated subset, not
every example — check current entries before deciding).
Conventions to match
- Commit/PR titles: present-tense imperative phrase, same convention
the repo recommends for ADR file names itself — e.g. "Add ADR Guard to
decision guardrails and tools", "Fix typo in C4 model description",
"Rename ADR example file to 'choose-database.md'".
- Link style:
[Descriptive Name](url) inline, not reference-style
links or bare URLs, except where a URL is the whole point (e.g. a raw
wikipedia link with a short label).
- Tone: terse, factual, vendor-neutral. Avoid marketing language when
describing a third-party tool; state what it does and its license.
- No CI, no build step, and no
CONTRIBUTING.md exist in this repo —
don't invent one unless the user asks; the review process is plain GitHub
PR review by the repo owner.
Reviewing a contributor's PR against this repo
Check for:
- Only
README.md changed (expected for prose/link additions — flag it as
unusual, not necessarily wrong, if locales/ was hand-edited instead).
- New template/example additions include the
locales/en/templates|examples
directory and the corresponding index.md/link updates described above,
not just a README.md mention with nothing to link to.
- New external tool/service links: is it a genuine ADR-related tool
(templates, tooling, guardrails, fitness functions), not off-topic?
License and a one-line factual description should be present.
- Formatting matches surrounding style (heading level, bullet spacing —
this repo uses blank lines between list items in many sections).
- No secrets, no unrelated reformatting/rewrapping of unrelated paragraphs
bundled into an unrelated change.
1---2name: architecture-decision-record-maintainer-skill3description: Use when working ON the joelparkerhenderson/architecture-decision-record repository itself (this repo) — adding or editing a decision-record template, example, tool/guardrail link, or translation; reviewing a contributor's PR against it; or keeping README.md and locales/en/ in sync. Not for writing an ADR for some other project — use architecture-decision-record-skill for that.4---56# architecture-decision-record repo maintainer skill78Helps maintain *this* repository: a curated collection of ADR templates,9examples, teamwork guidance, and tool/guardrail links, published as10`README.md` and mirrored per-locale under `locales/`.1112## Repo layout1314```15README.md canonical English content — most PRs touch only this16locales/README.md language index (links to locales/<lang>/)17locales/index.md same, duplicate for the doc-site renderer18locales/<lang>/documents/ per-section mirrors of README.md prose sections19locales/<lang>/examples/ one dir per ADR example, each with index.md + README.md20locales/<lang>/templates/ one dir per ADR template, each with index.md (+ LICENSE.md)21locales/{cy,es,fr,ja,ko,tr}/ non-English translations22```2324Every content directory has an `index.md` and (where meant for GitHub25browsing) an identical `README.md` — keep both in sync if you touch one.26`.locale-peer-id` files are opaque IDs used by the maintainer's own27translation/sync tooling; never hand-edit them, and don't worry about28regenerating them.2930## The `<div class="include">` mirroring pattern3132Several `README.md` sections are wrapped like this:3334```html35<div class="include" data-path="locales/en/documents/how-to-start-using-adrs">3637## How to start using ADRs38...39</div>40```4142The wrapped content is duplicated (sometimes with tiny wording drift) in43`locales/en/documents/<slug>/index.md`. In practice, **contributor PRs only44ever touch `README.md`**, editing content inside these divs directly — see45recent history (`git log --stat -- README.md`, and note it's the only file46changed in typo fixes, new tool links, etc.). Assume the repo owner's own47tooling reconciles `locales/en/documents/` and the other-language48translations from `README.md` afterward; don't attempt to keep them in sync49yourself unless the user explicitly asks you to edit inside `locales/`.5051**Practical rule:** for prose changes to an existing `## Section` in52`README.md` (wording tweaks, typo fixes, new paragraphs of guidance),53edit `README.md` only.5455## Adding a new tool / guardrail link5657This repo tracks two different kinds of external tool:58591. **A PR/CI guardrail** (something that gates or surfaces ADRs on a pull60 request) — add it in **two** places in `README.md`:61 - A short paragraph under `## Decision guardrails for pull requests`62 (name as a link, what it does, CI/hook compatibility, license).63 - A one-line bullet under `Tools:` in `## For more information`.642. **A general-purpose tool** (CLI, framework support, AI agent skill, etc.,65 not specifically a PR guardrail) — add it only under `Tools:` in66 `## For more information`.6768Follow the existing terse style: name as a markdown link, then a short69factual description, license noted only if open source. See the "ADR Guard"70and "Decision Guardian" entries as the pattern to match.7172## Adding a new ADR template73741. Create `locales/en/templates/decision-record-template-<slug>/index.md`75 (and a `LICENSE.md` if the source template carries one, e.g. Nygard's).76 Title the file `# Decision record template <by|for|using> <name>`, credit77 the source with a link, then either narrative field descriptions or a78 literal copy of the template's headings.792. Add the same content as `README.md` in that directory too (contributors80 before you have kept these byte-identical — `diff` the two before81 committing).823. Add a bullet linking to the new directory in **both**83 `locales/en/templates/index.md` and `locales/en/templates/README.md`84 (these two files are kept byte-identical — verify with `diff`).854. Add the template to `README.md` in **two** places:86 - The `Templates:` bullet list near the top of the file.87 - The `## ADR example templates` section further down, with a short88 parenthetical characterizing it (e.g. "(simple and popular)",89 "(more MBA-oriented, with costs, SWOT, and more opinions)").9091## Adding a new ADR example92931. Create `locales/en/examples/<slug>/` with `index.md` (and matching94 `README.md`) containing the worked example.952. Add a bullet in `locales/en/examples/index.md` (and its `README.md` twin).963. Add a bullet under `Examples:` near the top of `README.md` if it's97 prominent enough to feature there (the top list is a curated subset, not98 every example — check current entries before deciding).99100## Conventions to match101102- **Commit/PR titles**: present-tense imperative phrase, same convention103 the repo recommends for ADR file names itself — e.g. "Add ADR Guard to104 decision guardrails and tools", "Fix typo in C4 model description",105 "Rename ADR example file to 'choose-database.md'".106- **Link style**: `[Descriptive Name](url)` inline, not reference-style107 links or bare URLs, except where a URL is the whole point (e.g. a raw108 wikipedia link with a short label).109- **Tone**: terse, factual, vendor-neutral. Avoid marketing language when110 describing a third-party tool; state what it does and its license.111- No CI, no build step, and no `CONTRIBUTING.md` exist in this repo —112 don't invent one unless the user asks; the review process is plain GitHub113 PR review by the repo owner.114115## Reviewing a contributor's PR against this repo116117Check for:118- Only `README.md` changed (expected for prose/link additions — flag it as119 unusual, not necessarily wrong, if `locales/` was hand-edited instead).120- New template/example additions include the `locales/en/templates|examples`121 directory *and* the corresponding `index.md`/link updates described above,122 not just a `README.md` mention with nothing to link to.123- New external tool/service links: is it a genuine ADR-related tool124 (templates, tooling, guardrails, fitness functions), not off-topic?125 License and a one-line factual description should be present.126- Formatting matches surrounding style (heading level, bullet spacing —127 this repo uses blank lines between list items in many sections).128- No secrets, no unrelated reformatting/rewrapping of unrelated paragraphs129 bundled into an unrelated change.