Commit 838128f
Demote post_run_diagnostics to Config-as-Default & Complete Feedback Contract (#4183)
## Summary
This plan demotes `post_run_diagnostics` from a server-authoritative
ingredient to a config-as-default ingredient. After this change: (1) an
explicit `open_kitchen` override for `post_run_diagnostics` wins over
the config value, (2) absent an override the config value
`diagnostics.post_run_analysis` remains the default source, (3) the key
becomes lockable via `lock_ingredients`, (4) clobber warnings for
remaining authoritative keys gain hint parity with the lock-rejection
envelope, (5) a sous-chef rule requires the orchestrator to relay
`open_kitchen` warnings, and (6) `implementation-groups.yaml` terminal
paths gain `run_diagnostic*` step parity with `implementation.yaml`.
## Requirements
**ING — ingredient authority**
- **REQ-ING-001:** An explicit `open_kitchen` override for
`post_run_diagnostics` must win over the config-derived value (the key
must no longer be a member of `SERVER_AUTHORITATIVE_INGREDIENTS`).
- **REQ-ING-002:** Absent a caller override, `post_run_diagnostics` must
continue to resolve from `diagnostics.post_run_analysis` (config remains
the default source; the shipped default stays `false`).
- **REQ-ING-003:** Every recipe declaring `post_run_diagnostics` with
`authority: config` must drop that authority marker so validation and
admission match the new behavior.
- **REQ-ING-004:** `lock_ingredients` must accept locking
`post_run_diagnostics`, and the lock must be enforced by the existing
lock/trace mechanism like any other lockable ingredient.
- **REQ-ING-005:** The `open_kitchen` docstring and the sous-chef
server-authoritative do-not-lock list must no longer name
`post_run_diagnostics` among the authoritative examples.
**FDB — feedback parity (remaining authoritative keys)**
- **REQ-FDB-001:** The `open_kitchen` clobber warning for a
server-authoritative key must include that key's
`SERVER_AUTHORITATIVE_KEY_HINTS` line when one exists, matching the
`lock_ingredients` rejection envelope.
**SKL — consumption contract**
- **REQ-SKL-001:** Sous-chef discipline must require that when
`open_kitchen` returns a non-empty `warnings` array, each warning is
relayed to the user in the orchestrator's next response before the
pipeline proceeds (an immediate-action rule; no deferred-action
obligations).
**PAR — parity and documentation**
- **REQ-PAR-001:** implementation-groups.yaml terminal paths must route
through `run_diagnostic*` steps gated on `post_run_diagnostics` with
parity to implementation.yaml (today it declares the ingredient but
contains zero diagnostic steps, so the feature can never fire there).
- **REQ-PAR-002:** `diagnostics.post_run_analysis` and the per-run
override behavior must be documented in docs/.
**TEST — co-update surface**
- **REQ-TEST-001:** A test must pin that
`open_kitchen(overrides={"post_run_diagnostics": "true"})` with config
`false` resolves the ingredient to `true`, and that with no override the
config value is used.
- **REQ-TEST-002:** Existing tests that use `post_run_diagnostics` as
their server-authoritative example (authority-feedback and
frozenset-membership tests from #4169/PR #4170 and #3185) must be
migrated to a remaining authoritative key (e.g., `base_branch`) without
losing coverage.
- **REQ-TEST-003:** A test must pin hint parity: the clobber warning
text for a hinted authoritative key contains the hint line.
- **REQ-TEST-004:** A recipe-level test must assert that every
`register_clone_*` terminal in the three implementation-family recipes
routes through a `run_diagnostic*` step gated on `post_run_diagnostics`.
Closes #4180
## Implementation Plan
Plan file:
`/home/talon/projects/autoskillit-runs/impl-20260704-151702-234347/.autoskillit/temp/make-plan/demote_post_run_diagnostics_plan_2026-07-04_160500.md`
🤖 Generated with [Claude Code](https://claude.com/claude-code) via
AutoSkillit
<!-- autoskillit:pipeline-signature
steps=prepare_pr,run_arch_lenses,compose_pr,annotate_pr_diff,review_pr
-->
## Token Usage Summary
| Step | Model | count | uncached | output | cache_read | peak_ctx |
turns | cache_write | time |
|------|-------|-------|----------|--------|------------|----------|-------|-------------|------|
| plan* | opus[1m] | 1 | 2.2k | 44.9k | 4.1M | 168.5k | 87 | 149.6k |
22m 37s |
| review_approach* | opus | 1 | 9.2k | 5.3k | 199.4k | 49.0k | 12 |
61.8k | 6m 1s |
| verify* | fable | 1 | 31.1k | 41.3k | 2.0M | 169.7k | 44 | 170.1k |
14m 49s |
| implement* | MiniMax-M3 | 1 | 96.2k | 18.9k | 7.0M | 0 | 156 | 0 | 18m
6s |
| fix* | opus | 2 | 117 | 17.4k | 5.0M | 112.5k | 123 | 130.3k | 16m 25s
|
| audit_impl* | opus | 1 | 49 | 32.4k | 750.7k | 108.5k | 39 | 93.5k |
14m 1s |
| prepare_pr* | MiniMax-M3 | 1 | 56.9k | 2.6k | 297.6k | 0 | 16 | 0 |
46s |
| compose_pr* | MiniMax-M3 | 1 | 44.5k | 1.7k | 210.7k | 0 | 10 | 0 |
30s |
| **Total** | | | 240.3k | 164.4k | 19.5M | 169.7k | | 605.3k | 1h 33m |
\* *Step used a non-Anthropic provider; caching behavior may differ.*
## Token Efficiency
| Step | LoC Changed | cache_read/LoC | cache_write/LoC | output/LoC |
|------|-------------|----------------|-----------------|------------|
| plan | 0 | — | — | — |
| review_approach | 0 | — | — | — |
| verify | 0 | — | — | — |
| implement | 577 | 12052.9 | 0.0 | 32.8 |
| fix | 37 | 135594.4 | 3522.5 | 469.7 |
| audit_impl | 0 | — | — | — |
| prepare_pr | 0 | — | — | — |
| compose_pr | 0 | — | — | — |
| **Total** | **614** | 31686.5 | 985.8 | 267.8 |
## Model Usage Breakdown
| Model | steps | uncached | output | cache_read | cache_write | time |
|-------|-------|----------|--------|------------|-------------|------|
| opus[1m] | 1 | 2.2k | 44.9k | 4.1M | 149.6k | 22m 37s |
| opus | 3 | 9.4k | 55.1k | 6.0M | 285.6k | 36m 28s |
| fable | 1 | 31.1k | 41.3k | 2.0M | 170.1k | 14m 49s |
| MiniMax-M3 | 3 | 197.6k | 23.2k | 7.5M | 0 | 19m 22s |
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>1 parent 8164d21 commit 838128f
33 files changed
Lines changed: 534 additions & 77 deletions
File tree
- docs/developer
- src/autoskillit
- config
- core/types
- recipes
- campaigns
- diagrams
- server/tools
- skills/sous-chef
- tests
- arch
- config
- core
- infra
- recipe
- server
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
89 | 105 | | |
90 | 106 | | |
91 | 107 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
12 | 13 | | |
13 | 14 | | |
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
| 18 | + | |
17 | 19 | | |
18 | 20 | | |
19 | 21 | | |
| |||
98 | 100 | | |
99 | 101 | | |
100 | 102 | | |
| 103 | + | |
101 | 104 | | |
102 | 105 | | |
103 | 106 | | |
104 | 107 | | |
105 | 108 | | |
| 109 | + | |
106 | 110 | | |
107 | 111 | | |
108 | 112 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
129 | 129 | | |
130 | 130 | | |
131 | 131 | | |
132 | | - | |
133 | 132 | | |
134 | 133 | | |
135 | | - | |
136 | | - | |
137 | | - | |
138 | | - | |
139 | | - | |
140 | | - | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
141 | 142 | | |
142 | 143 | | |
143 | 144 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
293 | 293 | | |
294 | 294 | | |
295 | 295 | | |
296 | | - | |
297 | 296 | | |
298 | 297 | | |
299 | 298 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | | - | |
46 | | - | |
| 45 | + | |
47 | 46 | | |
48 | 47 | | |
49 | 48 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | | - | |
44 | 43 | | |
45 | 44 | | |
46 | 45 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
0 commit comments