Repository navigation
docs(devx): 32 files still prescribe the retired objectui pin scripts (objectui:build / objectui:refresh) — AGENTS.md and 3 skills among them #26035
Description
Ruled: 6435329940 · letter A · 2026-10-27T06:32Z
Problem
The objectui pin is gone from main. #25711/#25745 build the console in the workspace, and the root manifest's only console script is now console:build (turbo run build:dist --filter=@objectstack/console). There is no .objectui-sha, no scripts/build-console.sh, and no objectui:build / objectui:refresh / objectui:bump / objectui:clean script.
32 tracked files on main still tell readers to run those scripts, or describe the pin route as live (git grep -lE "objectui:(build|refresh|bump|clean)" origin/main). The ones that matter most are the instructions every agent reads:
Governed rule text (needs contract review):
AGENTS.mdL157–170: the../objectuiedit →pnpm objectui:refreshworkflow, "Other scripts:objectui:bump…objectui:build,objectui:clean", and "Moving the pin has a second half"..claude/skills/checklist-test/SKILL.mdL69 and.claude/skills/dogfood-verification/SKILL.mdL90:pnpm objectui:buildfrom the pinned SHA..claude/skills/pm-dispatch/references/lanes/ui.mdL20: build output flows back viapnpm objectui:refresh..github/workflows/lint.ymlL1018: a comment naming whatpnpm objectui:buildmaterialises. Comment only, but it is a workflow file, so Tier H.
Ungoverned docs and code:
README.md(3 hits),content/docs/getting-started/examples.mdx,docs/screenshots/render-readme-demo.mjs.docs/qa/platform-checklist/RUNNER.mdL432, L622–636, L689, plus the checklist area JSON (approvals,cli,platform-core,records-forms,studio-authoring). ⚠ The area JSON overlaps the on-hold 18.2.0 sweep ledger cards (qa(checklist): access-security — 65 ledger edits from the 18.2.0 release sweep (#25807) #25835–qa(checklist): RUNNER.md — 3 stale environment facts from the 18.2.0 release sweep (#25807) #25850), so stay serial with them.docs/adr/0082-react-component-contract-governance.mdL198 (also noted by docs(releases): describe the in-tree Console release flow; drop the deleted objectui pin procedure #26029's thread).packages/cli/src/utils/console.tsL411–414 and L484–511: the stamp-drift path still printspnpm objectui:build/objectui:refreshas the remedy, andconsole.sha-drift.test.tspins those strings. With no.objectui-shaonmain, decide whether that path is dead and should go, or should namepnpm console:build. This releases@objectstack/cli, so it needs a changeset.
Historical CHANGELOGs, changesets and dated baselines (docs/qa/studio-benchmark/baselines/…) are records. Leave them as they are.
Suggested slicing
- Governed text: AGENTS.md + the 3 skill files. Contract review. Rewrite to the in-workspace flow (
pnpm console:build, edits underui/). - Ungoverned docs: README, examples.mdx, RUNNER.md, ADR-0082 L198, render-readme-demo. Do the area JSON once the sweep ledger cards are off hold.
- CLI: the stamp-drift remedy strings and their test, plus a changeset.
- The
lint.ymlcomment, folded into whichever PR next touches that workflow, or its own Tier H one-liner.
Acceptance
- After each slice,
git grep -nE "objectui:(build|refresh|bump|clean)"over the slice's paths finds only historical records. - No gate is narrowed or skipped. The pinned strings in
console.sha-drift.test.tschange only together with the code they pin.
Found by the #25920 slice-2 thread (PR #26024) and the #26021 thread (PR #26029). Filed by the devx seat #6023.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 27, 2026
Brief-claimed-by: session_01KrKXQVvgYk2AJ4VkqMobyb · batch #408 · 2026-10-27T04:44Z
Director seat, summon #51 continuation (ledger objectstack#12708). Presented to the maintainer in batch #408 as item 2 of 5. Seat increment (re-read on
origin/main26e7c75e9a; the card and the devx release 6433463741 are not restated):git grep -nE "objectui:(build|refresh|bump|clean)" origin/main -- AGENTS.md .claude/skills .github/workflows/lint.yml→ 2 lines, both in skills:.claude/skills/checklist-test/SKILL.md:69and.claude/skills/dogfood-verification/SKILL.md:90. TheAGENTS.mdL157–170 block and thelint.yml:1018comment are already gone (landed with the ui-merge follow-ups). What the maintainer is asked to spend is a contract review (fable) and a Tier H approval on two skill lines.needs-user-decisionwithneeds:contract-review, no pm-state label; the ruling's stroke returns it topm:queue.pnpm console:buildfromui/) replaces a dead procedure in two skills; ② every checklist run and dogfood session reads those two lines and is told to run a script that no longer exists; ③ loud today only bypnpm: command not foundafter the agent has already planned around it; ④ removes text, adds nothing.Prior rulings read: objectui pin retirement · console:build → release(ui-merge): one release lane for both scopes — 39 @object-ui packages join the @objectstack fixed group,
packages/consolebuilds fromui/apps/console, both repos' pin scripts and sha files are deleted (parent #25677, 4a/6) #25711, release(ui-merge): one release lane for both scopes — @object-ui joins the fixed group, @objectstack/console builds from ui/apps/console, the objectui pin is deleted (#25711) #25745, cutover(ui-merge): the switch itself — freeze both repos,git subtree addobjectui asui/with its adaptation commit, land 4a / PR B / 4b PR 2 in order, migrate open objectui branches and cards, archive the objectui repo (parent #25677, 5/6) #25752; thread: 6433463741.objectstack-fleet commentedon Oct 27, 2026
Ruling: batch #408 item 2 · letter A · maintainer 「批 #408 同意」 2026-10-27T06:25Z
Recorded by the director seat (summon #51 continuation,
session_01KrKXQVvgYk2AJ4VkqMobyb, ledger objectstack#12708). The maintainer answered batch #408 with 「批 #408 同意」 — every seat letter. Brief 6433965564. Letter A: slice 1 is dispatched now — the two remaining lines that prescribe the retired pin scripts,.claude/skills/checklist-test/SKILL.md:69and.claude/skills/dogfood-verification/SKILL.md:90, rewritten to the in-workspace flow (pnpm console:build, edits underui/); theAGENTS.mdblock and thelint.ymlcomment the card named are already gone onmainand need nothing. The maintainer's yes is the spend of the contract review the card'sneeds:contract-reviewasks for; the PR is Tier H (.claude/**) and lands by the maintainer's approval. Not B (stale text stays until an unrelated PR) and not C.Workload: skills · one fable card thread · XS. Acceptance as the card's:
git grep -nE "objectui:(build|refresh|bump|clean)"over.claude/skills→ 0; the two skills' examples still run.Execution:
needs-user-decision→pm:queuein this act (domain:devx, p2,needs:contract-reviewkept for the thread).Ruling-ref:names this comment.Clause-②: no,Metadata-protocol: none.objectstack-fleet commentedon Oct 27, 2026
Claim: PM loop round 10 · 2026-10-27T06:44Z
Session:
session_01Q4MDXRbEJCNdPAP4SiXwp9(devx seat 2) · card threadsession_01ADHkmTQqaSwGFt1FkfF8pFAccount:
os-steveBranch:
claude/project-thread-pr6axl(the harness-pinned branch of the card thread; it names no issue, so this claim is the identity record; amended on spawn)Worktree:
objectstack-issue-26035Domain:
domain:devxSeat:
domain:devx#2(seat post #20163)File surface: slice 1 only, per ruling 6435329940 letter A:
.claude/skills/checklist-test/SKILL.md(L69) and.claude/skills/dogfood-verification/SKILL.md(L90), the two remaining lines that prescribepnpm objectui:build, rewritten to the in-workspace flow (pnpm console:build; edits underui/). TheAGENTS.mdblock and thelint.ymlcomment are already gone onmainand are not touched. ⛔ Governed rules text (.claude/**): aCONTRACT_REVIEW_TIERcontract review is owed (the ruling spends it) and the PR lands by a GOVERNED_APPROVERS approval; the dev neither readies nor arms auto-merge. Slices 2 and 3 are done (PRs #26052, #26063)Container & model: XS,
mode:thread,model: fable (CONTRACT_REVIEW_TIER, reason: per-card ruling 6435329940 names one fable card thread for this governed rules text),effort: mediumClause-②: no
Metadata-protocol: none
Responsibility: n/a — devx seat 1's card, released 6433463741 on sign-off; re-claimed by seat 2 on the ruling
Thread-read: 6435329940
Ruling-ref: 6435329940
Premise:
git grep -nE "objectui:(build|refresh|bump|clean)" origin/main -- .claude/skillsreturns exactly the two lines (the director's re-read 6433965564; the dev re-runs it first)Serial constraints cleared: no in-flight PR of this seat touches
.claude/skills/**Generated by Claude Code
objectstack-fleet commentedon Oct 27, 2026
os-dev-report
{ "issue": 26035, "status": "done", "branch": "claude/project-thread-pr6axl", "pr": "https://github.com/objectstack-ai/objectstack/pull/26536", "session": "session_01ADHkmTQqaSwGFt1FkfF8pF", "premise_still_valid": true, "summary": "Slice 1 only, per ruling 6435329940 letter A. On origin/main d2ca7079 the grep for objectui:(build|refresh|bump|clean) under .claude/skills returned exactly the two lines the claim names (checklist-test/SKILL.md:69, dogfood-verification/SKILL.md:90), so the premise holds. Both now prescribe the in-workspace flow: run pnpm console:build at the repo root, edit the Console under ui/. The dogfood sentence spans two physical lines, so L91 carries the second half of the rewritten parenthetical (its trailing pnpm check:console-sha text is untouched). Line counts unchanged (238 and 148; checklist-test sits at ceiling 238, headroom 0). Governed .claude/** diff: PR opened as draft with skip-changeset, assignee os-steve; not readied, no auto-merge; lands by a GOVERNED_APPROVERS approval; the ruling spends the CONTRACT_REVIEW_TIER review.", "tests": "No code or test touched. Skill example run for real: pnpm console:build in the fresh worktree at head 153be45d under scripts/pm/os-verify-lock.sh (NODE_OPTIONS=--max-old-space-size=4096, --concurrency=2): '@objectstack/console dist ready (80844 KB) from ui/apps/console, with the tracked sdui.manifest.json', 'Tasks: 71 successful, 71 total', 'Time: 14m7.542s', lock VERDICT command-exit 0 (shared-box seconds). Acceptance grep on the branch: 0 hits (exit 1). No ablation: documentation only.", "gates": "dispatch-gates --commands --repo objectstack-ai/objectstack derived 16 families; each run byte-for-byte with its exit captured before any pipe, all 16 exit 0 (closing-keyword-parity + --self-test, comment-mask-corpus, pm/check-harness-current --self-test, lint check:doc-formula-expressions, agent-test-spelling, cross-package-test-inputs, doc-authoring, driver-memory-census, gitlink-declared, nul-bytes, pm-governed-merges, pm-skill-ratchet, refd-timer-probe, skill-frame-sync, watch-hint-literal). --ran: 16 derived, 16 run, 0 NOT-MEASURED. Also check-commit-card-trailers --range origin/main..HEAD: pass (1 commit, model-free trailer pair). PR check-runs: in_progress at report time; the farm is CI's.", "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "4 — mcp__github__issue_read x3 (card body, card comments twice: before and after the claim amendment), mcp__github__pull_request_read x1 (draft/labels/assignee read-back of the new PR); no MCP write", "api_writes": "3 — relay pr_create (objectstack#26536, labels [skip-changeset], assignees [os-steve]), relay comment (this os-dev-report) and relay pr_request_reviewers (os-steve), the last two in one stroke; plus git push (not a REST write)", "open_questions": [], "out_of_scope_findings": [ "carrier: none · noted in PR #26536 Acceptance notes, not filed — .claude/skills/dogfood-verification/SKILL.md L76–L93 (outside the two named lines) still frames the retired pin route as live: the /_console UI 'pinned by .objectui-sha', build-console.sh stamping packages/console/dist/.objectui-sha, and pnpm check:console-sha, a root script that no longer exists in package.json. The grep acceptance cannot reach it (no objectui:* script named). The stamp-drift refusal and OS_ALLOW_CONSOLE_DRIFT still exist in packages/cli/src/utils/console.ts (slice 3 kept them), so only the framing is stale. Governed .claude/** text: a sibling slice of this card if the seat wants it. dedupe words: dogfood-verification, .objectui-sha, check:console-sha, build-console.sh" ] }Generated by Claude Code
objectstack-fleet commentedon Oct 27, 2026
devx seat 2 (#20163): slice 1 (PR #26536, ruling 6435329940 letter A) has a Contract review PASS on
153be45dand the seat ACCEPT. It stays a draft for a maintainer approval.Candidate for a later slice, found by the slice-1 thread and the reviewer:
.claude/skills/dogfood-verification/SKILL.mdL76–93 still describes the retired objectui pin route as current. It mentions/_consolepinned by.objectui-sha,build-console.shstampingpackages/console/dist/.objectui-sha, andpnpm check:console-sha, which is no longer a root script. The drift refusal andOS_ALLOW_CONSOLE_DRIFT=1still exist inpackages/cli/src/utils/console.ts, so those sentences need rewording, not deleting. The same rewrite should not end L90 on a Han character followed by ASCII;(the #12081 soft-break). Theobjectui:*grep cannot see this.Generated by Claude Code
objectstack-fleet commentedon Oct 27, 2026
Release:
session_01Q4MDXRbEJCNdPAP4SiXwp9(devx seat 2) · seat signs off on the maintainer's word 「devx 车道当前任务处理完就下班」 (2026-10-27 08:42Z) · next: a maintainer approval of PR #26536 (slice 1), then the later slicesPR #26536 (head
153be45d, slice 1 under ruling 6435329940 letter A) carries a Contract review PASS and the seat ACCEPT; CI is green. It edits.claude/**and stays a draft for a maintainer. The next slice candidate (thedogfood-verificationL76–93 bullet that still describes the retired pin route) is in 6436082138. #26073, #26081 PR 1 and #26088's remainder wait on this card.Generated by Claude Code
objectstack-fleet commentedon Oct 27, 2026
devx seat 2 · half-state corrected · 2026-10-27T23:03Z
This card is closed but still carried
pm:awaiting-maintainer. Closing stripspm:*status labels in the same stroke, so the label is removed now. Nothing else changed.Generated by Claude Code