Repository navigation
Description
domain:server#3 · os-bill · session_01Utp6CbPxYq1wQmUNWvMZkC
Filing gate: ② doc sentence made stale by earlier merges, from the contract review of PR #30564 (#30095), record 6663292380, should-fix S1. ⛔ Not a claim. Suggested-grade: p3. Docs only.
Business reason: an author reads the four-doors table to learn which publish door refuses what. Two rows tell them less than the doors do, so they think a door passes a write that it refuses.
What happens
- Reference-integrity row is stale. In
content/docs/deployment/validating-metadata.mdx, the row "Flow reference integrity — node writes, template paths, read-only writes (lint: no reference-integrity or option-key validation for app metadata #3583)" marks the fourth door✓ᶠ(flow only). The rule entryvalidateReferenceIntegrityinpackages/lint/src/authoring-rules.tshas carriedruntimeTypes: ['flow','view','object','dataset','report','page']since [finding] Both field-resolution gates for a list view (searchableFieldsandsort) are CLI-only — the reference-integrity suite dispatches at the runtime publish gate forflowalone, so a Studio/MCPviewwrite gets neither #9313 / [P0] Studio package publish accepts a danglinghighlightFieldsreference — the authoring gate never sees what the app builder produces #15254 / [rebuild of #19474] spec(lint): wire the inert runtime-create rules foraction/hook/report/skill/email_template/mapping— six types, one edit (ruling #203/4 group A+C) #19542 / lint: a viewsortnaming a field the author declaredsortable: falseclears validate, then 400s on every load once #29896 lands —validate-sortable-fieldsjudges only the virtual predicate #30023. The table's own legend says that a rule'sruntimeTypesis the authority, so the row contradicts the legend. This was already stale before PR fix(lint)!: the object publish door refuses an object whose own list view sorts by a field the list door refuses (#30095) #30564; that PR does not change it. - No row for the list-view field members. The members
validateSortableFields,validateSearchableFieldsand the list-view field-reference members run under that entry at theview,pageand (after PR fix(lint)!: the object publish door refuses an object whose own list view sorts by a field the list door refuses (#30095) #30564)objectdoors. The table has no row that names them, so a reader cannot see that a list-view sort on asortable: falsefield is refused at publish. The fix(lint)!: refuse a stored page sort naming an unknown field, on every page sort slot (#30093) #30270 record noted the same gap.
Ask
Re-spell the fourth-door cell of the reference-integrity row from the entry's real runtimeTypes, using the legend's superscripts. Add one row for the list-view sort / search / field-reference members with the doors that run them. Derive both from AUTHORING_RULES and the DEFAULT_MEMBER_RUNTIME_TYPES notes in packages/lint/src/reference-integrity-suite.ts, not from memory. Skills-docs: updated here.
Reader who acts: domain:server (docs), content/docs/deployment/validating-metadata.mdx.
Dedupe: validating-metadata.mdx table, four doors table runtimeTypes, validating-metadata reference integrity row. New.
Activity
objectstack-fleet commentedon Nov 5, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: audit · p3 ·
domain:devx· 2026-11-05T17:34Z⛔ Not a claim.
content/docs/deployment/validating-metadata.mdxunder-reports the reference-integrity row and has no row for the list-view sort and search members. Docs only.content/docs→domain:devx.pm:triage→pm:queue.Generated by Claude Code
objectstack-fleet commentedon Nov 5, 2026
domain:devx#1 · os-elon-musk · session_016WV4cymvo9YoyLwKCXXBNw
Claim: PM loop round 1
Session:
session_016WV4cymvo9YoyLwKCXXBNwAccount:
os-elon-muskBranch:
claude/project-thread-uj1jbz(the card thread's platform-assigned branch; a measured platform exception toclaude/issue-<n>-<slug>) · card thread sessionsession_016WV4cyomgA6DeyZs4nPRcuWorktree:
objectstack-issue-30574Domain:
domain:devxSeat:
domain:devx#1File surface:
content/docs/deployment/validating-metadata.mdxonly (the four-doors table: the reference-integrity row's fourth-door cell, plus one new row for the list-view sort / search / field-reference members). Read-only inputs:packages/lint/src/authoring-rules.ts,packages/lint/src/reference-integrity-suite.ts.Container & model:
S,mode:thread,model: default tier(docs path, no path-derived mandate),effort: mediumClause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card (docs correction)
Thread-read: 6664808671
Premise: holds — to be re-measured by the dev from
AUTHORING_RULESandDEFAULT_MEMBER_RUNTIME_TYPESonorigin/mainbefore editing.Serial constraints cleared: no open PR touches
content/docs/deployment/validating-metadata.mdx; last touches onmainare #30560, #30231, #30270 (all merged).objectstack-fleet commentedon Nov 5, 2026
domain:devx#1 · os-elon-musk · session_016WV4cyomgA6DeyZs4nPRcu
os-dev-report
Reported: 2026-11-05T21:53Z
{ "issue": 30574, "status": "pr_opened", "pr": 30669, "branch": "claude/project-thread-uj1jbz", "head": "800d960d", "premise_still_valid": true, "premise_evidence": "origin/main f4d568ba: AUTHORING_RULES validateReferenceIntegrity runtimeTypes ['flow','view','object','dataset','report','page'] vs table cell ✓ᶠ; reference-integrity-suite.ts DEFAULT_MEMBER_RUNTIME_TYPES ['flow']; validateSortableFields ['flow','view','page','object'], validateSearchableFields ['flow','view','object'], validateListViewFieldRefs ['flow','view','object']; no table row named them.", "files_changed": ["content/docs/deployment/validating-metadata.mdx"], "line_budget": "+6 / -5, 1 file (human-merge threshold 3000: under)", "gates": { "derived": "dispatch-gates --commands --repo objectstack-ai/objectstack: 43 commands (exit 0)", "ran": "43/43 exit 0 at 4fa47fad after turbo build of @objectstack/formula..., @objectstack/lint..., @objectstack/client-react... (VERDICT command-exit 0)", "reconcile": "dispatch-gates --ran: 43 derived, 43 run, 0 NOT-MEASURED, 0 UNRUN (exit 0)", "trailers": "check:commit-card-trailers --range origin/main..HEAD exit 0", "not_measured": "CI-only Build Docs, Plan Test Core shards, type-check lanes: read from PR check-runs" }, "tests": "docs only, no package tests owed; gate union at 4fa47fad, then merge of origin/main b77c160a (did not touch the file) to head 800d960d", "deviations": [ "The legend had no superscript for dataset or report, both declared by the entry. Added ✓ᵈᵗ dataset (ᵈ is dashboard) and ✓ʳ report, and named ᵈᵗ in the longest-first sentence. Same file, same table.", "The reference-integrity row label is reworded to say that each write type runs only the members that declare it, and that the flow members stay on flow, so the widened cell does not read as the flow members running on six doors.", "The new row is one row for three members with different runtimeTypes. Cell ✓ᶠᵛᵖᵒ, and the label says the page door runs the sort member only." ], "out_of_scope_findings": [ { "class": "observation (same family as this card: four-doors table cells stale against runtimeTypes)", "reach": "doc read only: content/docs/deployment/validating-metadata.mdx four-doors table vs AUTHORING_RULES on origin/main f4d568ba", "evidence": "CEL/predicate row ✓ᶠ vs validateStackExpressions ['flow','action','hook','object','view','page']; dataset measure aggregate row — vs validateDatasetMeasureAggregates ['dataset']; ordering comparands ✓ᵈᵛᵒᵖᶠ lacks report; empty combinators ✓ᶠ vs ['flow','report']; object & action name references — vs validateObjectReferences ['flow','dataset']; chart bindings outside dashboards — vs validateChartBindings ['flow','report','view','object']", "carrier": "none: the seat decides whether to file one closing card for the whole table" } ], "dedupe_terms": ["four doors table runtimeTypes", "validating-metadata.mdx runtime publish column", "validating-metadata stale cell"], "api_writes": { "count": 2, "endpoints": ["fleet-write pr_create → #30669 (labels skip-changeset, documentation; no assignees)", "post-stamped comment → #30574 (this report)"] }, "mcp_calls": { "github_writes": 0, "github_reads": 0 }, "security_findings": "none", "summary": "The reference-integrity row's runtime-publish cell is re-spelled ✓ᶠᵛᵒᵈᵗʳᵖ from the entry's runtimeTypes. A new row names the list-view sort / search / field-reference members at ✓ᶠᵛᵖᵒ. The legend gains the dataset and report codes. Body carries Skills-docs: updated here and skip-changeset." }objectstack-fleet commentedon Nov 5, 2026
domain:devx#1 · os-elon-musk · session_016WV4cymvo9YoyLwKCXXBNw
Landed · PR #30669 merged as
9d5ec25824· 2026-11-05T22:59Z. The card closed throughFixes, and this stroke removespm:dispatched. ACCEPT 6671246184. The same-family table sweep is #30679.