From 0a424f86d6fa6d86a98e8e9463c3b75c2b95ac0d Mon Sep 17 00:00:00 2001 From: Vivswan Shah <58091053+Vivswan@users.noreply.github.com> Date: Mon, 5 Oct 2026 01:57:59 -0400 Subject: [PATCH 1/2] docs(agents): heal an unambiguous malformation at the boundary and refuse the rest The owner set a fleet-wide rule: a malformation with one unambiguous repair is healed where it is parsed and the repair reported, and only one with no single repair is refused. The hard rule said every fault the settings file alone reveals is refused, so an implementer following it would have refused what the rule now heals. --- AGENTS.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index afe2de60d..f0dff0509 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -39,7 +39,9 @@ Code is the source of truth: this section holds only the rules and the decisions - Generated artifacts are regenerated, never hand-edited; `.github/scripts/generated.ts` is the one list of them. - `lib/index.js`, `lib/settings.schema.json`, and `lib/pkg/` are built, never committed on main. - Every GitHub list call goes through `listAll()` or `listAllEnveloped()`, and every API error through `call()`/`failureFor()`, so the permission policy holds (`src/sections/contract/requests.ts`). -- What can be known wrong from the settings file alone is refused when the file is parsed, naming the key and the fix, never discovered at apply time: GET-only fields, enum violations, contradictory key pairs, unknown keys in a closed GitHub shape. Open passthrough shapes keep unknown keys and note them at check time when GitHub does not echo them back. +- A malformation in a settings file or an input with one unambiguous repair (an identical duplicate entry, surrounding whitespace) is healed where the file or input is parsed and the repair reported in the run output; + the healing step's comment states this rule in one line and does not argue for it. One with no single repair is refused there, naming the key and the fix, never discovered at apply time: + GET-only fields, enum violations, contradictory key pairs, and unknown keys in a closed GitHub shape have none. Open passthrough shapes keep unknown keys and note them at check time when GitHub does not echo them back. - The import layering of `src/` is declared in `architecture.yml`; a new cross-layer import is a deliberate edit to that file. - A type a section module exposes is exported from its home module, or the bundled declarations cannot reach it and the package-smoke job fails. - New sections and endpoints ship with e2e scenarios. From c5a12647473e6ffdc5572af8a9d61f87b124ce93 Mon Sep 17 00:00:00 2001 From: Vivswan Shah <58091053+Vivswan@users.noreply.github.com> Date: Mon, 5 Oct 2026 02:02:38 -0400 Subject: [PATCH 2/2] docs(agents): name the case-only enum repair the audit found The refusal audit found that an enum value off only by case has exactly one repair, so the rule no longer lists every enum violation among the refusals. --- AGENTS.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index f0dff0509..7549bd8ee 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -39,9 +39,11 @@ Code is the source of truth: this section holds only the rules and the decisions - Generated artifacts are regenerated, never hand-edited; `.github/scripts/generated.ts` is the one list of them. - `lib/index.js`, `lib/settings.schema.json`, and `lib/pkg/` are built, never committed on main. - Every GitHub list call goes through `listAll()` or `listAllEnveloped()`, and every API error through `call()`/`failureFor()`, so the permission policy holds (`src/sections/contract/requests.ts`). -- A malformation in a settings file or an input with one unambiguous repair (an identical duplicate entry, surrounding whitespace) is healed where the file or input is parsed and the repair reported in the run output; - the healing step's comment states this rule in one line and does not argue for it. One with no single repair is refused there, naming the key and the fix, never discovered at apply time: - GET-only fields, enum violations, contradictory key pairs, and unknown keys in a closed GitHub shape have none. Open passthrough shapes keep unknown keys and note them at check time when GitHub does not echo them back. +- A malformation in a settings file or an input with one unambiguous repair (an identical duplicate entry, surrounding whitespace, an enum value off only by case) is healed where it is parsed + and the repair reported in the run output, the healing step's comment stating this rule in one line. + One with no single repair is refused there, naming the key and the fix, never discovered at apply time: + GET-only fields, other enum violations, contradictory key pairs, and unknown keys in a closed GitHub shape have none, since dropping or guessing a value discards what the author wrote. + Open passthrough shapes keep unknown keys and note them at check time when GitHub does not echo them back. - The import layering of `src/` is declared in `architecture.yml`; a new cross-layer import is a deliberate edit to that file. - A type a section module exposes is exported from its home module, or the bundled declarations cannot reach it and the package-smoke job fails. - New sections and endpoints ship with e2e scenarios.