-
Notifications
You must be signed in to change notification settings - Fork 2
feat(conventions): absorb the context-engineering corpus and add the instruction exception register #3588
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
kyle-sexton
merged 16 commits into
main
from
claude/context-engineering-ai-agents-eylizg
Sep 2, 2026
Merged
feat(conventions): absorb the context-engineering corpus and add the instruction exception register #3588
Changes from all commits
Commits
Show all changes
16 commits
Select commit
Hold shift + click to select a range
6b7cd13
docs(topics): add context-engineering-integration decision contract (…
claude 48d851e
docs(topics): absorb validator findings into the integration contract
claude 0c8bc33
docs(topics): execute the signed-off corpus-integration batch (C2, C3…
claude f635f7f
docs(topics): record sign-off resolutions and execution receipts in t…
claude 1729541
feat(conventions): add the instruction exception register and wire th…
claude 5c19ae1
docs(topics): graduate the context-engineering corpus out of the memo…
claude a3ad449
docs(topics): resolve the context-management figure contradiction fro…
claude 575f145
Merge origin/main into the context-engineering integration branch
claude 1f7a11a
docs(specs): graduate the context-engineering corpus through the know…
claude 835e037
docs(topics): prune the context-engineering integration contract slice
claude b85fb12
docs(specs): repair the relative links the graduation left one direct…
claude 1d25ba1
chore(plugins): bump claude-config, instruction-placement and session…
claude 9970e0c
docs(specs): record the model-upgrade re-test decision the pruned con…
claude 1d27afd
fix(claude-config): wire the two register consumers the convention ta…
claude 1e2a073
fix(ci): accept the CLAUDE_SHIM gitleaks false positive by fingerprint
claude db8573a
Merge origin/main into the context-engineering integration branch
claude File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,79 @@ | ||
| # Instruction exception register — what a trimming pass may not delete | ||
|
|
||
| Owner doc for the classes of standing instruction that survive an instruction-audit trim on | ||
| consequence grounds, whatever a length, redundancy, or model-era check says about them. | ||
|
|
||
| The register exists because subtraction guidance has no natural floor. The current generation of | ||
| prompting guidance is explicitly subtractive: strip prescriptive scaffolding, let the model use | ||
| judgment, delete rules written for older models. That guidance is sound and this repo follows it, | ||
| but it is stated for behavioral rules and carries a carve-out its own wording leaves undefined, | ||
| "avoid making them overconstrained, **except in highly important areas**". Without a written | ||
| answer to which areas those are, a trimming pass has no principled stopping point. | ||
|
|
||
| ## The classes are Gate 0's, adopted by reference | ||
|
|
||
| The consequence classes this register protects are exactly the six hard-deny classes in | ||
| [`plugins/instruction-placement/context/routing-rubric.md`](../../../plugins/instruction-placement/context/routing-rubric.md), | ||
| Gate 0: `irreversible-action`, `secret-handling`, `data-integrity`, `external-publication`, | ||
| `legal-compliance`, `agent-authority`. | ||
|
|
||
| **This document does not restate that table, and no other surface may fork it.** One concern keeps | ||
| one adjudication chain: the class list has a single owner, and a second enumeration under a second | ||
| name is the drift this repo has already paid for elsewhere. | ||
|
|
||
| What this register adds is the **operation**. Gate 0 governs *relocation*: whether a rule may be | ||
| demoted out of an always-loaded surface into a path-scoped or skill destination. Deletion is a | ||
| different operation with a strictly worse failure mode, because a demoted rule that fails to fire is | ||
| recoverable by re-promoting it while a deleted rule leaves nothing to re-promote. So: | ||
|
|
||
| > A candidate matching any Gate 0 class is **not deletable** by an instruction-audit trim. It may be | ||
| > compressed in place, given a rationale, or converted to a deterministic mechanism such as a hook. | ||
| > It is never removed on redundancy, brevity, or "the model already does this" grounds. | ||
|
|
||
| ## Non-exhaustive, and tighten-only | ||
|
|
||
| Two properties are load-bearing and neither is decoration: | ||
|
|
||
| - **Non-exhaustive.** The classes are the recognized floor, never the complete set of things worth | ||
| keeping. **Omission from this register is not licence to delete.** A rule outside every class is | ||
| judged on its own merits by the auditing skill's normal criteria, exactly as it was before this | ||
| document existed; it does not inherit a deletion warrant from its absence here. | ||
| - **Tighten-only.** A consuming repo or a downstream skill may add protected classes. Nothing that | ||
| reads this register may use it to *weaken* a protection, and no argument, including an operator | ||
| asking in the moment, removes a Gate 0 class from the protected set. That is Gate 0's own rule and | ||
| it travels with the classes. | ||
|
|
||
| **Recognition is by consequence, not by phrasing**, also inherited from Gate 0. Ask what breaks when | ||
| the instruction is absent at the moment it was needed, not how the sentence is worded. A one-line | ||
| "never force-push a shared branch" is a protected rail; a paragraph preferring one git subcommand | ||
| over another is style. | ||
|
|
||
| ## Who consumes this | ||
|
|
||
| | Consumer | How it uses the register | | ||
| |---|---| | ||
| | `claude-config:audit-instructions` | Deletion-class criteria (I1, I4, I5) hold back a candidate matching a protected class and report the hold rather than proposing the cut | | ||
| | `claude-config:unhobble` | The bare-baseline experiment may strip a protected rule during the run, since the strip is reversible and branch-local, but Phase 4 restores it regardless of whether the ledger logged a stumble against it — a protected rule is never left deleted on the evidence of "no stumble was observed" | | ||
| | `instruction-placement:*` | Unchanged. It owns the classes and the relocation verdict; this register is the deletion counterpart and defers to it on class membership | | ||
|
|
||
| A consumer that reads this register names it in its own criteria text. A register nothing consumes | ||
| changes no behavior, which is the failure mode this table exists to prevent. | ||
|
|
||
| ## What this is not | ||
|
|
||
| - Not a second opinion on relocation. Gate 0 decides that, and a candidate held here may still be | ||
| legitimately relocated. | ||
| - Not a suppression record. A finding an operator has judged and accepted is the | ||
| [finding-suppression](../finding-suppression/README.md) convention's axis. | ||
| - Not a licence to keep everything. The subtractive posture stands for every candidate outside the | ||
| protected classes, and compression in place remains the right answer for a protected rule that has | ||
| genuinely grown bloated. | ||
|
|
||
| ## Provenance | ||
|
|
||
| Adopted 2026-09-01 from the context-engineering corpus integration, decision Q2. That decision | ||
| contract is contract tier and was pruned before merge; it survives as the `<details>` paste in its | ||
| pull request, and the evidence behind it is in | ||
| [`docs/specs/context-engineering-corpus-knowledge.md`](../../specs/context-engineering-corpus-knowledge.md). The carve-out this register answers is quoted from a vendor-voice source and carries | ||
| that source's status: the wording is first-party, the definition of "highly important areas" is | ||
| this repo's own and is not claimed to be upstream doctrine. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.