RFC 013: Add F9_NOT_IMPLEMENTED to FailureTaxonomy - #19
Open
brettin wants to merge 1 commit into
Open
Conversation
Co-authored-by: Cursor <cursoragent@cursor.com>
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.
Summary
Adds RFC 013, which requests adding
F9_NOT_IMPLEMENTEDtoFailureTaxonomyso 501 stubs / undeployed backends are not mislabeled asF5_UNSPECIFIED_CONFIGorF4_POLICY. Pairs with RFC 015 for stub conformance semantics. Disposition: Ship.RFC document
Full text of
contracts/rfcs/013-failure-class-not-implemented.md(also in this PR's Files tab):F0_NONE | F1_MISSING_ARTIFACT | F2_ENVIRONMENT | F3_DATA_ACCESS |
F4_POLICY | F5_UNSPECIFIED_CONFIG | F6_HPC_QUEUE | F7_RUNTIME |
F8_DOMAIN_ASSUMPTION
Semantics
F9_NOT_IMPLEMENTED— the operation is declared in thecapability.schema.jsonregistry but the backend implementation is absentor disabled at the deployment. Distinct from
F2_ENVIRONMENT(theenvironment is broken),
F4_POLICY(a policy denied it), andF5_UNSPECIFIED_CONFIG(configuration is missing for an implementedcapability).
HTTP 501 + StructuredError{code: "NOT_IMPLEMENTED", recoverable: false}on the wire.failureClass: F9_NOT_IMPLEMENTEDMUST also havestatus: failed.Backward-compatible (no Run ever previously emitted F9; existing F5 emitters
keep working).
Alternative considered: split F9 vs. F10
A single F9 conflates "never implemented" with "implemented but disabled." The
argument for splitting is auditability — a deployment can know how many of its
501s are missing code vs. deliberately gated. The argument against is taxonomy
proliferation: every additional class adds reporting overhead, and the
deployment knows the difference internally via its own feature flags. This RFC
proposes the single-class addition and leaves a possible
F10_FEATURE_DISABLEDsplit to a follow-up RFC if demand emerges.Alternative considered: document
F5_UNSPECIFIED_CONFIGoverloadLighter-touch: update the schema description for F5 to explicitly cover "not
implemented" alongside "misconfigured." Rejected because the words "unspecified
config" don't fit "no code exists" — the overload is what creates the auditor
confusion in the first place.
Relationship to RFC 015
RFC 015 asks the higher-order governance
question: do 501 stubs count toward conformance at all? This RFC scopes purely
to the failure taxonomy and is useful regardless of how RFC 015 resolves —
even if stubs do count, the Runs they generate still need a non-misleading
failureClass.Deferred (out of scope for this RFC)
F10_FEATURE_DISABLEDsplit (see Alternative above).StructuredError⇄failureClassmapping table. Codifying whichStructuredError.codevalues map to whichfailureClasswould be usefulbut is a documentation/governance task, not a schema change.
failureClassset. A capabilitycould in principle declare which failure classes its Runs can produce.
Useful for static analysis; out of scope here.
Platform reference
ARIAPlatform
platform-v0-implementation-profile.json—
FailureClass,StructuredError. ARIAPlatform v0 stubs surface as 501 +code: "NOT_IMPLEMENTED"today; this RFC adds the matching failure class sothe wire response and the Run record agree on the same vocabulary.