Commit 3e5ad08
docs(spec): state minApprovals' real per-behavior default in the schema prose (#14543)
* docs(spec): state minApprovals' per-behavior default in the schema prose
`ApprovalNodeConfigSchema.minApprovals` described itself as "Default 1",
but an omitted threshold has never meant 1 under `quorum`: the runtime
falls back to the resolvable approver count, so a quorum node authored
without the key requires EVERY approver, not one. Under `per_group` the
fallback really is 1 per group.
Converge the declared text onto the enforced behaviour — the prose is the
half that drifted, so only the prose moves; no schema default is added and
no runtime threshold changes. A pin test asserts the description names both
behaviours' defaults and that the schema still injects no default, so the
two readings cannot drift apart silently again.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GDA48PuRFrHyRfdkBz8m21
* docs(spec): regenerate the approval reference table and add the changeset
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GDA48PuRFrHyRfdkBz8m21
* chore(spec): classify minApprovals' omitted threshold in the empty-state registry
Making the omitted-threshold contract explicit put a permissive-shaped
sentence in front of the empty-state scanner ("Omitted ⇒ all resolvable
approvers …"). The gate is right to demand a decision, and the decision is
`closed`: an omitted threshold lands on the STRICTEST reading — every
resolvable approver under `quorum` — so careless authoring lands on least
privilege, not on the widest grant. Registered with the runtime enforcement
site as evidence rather than reworded around the scanner.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GDA48PuRFrHyRfdkBz8m21
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent 1f45690 commit 3e5ad08
5 files changed
Lines changed: 54 additions & 4 deletions
File tree
- .changeset
- content/docs/references/automation
- packages/spec
- scripts/liveness
- src/automation
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
72 | | - | |
| 72 | + | |
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
117 | 117 | | |
118 | 118 | | |
119 | 119 | | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
120 | 130 | | |
121 | 131 | | |
122 | 132 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
296 | 296 | | |
297 | 297 | | |
298 | 298 | | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
299 | 319 | | |
300 | 320 | | |
301 | 321 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
721 | 721 | | |
722 | 722 | | |
723 | 723 | | |
724 | | - | |
725 | | - | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
726 | 728 | | |
727 | 729 | | |
728 | | - | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
729 | 734 | | |
730 | 735 | | |
731 | 736 | | |
| |||
0 commit comments