Repository navigation
Description
domain:spec#4 · marchtian · session_017ihL2fi9zfJhUTubyJYb6V
Filing gate: ② a should-fix that a contract review marked as a follow-up sweep (record 6508719840 on PR #27724, ④). Filed by domain:spec seat 4 · marchtian · session session_017ihL2fi9zfJhUTubyJYb6V. ⛔ Not a claim. No grade yet: triage sets the grade.
Reader: the domain:spec seat, next PR a comment-and-test sweep in packages/spec/src/migrations/entries/semantic/ and packages/spec/src/system/.
Dedupe (open AND closed): semantic search "semantic migration entry No backticks in surface comment stale upgrade guide code span sweep" → 12 hits; only #27532 (the renderer fix itself, whose PR leaves this residue) is related. New.
reach: no shipped byte is wrong (the comments are source comments; the kept assertion still passes); the cost is governed source text that states something false about the renderer, and a test that refuses a future backtick for a reason that no longer exists.
Measured (origin/main ef359b95, with PR #27724's renderer fix in mind)
grep -rl "No backticks" packages/spec/src/migrations/entries/semantic | wc -l→ 219 files carry the comment "No backticks insurface— build-upgrade-guide renders it inside a code span already, and a nested backtick would close it." ([finding] the generated upgrade guide wraps each semantic entry'ssurfacein a single-backtick code span, so a surface that carries its own backticks (most of the ~516 entries) renders broken #27532's card said only one entry avoided the defect this way; the count is 219.)packages/spec/src/system/compliance-families-retirement.test.tsL260–L262 assertsexpect(entry!.surface).not.toMatch(/BACKTICK/)with the same stale reason ("the upgrade guide renders it inside a code span AND a table cell"). PR fix(spec): the generated upgrade guide keeps a surface in one code span when it carries its own backticks #27724 dropped the identical assertion from its two siblings (export-job-family-retirement.test.ts,package-upgrade-family-retirement.test.ts) and missed this one.- Once PR fix(spec): the generated upgrade guide keeps a surface in one code span when it carries its own backticks #27724 lands,
build-upgrade-guide.tsfences everysurfaceby CommonMark §6.1 (scripts/lib/markdown-code-span.ts), so a backtick inside a surface renders correctly and the comment's claim is false.
Wanted
- Delete the workaround comment from all 219 entry files (mechanical; no
surface,replacement,reasonoracceptanceCriteriabyte moves). - Drop the one remaining
not.toMatch(/BACKTICK/)assertion and its stated reason incompliance-families-retirement.test.ts. - Lands after PR fix(spec): the generated upgrade guide keeps a surface in one code span when it carries its own backticks #27724 (
Blocked-by:it until it merges). No changeset owed if nothing published moves (comments insrc/**do not ship as schema; confirm against the package'sfiles[]).
Clause-②: likely no. Metadata-protocol: likely none.
type: Bug
Activity
objectstack-fleet commentedon Oct 29, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: p3 ·
domain:spec·area:devpath·pm:blockedon PR #27724 · 2026-10-29T21:54Z⛔ Not a claim.
packages/spec/src/system/compliance-families-retirement.test.ts, the one stalenot.toMatch(/BACKTICK/)assertion rides that PR. The 219-comment sweep waits.documentation,pm:blocked.Generated by Claude Code
objectstack-fleet commentedon Oct 31, 2026
domain:spec#2 · os-tesla · session_01L9qibx5r5nhDMwpRs4SL6D
Claim: PM loop round 4
Session:
session_01L9qibx5r5nhDMwpRs4SL6DAccount:
os-teslaBranch:
claude/project-thread-10z58w(the card thread's designated push branch, the recorded platform exception toclaude/issue-<n>-<slug>)Worktree:
objectstack-issue-27731Domain:
domain:specSeat:
domain:spec#2File surface:
packages/spec/src/migrations/entries/semantic/**(the stale comment lines only), any entry template that emits the comment, the one test if its BACKTICK assertion remains. ⛔ noui/**and no governed path (stop on breach; explain in the report)Container & model:
S,mode:thread,model: TIER_DEFAULT,effort: high; comment sweep, no contract review owedClause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card
Thread-read: 6509215040
Premise: holds (re-read at
origin/main3d9175d0; the gap named on the card is still there)Serial constraints cleared: blocker PR #27724 merged; no open PR edits these entries
Ruling-ref: none on the shape; dispatch authority = the maintainer's 「p3 也可以开发」 (2026-10-30T12:41Z) and 「每个座位并发可以5」 (2026-10-30T15:04Z); triage 6509215040 (p3; the deferred sweep, now dispatchable under the lifted p3 hold)
Dispatched 2026-10-31T05:20Z to a card thread of the seat's project; the order lives in the project. ⛔ The thread posts no claim and writes no assignee.
objectstack-fleet commentedon Oct 31, 2026
domain:spec#2 · os-tesla · session_01L9qibwMinUv84kKooNoXvw
os-dev-report
{ "issue": 27731, "status": "done", "branch": "claude/project-thread-10z58w", "pr": "https://github.com/objectstack-ai/objectstack/pull/28350", "session": "session_01L9qibwMinUv84kKooNoXvw", "premise_still_valid": true, "summary": "Removed the stale 'No backticks in surface' workaround comment from 223 semantic migration entries (222 'No backticks' spellings at 501c864d plus the originating 'Plain text, no markdown' note on 17.spec-type-alias-input-suffix-retired); 216 whole paragraphs, 6 trailing sentences, and on 18.filter-is-empty-lowers-to-empty-operator the still-true no-' / ' half is kept. The no-backtick assertion in compliance-families-retirement.test.ts was still present (the order's BACKTICK grep missed it because the card spelled the regex in words) and is dropped with its reason. No generator or template emits the comment. No published byte moves: skip-changeset.", "tests": "Comment-only proof at head 3737a157 vs base 501c864d: comment-free TypeScript AST identical 223/223; every entry imported from both trees and compared as JSON (1147 keys) identical 223/223; negative control (one surface prefixed in 18.page-slots-tabs-retired.ts) reads 222/223 naming that file, tree restored. vitest src/system/compliance-families-retirement.test.ts + src/migrations: Test Files 6 passed (6), Tests 204 passed (204). pnpm --filter @objectstack/spec typecheck: VERDICT command-exit 0.", "gates": "Full build pnpm turbo run build --filter=!@objectstack/docs (real dts): VERDICT command-exit 0, 116/116 tasks. dispatch-gates --commands at 3737a157: 77 derived, 77 run, all exit 0; check-plugin-teardown-shape --self-test exit 3 on the shallow clone until git fetch origin 621a487607881c66b2899b7e3477115229a156b4 --depth=1, then exit 0. dispatch-gates --ran reconciliation: exit 0, 77 run, 0 NOT-MEASURED, 0 UNRUN. Local-only check:dev-prereqs exit 0. CI check-runs on PR 28350: in_progress at report time.", "line_budget": "224 files, +7 / -464", "files_changed": [ "packages/spec/src/migrations/entries/semantic/** (223 files, comment lines only)", "packages/spec/src/system/compliance-families-retirement.test.ts" ], "deviations": [ "223 files, not the order's 222: the 223rd (17.spec-type-alias-input-suffix-retired) carries the same workaround in other words and is the note the others cite; inside the order's file surface.", "PR not assigned and no reviewer requested: the frame forbids both (the seat lands)." ], "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "4 — reads only: issue_read (get, get_comments x2), pull_request_read (get); 0 write tools", "api_writes": "2 relay writes — fleet-write pr_create (PR 28350, labels skip-changeset); post-stamped comment on issue 27731 (this report). Plus 1 git push.", "open_questions": [], "out_of_scope_findings": [] }