feat(catalog): v1.3 — seed exemplars for input-shape, output-shape, ipc-rpc - #86
Merged
Conversation
…-rpc
Six new exemplar files across three new view-type directories:
- docs/exemplars/input-shape/cli-argparse-shape.md: POSIX short-option
grouping, GNU long-option conventions, -- separator (sourced from POSIX.1-2017
§12 and GNU Coding Standards).
- docs/exemplars/input-shape/openapi-request-body.md: JSON content-type
binding, JSON Schema 2020-12 alignment, nullable keyword removal (sourced
from OpenAPI 3.1.0 spec).
- docs/exemplars/output-shape/json-rpc-response-2.0.md: jsonrpc/id/result|error
exclusive union, reserved error code range, batch response correlation
(sourced from json-rpc.org 2.0 spec).
- docs/exemplars/output-shape/openapi-response-envelope.md: HTTP status map,
wildcard keys, default key semantics (sourced from OpenAPI 3.1.0 spec).
- docs/exemplars/ipc-rpc/unix-socket-rpc.md: AF_UNIX SOCK_STREAM, newline-
delimited framing, O_CLOEXEC and SIGPIPE disciplines (sourced from POSIX
bind(2)).
- docs/exemplars/ipc-rpc/subprocess-rpc.md: stdin/stdout JSON-line protocol,
EOF shutdown, deadlock avoidance, SIGTERM/waitpid lifecycle (sourced from
POSIX waitpid(2)).
Three new axes.yml files defining axes for each view type.
Catalog plumbing:
- bin/cross_view_gate.py: _VIEW_TO_CATALOG_TYPES updated — §9 → {input-shape},
§10 → {output-shape}, §12 → {api-shape, ipc-rpc}. Removes the help-text
placeholders that were documented as interim until v1.1/v1.3 shipped.
- tests/test_v1_1_e2e.py: updated the deferral-reason assertion to reflect that
§9 now has compatible input-shape exemplars (human-typed), so both deferrals
are operator-deferral and excessive-post-ship-iteration fires (2 > 1).
9 new tests in tests/test_catalog_seed_v1_3.py. Full suite: 1976 passed.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
5 tasks
Joncik91
added a commit
that referenced
this pull request
May 15, 2026
…ype (#88) Minor release composing three Wave 2 PRs (#85, #86, #87) plus a small walker-side plumbing fixup surfaced by the Wave 3 Opus aggregate review. - Plugin marketplace bump 1.2.1 → 1.3.0 (both metadata.version and plugins[0].version) - README badges: test count 1967 → 2003, version 1.2.1 → 1.3.0 - README components line: v1.2 → v1.3 - CHANGELOG entry summarizing item 8 (catalog seed), item 9 (vocab fail-soft with block firewall), item 10 (layer5 prototype), and the walker fixup - bin/walker.py: _VIEW_TO_CATALOG_VIEW_TYPE realigned so product-input routes to input-shape and product-output routes to output-shape, the exemplar-options call site queries input-shape instead of help-text, and the input-exemplar-pi concern prompt references the input-shape view type instead of the v1.1 placeholder language. The walker's binding-suggestion path and the cross_view_gate's validation path now query the same catalog view types. No spec contract changes — v1.0/v1.1/v1.1.1/v1.2.0/v1.2.1 locked specs continue to validate. 2003 tests passing (1967 v1.2.1 baseline + 36 across the three v1.3 PRs). Zero regressions. Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.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
_VIEW_TO_CATALOG_TYPESincross_view_gate.pyto map §9 → input-shape and §10 → output-shape (removing the help-text placeholders that existed because no exemplars were available), and adds ipc-rpc to §12 alongside api-shape.Why this matters
In order to give operators real exemplar options for input and output shape views, the catalog needed seeded entries. Without them, every §9 and §10 binding is forced into post-ship-iteration deferral with reason
no-compatible-exemplar. The six exemplars here provide coverage for the most common input patterns (POSIX/GNU CLI args, OpenAPI request bodies) and output patterns (JSON-RPC 2.0 responses, OpenAPI response envelopes) and IPC channels (UNIX socket RPC, subprocess stdin/stdout RPC).Files changed
docs/exemplars/input-shape/cli-argparse-shape.md— POSIX §12 + GNU Coding Standardsdocs/exemplars/input-shape/openapi-request-body.md— OpenAPI 3.1.0 Request Body Objectdocs/exemplars/input-shape/axes.yml— arg-style, optionality, separator-support axesdocs/exemplars/output-shape/json-rpc-response-2.0.md— JSON-RPC 2.0 response envelopedocs/exemplars/output-shape/openapi-response-envelope.md— OpenAPI 3.1.0 Response Objectdocs/exemplars/output-shape/axes.yml— envelope, success-error-split, schema-binding axesdocs/exemplars/ipc-rpc/unix-socket-rpc.md— AF_UNIX SOCK_STREAM + newline framingdocs/exemplars/ipc-rpc/subprocess-rpc.md— stdin/stdout JSON-line protocol lifecycledocs/exemplars/ipc-rpc/axes.yml— transport, framing, lifecycle axesbin/cross_view_gate.py—_VIEW_TO_CATALOG_TYPESupdated for §9, §10, §12tests/test_catalog_seed_v1_3.py— 9 new tests (presence, parse, validate_catalog, fingerprint validation)tests/test_v1_1_e2e.py— deferral-reason assertion updated to reflect §9 now having compatible exemplarsCHANGELOG note
A v1.3 CHANGELOG entry covering items 8, 9, and 10 will be added in the v1.3 release commit alongside the marketplace.json bump.
Test plan
pytest tests/test_catalog_seed_v1_3.py -v— 9 tests, all passpytest tests/— full suite passes (1976 tests at time of PR)validate_catalog()returns no errors with all six new exemplars loadedcalibrated-forvalues are confirmed to be in_ALL_FINGERPRINTS_VIEW_TO_CATALOG_TYPESmaps §9 → input-shape, §10 → output-shape, §12 includes ipc-rpctest_v1_1_e2e.pyupdated assertion passes — §9 now has compatible exemplars so both deferrals are operator-deferral🤖 Generated with Claude Code