Files
cdsl-cad/cadfs_to_cdsl/FEATURESCRIPT_QUERY_CAPABILITY_MATRIX.md
T

64 KiB

FeatureScript Query Capability Matrix

This matrix is the versioned allow-list consumed by the CDSL selector resolver. It records what the current runtime may execute, not what FeatureScript text it can parse. A missing entry is intentionally rejected with selector_query_unsupported; a missing source version is rejected with selector_query_version_unknown. Every registered row currently requires the direct source import onshape/std/geometry.fs@1511.0 in addition to its FeatureScript language version. The lowerer preserves every direct onshape/std/* import as {path, version} metadata, but an unregistered library revision is not treated as compatible merely because its path matches.

The planned expansion of query algebra, topology lineage and body lifecycle is defined in CADFS_FULL_CAPABILITY_TARGET.md, under “Selector 精度与覆盖目标(2026-09-10 起)”. A row is admitted only after its explicit source/CDSL contract, exact kernel evidence and consumer semantics are tested; source STEP comparison remains separately reported and does not promote a restricted row into general family support.

SWEPT_EDGE@1511 direct-prism dress-up continuation update (2026-09-12): a direct source vertex may retain its existing boundary + continuation policy past the producer's feature position only when the topology registry proves a complete, one-to-one, active lineage. 00094474 F3 is strict after an intervening datum feature; 00027017 F3 is rejected as non-unique after a body mutation and retains its F2 checkpoint. 00370320 F4 proves a direct extrude boundary -> subtract continuation and is RP passing. This changes neither the direct profile, version, body-lifecycle nor no-fallback restrictions in the rows below. Source anchors are additionally scoped to the selector's explicit producer owner: a later operation that materializes the same source sketch entity or endpoint pair cannot become a second anchor. 00407468 F3 verifies four qUnion(SWEPT_EDGE) operands from F1 through F2; F1--F3 replay and RP comparison pass in output/swept-edge-producer-anchor-00407468-20260912 (strict area/volume precision checks do not pass). The rule does not admit generic repeated-source, boolean, IMPRINT, COPY, pattern, or N:M lineage forms.

CAP_FACE@1511 symmetric direct-prism shell update (2026-09-12): an immediate shell may remove either or both physical caps of an independent, undrafted, new_body symmetric blind prism whose profile is exactly one original circle. Each CAP OSD must name that sole circle source edge. The two MakePrism builders share the source plane, so the executor maps only their far exact handles to extrude.end and extrude.start, checks final-snapshot IsSame, and never exposes the source-plane seam as a cap. 00019252 removes both caps and RP-passes; 00000316 resolves both caps and executes its shell before an unrelated OFFSET_EDGE query stops later replay. This bridge is limited to the immediate shell consumer: multi-edge/hole/IMPRINT/split profiles, draft, ADD/CUT, non-blind extents, continuation, other consumers/versions, and all geometry, stable-ID, current-body, or source-STEP fallback remain deferred.

CAP_FACE@1511 initial direct-sweep shell update (2026-09-12): an immediate shell may consume one sweep.start or sweep.end only where the producer is an independent new_body direct PipeShell sweep and its CDSL contract retains one profile source edge plus one source path edge. The CAP OSD must name that exact profile edge and the matching path start/end vertex; after any lowering path reversal, the source endpoint is explicitly mapped to the physical PipeShell output role before the resolver requires its unique complete active builder relation. 00330012 F3 resolves sweep.end and rebuilds. 00658358 F4 keeps its F3 checkpoint because its CAP source pair does not satisfy this contract. No geometry, stable-ID, current-body or source STEP fallback is introduced; segmented/spatial/hollow/fused/additive sweeps, copy/pattern successors, later lifecycle, non-shell consumers and generic sweep CAP queries remain deferred.

CAP_EDGE@1511 initial direct-sweep dress-up update (2026-09-12): an immediate fillet/chamfer may consume one cap edge from an independent new_body direct PipeShell sweep only when its profile is one retained direct circle edge and its CAP OSD contains exactly that edge plus the corresponding source path endpoint. PipeShell has no per-profile-edge FirstShape/LastShape overload, so the adapter records the relation only when the builder-proven cap face has exactly one final-snapshot boundary edge (IsSame verified). The runtime additionally receives an exact source-edge anchor and resolves only the complete/proven role-qualified boundary relation. A 00330012 CAP_EDGE source variant resolves by kernel_lineage and rebuilds; a contradictory endpoint variant keeps its F2 checkpoint. Multi-edge/inner-wire/split profile, segmented/spatial/hollow/fused/additive sweep, continuation, copy/pattern, later lifecycle, other consumers and generic CAP_EDGE remain deferred. No geometry, stable-ID, current-body or source STEP fallback is allowed.

CAP_EDGE@1511 primary ADD union-continuation update (2026-09-13): an immediate fillet/chamfer may follow a direct, undrafted blind extrude_add_blind only when its default ADD/fuse has exactly one old active solid, one direct-prism tool solid, complete source anchors, and exact BRepAlgoAPI_Fuse history. The tool is registered only as a transient prism snapshot; its cap edge becomes selectable only through one complete/proven, one-to-one extrude -> union continuation into the active final member. 00953397 F7 and 00957101 F4 both resolve by kernel_lineage and are RP approximate. 00406939 has a multi-solid ADD tool and remains a deferred FeatureScript query. Split/merge, partial/missing/fuzzy union history, IMPRINT/partial profile, non-CAP_EDGE family, later lifecycle, COPY/pattern, and all geometry, stable-ID, current-body, or source-STEP fallbacks remain outside this bridge.

CAP_FACE@1511 primary ADD shell union-continuation update (2026-09-13): an immediate shell may consume one cap role from a direct, undrafted blind extrude_add_blind only when its default ADD/fuse has one old active solid, one direct-prism tool solid, and exact BRepAlgoAPI_Fuse history. The tool is transient; the resolver must establish a complete/proven one-to-one extrude -> union continuation into the active final member before handing the face to shell. In a 27-history fresh replay scan, seven histories had that exact relation; 00074047 F4 and 00350698 F7 resolve it by operation_role, then their native shell operation independently fails. 00293014 remains selector_output_role_ambiguous; 00590599 multi-solid ADD remains selector_query_unsupported. This does not authorize extent, dress-up, multiple removals, split/merge, multi-solid/IMPRINT/partial profile, missing/partial/fuzzy union history, later lifecycle, COPY/pattern, or any geometry, stable-ID, current-body, or source-STEP fallback.

CAP_FACE@1511 primary ADD up-to-surface union-continuation update (2026-09-13): a one-sided immediate up_to_surface extent may consume one primary-ADD cap only under the separately tagged primary_add_up_to_surface_union_continuation contract. The producer is an undrafted blind extrude_add_blind defaulting to ADD/fuse; its transient direct-prism cap becomes selectable only after one old active solid plus one tool solid yield exact complete/proven one-to-one extrude -> union history into the active final member. 00007973 F5 -> F7 resolves by operation_role and freshly rebuilds. 00638700 F3 -> F5 records an ambiguous union successor and is rejected as selector_output_role_ambiguous. Two-sided extents, non-immediate/later consumers, split/merge/multi-solid, draft, incomplete/fuzzy history and all geometry, stable-ID, current-body, or source-STEP fallback remain outside this bridge; it does not complete general CAP_FACE or up_to_surface coverage.

CAP_FACE@1511 symmetric two-sided up-to-surface pair update (2026-09-13): an independent direct new_body extrude_add_two_sided may consume the two opposite far caps of its immediately preceding symmetric direct prism only as one symmetric_direct_prism_two_sided_up_to_surface_cap_pair. Both producer ends must be blind and undrafted; each source CAP query must be a singleton direct qUnion(makeQuery(... CAP_FACE ...)) whose OSD names the complete, unchanged original profile from one source sketch. The pair must have the same owner and exactly {extrude.start, extrude.end}; neither side is legal alone. The executor's two MakePrism.LastShape handles are already final-snapshot roles, and runtime resolves each through complete/proven boundary evidence. Fresh 00215642 F1 -> F3 resolves both roles and rebuilds its executable prefix. 00935255 F7 names two different owners and remains deferred. CUT, ADD/fuse, mixed/non-blind ends, draft, partial/IMPRINT/split profile selection, same-role or different-owner pairs, non-immediate/later lifecycle, other versions, and every geometry/stable-ID/current-body/source-STEP fallback remain rejected; this does not complete generic two-sided up_to_surface or CAP_FACE coverage.

SWEPT_FACE@1511 initial direct-sweep dress-up update (2026-09-12): an immediate fillet/chamfer may consume one side face from the same independent new_body direct PipeShell sweep only when its OSD contains exactly one edge from a complete direct analytic closed profile and one direct source path edge. The adapter records only Generated(profile_edge) face outputs that remain in the final solid by IsSame; the runtime resolves from the exact profile-edge anchor, while the path edge remains disambiguation evidence. 00330012 circle and four-edge source-form variants resolve by kernel_lineage and rebuild. A mismatched source pair is kept as a deferred query without geometry or stable-ID fallback; 00954785 confirms that a multi-segment qUnion path cannot inherit a representative source edge. Inner/split, segmented/spatial/hollow/fused/additive, continuation, copy/pattern/later lifecycle, shell/extent/sketch-host consumers and generic sweep side-face semantics remain deferred.

CAP_FACE@1511 direct-prism workplane update (2026-09-14): a following newSketch may attach to one physical cap of the immediately preceding, independent, undrafted, blind extrude_add_blind new_body prism. Lowering keeps the CAP output-role selector and a direct_prism_cap_face_workplane consumer contract; runtime resolves the live native face before rebuilding the sketch coordinates. Semantic validation rejects a delayed or multiple consumer. 00126630 F1 -> F2 supplies real lowering evidence, while an equivalent direct consumer resolves by operation_role. The separately constrained attached CAP-edge IMPRINT tuple below is its only profile-region consumer. This admits neither other CAP-edge profile regions, ADD/fuse, CUT, symmetric or drafted/non-blind producers, later lifecycle, COPY/pattern/boolean successors, nor static frame, stable-ID, geometry, current-body or STEP fallback.

Attached planar-IMPRINT external-boundary foundation (2026-09-14): the CDSL profile contract can name a session-resolved edge as an external fragment anchor only when a proven runtime face attachment supplies the splitter support. Runtime requires that the selector resolve to one edge which is IsSame to a native boundary of that support face. It is generally only a CDSL/runtime foundation; the one source-qualified CAP-edge form below is the sole current exception.

Attached direct-prism CAP-edge IMPRINT profile tuple (2026-09-14): FeatureScript 1511 may extrude one selected local circle from a preceding attached sketch only when its sole INTERSECT(VERTEX) witness pairs that curve with one direct CAP_EDGE from the exact same immediate independent blind new_body prism and exact CAP-face attachment role. The lowerer emits one planar_imprint.external_anchors selector, not boundary geometry; semantic validation requires its runtime face attachment, and runtime proves both the CAP edge's kernel lineage and native IsSame support-boundary membership before the splitter consumes it. When native attachment orientation reverses the source sketch normal, the session converts IMPRINT face_side only in its live materialized frame. 00126630 F1 -> F3 lowers completely and its F1/F3 prefix rebuilds (165528 mm3), resolving the CAP face by operation_role and CAP edge by kernel_lineage; its later F4 CAP-edge dress-up remains deferred. The owner-mutation rejection returns F3 to extrude_profile_topology:cap_edge. This is one real-history source tuple, not general CAP-edge profiles: multiple anchors/fragments/local curves, non-analytic or periodic curves, other attachment types, CUT/ADD, delayed or continued producers, copies/patterns/booleans, and all unproven region cardinality remain deferred.

Query family FeatureScript version Source evidence CDSL/runtime contract Verified boundary
qUnion / qIntersection / qSubtraction / QUERY_SET 1511 CADFS exported set-query syntax with exact recursive query_expr@1.0 nodes; qIntersection/qSubtraction ordering semantics additionally verified against the local Onshape 1511 standard-library mirror A proven_operand_* parent may be consumed by fillet or chamfer when every recursive branch ends in a direct, kernel-proven makeQuery leaf of one face/edge kind. Each parent declares active_member scope, reject-empty/all-multiple policy, and ordered child selectors; nested set nodes retain their own source expression and contract This remains a set compositor, not a leaf-query allow-list entry. Every branch must have the identical FeatureScript/library tuple, exact matching AST node, runtime-snapshot evidence, an existing executable provenance contract, and complete active results. The resolver recursively evaluates children, preserves operand order, deduplicates exact record IDs for union, and applies exact-record intersection/subtraction. A QUERY_SET in the declared feature.selectors slot of fillet/chamfer may pass that slot only to recursive query_operands, so an already-contractual immediate direct-prism/planar-IMPRINT CAP_FACE output-role leaf receives the normal owner, lifecycle and cardinality checks; 00965724 F2's {extrude.start, extrude.end} union converts completely and rebuilds. Output roles in metadata or non-query_operands structures, output-role leaves without that existing direct contract, mixed kind/version, geometry/stable-ID/binding evidence, filters, qAdjacent/owner/body queries, and shell/extent/hole/transform/reference consumers remain rejected, as do empty or partial/inactive branches. 00000715 F2 and 00354246 F2 remain valid evidence; a nested-union variant of 00000715 now also rebuilds successfully. This does not constitute general query-family completion.
CAP_FACE 1511 CADFS FeatureScript 1511 exported query history; direct prism BRepPrimAPI_MakePrism cap handles, direct BRepOffsetAPI_ThruSections.FirstShape/LastShape face handles for the loft subset Direct extrude.start / extrude.end builder output role; an immediate up_to_surface reference or shell face-removal selector may consume the one-sided prism role. An immediate shell may additionally consume either exact far cap of a direct one-circle symmetric blind prism, or loft.start / loft.end from the initial direct-loft subset. One-sided prism consumers must immediately follow a direct extrude_add_blind new_body blind producer. The symmetric shell-only subset requires FeatureScript 1511, one original circle source edge, independent undrafted extrude_add_two_sided, both blind ends, exact far-cap final IsSame roles and no continuation; 00019252 RP-passes after removing both caps and 00000316 resolves both caps before a later unrelated selector stops. The loft subset is FeatureScript 1511 only: exactly two direct closed IMPRINT sheet profiles, default/NEW operation, no prior solid, wire profiles, connections, matching or endpoint derivative options; the CAP OSD must name exactly one of those profile sources. isStart is not used to choose the role: source-profile position maps to loft.start/loft.end, then the resolver requires its unique complete active builder relation. 00023963, 00051031, and 00059941 resolve the shell role and execute; their final RP comparisons are rejected. 00157619 and 00139197 resolve before native OCC thick-solid failure. 00925274 F3 resolves prism extrude.start for up_to_surface; 00212904 F2 and 00789939 F2 resolve immediate prism shell removals through extrude.start and extrude.end. Multi-edge/hole/IMPRINT/split symmetric profiles, draft, ADD/CUT, non-blind ends, later mutations, other loft versions or forms, non-immediate consumers, and generic CAP queries remain unsupported. No stable-ID, binding-ID, geometry, current-body, or source-STEP fallback is used.
CAP_FACE primary ADD dress-up 1511 00051494 F3 -> F4 and 00660816 F3 -> F4 direct exported histories; transient direct-prism cap plus exact BRepAlgoAPI_Fuse relation A default ADD/fuse extrude_add_blind CAP role may drive its immediately following fillet or chamfer through primary_add_dressup_union_continuation The producer must be undrafted blind ADD/fuse with one old solid and one transient direct-prism tool. Runtime resolves only a complete/proven, one-to-one extrude -> union active-member successor, then expands the resolved physical face to actual body-boundary edges while excluding periodic seams. 00051494 resolves by operation_role and rebuilds; 00660816 has a one-to-many successor and remains selector_output_role_ambiguous. Shell/extent use separate contracts. Multi-cap sets, split/merge/multi-solid/IMPRINT/partial profiles, draft, non-immediate/later lifecycle, other consumers, stable-ID/binding-ID/geometry/current-body/source-STEP and transient-tool fallback remain rejected. This does not complete CAP_FACE, ADD, dress-up or S1 lifecycle coverage.
CAP_EDGE 1511 CADFS FeatureScript 1511 exported query history; direct-prism BRepPrimAPI_MakePrism.FirstShape(source_edge) / LastShape(source_edge) exact cap-edge handles, exact single-solid BRepAlgoAPI_Fuse history for the primary-ADD subset, plus the one-edge direct-PipeShell cap-face boundary witness A direct fillet/chamfer consumer of either (a) an independent, undrafted, new_body blind prism: one exact direct source-profile edge -> one role-qualified extrude.start or extrude.end cap edge, followed only by complete/proven one-to-one continuations to the active body; (b) a default primary ADD/fuse of one old active solid plus one direct blind-prism tool solid, through one exact extrude -> union continuation; or (c) the immediately preceding independent new_body direct PipeShell sweep with one direct circle profile edge and one direct path edge -> one role-qualified sweep.start or sweep.end cap edge Prism selectors must name one retained direct source entity and explicit CAP side. The adapter accepts a prism cap handle only after final-snapshot IsSame; resolver follows its source anchor and role through boundary, and accepts a continuation only when every relation is complete/proven and operation cardinality remains one-to-one. The primary-ADD tool is transient and never directly selectable: lowering permits it only for FeatureScript 1511 CAP_EDGE, immediate fillet/chamfer, direct undrafted blind extrude_add_blind, default ADD/fuse, singular old/tool solids and exact union history. 00953397 F7 and 00957101 F4 resolve extrude -> union and are RP approximate; 00406939 multi-solid ADD remains deferred. The sweep subset has no PipeShell per-edge history overload: it requires exact profile/path-endpoint OSD, a singleton profile/cap boundary edge, immediate fillet/chamfer consumer, and only the initial boundary relation. 00330012 CAP_EDGE source variant resolves by kernel_lineage and rebuilds; contradictory endpoint source is rejected with an F2 checkpoint. A direct all-circle annulus with one contained circle is included for the prism form when both source wires retain exact final-face membership; outer/inner roles remain distinct. A direct analytic region with a solver-split circular hole is included only when all four arcs carry the same explicit logical-circle source marker and that source maps uniquely to one unsplit profile circle; the adapter reconstructs one native wire before the same final-face check. Corpus evidence: 00021014 F2 resolves nine non-hole start/end selectors and is strict/RP passing; hole matrix 00479470, 00501170, 00526649 is RP passing and 00621329 is strict/RP passing. 00694309 F4 resolves F1's start CAP edge through F3's proven primary-cut continuation and is strict/RP passing. 00566233 resolves both F2 selectors before an OCC chamfer feasibility failure, while 00614954/00678961 resolve F2 before later unsupported queries. 00735367 resolves F2 from its line-outer/circular-hole region and executes F3 before an unrelated F4 unsupported query. Incomplete/mixed logical-circle markers do not create a circular-hole anchor; partial/branched continuation, trimmed/split profiles, multi-region-with-hole profiles, draft, multiple/two-sided extents, multi-solid/IMPRINT primary ADD, missing/partial/fuzzy union history, later lifecycle, and unproven boolean/SPLIT/COPY/pattern continuations are rejected. The sweep form additionally rejects multi-edge/inner-wire/split profile, segmented/spatial/hollow/fused/additive path, continuation, COPY/pattern/later lifecycle and non-dress-up consumers. This is not general CAP_EDGE replay.
CAP_EDGE 2491 CADFS 00049094 / 00404726 exported onshape/std/geometry.fs@2491.0 symmetric-extrude histories; two exact BRepPrimAPI_MakePrism.LastShape(source_edge) far-cap handles, each checked against the final fused result An immediate fillet/chamfer may consume an independent, undrafted new_body extrude_add_two_sided whose primary and reverse ends are both blind and whose lowered profile exactly equals the complete original source profile The executor records one prism delta per direction. The primary far LastShape is extrude.end; the reverse far LastShape is explicitly remapped to extrude.start. Source-plane FirstShape results are internal fusion seams and cannot be selected. Each role must retain complete/proven final-snapshot IsSame evidence; lowerer emits boundary only, with no continuation or fallback evidence. 00049094 F2 resolves four CAP edges as one QUERY_SET and the full history rebuilds, but comparison is rejected. 00404726 remains selector_query_unsupported at F2 because its selected multi-region/IMPRINT profile is not this complete direct profile. CUT, draft, non-blind/mixed extents, other versions, partial/IMPRINT/split/multi-region profiles, fused/boolean/COPY/pattern/later lifecycle and all geometry/stable-ID/current-body/source-STEP fallback remain rejected. This is not general 2491 CAP_EDGE replay.
CAP_VERTEX 1511 CADFS FeatureScript 1511 direct makeQuery(..., CAP_VERTEX, VERTEX, {disambiguationData: [OSD([edge, edge])], isStart}); BRepPrimAPI_MakePrism.FirstShape(source_vertex) / LastShape(source_vertex) exact cap-vertex handles A one-sided up_to_vertex extent may consume an independent new_body undrafted blind prism cap vertex. The OSD must name exactly two distinct retained direct profile edges from one source sketch with exactly one shared original endpoint. Between producer and consumer, only reference planes or independent undrafted new_body blind prisms are permitted. The resolver uses the grouped transient source-vertex anchor and only the role-qualified generated vertex -> vertex, boundary, complete/proven final-snapshot relation. A separate body may intervene only when the session maps the declared semantic member to exactly one old and one new solid snapshot, and every face/edge/vertex has exactly one reciprocal IsSame counterpart; the registry emits body_member_preserve only then. Aggregate body records are excluded because they are snapshot metadata rather than a member subshape. Vertex records are exported from a final B-rep explorer because build123d's repeated body.vertices() wrappers do not retain IsSame identity with prism history handles. 00330726 F1 -> F3 -> F5 resolves by extrude plus body_member_preserve and executes; its fresh full pipeline remains converted_partial / rebuilt_rejected due to later F7/F8/F9/F10 gaps and a 3 vs 4 solid mismatch. Other versions, changed/replaced/deleted or incomplete/non-unique members, draft, cut/fuse, split/IMPRINT/multi-profile geometry, non-shared or repeated OSD edges, two-sided extent, inactive/non-unique records, backward/non-uniform target projection, and every geometry/stable-ID/current-body/source-STEP fallback remain rejected. Thus this is a narrow runtime contract, not CAP_VERTEX family completion.
direct source sQuery(..., VERTEX, ...) extent datum 1511 A current source audit found 16 UP_TO_VERTEX histories: 15 direct source datum targets (00383982, 00444951, 00503730, 00510558, 00753006, 00894150, 00975649) plus one each CAP_VERTEX and INTERSECT(VERTEX) form; each direct datum has an explicit source workplane and named entity endpoint A one-vertex direct source query may terminate a one-sided or either side of a two-sided up_to_vertex extrusion as {kind: source_vertex, source_sketch_id, source_entity_id, point_mm} This is not a topology selector. Schema and semantic validation require one known source sketch, source entity and finite 3D point; selector binding skips it and runtime checks one positive uniform projection across the profile without resolving a topology record. 00444951's three extents convert, rebuild and strict/RP-pass in fresh /private/tmp/cadfs-source-vertex-extent-20260914-r2. The seven-sample matrix at /private/tmp/cadfs-source-vertex-extent-matrix-20260914 executes every datum feature in 00510558, 00753006, 00894150 and 00975649, while 00503730 preserves its F5 prefix; their complete comparisons remain rejected or partial for independent downstream modelling gaps. 00383982 stops before its datum feature at a separate unbounded IMPRINT profile failure. qAdjacent, set/derived/runtime vertex queries, CAP/COPY/pattern/IMPRINT/INTERSECT vertices, non-1511 source, invalid/non-finite datum and geometry/stable-ID/current-body/source-STEP fallback are rejected. This does not complete CAP_VERTEX, INTERSECT(VERTEX), generic vertex selection or general up_to_vertex.
BLEND_EDGE 1511 CADFS 1511 direct query history; fillet/chamfer Generated(source_edge) patch, Modified(source_face) target and final IsSame shared-boundary witness One immediate native fillet/chamfer consumer of a direct independent blind new_body prism: exactly one direct CAP_EDGE plus either a complete direct CAP_FACE, or the same-anchor direct SWEPT_FACE, in blendedFrom, with an identical single face query in blendedInto, resolves to one exact active final patch-boundary edge blend_sources retains the pair independently of outer selector fields. The resolver requires one source-profile edge anchor, its role-qualified cap edge, and either its direct cap face role or its exact Generated(source_edge -> face) swept-face relation, followed by one complete/proven exact_blend_boundary relation. 00414347 F3 is RP passing but not strict; 00690433 F3 executes but comparison is rejected; 00596552 F5 and 00456146 F4 now lower their same-anchor SWEPT_FACE leaves under this contract, but fresh replays stop respectively at the pre-existing native chamfer feasibility failure and another selector relation ambiguity, so they are contract/lowering evidence only. 00801833 F3 executes before its F4 checkpoint; 00614954 F3 rejects its cap-role mismatch. MERGE, SPLIT, COPY, BLEND_FACE, differing source anchors, multi-member sets, non-immediate lifecycle, ambiguous/incomplete/inactive history, angle/two-offset dress-up, other producer/version, and geometry/stable-ID/current-body/source-STEP fallbacks remain rejected. This is not general BLEND_EDGE replay.
BLEND_FACE 1511 CADFS direct dress-up sketch workplanes; final-snapshot native fillet/chamfer Generated(input_edge) patch handles A runtime-attached newSketch can host on one immediate native fillet/chamfer patch when one OSD source edge is also its sole role-qualified direct-prism CAP_EDGE; producer is an undrafted blind extrude_add_blind new_body direct profile prism blend_face_source stores no static frame, geometry, stable ID, or record ID. Semantic validation repeats the producer/dress-up lifecycle gate; resolver proves source anchor -> cap edge -> one complete/proven generated active patch, then uses that actual planar B-rep face for the workplane. 00313870 F2 -> F3/F4 and 00436592 F3 -> F4 lower as attached sketches. Fresh replays preserve checkpoints: 00313870 stops at a pre-existing F2 chamfer feasibility failure, while 00436592 executes F3 then stops at later F6 unsupported query; neither is strict/RP evidence. Multi-edge OSD, two-sided/IMPRINT/split/drafted/non-direct profiles, non-immediate/nested dress-up, MERGE/SPLIT/COPY/pattern/boolean successors, non-planar/ambiguous/partial/inactive patches, other versions, and geometry/stable-ID/current-body/source-STEP fallbacks remain rejected. This is not general BLEND_FACE or generic sketch attachment coverage.
COPY 1511 CADFS 00252195 direct COPY(CAP_EDGE) plus 00573124/00951631 immediate COPY(CAP_FACE) workplane histories; exact direct-prism cap and primary-cut BRepAlgoAPI_Cut history An immediate fillet/chamfer may consume one CAP edge, or one following sketch profile/hole location may attach to same-owner CAP face, from an undrafted default blind extrude_cut_blind The edge form requires primary_cut_cap_edge and one direct source edge. The face-host form requires primary_cut_cap_face_workplane: semantic preflight cross-checks its complete unchanged OSD set against the producer's actual direct profile source sketch/entities, then runtime requires one role-qualified cap -> transient-face boundary and one same-owner complete/proven subtract continuation to one active planar face. Only then does runtime derive a native-UV/support-plane workplane and re-resolve local sketch coordinates. Both return copy_lineage; transient tools are never selectable. 00252195 resolves then hits native chamfer failure; 00573124/00951631 rebuild but fresh strict/RP comparison rejects both, while non-immediate 00252794 F8 remains deferred. COPY `SWEPT_FACE
SWEPT_BODY 1511 CADFS FeatureScript 1511 exported singleton qUnion([makeQuery(..., SWEPT_BODY, EntityType.BODY)]) history An immediate one-sided up_to_body extent may reference exactly one active body record produced by a preceding independent new_body blind prism The source body must be the immediately preceding extrude_add_blind, with result_mode: new_body, blind undrafted direct-prism semantics, and an active producer body record. Lowering emits only active_body_member evidence with body_member_contract: direct_new_body; resolver proves the active record and producer identity, then returns body_member. 00694309 F3 resolves this reference; its F4 strict/RP pass is separately established by the bounded CAP_EDGE continuation contract, not by widening this body-member contract. Later successors, ADD, cut/revolve/sweep, COPY, boolean/pattern/delete, multiple active bodies, multiple query items, other versions, and all stable-ID, geometry, binding-ID, aggregate/current-body fallbacks are rejected.
multi-source transform COPY(BODY) 1540 evidence A direct COPY(instanceName=1) chain from one direct source of a preceding makeCopy:true transform with at least two selected body sources Explicit booleanBodies target/tool selection may consume the source-qualified copy through {transform_feature_id, source_feature_id} The owner must be preceding, be transform_bodies, preserve at least two direct source_feature_ids, and retain the selected source's independently active COPY member. Schema, semantic validation, capability preflight and executor reject an owner/source mismatch, single-source COPY, a producer aggregate, inactive member, targetless COPY boolean and any geometry/stable-ID/current-body fallback. The corpus has no native COPY-to-boolean history: a source-only contract variant extends real 1540 00699847 F3's two-source COPY with F5 booleanBodies; all five features lower and execute, but it is not strict/RP evidence and does not mark generic COPY lifecycle complete.
single-source chained transform COPY(BODY) 1511 CADFS 00184423 and 00322866 direct COPY(instanceName=1) histories retain an original SWEPT_BODY owner while each transform consumes the preceding explicit member A make_copy:true transform_bodies feature may retain {source_feature_id, active_member_feature_id} provenance metadata when exactly one direct runtime source is the immediately preceding active COPY member Lowering derives the semantic source only from the recursive derivedFrom chain and emits one alias only when it differs from the selected source_feature_ids member. Schema/semantic validation require one single-source make_copy transform, one preceding semantic source, and an alias member exactly equal to the direct selected source; aliases never participate in runtime body selection. 00184423 F3--F5 and 00322866 rebuild in fresh RP pipeline as rebuilt_strict and rebuilt_approximate. Multi-source/aggregate COPY, patterns, boolean/delete/non-copy successors, missing or mismatched members, arbitrary transforms, selector topology propagation, and all geometry/stable-ID/current-body/source-STEP fallback remain rejected. This is body-lifecycle provenance only, not general COPY or transform coverage.
qOwnerBody / OWNER_BODY 1511 FeatureScript 1511 query AST plus a synthetic 00694309 history variant that replaces its equivalent direct SWEPT_BODY reference with qOwnerBody(makeQuery(..., SWEPT_FACE, FACE, ...)) A one-sided up_to_body extent may project one direct, kernel-proven SWEPT_FACE or direct builder-proven CAP_FACE input to its exact active body record The parent must preserve filter: owner_body with one typed nested selector, identical FeatureScript/library tuple, exact_input_owner, active_member, reject-empty and one-result policy. Runtime first resolves the child with its existing provenance contract, requires exactly one result whose body_id equals the active aggregate ID, then returns the unique non-transient body record with that same ID. It does not infer ownership from the current aggregate, feature creator, geometry, stable/snapshot/binding ID, or partial/multi-record lineage. Multi-solid member IDs, nested/query-set inputs, later producer lifecycle, non-direct topology producers and generic qOwnerBody consumers remain rejected. The corpus currently has no native qOwnerBody call, so this is a synthetic contract boundary, not query-family completion.
OFFSET_FACE 1511 CADFS FeatureScript 1511 exported query history; a complete direct-prism profile OSD set may also name the shell's retained cap (a) shell.offset_face builder output role plus one TDD source cap, or (b) an immediate extrude_from_face profile from the one retained cap of a direct-prism shell (a) requires an immediate direct shell owner and one explicit extrude.start or extrude.end true dependency. (b) is a separate shell_retained_direct_prism_cap_offset_face_profile contract: source and library must be 1511; the immediate shell depends only on an undrafted direct new_body blind prism, removes exactly one of its CAP roles, and the OFFSET query has exactly one OSD whose source-edge set equals the complete unchanged direct profile. The lowerer names the opposite, retained CAP role as output_role_source; semantic validation and preflight repeat the immediate-owner, single-removal, direct-producer, complete-set and blind additive-new-body checks. Runtime selects only the unique active shell.offset_face carrying the exact complete/proven kernel relation from that retained role, never a wall or closing descendant. 00719927 F1--F4 executes and F3 resolves this way in output/offset-face-retained-cap-20260913, but its final strict/RP comparison is rejected, so it is execution evidence only. Partial/multi-source OSD, multiple removals, the removed cap, draft/cut/fused/revolve/sweep/COPY/pattern producers, non-immediate shell/lifecycle, non-1511 source and geometry/stable-ID/current-body/source-STEP fallback remain rejected.
OFFSET_EDGE 1511 CADFS 1511 shell history in either (a) singleton OSD plus singleton TDD direct-prism CAP_EDGE, or (b) one OSD containing two distinct direct profile edges with one shared original endpoint; exact MakePrism and final-snapshot shell history An immediate fillet/chamfer may consume (a) one retained one-sided direct-prism cap edge through direct_prism_shell_offset_edge_tdd, or (b) one direct-prism source vertex's swept edge through direct_prism_shell_offset_edge_vertex TDD requires matching outer/nested source edge and routes only through its requested `extrude.start
SWEPT_FACE 1511 CADFS FeatureScript 1511 exported query history; direct-prism BRepPrimAPI_MakePrism.Generated(edge) relation plus final-snapshot BRepAlgoAPI_Cut.Modified/Preserved target history, and direct-PipeShell Generated(profile_edge) final-face outputs An immediate fillet/chamfer consumer or shell removal, a one-sided up_to_surface extent, or the separately paired shell successor two-sided extent may use a retained direct-prism source-profile edge -> generated side face, with only complete/proven continuations to one active face. Separately, an immediate fillet/chamfer may use an independent new_body direct PipeShell sweep with one selected edge from a complete direct analytic closed profile and one direct path edge -> initial generated side face The prism contract requires an independent, undrafted, new_body blind source and one exact direct wire/face construction anchor. The one-sided extent variant carries no output role, stable ID, binding ID, or geometry hint. immediate_retained_source_prism_swept_face_up_to_surface separately admits one immediate 1511 new_body blind prism made from an IMPRINT-selected profile only when exactly one OSD edge is unchanged and singleton-identical in both selected and original source profiles; it permits only that next one-sided extent and boundary, never continuation. Semantic validation and capability preflight repeat the producer/source-import/edge witness, and runtime requires exact generated edge-to-final-face lineage. 00408613 F1 -> F3 resolves F0/E0.bottom by kernel_lineage; its later F4 CAP_EDGE failure retains the F3 checkpoint. Tampering the anchor to the excluded E1 is rejected by both gates. The paired symmetric_direct_prism_shell_swept_face_up_to_surface_pair requires exactly two distinct original non-construction line anchors from one prism, immediately followed by a shell depending only on that prism; a target side selected for shell removal is rejected so a shell.closing_descendant cannot stand in for shell.offset_face. Runtime separately proves each edge -> prism wall -> shell.offset_face chain. 00180262 F1 -> F2 -> F4 resolves both targets and executes, but its RP comparison is rejected. For a single-solid primary cut, target-side builder history is registered independently of whether its tool has direct-prism history; transient tool topology remains restricted to the separate source-qualified INTERSECT contract. The sweep subset requires an exact two-item profile/path-edge OSD, a complete unique source-edge list for the one profile contour, and a source path query with exactly one sQuery; every Generated(profile_edge) face is final-snapshot IsSame verified, runtime anchors only on that profile edge, and source-pair failure stays a deferred query without geometry/stable-ID fallback. 00330012 circle and four-edge source-form variants resolve and rebuild; real 00954785 multi-segment path remains deferred. Resolver traverses only the requested result topology kind and rejects partial, split, merge or inactive branches. 00925274 resolves F1 E0 through F3, F6, F9 and F12 target continuations and is strict/RP passing. Direct all-circle construction includes one annular hole; independently constructed direct circle regions retain one delta per source face only when every generated result remains in the final snapshot. IMPRINT/split source profiles other than the singleton exact-edge extent tuple, draft, fused source results, unproven/split continuations, revolve, inner profile sweep, multi-segment/spatial/hollow/fused/additive sweep, loft, copy and pattern are rejected. The sweep form also excludes continuation, later lifecycle and shell/extent/sketch-host consumers except the stated pair. This is not family completion.
SWEPT_EDGE 1511 CADFS FeatureScript 1511 exported query history; direct-prism BRepPrimAPI_MakePrism.Generated(vertex), direct full-revolve BRepPrimAPI_MakeRevol.Generated(vertex), and direct-PipeShell Generated(profile_vertex) relations, all verified by final-snapshot membership Either (a) the existing independent, undrafted, new_body blind-prism source vertex -> generated vertical edge contract, (b) an independent FULL revolve_add new_body from the original non-IMPRINT source profile and same-sketch line axis -> one active swept circular edge, or (c) an immediate fillet/chamfer on an independent new_body direct PipeShell sweep: two adjacent source profile edges -> one source vertex -> one initial swept edge Every form requires exact direct source-edge anchors with one shared endpoint, complete active final-membership relations, and no geometry/stable-ID/current-body fallback. The prism form retains its analytic-hole boundary; the revolve form registers only exact Generated(vertex) edge handles and permits initial boundary plus only complete/proven one-to-one continuation. The sweep form requires a complete unique direct analytic contour, an exact three-item OSD of two adjacent profile edges plus one single sQuery direct path edge, and only initial boundary consumption; its adapter records only final-solid Generated(vertex) edges. 00330012 four-edge/one-line source-form resolves and rebuilds; a non-adjacent pair is deferred. A fresh all-corpus scan found 12 native sweep SWEPT_EDGE histories but none meets this strict producer/path/consumer contract, so it is not real-corpus coverage. 00025622 F2 and 00048326 F3 rebuild strict through the full-revolve path; 00407186 F2 resolves initially, while its later F3 continuation is correctly rejected as non-unique. IMPRINT/materialized 1511 revolve profiles, split/merge/deletion, partial/surface/additive/fused revolve, axis/profile from different sources, draft/multiple/two-sided prism, boolean/SPLIT successors, sweep profiles with circle/inner/split forms, segmented/spatial/hollow/fused/additive paths, sweep continuation, loft, copy and pattern are rejected. Existing prism evidence remains 00000715 F3, 00007264 F2 (comparison-rejected), 00039669 F2 (strict/RP), and 00151159 F2 (RP). This is not family completion.
SWEPT_EDGE 2491 CADFS 00404735 F1/F3 exported onshape/std/geometry.fs@2491.0 history; BRepPrimAPI_MakeRevol.Generated(vertex) verified against the final solid snapshot A full, independent revolve_add new_body with a direct profile or an explicitly verified complete unchanged materialization, and a direct in-sketch axis: a uniquely identified non-construction source vertex, expressed by its complete incident source-edge set -> one active swept circular edge The lowerer requires FULL, exact source/library tuple, the profile contract above, a producer still present in the history, at least two distinct direct source edges with exactly one shared endpoint, and no geometry/stable-ID/current-body fallback. The adapter registers only Generated(vertex) edge handles which pass final-result membership; resolver permits the initial boundary and subsequently only complete/proven one-to-one continuation relations. In 00404735, F3 (E0/E5) lowers with kernel_history evidence and rebuilds; F2 remains deferred because its OSD pair does not identify one direct shared endpoint. Partial/surface/additive/fused revolve, changed/incomplete/split materialization, axis/profile from different sources, axis endpoints, single/non-unique source, unsupported library revisions, split/merge/deletion, and all generic revolve/SWEPT_EDGE forms remain rejected. This is a single 2491 producer contract, not general revolve or family completion.
INTERSECT 1511 CADFS FeatureScript 1511 exported query history; OCC boolean SectionEdges() plus exact Generated(face) handles from both inputs One INTERSECT EDGE of exactly two source-qualified direct-prism CAP_FACE/SWEPT_FACE inputs from either one explicit boolean_bodies target/tool pair, or one immediate primary extrude_cut_blind target plus its transient direct-prism tool snapshot The adapter creates a relation only when the same section edge is returned by Generated(face) for exactly one face in each boolean input and IsSame binds all three handles to the input/final snapshots. CAP input recovery reads the unique complete/proven builder-role fact from its producer delta, never a cached output role on a later continuation; 00789417 therefore resolves F12's F10-snapshot section edge, while F11's missing active edge continuation correctly rejects its later consumer as selector_body_member_inactive. A primary cut records its tool only as transient historical topology: exactly one active target solid/member, one tool solid, complete direct-prism anchors/history and one immediate consumer are required; the tool itself cannot be selected. Resolver requires one complete relation, the intersection/one policy and final active member. Unqualified SectionEdges(), duplicate output edges, incomplete source snapshots, keep-tools, multiple target/tool members, copied/transformed/patterned/TDD/IMPRINT inputs, non-direct prisms, primary query disambiguationData whose FeatureScript semantics are unverified, and unknown versions remain rejected. This is a contract test boundary; 00020311/00029250 retain their F3 checkpoints because their OD(0/1) selectors are deferred. Real-corpus RP evidence is not yet sufficient to mark general INTERSECT replay complete.

Source Sketch Path Queries (Not Runtime Selector Capabilities)

This section is intentionally outside the resolver allow-list above. The query does not select rebuilt body topology: it selects source sketch reference-wire geometry while lowering a sweep path. It therefore creates no selector_intent, kernel-lineage relation, or stable-ID fallback permission.

Source query / consumer FeatureScript version Source evidence Lowering and runtime boundary Evidence
qUnion([qBodyType(qCreatedBy(sketch, EDGE), WIRE)]) with optional exact qConstructionFilter(..., NO) as sweep.path 1511 + direct onshape/std/geometry.fs@1511.0 Local Onshape standard-library mirror query.fs: BodyType.WIRE describes sketch curves (lines or curves), qBodyType retains entities owned by that body type, and qConstructionFilter(..., NO) retains only non-construction entities. qCreatedBy(..., EDGE) excludes source sketch points. The repository does not vendor the exact 1511 standard-library snapshot, so this is source-semantics evidence rather than a claim that all revisions are compatible. A singleton non-construction line / bspline retains the existing contract. One direct source sketch may provide a multi-curve result, or an outer union may contain two or more exact versioned source-wire operands. All resulting line / arc / non-periodic bspline curves must form one source-ordered, connected, non-branching open wire with no repeated source entity; two-point B-splines require both endpoint derivatives. For cross-sketch operands, each curve is captured through its explicit source workplane to a global self-contained spatial path.segments variant, with no common-workplane projection, datum/result/final-STEP/current-body lookup, selector intent, kernel lineage, CAP output-role, or stable-ID fallback. A NO filter removes construction curves; without it any construction curve rejects the contract; skPoint is not an EDGE. Closed/disconnected/branching/repeated/degenerate paths, circles/ellipses/unknown curves, non-exact wrappers/filters, other versions, loft guides, surface/profile consumers, and runtime-body uses remain deferred. The fresh seven-sample RP matrix output/qbodytype-direct-sketch-wire-matrix-20260910-v1 rebuilds all singleton direct-path cases: 00191739 is strict, 00726304 is RP-only approximate, 00227428/00287471/00500952/00816123 are comparison-rejected, and two-point B-spline 00896761 is comparison_timeout at 60 seconds. 00885126 F2 lowers E0 -> E2.filletArc -> E1, executes one solid sweep, and preserves its prefix STEP in /private/tmp/cadfs-segmented-wire-00885126-20260910; 00786708 executes F2/F5/F7 then is rebuilt_rejected. Cross-sketch 00610979 F4 captures filtered F1/F3 source wires as four global segments and rebuilds one solid with no runtime diagnostic in output/cadfs-spatial-wire-00610979-20260910; complete-history comparison is rejected because later CAP_FACE-dependent F5/F9 remain deferred and source has four solids. These are execution classifications, not similarity claims.
qUnion([qConstructionFilter(qBodyType(qCreatedBy(sketch, EDGE), WIRE), NO)]) as loft ToolBodyType.SURFACE wire profiles 1511 + direct onshape/std/geometry.fs@1511.0 Same source-only query semantics; 00174697 supplies two independent circular source wires on parallel explicit planes. Exactly two distinct source sketches, each with one direct closed non-construction wire (one circle or a connected non-branching line/arc/B-spline cycle), may lower to loft_surface. The adapter uses BRepOffsetAPI_ThruSections(False, False) and registers an independent shell; it never fuses it into the active solid or grants topology/provenance selector continuation. Spine, guides, connections, matching, endpoint derivatives, sheet profiles, non-NEW operation, mixed/derived/runtime wires, construction ambiguity, open/disconnected/branched/inner wires and other library versions are deferred with loft_surface_wire_profiles. 00174697 lowers and freshly rebuilds to one shell (surface_count: 1, solid_count: 0). This is one direct surface-loft form, not general qBodyType, construction filter, loft, or surface-selector coverage.
qBodyType(qCreatedBy(sourceSketch, EDGE), WIRE) as a LINE_ANGLE datum axis 1511 + direct onshape/std/geometry.fs@1511.0 Same source query semantics, with cplane.fs::lineAnglePlane consuming the selected source axis rather than runtime model topology The exact query result must contain one line from one source sketch. The line's explicit source workplane supplies the global axis; construction is valid for datum geometry. The bridge rejects multi-line, arc/B-spline, filters/composition, derived topology, unknown versions, and runtime body selection. It emits a CDSL frame, not a selector intent or lineage claim. 00506444 F6 selects one construction line from each of F4/F5, lowers one reference plane, and allows F8 to execute in a fresh rebuild. 00474220 F4 selects an arc wire and remains a deterministic line-angle reference selection is unsupported defer. This is one real 1511 positive form, so it does not complete qBodyType, construction filtering, or general datum-axis coverage.
Direct-prism CAP_VERTEX as a THREE_POINT / PLANE_POINT datum point 1511 + direct onshape/std/geometry.fs@1511.0 A direct makeQuery(..., CAP_VERTEX, VERTEX, {disambiguationData: [OSD([edge, edge])], isStart}) names one source-defined physical point, rather than a live selector result The owner must be an undrafted independent new_body blind prism whose lowered profile exactly equals its original direct source profile. OSD must contain exactly two distinct non-construction profile edges from that source sketch with one shared endpoint. The lowerer maps this endpoint into the selected prism cap frame; it allows datum, independent undrafted new_body blind prisms, and one exact producer CAP_FACE single-cap shell after the producer because CAP_VERTEX remains a producer-history datum, never a shell-result vertex. It emits an explicit cPlane frame, no selector intent or topology lookup. The common analytic-contour region solver also requires a hole loop to lie strictly inside its outer loop at every sampled boundary point; shared/touching loops remain independent regions instead of creating an invalid self-hole. Hole/boolean/other dress-up/transform/COPY/pattern/delete mutations, draft/ADD/CUT/two-sided, IMPRINT/split/multi-profile, ambiguous/repeated endpoint source, other versions, geometry/current-body/stable-ID and STEP fallback are rejected. 00243142 and 00245768 F2/F4 complete replay in fresh output/cplane-cap-vertex-datum-20260912-r2; both final comparisons are rejected (00245768 also has a solid-count mismatch). 00212904 F2 direct CAP shell followed by F3 THREE_POINT also lowers; both requested and removed cap positions remain producer-history datum points. 00053942 F4 follows a hole and is rejected as CAP_VERTEX datum source is unsupported. This is a source-datum bridge only, not CAP_VERTEX selector, generic cPlane, or query-family completion.
PLANE_POINT with direct-prism CAP_FACE and direct source vertex 1511 The FeatureScript query AST retains FACE and VERTEX kinds independently of whether either query uses qCreatedBy; a direct blind-prism CAP frame supplies the physical face frame The cPlane must have exactly two entities: one face and one vertex. The lowerer takes the face frame and locates the direct source vertex in its explicit source sketch frame; it does not reinterpret either query as a runtime topology selector. Multiple faces, multiple vertices, untyped/extra inputs, and unresolved source frames defer. 00228556 F3 uses F1 CAP_FACE plus F2 sQuery(..., VERTEX, ...); F1/F3/F6 execute in output/cplane-plane-point-cap-face-20260912, with RP pass and strict volume/area precision diagnostics. No runtime body, stable-ID, geometric-nearness, or STEP fallback is used. General topology faces/vertices, query composition and generic PLANE_POINT semantics remain deferred.
Direct-prism SWEPT_EDGE as a LINE_ANGLE datum axis 1511 + direct onshape/std/geometry.fs@1511.0 A direct source-profile vertex, identified by exactly two distinct original profile edges with one shared endpoint, plus the one-sided prism span The producer must be the immediately preceding undrafted new_body blind extrude_add_blind; its lowered profile must exactly equal the complete original source profile. The datum axis is calculated from the source vertex copied to the prism start cap and the explicit start-to-end span. It is not a runtime selector, topology lookup, stable-ID, geometry, active-body, or STEP fallback. Derived/combined edge queries, non-immediate producers, draft, ADD/CUT/two-sided/IMPRINT or changed profiles, ambiguous/repeated/non-shared OSD edges, other versions, and a derived face/curve as the second LINE_ANGLE reference remain deferred. 00040198 F2 (single axis) and 00722278 F2 (axis plus Front datum) lower to executable reference planes and complete fresh rebuilds. 00644299 F2 deliberately remains deferred because its second reference is a derived SWEPT_FACE; this narrow datum bridge does not implement general derived cPlane semantics.

Deferred source queries

Remaining Deferred Tuples

The following source families are registered capability work items, not runtime allow-list entries. They intentionally remain feature_script_query with a non-executable multiplicity: "none" policy until their source contract, complete final-snapshot builder history, consumer semantics, and multi-corpus evidence are all present.

Query family Observed corpus Required contract before enabling Current status
BLEND_EDGE remaining tuples 382 queries in 183 CADFS histories, including 00407186 F5 and 00614954 F3 Explicit N:M source-set, producer/lifecycle and final-snapshot incidence contracts for SWEPT_*, MERGE, SPLIT, COPY, BLEND_FACE, non-immediate consumers and dress-up variants The direct-prism CAP_EDGE/CAP_FACE tuple is registered above. All other tuples remain non-executable feature_script_query selectors; no geometry, stable-ID, current-body or source-STEP fallback is authorized.
MERGE(FACE) sketch host 294 direct outer sketch workplanes, including 261 FeatureScript 1511 hosts; 90 have two SWEPT_FACE inputs and 77 have one explicit OSD edge per input A source-to-body-member merge operation model, complete/proven operation-wide N:M final-face relations, explicit active-member scope and an attached-sketch consumer contract No MERGE form is executable. An outer MERGE must not inherit a nested CAP_FACE or SWEPT_FACE static frame: 00013930 F7, 00020631 F4 and 00036155 F5 now stop at a named sketch_deferred diagnostic while preserving preceding executable features. NewBodyOperationType.ADD correctly takes CDSL's fuse path, but its *.boolean.opBoolean owner token, aggregate, or generic union history cannot by itself authorize a particular N:M source-face successor. Geometry, face order, stable ID, aggregate/current body and source STEP are forbidden fallbacks.
MID_CAP_EDGE 49 queries in 23 CADFS histories: 1511 loft/sweep positions 0--6 and 1549 loft positions 0--1, including 00330207, 00309311, 00315819, and 00703441 Exact source/library semantics for capPos, an operation-wide source-section/edge relation, and a final-snapshot edge handle for every selected section; the consumer must then prove cardinality and active body membership OCP BRepOffsetAPI_ThruSections 7.9.3.1 exposes only no-argument FirstShape/LastShape; for the default smooth loft used by every observed MID history, Generated(source_edge) returns a side face and source/intermediate section edges are absent from the final snapshot. ruled:true preserves section edges, but no observed MID history requests that distinct loft semantic. Therefore an index, face-boundary traversal, geometric coincidence, stable ID, current body, or source STEP cannot stand in for capPos; all MID queries remain non-executable feature_script_query selectors.

Every CADFS topology selector now retains a selector_intent, including selectors for query families and source versions not present in this matrix. Such selectors use evidence: "feature_script_query" and a non-executable multiplicity: "none" policy. Their geometry and legacy stable ID remain diagnostic context only: TopologyRegistry.resolve rejects them before either can bind. Direct datum planes are the sole exception; they use query_family: "GEOMETRIC" with evidence: "explicit_datum" and retain the explicit-frame resolution path.

COPY(FACE) does not inherit a nested CAP_FACE workplane frame. A separate primary_cut_cap_face_workplane contract admits only a 1511 immediate default primary extrude_cut_blind, same-owner direct COPY(CAP_FACE), complete unchanged source-profile OSD, and one following sketch consumer. The runtime proves one transient direct-prism cap role and its same-owner complete/proven subtract continuation to one active planar face, then derives the workplane from that exact face's native UV orientation and support plane before resolving the local profile or hole locations. 00573124 F3--F5 and 00951631 F3--F5 rebuild by copy_lineage; both fresh strict/RP comparisons are rejected, so this is execution evidence only. 00252794 F8 remains deferred because F5/F6/F7 mutate the body after F3. Source frames, stable/snapshot IDs, geometry, current body, source STEP, nonplanar/ambiguous/partial successors, COPY(SWEPT_FACE|BODY), patterns, transforms, draft/two-sided/non-direct tools, opposite-direction attached holes, other versions and non-immediate lifecycle are not fallbacks or covered forms.

COPY(SWEPT_FACE) has a separate primary_cut_swept_face_workplane form. It requires 1511, one same-owner immediate default undrafted blind primary cut, and one direct original source-profile edge. The runtime follows only the exact source-edge anchor to one complete/proven transient prism side face, then one same-owner complete/proven subtract continuation to a single active planar face; the native face supplies the workplane. 00321940 F3--F5 rebuilds with copy_lineage, but fresh strict/RP comparison is rejected; 00171671 lowers its F4 attachment before an unrelated F5 selector remains deferred. 00326645 is a real rejection because its side face has no unique subtract continuation. Two-sided/IMPRINT/partial/non-direct or multi-edge profiles, non-immediate, nonplanar, split/merge/inactive successors, body/pattern/transform COPY, other versions, static source frames, stable IDs, geometry, current body, and source STEP remain outside this contract. A fresh 9,347-history lowering pass materializes 12 such attachments; that count is contract-shape coverage only, not runtime or comparison acceptance.

This closes the former legacy path where 1793 loft SWEPT_EDGE selectors in 00005267 F4 could bind from endpoint bounding boxes despite no registered FeatureScript query contract. The current result is a selector_query_unsupported failure with the executable F3 checkpoint exported. Equivalent bounded rejections now cover unproven CAP/SWEPT/OFFSET/COPY/INTERSECT fallbacks; they do not reduce the matrix's direct-prism coverage or claim general query support.

The repository does not currently vendor the FeatureScript standard-library sources for other versions or makeQuery encodings. They are not inferred from a 15xx prefix or a single corpus sample.