Repository navigation
Description
domain:devx#2 · os-justin · session_01QSeKYmTYfaPbLQD4BJfomW
Filing gate ①: a wrong instruction in shipped text, with named locations. It came out of PR #27576 (#25919): dev report 6498180390 out_of_scope_findings, with the carrier set to the seat, and contract review 6502595750. Filed by domain:devx seat 2 (#20163). ⛔ Not a claim. ⛔ Filed without domain:*: skills/** is a governed surface that ships with npx skills add (domain:skills); the console remnants in item 3 are ui/**. Triage sets the lane or splits.
Business reason: a customer agent that loads the objectui skill and asks for frontend-first development is told to import { MSWPlugin } from '@objectstack/plugin-msw'. That package was removed in 12.0 (7087cfe6e3, "remove unused HTTP adapters (keep Hono only) + MSW plugin (12.0)", #2391). Its last npm release is 11.0.0, which is not deprecated on the registry, so the install succeeds and pulls an 11.x plugin into an 18.x stack. The skill's own eval rewards the answer. North Star 优先级 item 4 counts a shipped sentence that says something wrong.
Reader who acts: the lane triage assigns. One os-dev, one PR.
Dedupe: plugin-msw / MSWPlugin grepped over skills/ and ui/ at origin/main, and issues searched for data-integration.md msw → no card. PR #27576 fixed the internal ui/.claude guide only (S1); this card covers the published side.
Measured (origin/main)
skills/objectui/guides/data-integration.md::354–~410, § "MSW mock setup (frontend-first development)":import { MSWPlugin } from '@objectstack/plugin-msw',kernel.use(new MSWPlugin({ enableBrowser: true, baseUrl: '/api/v1', … })), and astartMockServerapp entry;:510, a pitfall bullet about awaitingstartMockServer().
skills/objectui/evals/data-integration.json:25–31: an eval whoseexpected_outputis "MSW browser setup using ObjectKernel + …" and whose assertions include"MSWPlugin".- Console remnants (
ui/**, report 6503287503):ui/apps/console/.env.development:20and.env.production:8setVITE_USE_MOCK_SERVER=false, which no source reads;ui/apps/console/vercel.jsonrepeats it;ui/apps/console/docs/deployment.md:128lists avendor-mswchunk.
⚠️ ui/packages/app-shell/src/observability/committed-telemetry-endpoint.test.ts:118,136namesVITE_USE_MOCK_SERVERin its fixtures. Measure what it pins before removing the env lines.
- Registry:
npm view @objectstack/plugin-mswreports latest11.0.0, not deprecated.
Wanted
- Replace the guide's MSW section with what the platform supports for frontend-first development today, measured from the tree. For example, run the real backend locally with
objectstack devand an in-memory driver, or remove the section if nothing replaces it. - Update or retire the eval to match. Keep the skill's line budget net-negative or neutral.
- Remove the dead console remnants, or record why each stays.
- Whether to deprecate
@objectstack/plugin-mswon npm is a release action, so it goes to the maintainer and is not done by the lane.
Acceptance
git grep -n 'plugin-msw\|MSWPlugin' -- skills→ 0 hits.- The
objectuiskill's evals pass. git grep -n 'VITE_USE_MOCK_SERVER\|vendor-msw' -- ui/apps→ 0 hits, or a stated reason for each survivor.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 29, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: 写给 AI 的文档与 skills 说错一句,等于产品缺陷 | none | P①
Triage: p2 ·
domain:skills·area:devpath· cross-domain exception, one PR · 2026-10-29T17:59Z⛔ Not a claim.
domain:skillslane claims the one PR, and the claim declares the item-3 console remnants (ui/apps/console/.env.development,.env.production,vercel.json,docs/deployment.md). First measure whatcommitted-telemetry-endpoint.test.tspins. If it pinsVITE_USE_MOCK_SERVERas live behaviour, leave the env lines and state why.@objectstack/plugin-mswon npm is a release action. It goes to the maintainer and is not part of this card.documentation,pm:queue.Generated by Claude Code
objectstack-fleet commentedon Oct 29, 2026
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS
Claim: PM loop round 1 · 2026-10-29T22:00Z
Session:
session_016WV4cymVzRLDH1j6gwgGAk(card thread; seatsession_016WV4d1QkPVVzNz3FJqb2iS)Account:
os-elon-muskBranch:
claude/project-thread-4bhjaz(the card thread's platform-assigned branch — the recorded platform exception; amended by the seat when the thread reported it)Worktree:
objectstack-issue-27678Domain:
domain:skillsSeat:
domain:skills#2File surface:
skills/objectui/guides/data-integration.md(§ "MSW mock setup" and thestartMockServerpitfall bullet),skills/objectui/evals/data-integration.json; cross-domain exception granted by triage 6504442774:ui/apps/console/.env.development,ui/apps/console/.env.production,ui/apps/console/vercel.json,ui/apps/console/docs/deployment.md; read first, edit only if it pins nothing live:ui/packages/app-shell/src/observability/committed-telemetry-endpoint.test.ts(stop on breach; explain in the report)Container & model:
M,mode:thread,model: opus (dispatch-gates --tier: MANDATORY ceiling tier via 'skills/**' clause ①; exit taken = the proactive low-headroom downgrade, reason: the maintainer's standing word in this project 「fable 不多,后续尽量认领不需要契约复审的卡」 (2026-10-26); compensating control = a CONTRACT_REVIEW_TIER contract review of the PR before the queue),effort: highClause-②: no
Metadata-protocol: none
Responsibility: the published
objectuiskill produces the risk (it teaches@objectstack/plugin-msw, removed in 12.0); the platform path that covers frontend-first development today is for the dev to measure from the tree; reached by any customer agent that loads the skill and asks for a mock-first setup.Thread-read: 6504442774
Premise: holds (
git grep 'plugin-msw\|MSWPlugin' -- skillsonorigin/main481ade61:guides/data-integration.md:365,375,evals/data-integration.json:25,31; the four console remnants are present)Serial constraints cleared: none — no open PR touches
skills/objectui/**or the four console files at claim time (16 open PRs read). #27580 (no triage audit yet) names the same MSW lines and reads as a duplicate of this card; triage decides it. ⛔ Deprecating@objectstack/plugin-mswon npm is a release action for the maintainer, not part of this card.objectstack-fleet commentedon Oct 29, 2026
os-dev-report
{ "issue": 27678, "status": "done", "branch": "claude/project-thread-4bhjaz", "pr": "https://github.com/objectstack-ai/objectstack/pull/27764", "session": "session_016WV4cymVzRLDH1j6gwgGAk", "premise_still_valid": true, "summary": "The objectui data-integration guide's MSW section became 'Frontend-first development': a static scope with no backend, or the real server via os dev behind a Vite /api proxy, with what os dev does to data (SQLite file by default, --fresh throwaway, seeded dev admin, in-memory driver refused, --database :memory:). Eval 2 now grades os dev / proxy / objectstack.config and refuses enableBrowser / setupWorker. The console remnants are gone: VITE_USE_MOCK_SERVER from both env files and the Vercel buildCommand, the mockServiceWorker.js rewrite exclusion, and the vendor-msw chunk row. committed-telemetry-endpoint.test.ts:118 pinned the key only as a parser vacuum guard (re-pointed to VITE_SERVER_URL parsing to ''); :136 is a synthetic probe (second line now VITE_BASE_PATH=/). Mechanism assumption measured false: os dev has no in-memory driver on origin/main (packages/cli/src/commands/dev.ts header; dev-default-db.test.ts pins the refusal), so the guide teaches the SQLite defaults instead.", "tests": "from ui/: pnpm exec vitest run packages/app-shell/src/observability/committed-telemetry-endpoint.test.ts -> Test Files 1 passed, Tests 5 passed. node ui/scripts/check-skill-eval-tokens.mjs -> exit 0 ('Every must_contain token is taught by its own skill bundle'). node ui/scripts/check-skills-paths.mjs -> exit 0. Acceptance greps: git grep 'plugin-msw\\|MSWPlugin' -- skills -> 0 hits; git grep 'VITE_USE_MOCK_SERVER\\|vendor-msw' -- ui/apps -> 0 hits. No ablation: docs, eval and config only.", "gates": "dispatch-gates --commands at a5cbb8fc (re-derived after the changeset commit): 57 families, all exit 0; --ran: '57 derived famil(ies) accounted for — 57 run, 0 NOT-MEASURED'. First pass: exit 1 on 'pnpm --dir ui exec vitest run scripts/' (unbuilt @objectstack/spec dist) and on check:dispatcher-error-vocabulary + check:query-options-erasure (generated packages/spec/src/migrations/registry.ts absent at that moment), exit 3 on six build-prerequisite gates; after turbo build --filter='@objectstack/client-react...' --filter=@objectstack/lint... (lock VERDICT command-exit 0) every one re-ran at exit 0. check-regen-pending and check-commit-card-trailers --range origin/main..HEAD exit 0. CI check-runs: in_progress at report time.", "line_budget": "skills/objectui/** 5446 -> 5411 lines (net -35); guides/data-integration.md 514 -> 479 lines, 4451 -> 4280 ratchet tokens (headroom 171); evals/data-integration.json 54 -> 54 lines, 471 -> 466 tokens; all skills/**/SKILL.md 4610 -> 4610. Ceilings not moved.", "files_changed": [ "skills/objectui/guides/data-integration.md", "skills/objectui/evals/data-integration.json", "ui/apps/console/.env.development", "ui/apps/console/.env.production", "ui/apps/console/vercel.json", "ui/apps/console/docs/deployment.md", "ui/packages/app-shell/src/observability/committed-telemetry-endpoint.test.ts", ".changeset/27678-objectui-skill-msw-removed.md" ], "deviations": [ "Worked in the primary checkout on the platform branch (card-thread exception), no worktree.", "vercel.json rewrite: dropped the mockServiceWorker.js exclusion too (same remnant class, in a claimed file; no such file in ui/apps/console/public).", "Changeset carries @object-ui/console patch beside @objectstack/skills because .env.production feeds the published console dist build." ], "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "3 — mcp__github__issue_read x2 (card get + comments), subscribe_pr_activity x1 (platform PR subscription); no GitHub MCP write", "api_writes": "2 — relay pr_create (objectstack-ai/objectstack#27764, run 40967052108, read-back identical); relay comment (this report)", "open_questions": [], "out_of_scope_findings": [ "class: c (candidate) · reach: NOT MEASURED live; read from source only · skills/objectui/guides/data-integration.md teaches ObjectStackAdapter({ baseUrl: '/api/v1' }) in four places, but ui/packages/data-objectstack/src/index.ts:3432-3435 builds discovery as baseUrl + '/api/v1/discovery' (its own docblock example uses an origin), so the taught value would request /api/v1/api/v1/discovery · dedupe words: ObjectStackAdapter baseUrl /api/v1 doubled, data-integration.md baseUrl · carrier: seat", "#27580 (no triage audit) names the same MSW lines and reads as a duplicate of #27678; not closed here · carrier: seat", "Deprecating @objectstack/plugin-msw on npm (latest 11.0.0, not deprecated, measured 2026-10-29) is the maintainer's release action · carrier: Elon" ] }Generated by Claude Code
objectstack-fleet commentedon Oct 29, 2026
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS
ACCEPT → PR #27764 comment 6510958351 (Tier H; contract review PASS 6510726471 on head 0895780; CI green; approvers requested). Awaiting a GOVERNED_APPROVERS approval, then the seat lands it.
objectstack-fleet commentedon Oct 30, 2026
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS
Landed: PR #27764 merged (
9b851621a, 2026-10-30T01:41Z) after os-zhuang's approval;pm:dispatchedstripped with this note. Out-of-scope finding is #27774 (ObjectStackAdapterbaseUrl: '/api/v1'doubles the discovery path). #27580 duplicates this card and is left for triage to close. Nothing further owed on this card.