You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
build validation: report two visible fields with the same label on one object (split from #33506) #33545
Filing gate: ① (a split owed by a card in flight). Card #33506 (p2) found an AI-built object on staging carrying the system owner_id (label 「负责人」) and a new assignee user field also labelled 「负责人」: the grid shows two 「负责人」 columns and the kanban card shows owner twice. Triage's first touch (6886116954) put the authoring rule with the skills lane and named the build check as the build validation lane's work, to be split if the skills seat does not carry it. The skills seat carries the authoring rule on #33506; this card is the check.
What lands
The object build or validation step that authors run (the one the AI builder's integrity check calls) reports an object with two or more visible fields sharing one label (system fields included, after locale resolution) as an error with a readable message naming both field names.
Decide and record whether it is an error or a warning for objects already installed, so existing apps do not stop loading. That decision belongs to the owning lane; if it needs the maintainer, say so on this card.
Triage: first touch → domain:spec · p3 · 2026-11-15T00:51Z
⛔ Not a claim.
This is the build-check half split from #33506: an error for two visible fields with the same label. The primary fix (the authoring rule) is on #33506, so this guard is p3. It is a build lint (spec).
Claim: PM loop round 3
Session: session_01FEkQ5mecqk8M5q9vjKj6aS (seat); card thread session_01FEkQ5mdmzDcF58D1JdRH4y
Account: os-project-manager
Branch: claude/project-thread-g9ecx3
Worktree: the card thread's own checkout
Domain: domain:spec
Seat: domain:spec#4
File surface: packages/lint/src/** (the new object rule, its explanation and user text, tests, rule registry), shipped example metadata only if the narrowing hits it, packages/spec/src/migrations/entries/** only if an ADR-0087 entry is owed, root .changeset/ (stop on breach; explain in the report). ⛔ skills/** (the authoring half is on #33506, skills lane).
Container & model: M, mode:thread, model: default tier (dispatch-gates --tier: no path-derived mandate; review at CONTRACT_REVIEW_TIER by the seat: authoring narrowing), effort: high
Clause-②: no (narrowing)
Metadata-protocol: narrowed
Responsibility: objectstack lint (this repo) produces no finding for two visible fields sharing one label, so an AI-built object ships with duplicate columns (#33506, staging) | no platform path covers it today | any author or AI builder running os build / validate / lint or the publish door
Thread-read: 6886885827
Premise: holds
Serial constraints cleared: in-flight packages/lint/src claims: #33246 (PR #33434, validate-expressions*.ts), #32134 (PR #33517, validate-managed-api-methods*.ts, rule-explanations.ts), #33153 (seat 1, PR #33442). Shared file risk = rule-explanations.ts and the rule index: additive entries only, the merge queue arbitrates; no same-region edit.
Severity: error at the author door; installed apps unaffected at load (the dev verifies no boot/registration path runs the rule, else fork). Ruling-ref: 「开放 p3卡认领」 (Leehom, 2026-11-14T21:21Z).
Claim amendment to 6887573651 (same session, same branch claude/project-thread-g9ecx3): file surface widened by four docs transcripts, count only.
File surface (added): content/docs/deployment/cli.mdx, content/docs/deployment/validating-metadata.mdx, content/docs/getting-started/build-with-claude-code.mdx, content/docs/ui/react-pages.mdx — each only the printed author-time rule count (67 → 68), which check:docs-transcript-drift pins. Nothing else in those files.
Also recorded from the dev's reading: the rule runs at os build / os validate / os lint and at the publish door on object writes (differential: only a write that creates the clash is refused); no boot or registration path runs the authoring rules, so the severity ruling stands without a fork.
Activity
objectstack-fleet commentedon Nov 15, 2026
triage#1 · hotlong · session_01Q4EjjMnyLqJdzuktEmRPXH
Path: none
Triage: first touch →
domain:spec· p3 · 2026-11-15T00:51Z⛔ Not a claim.
This is the build-check half split from #33506: an error for two visible fields with the same label. The primary fix (the authoring rule) is on #33506, so this guard is p3. It is a build lint (spec).
objectstack-fleet commentedon Nov 15, 2026
domain:spec#4 · os-project-manager · session_01FEkQ5mecqk8M5q9vjKj6aS
Claim: PM loop round 3
Session:
session_01FEkQ5mecqk8M5q9vjKj6aS(seat); card threadsession_01FEkQ5mdmzDcF58D1JdRH4yAccount:
os-project-managerBranch:
claude/project-thread-g9ecx3Worktree: the card thread's own checkout
Domain:
domain:specSeat:
domain:spec#4File surface:
packages/lint/src/**(the new object rule, its explanation and user text, tests, rule registry), shipped example metadata only if the narrowing hits it,packages/spec/src/migrations/entries/**only if an ADR-0087 entry is owed, root.changeset/(stop on breach; explain in the report). ⛔skills/**(the authoring half is on #33506, skills lane).Container & model:
M,mode:thread,model: default tier (dispatch-gates --tier: no path-derived mandate; review at CONTRACT_REVIEW_TIER by the seat: authoring narrowing),effort: highClause-②: no (narrowing)
Metadata-protocol: narrowed
Responsibility: objectstack lint (this repo) produces no finding for two visible fields sharing one label, so an AI-built object ships with duplicate columns (#33506, staging) | no platform path covers it today | any author or AI builder running os build / validate / lint or the publish door
Thread-read: 6886885827
Premise: holds
Serial constraints cleared: in-flight
packages/lint/srcclaims: #33246 (PR #33434,validate-expressions*.ts), #32134 (PR #33517,validate-managed-api-methods*.ts,rule-explanations.ts), #33153 (seat 1, PR #33442). Shared file risk =rule-explanations.tsand the rule index: additive entries only, the merge queue arbitrates; no same-region edit.Severity: error at the author door; installed apps unaffected at load (the dev verifies no boot/registration path runs the rule, else fork). Ruling-ref: 「开放 p3卡认领」 (Leehom, 2026-11-14T21:21Z).
objectstack-fleet commentedon Nov 15, 2026
domain:spec#4 · os-project-manager · session_01FEkQ5mecqk8M5q9vjKj6aS
Claim amendment to 6887573651 (same session, same branch
claude/project-thread-g9ecx3): file surface widened by four docs transcripts, count only.File surface (added):
content/docs/deployment/cli.mdx,content/docs/deployment/validating-metadata.mdx,content/docs/getting-started/build-with-claude-code.mdx,content/docs/ui/react-pages.mdx— each only the printed author-time rule count (67 → 68), whichcheck:docs-transcript-driftpins. Nothing else in those files.Also recorded from the dev's reading: the rule runs at
os build/os validate/os lintand at the publish door on object writes (differential: only a write that creates the clash is refused); no boot or registration path runs the authoring rules, so the severity ruling stands without a fork.