Filing gate: ① a product defect with a named producer. Finding class (c), with a (b) half. reach: the published skill skills/objectstack-query, which ships to customer projects and which AI authors read, at origin/main, read by this seat:
SKILL.md:185 "Nested Relation Filters", with { object: 'account', where: { contact: { profile: { verified: true } } } };
SKILL.md:74 (query.joins → "a nested relation filter"), :332 ("to filter by a related record's column use a nested relation filter") and :341 ("Filter parent by child conditions | Nested relation filter");
rules/filters.md:132 "Nested Relation Filters", marked as a working form.
The reading of the drivers is #20745's dev's (os-dev-report on #20745, out_of_scope_findings[0]), measured on memory, SQLite and PostgreSQL 16.
Filed by the domain:engine execution seat 1 (session_01DEvba2nBuD4tWzfq8r8NFY, os-support-ai). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim. Reader: triage, then the seat that owns skills/** (a governed surface, Tier H).
What happens
An AI author who follows the skill writes where: { account: { industry: 'tech' } } on a lookup.
So the skill teaches a form that silently answers nothing on one driver and is refused on the rest, and that the engine is about to refuse everywhere. The code-side docs page (content/docs/kernel/contracts/data-engine.mdx) is corrected in PR #20781; the skill is outside that PR because skills/** is governed.
Scope for whoever takes it (⛔ not a ruling)
Dedupe
mcp__github__search_issues, repo-scoped, open and closed, in the act that filed this card:
Dedupe words: objectstack-query skill nested relation filter · skill teaches refused filter form · filters.md nested relation
Generated by Claude Code
Filing gate: ① a product defect with a named producer. Finding class (c), with a (b) half.
reach:the published skillskills/objectstack-query, which ships to customer projects and which AI authors read, atorigin/main, read by this seat:SKILL.md:185"Nested Relation Filters", with{ object: 'account', where: { contact: { profile: { verified: true } } } };SKILL.md:74(query.joins→ "a nested relation filter"),:332("to filter by a related record's column use a nested relation filter") and:341("Filter parent by child conditions | Nested relation filter");rules/filters.md:132"Nested Relation Filters", marked as a working form.The reading of the drivers is #20745's dev's (
os-dev-reporton #20745,out_of_scope_findings[0]), measured on memory, SQLite and PostgreSQL 16.Filed by the
domain:engineexecution seat 1 (session_01DEvba2nBuD4tWzfq8r8NFY,os-support-ai). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim. Reader: triage, then the seat that ownsskills/**(a governed surface, Tier H).What happens
An AI author who follows the skill writes
where: { account: { industry: 'tech' } }on a lookup.main: memory answers 200 with no rows; SQL answers 400 in the driver's words ([finding] a no-operator object under a lookup, master_detail or json field answers per driver: the declared nested-relation filter returns no rows on memory and a 400 on SQL, and a json object comparand deep-equals on memory and is refused on SQL #20745's table).INVALID_FILTER/ 400 on every driver. The refusal names the route that works: filter the related object, then$inon its ids (or$containsper id on a multi-valued relation).So the skill teaches a form that silently answers nothing on one driver and is refused on the rest, and that the engine is about to refuse everywhere. The code-side docs page (
content/docs/kernel/contracts/data-engine.mdx) is corrected in PR #20781; the skill is outside that PR becauseskills/**is governed.Scope for whoever takes it (⛔ not a ruling)
$inon its ids;$containsper id on a multi-valued relation. It says the engine refuses a nested object under a relation field.Dedupe
mcp__github__search_issues, repo-scoped, open and closed, in the act that filed this card:skills/objectstack-query/SKILL.mdtells an agent that engineaggregaterefusessearch/searchFields— false since PR #20487 #20500 (open) is a different false claim in the same skill (aggregateandsearch); the rest are closed skill-sweep and census cards. None is the nested relation form.Dedupe words:
objectstack-query skill nested relation filter·skill teaches refused filter form·filters.md nested relationGenerated by Claude Code