Skip to content

Story 5.16: the config-key registry gains a parity guard and the template catches up - #353

Merged
tim-nish merged 1 commit into
mainfrom
story/5.16-config-key-registry-parity-guard
Jul 27, 2026
Merged

tim-nish merged 1 commit into
mainfrom
story/5.16-config-key-registry-parity-guard

Conversation

@tim-nish

Copy link
Copy Markdown
Owner

Summary

Closes #340.

  • New tools/tests/test-config-registry: every key in any tool's CONFIG_DEFAULTS, tanuki-config's BUILTIN_DEFAULTS, or a CATALOG entry binding into defaults.* — plus every template key — must have a row in the docs registry table; a missing row fails CI naming the key.
  • Registry corrections found by writing the guard:
    • The drive_concurrency row backfilled at triage was wrong — the key reads from the scenarios-file "loop" block only (tools/tanuki-drive:1489-1492), never config.json. Row removed; the preamble now states the loop-block namespace is outside this registry (AC3).
    • contribute_back had no row despite CATALOG binding defaults.contribute_back.{path,schema} — a genuine registry gap; row added (per-target only, both-or-neither, machine-wide copy ignored per contribute_back configuration is global/machine-wide; configuring it for a scratch target mutates shared state #241/F198).
  • Template gains driven_env_passthrough: [] and reach_min_turns: 5. Judgment recorded: drive_concurrency deliberately NOT added (not a config.json key).
  • Reverse direction (every row needs a built-in default) deliberately not enforced: rows like policy_source legitimately document chain keys with no default (the story question's answer).

Acceptance criteria mapping

  • AC1 (code ⊆ registry) → dict literals parsed via ast from all five tools; failure names tool + keys.
  • AC2 (template ⊆ registry + catch-up) → template keys asserted; two keys added.
  • AC3 (loop-block out of scope, stated) → in the test header comment and the registry preamble.

Review focus

  • The registry-domain wording in docs/tanuki-spec.md — it now defines the enforced contract; disagree there, not in the test.
  • The contribute_back row's phrasing against spec-den-distill §2.
  • Merge-order note: touches docs/tanuki-spec.md (as did Story 5.14: tanuki-spec's paraphrase layer is archived behind pointers #351, merged) — no remaining overlap with open PRs except none known.

Changed areas

tools/tests/test-config-registry (new), docs/tanuki-spec.md, templates/config.example.json.

Test plan

New guard passes; full suite 80/80 locally.

🤖 Generated with Claude Code

@tim-nish
tim-nish merged commit 5f4b3d3 into main Jul 27, 2026
1 check passed
@tim-nish
tim-nish deleted the story/5.16-config-key-registry-parity-guard branch July 27, 2026 11:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

hygiene: config-key surface duplicated in 5 places and already divergent

1 participant