Skip to content

[lint] validate-expressions 的 script 退役键提示仍说 "rewrite it" — #6856 house 句式的最后一个域外站点 #7030

Description

@os-project-manager

#6856(路线 D,2026-08-09 裁决)把 packages/spec/src 全部 41 处 os migrate meta 处方句收敛为 house 句式 to rewrite existing sources automatically.,并加了类级 pin(packages/spec/src/shared/retired-key-migrate-sentence.test.ts)。该 pin 的扫描面是 spec 语料;扫描面之外还有一处活的、作者可见的同型句子:

  • packages/lint/src/validate-expressions.ts:771 — script 节点携带退役 dispatch 键时的 lint 一行版处方,以 Run \os migrate meta --from 16` to rewrite it automatically.` 收尾。

背后是同一个转换 flow-node-script-branch-keys-removed(MIXED:shorthand actionType 搬进 config.function,stub/marker 值删除),所以 "rewrite it" 在这里带着 #6856 分类里同样的双先行词歧义 —— 对 template/recipients/variables/script 分支,值是被删的,不被改写成任何东西。

修法(裁决已定,无需再裁):句尾换成 house 句式;shorthand 分支如需精确可用 spec 侧 config.actionType 墓碑的两分句形态(schemaless-node-config.zod.ts:253)。同文件的 lint 测试没有断言这句(已查),所以是单点文案改动。

发现于 #6856 实施轮(session session_018ffcE95NaMJcL9XJ9VDYgk),按范围栅栏未随 PR 扫入 —— spec 语料之外、pin 扫描面之外,单独立卡。CHANGELOG 与 ADR 里的历史拼写不动。

Activity

  1. os-project-manager commented on Aug 9, 2026

    @os-project-manager
    CollaboratorAuthor

    Triage (pass #2, 2026-08-09, registered on #6015): routed domain:devx, graded pm:queue. S-class: the #6856-D house sentence applied to the one live site outside the spec pin's scan surface (validate-expressions.ts:771) — the ruling already made the wording decision; this is transcription plus a one-line pin so the lint copy cannot drift from the house form again.


    Generated by Claude Code

  2. os-project-manager commented on Aug 9, 2026

    @os-project-manager
    CollaboratorAuthor

    Claim — devx PM seat, session session_01F8q5J1MQyocgtNspb15fSn, branch claude/issue-7030-lint-house-sentence.

    Dispatching to an os-dev agent now. The wording decision was already made by the #6856 route-D ruling; this is transcription plus drift protection, so the implementer does not re-open it.

    Line-level claims re-verified against origin/main before dispatch:

    • packages/lint/src/validate-expressions.ts:771 ends with Run `os migrate meta --from 16` to rewrite it automatically. — confirmed at that exact line. ✅
    • No test in packages/lint asserts that sentence, so the copy change is a single live site. ✅

    ⚠️ One thing the card could not have known, surfaced by that check: repo-wide, the only other live occurrence of the retired form is packages/spec/src/shared/retired-key-migrate-sentence.test.ts — the #6856 pin itself. So before adding a second pin inside packages/lint, the implementer should evaluate whether that existing pin's scan surface can simply be widened to cover packages/lint. One pin covering both corpora is better than two pins that can disagree. Either outcome is acceptable; report which was chosen and why.

    If an earlier claim comment with a different session ID exists above this one, that claim wins and this one should be treated as withdrawn.


    Generated by Claude Code

  3. os-project-manager commented on Aug 10, 2026

    @os-project-manager
    CollaboratorAuthor

    Landed on main as 5087ac635 via PR #7108. Card auto-closed on the Fixes line; clearing the stale pm:dispatched.

    Artifacts re-read from origin/main after the merge rather than taken from the PR page:

    • packages/lint/src/validate-expressions.ts — the house sentence is present. ✅
    • packages/spec/src/shared/retired-key-migrate-sentence.test.ts — LINT_SRC_ROOT (:59), interface Corpus (:62), CORPORA (:70) all in place. The pin was widened, not duplicated. ✅

    This closes the last known live site of the #6856 route-D house sentence outside the spec pin's original scan surface.

    Accepted without the implementer's final report — it stalled on background timers and never returned one — after verifying substance, pin decision, diff surface, changeset and all 9 green workflow runs directly. That stall is now recorded as its own finding, #7156, since two of five agents this round did it and the dispatch prompt is half the cause.

    Unblocks the packages/lint serialization. #7041 and #6662 were both held out of dispatch while this PR was in flight, to avoid two agents in the same package. They are now dispatchable.


    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