Context
Follow-up from oz-for-oss Pattern 5 (PR #1078). .github/caro/config.yml shipped as a tiered defaults file with knobs across defaults, triage, spec_pipeline, slash_router, release, coder_loop. None of the consumers currently read from it — the file is inert until wired up.
Wiring plan (each = separate small PR)
Priority 1 — highest leverage
Priority 2
Priority 3 — arrive with Pattern 4
Consumer contract
The resolution rules encoded in .github/caro/config.yml header:
- Look up the most-specific key under the consumer's section
- Fall back to
defaults
- Fall back to a hard-coded sane value in the consumer
Each consumer PR should add a fallback so it degrades gracefully if config.yml is missing or a key is deleted — this avoids the config file becoming load-bearing without matching test coverage.
References
.github/caro/config.yml — the data file
.claude/rules/release-version-alignment.md — related invariant (MSRV / version references)
/cc @wildcard
Context
Follow-up from oz-for-oss Pattern 5 (PR #1078).
.github/caro/config.ymlshipped as a tiered defaults file with knobs acrossdefaults,triage,spec_pipeline,slash_router,release,coder_loop. None of the consumers currently read from it — the file is inert until wired up.Wiring plan (each = separate small PR)
Priority 1 — highest leverage
.github/workflows/slash-router.yml— readslash_router.commandsto derive the whitelist (currently hard-coded in thecasestatement). PreventsSLASH_COMMANDS.md+config.yml+ workflow drift..claude/commands/caro-backlog-groom.md— readtriage.default_priorityandtriage.do_not_touch_labelsinstead of hard-coding in Phase C.Priority 2
.claude/commands/caro-coder-loop.md— readcoder_loop.max_reviewer_retriesandcoder_loop.fallback_specialist/documentation_specialistinstead of hard-coding in step 6 (Reviewer gate) and step 4 (Pick specialist) fallback.caro.release.*skills — readrelease.publish_token_secretandrelease.msrvwhen composing release notes / verification steps.Priority 3 — arrive with Pattern 4
spec_pipeline.spec_label/impl_label/specs_dir— consumed by the futurespec-from-issue-local.ymlworkflow (Pattern 4).Consumer contract
The resolution rules encoded in
.github/caro/config.ymlheader:Each consumer PR should add a fallback so it degrades gracefully if
config.ymlis missing or a key is deleted — this avoids the config file becoming load-bearing without matching test coverage.References
.github/caro/config.yml— the data file.claude/rules/release-version-alignment.md— related invariant (MSRV / version references)/cc @wildcard