Files
atomic-design-poc/docs/project/archive/refactor-backlog-setup/refactor-backlog/implementation/rb-32.md
T
ehoandClaude Opus 5 12f17d9d73 docs: archive the finished backlogs (RD-30)
Two backlog trees are complete: `docs/project/backlog/` (75 files, every
WP done) and `docs/project/refactor-backlog-setup/` (the arc before it).
Move both under `docs/project/archive/` with `git mv`, so history stays
intact through `git log --follow`. `SHOWCASE-ROADMAP.md` moves with them,
because it points at the now-archived backlog README.

Add `docs/project/archive/README.md`. It states that these trees are
historical and names the two directories that are still live.

Repoint every inbound reference named in RD-30's Files table: CLAUDE.md,
the root README, both backend READMEs, `LetterHtml.cs`, `a11y.mdx`, the
`document-feature` and `new-ssp` skills, and the readable-codebase PLAN,
README, and RD-19 ticket. Fix two upward-relative links inside the moved
WP files (WP-68, WP-69) that gained a directory level and would otherwise
break. Repoint `.prettierignore`'s two agent-prompt exclusions to their
new path, so prettier keeps leaving those files' exact wording alone.

Mark RD-30 done and check off its acceptance criteria; flip its README
row to done.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 23:00:38 +02:00

4.3 KiB

RB-32 — add the missing language-switcher row to the CIBG gap register

Status: implemented · 2026-08-28 · Source finding: 06-adr-conformance.md ADR-C-008 · 99-backlog.md RB-32 · Depends on implementation/adr-c-007.md (the same file, left one row short on purpose, filed forward as this ticket)

What was wrong

ADR-0003 §Consequences' final bullet requires every // CIBG-GAP EXTENSION: marker in code to have a row in libs/shared/docs/cibg-gaps.mdx, "so it's auditable rather than silently drifting." libs/shared/src/layout/language-switcher/ language-switcher.component.ts:7-9 carries a full, well-formed marker ("Taal instellen" — no vendored Huisstijl class ships for it — see cibg-gaps.mdx) but the register table had no row for it.

Verified before editing

grep -rln "CIBG-GAP EXTENSION" apps libs --include=*.ts | wc -l   # 9

Nine files carry the marker: debug-state, language-switcher, wizard-shell, application-link, placeholder-chip, rich-text-editor, skeleton, spinner, status-badge. The register table had 8 rows, and language-switcher was the one missing — matching ADR-C-008's finding exactly, re-verified rather than trusted from the finding's own snapshot (per this ticket's DoD point 1, and per adr-c-007.md's own note that it left this exact row for a later ticket).

What changed

One row added to libs/shared/docs/cibg-gaps.mdx's register table, matching the existing rows' two-column shape (component name, closest CIBG concept, reason — wording taken from the component's own marker comment, not invented):

Component Closest CIBG concept Why hand-rolled
language-switcher Taal instellen No vendored Huisstijl class ships for it; a small hand-rolled surface built from the token bridge.

No other row was touched. The 8 existing rows were each re-checked against their component's current marker comment while the file was open; none needed a change.

Optional CI script: taken

ADR-C-008 flags a ~10-line grep -l CIBG-GAP | diff-style script folded into check:tokens as an explicitly optional second step. It is genuinely small and fits the existing script's shape, so scripts/check-tokens.sh gained one more guard after its existing hardcoded-colour check:

gap_register='libs/shared/docs/cibg-gaps.mdx'
markers=$(grep -rl 'CIBG-GAP EXTENSION' apps libs --include='*.component.ts' | xargs -n1 dirname | xargs -n1 basename | sort -u)
rows=$(grep -oP '^\| `\K[^`]+' "$gap_register" | sort -u)
missing=$(comm -23 <(echo "$markers") <(echo "$rows"))
if [ -n "$missing" ]; then
  echo "$missing"
  echo "FAIL: CIBG-GAP EXTENSION marker(s) with no row in $gap_register"
  exit 1
fi
echo 'OK: every CIBG-GAP EXTENSION marker has a cibg-gaps.mdx row'

The marker's component directory basename (dirname of the flagged file, .component.ts files only) is compared against the table's backtick-quoted first column, extracted with grep -oP. This matches for all 9 current markers, including the two rows with a parenthetical suffix (`wizard-shell` (error summary only), `application-link` (non-navigating row)) — the regex stops at the closing backtick, before the parenthetical.

Verified working, not just written. Added a scratch component (libs/shared/src/ui/scratch-gap-test/scratch-gap-test.component.ts, a single // CIBG-GAP EXTENSION: line plus a dummy export) with no matching row. Ran bash scripts/check-tokens.sh: failed with exit 1, printing scratch-gap-test and the expected FAIL: line. Deleted the scratch file and its directory (rm, not git checkout — it was never tracked). Re-ran the script: passed, exit 0. git status confirms no trace of the scratch file remains.

Verification

  • npm run check:tokens (includes the new guard): passes — 9 markers, 9 rows, after the register row was added.
  • npm run ci: result and step count reported in the implementing agent's final answer.
  • No code changed outside libs/shared/docs/cibg-gaps.mdx, scripts/check-tokens.sh, 99-backlog.md, and this note — a doc-only ticket plus its optional, self-verifying guard script.