spec: Exceptions concept + EX-CLOUD-LLM (reference design: fellows_local_db)#8
Merged
Conversation
This was referenced May 31, 2026
New spec/exceptions.md defines Exceptions (stable EX-* conditions under which a PNA deliberately departs from a baseline guarantee): the raise/catch/handle model, PNA mode vs non-PNA mode, the RFC-2119 handler contract (EX-H1..EX-H8), the Relaxes:/Reversible:/Stresses: header conventions, the per-dimension strength-profile vocabulary, and the first registry entry EX-CLOUD-LLM (demonstrated by fellows_local_db). Reference-driven per CONTRIBUTING; the lint extension, PNA_Spec pointer, SKILL evaluate-flow step, and design-record backfill follow in this PR. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…bility Collects EX-* registry IDs from spec/exceptions.md; verifies every 'Relaxes:' token resolves to a known AC, EX, or the PNA-DEFINITION sentinel; checks 'Reversible:' is well-formed (yes|no, with a 'Reversal:' field when yes); and validates any strength-profile column carries only the fixed strength classes (EX-H8). Shape/presence only — behavioral correctness stays the LLM evaluate flow's job. No-ops cleanly when exceptions.md is absent. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…fellows record - PNA_Spec.md vocab-pna: one-line pointer to exceptions.md (raising an Exception exits PNA mode; conformant only while handled to contract). - SKILL.md Evaluate flow: new 'Detect and verify Exceptions' step (caught/handled, reversibility, consent-to-human, strength accuracy, undeclared-deviation backstop); report keyed by AC or EX ID. - reference_designs/fellows_local_db: backfill the Exceptions originating contribution + bring in the Architecture.md copy (AC attestation table + EX-CLOUD-LLM exception attestation). SWHID stays pending (maintainer, post-merge). Lint green: 25 AC IDs, 12/12 contracts, 1 exception ID. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
c87dfb0 to
0f0081a
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What
Introduces the Exceptions concept to the PNA spec, with
fellows_local_dbas the demonstrating reference design. Reference-driven perCONTRIBUTING.md— the spec change rides along with working code (shipped in fellows_local_db #226/#230).An Exception (
EX-*) is a stable-ID'd condition under which a PNA deliberately departs from a baseline guarantee (a named AC, or the PNA definition). Modeled on software exceptions: raised by a user action, must be caught (never silent), handled by a defined solution. Raising one exits PNA mode; an app stays conformant in non-PNA mode iff every active exception is handled to contract. This reframes conformance from "never deviates" to "catches and handles every deviation honestly."Artifacts
spec/exceptions.md(new) — concept, validation-not-certification stance, scope discipline (Goal-anchored + composition-not-enumeration), the RFC-2119 handler contractEX-H1–EX-H8, theRelaxes:/Reversible:/Stresses:header conventions, the per-dimension strength-profile vocabulary, and the first registry entryEX-CLOUD-LLM(with its strength profile + origin note).spec/PNA_Spec.md— one-line pointer fromvocab-pna(no AC rows changed; lint stays green).tools/lint-spec-ids.py— extended to traceEX-*IDs, validate everyRelaxes:token (AC / EX /PNA-DEFINITION), checkReversible:well-formedness (+Reversal:whenyes), and validate strength-profile columns against the fixed vocabulary. Shape/presence only; behavioral correctness stays the evaluate flow's job. No-ops whenexceptions.mdis absent.pna-build-eval-contrib/SKILL.md— Evaluate flow gains a "Detect and verify Exceptions" step (caught/handled, reversibility, consent-to-human, strength accuracy, undeclared-deviation backstop); report keyed by AC or EX ID.reference_designs/fellows_local_db/— backfilled record (the Exceptions originating contribution) + anArchitecture.mdcopy carrying the full AC attestation table and theEX-CLOUD-LLMexception attestation.Verification
python tools/lint-spec-ids.py→ OK (25 AC IDs, 12/12 contracts, 1 exception ID).Relaxes:tokens, malformedReversible:).test_pna_exception_mode.py,test_mcpb_settings.py, and the two MCPinstructionstests (see the Architecture copy's attestation rows).Versioning & process notes
CONTRIBUTING.md(additive: new concept, new sub-contracts, new lint check; no AC semantically altered).pending— recorded by the maintainer post-merge via Save Code Now, perCONTRIBUTING.md§ Acceptance.Follow-ups (separate PRs, by design)
prior_art.md"behavioral exceptions & consent propagation" survey.VERSION, per-artifact headers, lint enforcement).🤖 Generated with Claude Code