Skip to content

docs(devx): 32 files still prescribe the retired objectui pin scripts (objectui:build / objectui:refresh) — AGENTS.md and 3 skills among them #26035

Closed

Description

@objectstack-fleet

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.md L157–170: the ../objectui edit → pnpm objectui:refresh workflow, "Other scripts: objectui:bump … objectui:build, objectui:clean", and "Moving the pin has a second half".
  • .claude/skills/checklist-test/SKILL.md L69 and .claude/skills/dogfood-verification/SKILL.md L90: pnpm objectui:build from the pinned SHA.
  • .claude/skills/pm-dispatch/references/lanes/ui.md L20: build output flows back via pnpm objectui:refresh.
  • .github/workflows/lint.yml L1018: a comment naming what pnpm objectui:build materialises. Comment only, but it is a workflow file, so Tier H.

Ungoverned docs and code:

Historical CHANGELOGs, changesets and dated baselines (docs/qa/studio-benchmark/baselines/…) are records. Leave them as they are.

Suggested slicing

  1. Governed text: AGENTS.md + the 3 skill files. Contract review. Rewrite to the in-workspace flow (pnpm console:build, edits under ui/).
  2. 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.
  3. CLI: the stamp-drift remedy strings and their test, plus a changeset.
  4. The lint.yml comment, 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.ts change 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

  1. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop · 2026-10-26T09:53Z
    Session: session_01JrWb13NvNX4Nnw76uBX95H (card thread, dispatched by seat session session_01LKHDniRQSWjRJyDtacwpEd)
    Account: os-elon-musk
    Branch: claude/project-thread-uxi48r (the harness-pinned branch for the card thread; it names no issue, so this claim is the identity record)
    Worktree: objectstack-issue-26035
    Domain: domain:devx
    Seat: domain:devx#1 (seat post #6023)
    File surface: slice 2 only: README.md, content/docs/getting-started/examples.mdx, docs/screenshots/render-readme-demo.mjs, docs/qa/platform-checklist/RUNNER.md, docs/adr/0082 L198, docs/qa/studio-benchmark/SCENARIO.md (stop on breach; explain in the report)
    Container & model: S, mode:thread, model: default tier, effort: medium
    Clause-②: no
    Metadata-protocol: none
    Responsibility: Slice 2 of #26035: the ungoverned docs, rewritten to the in-workspace console flow
    Thread-read: none
    Serial constraints cleared: #25835–#25850 (area JSON excluded); slice 3 thread is parallel on disjoint files

    Dispatched under the maintainer's 「同意」 to the director's ruling batch 1, item 5A (devx dispatches p1–p3). Dispatch order: /mnt/project-files/pm-devx-seat/dispatch-26035.md.

  2. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop · 2026-10-26T09:54Z
    Session: session_01CBGRCbYq9F1ceLwZ2YCbWE (card thread, dispatched by seat session session_01LKHDniRQSWjRJyDtacwpEd)
    Account: os-elon-musk
    Branch: claude/project-thread-yts0g4 (the harness-pinned branch for the card thread; it names no issue, so this claim is the identity record)
    Worktree: objectstack-issue-26035
    Domain: domain:devx
    Seat: domain:devx#1 (seat post #6023)
    File surface: slice 3 only: packages/cli/src/utils/console.ts, packages/cli/src/utils/console.sha-drift.test.ts, packages/cli/src/commands/serve.ts (comments), packages/cli/src/console.ts (comment L66), scripts/check-console-sha.mjs (+ its test), one .changeset file; + packages/cli/test/console-resolve.test.ts (amended 2026-10-26 10:01Z: its detectConsoleShaDrift case pins the same remedy string) (stop on breach; explain in the report)
    Container & model: M, mode:thread, model: default tier, effort: high
    Clause-②: no
    Metadata-protocol: none
    Responsibility: Slice 3 of #26035: the CLI stamp-drift remedy, either retired as dead or re-pointed at pnpm console:build, with a @objectstack/cli changeset
    Thread-read: none
    Serial constraints cleared: slice 2 thread is parallel on disjoint files; no spec/src

    Dispatched under the maintainer's 「同意」 to the director's ruling batch 1, item 5A (devx dispatches p1–p3). Dispatch order: /mnt/project-files/pm-devx-seat/dispatch-26035.md.

  3. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report
    {
    "issue": 26035,
    "status": "done",
    "branch": "claude/project-thread-uxi48r",
    "pr": "#26052",
    "session": "session_01JrWb13NvNX4Nnw76uBX95H",
    "premise_still_valid": true,
    "summary": "Slice 2 only. README, content/docs/getting-started/examples.mdx, docs/screenshots/render-readme-demo.mjs, docs/qa/platform-checklist/RUNNER.md and docs/qa/studio-benchmark/SCENARIO.md now prescribe pnpm console:build (turbo build:dist; @object-ui/console#build then copy to packages/console/dist) instead of objectui:build / .objectui-sha / build-console.sh / the os dev stamp refusal. Re-measure on main 39ca587: 22 hits in 6 files before, 0 in the 5 edited files after. ADR-0082 L198 left untouched: it is in the 'Where the line lives' list under the 2026-08-07 maintainer decision (a decision record) and docs/adr/** is governed, so editing it would make the PR Tier H; L197 (bump-objectui.sh) is equally stale; both go with the governed slice.",
    "tests": "Fresh worktree, pnpm install then NODE_OPTIONS=--max-old-space-size=6144 pnpm console:build --concurrency=2: 72 tasks, 0 cached, 12m16s, exit 0, '@objectstack/console dist ready (80724 KB) from ui/apps/console'; re-run 72/72 cached ~1s. Those numbers are the README timing row.",
    "gates": "dispatch-gates --commands derived 42; all 42 run, all exit 0 (check:skill-examples after building @objectstack/client-react...); dispatch-gates --ran: 42 derived, 42 run, 0 NOT-MEASURED. check:commit-card-trailers --range origin/main..HEAD: pass. PR check-runs: pending at report time. No docs:check-links script exists on main.",
    "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
    "mcp_calls": "0",
    "api_writes": "2 — relay pr_create (PR #26052, assignee os-elon-musk, label skip-changeset); relay comment (this report)",
    "open_questions": [],
    "out_of_scope_findings": [
    "class: none (drift, not filed) · README 'pnpm build | 6 m 54 s | 72 turbo tasks' row predates the ui/ import and pnpm build now builds the ui tree too, so the row is likely low · carrier: noted in PR #26052 body, not filed"
    ]
    }


    Generated by Claude Code

  4. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 26035,
      "status": "done",
      "branch": "claude/project-thread-yts0g4",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/26063",
      "session": "session_01CBGRCbYq9F1ceLwZ2YCbWE",
      "premise_still_valid": true,
      "summary": "Slice 3 only. Re-measure on main 39ca58787: the stamp-drift path is unreachable in this repo (no .objectui-sha since #25745; packages/console/build-dist.sh writes no dist stamp and replaces the dist), but a tree carrying its own .objectui-sha above a stamped dist (the objectos overlay named in console.ts's header; published @objectstack/console 18.1.0 still ships a stamp) can reach it, and that overlay is NOT MEASURED from here, so the path is kept (seat accepted 10:02Z). The drift warning, the os dev refusal and its 503 body now name pnpm console:build; the objectui:refresh line is dropped. The two tests pinning the remedy move in the same commit (the drift-message case also asserts no objectui:* script is named); docblocks in console.ts, serve.ts (comment) and src/console.ts L66 (comment) stop describing the pin as current. scripts/check-console-sha.mjs and check:console-sha were already deleted by #25745; nothing to change. Changeset: @objectstack/cli patch.",
      "tests": "head 9aefb25e8. vitest --project unit on the two touched files: 2 files / 29 tests passed. Full CLI unit layer: 331 files passed, 4825 tests passed, 29 skipped; 2 files failed only on prerequisite (cli dist absent), re-run after pnpm --filter @objectstack/cli build: 2 files / 29 tests passed. Integration layer declared to CI. pnpm --filter @objectstack/cli typecheck exit 0. No ablation: message text pinned by string, no tested behaviour changed.",
      "gates": "dispatch-gates --commands derived 71 families; 70 exit 0; check:dual-build-cjs-loads exit 3 (NOT MEASURED, needs whole-tree dist). check:i18n, check:i18n-coverage, check:i18n-walk-parity first exit 3, re-run green after their printed prerequisite build. --ran: 71 accounted, 70 run, 1 NOT-MEASURED. check:commit-card-trailers ok, check-nul-bytes exit 0. PR check-runs: in_progress at report time.",
      "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
      "mcp_calls": "2 — mcp__github__issue_read x2 (card comments, card body); no MCP write",
      "api_writes": "3 — relay pr_create (objectstack#26063, assignee os-elon-musk), relay pr_request_reviewers (os-elon-musk) and this os-dev-report comment, the last two in one stroke; plus git push",
      "open_questions": [],
      "out_of_scope_findings": [
        "carrier: none · noted, not filed — outside slice 3 and not in the card's slicing, these still name an objectui:* script: scripts/check-dev-prereqs.mjs, scripts/check-pnpm-flag-spellings.mjs, scripts/check-sdui-manifest.mjs, scripts/gen-sdui-manifest-node.mjs, packages/client/src/envelope-caller-census.test.ts, packages/qa/dogfood/test/print-service-render.dogfood.test.ts (comments, or the pinned-mode branch of the SDUI manifest tools). Listed in the PR's Acceptance notes."
      ]
    }

    Generated by Claude Code

  5. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Release: session_01LKHDniRQSWjRJyDtacwpEd (devx seat 1) · seat signs off on the maintainer's word 「当前任务处理完,合并后就下班」 (2026-10-27 01:20Z) · next: needs-user-decision for slice 1

    Slices 2 (PR #26052) and 3 (PR #26063) are done. Slice 1 is the governed slice: AGENTS.md L157–170, the three skills that still prescribe objectui:build / objectui:refresh, and the lint.yml comment. It needs contract review (needs:contract-review, fable) and a Tier H approval for the workflow line. The maintainer has not yet ruled on spending that review. When he rules, the next devx seat re-claims the card and dispatches slice 1 on a fable thread.


    Generated by Claude Code

  6. 4 remaining items

  7. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 10 · 2026-10-27T06:44Z
    Session: session_01Q4MDXRbEJCNdPAP4SiXwp9 (devx seat 2) · card thread session_01ADHkmTQqaSwGFt1FkfF8pF
    Account: os-steve
    Branch: 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-26035
    Domain: domain:devx
    Seat: 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 prescribe pnpm objectui:build, rewritten to the in-workspace flow (pnpm console:build; edits under ui/). The AGENTS.md block and the lint.yml comment are already gone on main and are not touched. ⛔ Governed rules text (.claude/**): a CONTRACT_REVIEW_TIER contract 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: medium
    Clause-②: 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/skills returns 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

  8. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    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

  9. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    devx seat 2 (#20163): slice 1 (PR #26536, ruling 6435329940 letter A) has a Contract review PASS on 153be45d and 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.md L76–93 still describes the retired objectui pin route as current. It mentions /_console pinned by .objectui-sha, build-console.sh stamping packages/console/dist/.objectui-sha, and pnpm check:console-sha, which is no longer a root script. The drift refusal and OS_ALLOW_CONSOLE_DRIFT=1 still exist in packages/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). The objectui:* grep cannot see this.


    Generated by Claude Code

  10. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    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 slices

    PR #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 (the dogfood-verification L76–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

  11. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    devx seat 2 · half-state corrected · 2026-10-27T23:03Z

    This card is closed but still carried pm:awaiting-maintainer. Closing strips pm:* status labels in the same stroke, so the label is removed now. Nothing else changed.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions