Repository navigation
docs: RestoManager handoff batch — sys.Label filters, x-actors ref identity, x-emits: [], unread hints, enum reuse (2026-10-09) - #147
Merged
Conversation
…r handoff) In a Service Bus SQL filter a bare identifier is user. scope, so a bare `Label = 'X'` silently matches nothing. The generator has always emitted sys.Label; the kit docs said otherwise. - handbooks, samples, create-job/create-worker skills: every filter-expression Label -> sys.Label (26 lines), incl. the entity-cap clause wording - AsyncAPI_Handbook §0.8: state the scope rule once (sys.Label / user.<name>, bare identifier defaults to user. and matches nothing); pointer from the Vendor_Extensions x-subscription filterOverride section - specfuse-asyncapi.yaml: new warn rule specfuse-subscription-filter-sys-label on x-subscription.filterOverride - fixtures/subscription-filter-sys-label.yaml + ci.yml step asserting it fires on four bare forms and stays silent on two sys.Label forms Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…silent write; role-grant corrections (RestoManager handoffs) Arazzo x-actors.<name>.ref (arazzo-actor-ref-identity handoff): - Arazzo_Handbook §4.6: .ref is the principal identity, the id the tokens carry as authorization.claims.userId (Project_File §16), never a domain row's id. Note on the failure mode (self-scoped steps run as an unresolvable principal), the recipe pattern (identity linked to the domain row, separate *UserId and *Id outputs), device actors, and the generator asks (clabonte/generator#2414, #2352). - Examples renamed to customerUserId / agentUserId / managerUserId; the foundational-recipe table exposes them; §4.6 recipe prose, §13 Do and §15.2 aligned. x-emits: [] (x-emits-empty-silent-writes handoff): - AsyncAPI_Handbook §6.3 and Vendor_Extensions §6.1: [] declares a deliberately silent write, distinct from an absent x-emits; a justifying YAML comment is mandatory, as for x-self-scoped. Documents the kit rule (error, truthy, [] passes, no x-manual skip) and generator 0.14.0 WRITE_OPERATION_MISSING_X_EMITS (WARNING, presence-only, skips x-manual; census asked in clabonte/generator#2415). The :search POST question is recorded as open. - schemas/README: optional project rule confining [] to an allowlist. Ruleset behaviour unchanged. Role grants (role-grants-and-scope-mode handoff): - Vendor_Extensions §3.1: delegable is published in role-grants.json and enforced by nothing at 0.14.0 (FEAT-2026-0203, clabonte/generator#2180). - API_Handbook §14: replaces "enforcement occurs in implementation" with what 0.14.0 enforces (mapping form, coherence, authorization.mode). - Arazzo_Handbook §4.6 and §9.2: ARAZZO_ACTOR_LACKS_SCOPE, scopes mode only; measured not firing on a mapping-form hello-orders copy. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…in and value-object encryption touch-ups (RestoManager handoffs) - Vendor_Extensions §5.1: "read by nothing" banner for x-operation.codeGenHints (cacheable, auditRequired, eventEmission, transactional, plus async) — parsed into OperationDefinition, read by no code or template. Caching design tracked in clabonte/generator#2173. Phantom CacheLayer/CacheAside/ReadThrough/ CacheableService claims removed. reference/admin/discovery marked removed (generator 0.5.4, hard error); category enum, defaults and example corrected; Code Generation/Patterns lists qualified as intent. - x-ai.capabilities (Vendor_Extensions, AsyncAPI_Handbook): informational, read by nothing; streaming and multiTurn generate nothing. - API_Handbook: webhook placeholder replaced with a not-yet-specified note (clabonte/generator#2169 inbound, #2170 outbound). - API_Handbook enums: reuse-before-define guidance and how to read ENUM_VALUE_SET_DUPLICATE (SUGGESTION, Jaccard >= 0.5); cross-ref AsyncAPI §6.5. - Vendor_Extensions x-domain: SCHEMA_DOMAIN_CROSS_REFERENCED exempts entity projections; bundle-is-the-contract sentence. - project-init CLAUDE.md template: domain registry is also enforced on OpenAPI schemas (SCHEMA_DOMAIN_REQUIRED/UNREGISTERED, ERROR since 0.13.0). - Vendor_Extensions value-object protection: second declaration site is the entity's embed property (x-value-object.protection is not read); stale "nothing warns / #1995 filed" replaced with VALUE_OBJECT_PROTECTION_DECLARED_TWICE (WARNING, 0.13.0); embed-only form is encrypted but absent from the audit (clabonte/generator#2417), so prefer the usage site. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rator#2418 compatibility.md §45 records what this batch corrected in the kit, what it forwarded (clabonte/generator#2414-#2418), what is deferred and what is still open. Arazzo_Handbook.md §4.6 and §9.2 cite #2418: ARAZZO_ACTOR_LACKS_SCOPE does not fire at 0.14.0. Co-Authored-By: Claude Opus 5.5 <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.
Processes nine RestoManager specs handoffs, each checked against kit
mainand the released generator0.14.0jar rather than the SNAPSHOT the handoff named. Five of them rested on stale generator behaviour.compatibility.md§45 has the full record.Corrected (the kit was wrong at the pin)
sys.Label. A bareLabelis read asuser.Labeland matches nothing. The generator has emittedsys.Labelsince at least 0.11.0. Changed in 25 places across the handbooks, the samples and two skills. A new Spectral rule,specfuse-subscription-filter-sys-label(warn), comes with a fixture and a CI step that checks both directions.x-actors.<name>.refis the principal identity, i.e. theclaims.userIdclaim, not a domain entity. Covers the failure mode and the recipe pattern, and renames the example outputs to*UserId.x-emits: []is a deliberately silent write. §6.1 no longer forbids it. The docs now describe how the kit rule and the generator rule really behave. The:searchquestion is recorded as open.delegableis published but not enforced (#2180).API_Handbook.md§14 is refreshed.ARAZZO_ACTOR_LACKS_SCOPEis documented, along with the fact that it does not fire at 0.14.0 (generator#2418).codeGenHintskeys andx-ai.capabilities. The phantom CacheLayer/CacheAside claims and the three removed categories are gone from §5.1.x-protection, notx-value-object.protection.VALUE_OBJECT_PROTECTION_DECLARED_TWICEis now named. The audit gap is noted (generator#2417).ENUM_VALUE_SET_DUPLICATE, which is a SUGGESTION.x-domain: the projection exemption is documented, and the project-init template now says OpenAPI schemas are enforced.Forwarded to the generator
clabonte/generator#2414, #2415, #2416, #2417, #2418.
Deferred
Caching (#2173–#2177), streaming and webhooks (#2163/#2164/#2167/#2169/#2170), client grants (#2180), and durable runs (waiting on #2164).
Not changed
examples/hello-ordersstill bindsrefto a domain id. Fixing that is a modelling change, recorded in §45.🤖 Generated with Claude Code