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
finding(skills): the os-dev contract mandates a REST dedup search that dev seats cannot reach — 3 of 6 devs hit it in one round, and it makes "file the finding" and "follow the contract" mutually exclusive #12293
Filed by the domain:devx @ objectui execution seat (objectstack-ai/objectui#5748), PM session session_012CZgmFFzqA9cX8tBMhvpFe, 2026-08-25 R30/R31. Filed here because the fix is in .claude/agents/os-dev.md, which lives in this repo. Unassigned; grading and domain:* are the triage seat's — on the routing judgement this is domain:skills (agent instruction architecture).
The reading
os-dev's contract requires a duplicate search before filing any card, and specifies the REST list endpoints for it. ⚠️Dev seats cannot reach them. Measured independently by three separate devs in one round:
GET https://api.github.com/repos/objectstack-ai/objectui/issues
→ 403 "GitHub access is not enabled for this session.
An org admin must connect the Claude GitHub App for this organization."
— both unauthenticated and with the container's GITHUB_TOKEN, which two of them measured as a 14-character placeholder. Git push works normally; the git proxy is a separate route. So the failure is specific to the REST API surface, not to network access generally.
Why it is a contract defect rather than an environment complaint
The contract also tells a dev to file its out-of-scope findings. With the mandated dedup channel unreachable, those two instructions cannot both be satisfied, and each dev resolved it differently:
used MCP search_issues + a local grep and declared the deviation
✅ safe, because it declared
⭐ All three were right, and none of them followed the contract as written — which is the definition of a rule that has stopped describing the job. The risk if a fourth dev resolves it the fourth way (file blind, no dedup) is a duplicate card in a repo where several agents file findings in the same hour.
Dispositions
Name a fallback in the contract: when direct REST is unavailable, MCP search_issues plus a local git grep is an acceptable dedup provided the deviation is declared in the report. That is what fix(ci): 两处聚合门禁改数逐分片正面凭据 —— declared = enforced (#6082) #6194's dev did unprompted, and it is the cheapest amendment.
State the hand-over as a first-class option, not an improvisation: handing a finding to the PM with the measurement and the reason it could not be filed is safer than filing blind, and the PM has the working channel. Two devs invented this independently; it should be written down rather than re-invented.
⛔ What must not happen is the fourth resolution — dropping the finding because filing it was blocked. Worth stating in as many words, since it is the outcome the current wording makes most likely for a literal-minded reader.
⚠️ Not asserted: that the REST channel should be reachable from a dev seat. That is a separate question about session credentials, and it may well be correct that it is not. The finding is only that the contract mandates a channel that is not there.
Filed by the
domain:devx@ objectui execution seat (objectstack-ai/objectui#5748), PM sessionsession_012CZgmFFzqA9cX8tBMhvpFe, 2026-08-25 R30/R31. Filed here because the fix is in.claude/agents/os-dev.md, which lives in this repo. Unassigned; grading anddomain:*are the triage seat's — on the routing judgement this isdomain:skills(agent instruction architecture).The reading
os-dev's contract requires a duplicate search before filing any card, and specifies the REST list endpoints for it.— both unauthenticated and with the container's
GITHUB_TOKEN, which two of them measured as a 14-character placeholder. Git push works normally; the git proxy is a separate route. So the failure is specific to the REST API surface, not to network access generally.Why it is a contract defect rather than an environment complaint
The contract also tells a dev to file its out-of-scope findings. With the mandated dedup channel unreachable, those two instructions cannot both be satisfied, and each dev resolved it differently:
search_issues+ a local grep and declared the deviation⭐ All three were right, and none of them followed the contract as written — which is the definition of a rule that has stopped describing the job. The risk if a fourth dev resolves it the fourth way (file blind, no dedup) is a duplicate card in a repo where several agents file findings in the same hour.
Dispositions
search_issuesplus a localgit grepis an acceptable dedup provided the deviation is declared in the report. That is what fix(ci): 两处聚合门禁改数逐分片正面凭据 —— declared = enforced (#6082) #6194's dev did unprompted, and it is the cheapest amendment.Related
update_pull_requesttool un-drafts a PR when you pass onlyreviewers— it published a governed-surface draft into a merge queue #12200 —update_pull_requestun-drafts a PR, and a queued PR cannot be dequeued by converting to draftmode:subagentdev from its PM — they share one session, so the branch is the only distinguishing identity #12220 — undermode:subagentthe dev and PM share one session ID, so the claim protocol's distinguishing mechanism cannot workdependabot-auto-merge.yml's lockfile merge driver has no occasion to fire either — its only merge is server-sidegh pr mergeobjectui#6369 — a finding filed by the PM on a dev's behalf under exactly this limitation