fix: reject unknown DEFINITION keys — strict at parser and schema (confirmation-pass-1 chair ruling) - #50
Merged
Conversation
…P schemas (confirmation-pass-1 chair ruling)
Chair ruling 2026-08-20 (confirmation-pass-1 ledger): strict rejection,
both layers. A typo'd field key ('maximun': 10) silently built a
bound-less field that validated any answer clean; #37 covered the
answer side only.
- form_from_dict names every unrecognized top-level and field-level
key ('unknown definition key ...'), aliases label/questions kept
- _field_schema/_form_schema declare additionalProperties: false
(D3 mirror to attune-ai picks this up at next release-gated re-sync)
- parity ratchet test: advertised schema keys == parser key set
- regression tests incl. the exact ledger repro; CHANGELOG entry
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
silversurfer562
force-pushed
the
claude/awesome-bassi-2e6268
branch
from
August 20, 2026 13:17
a96a667 to
4b4a890
Compare
# Conflicts: # CHANGELOG.md # tests/test_mcp_server.py
# Conflicts: # CHANGELOG.md # tests/test_bridge.py
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.
Chair ruling (2026-08-20)
The confirmation-pass-1 ledger's design-question item (frozen ledger
~/.attune/reports/roundtable/confirmation-pass-1-ledger-2026-08-20.md): unknown DEFINITION keys were silently ignored. Chair ruled strict rejection, both layers (options presented: strict / documented forward-compat / warn-list; sub-ruling: tighten the MCP schema too, not parser-only).The defect
form_from_dictread only the keys it knew —{"id": "n", "type": "number", "maximun": 10}built a bound-less number field andcollect_form_response(form, {"n": 99999})validated clean. Same forregired,recomended, arbitrary keys, field-level and top-level. PR #37 closed this class on the ANSWER side only; the MCPinputSchemalackedadditionalProperties: falseso the SDK gate waved strays through too.The fix
form_from_dictnames every unrecognized top-level and field-level key (unknown definition key '...', mirroring fix: validate defaults, name fold collisions, reject unknown answer keys (pilot review) #37's answer-side wording). Recognized sets (_DEFINITION_TOP_KEYS/_DEFINITION_FIELD_KEYS) track exactly what the parsers read; the documentedlabel/questionsaliases stay accepted._field_schemaand_form_schemadeclareadditionalProperties: false. The aliases were never usable over stdio anyway (the schema already requirestext/fields), so this breaks nothing that worked.test_field_schema_matches_parser_key_setpins advertised-schema keys == parser key set (∪label), so the mirrored schema and the strict parser cannot drift apart.additionalPropertiesat the next release-gated re-sync.684 tests green, ruff clean, rebased on main @ 7aca61b.
🤖 Generated with Claude Code