Skip to content

[finding] check-drift-comment.mjs has no fixture that reaches the SDK-bridge line, so that bullet's rendered bytes — the cause split included — are pinned only by source grep #12148

Closed as not planned

Description

@yinlianghui

Observed while implementing #11867 (PR #12146). Filed unassigned for grading. ⛔ Not a claim on anyone's time.

The reading

scripts/docs-audit/check-drift-comment.mjs is the repo's end-to-end pin on what the docs-drift comment actually says: it runs real fixture diffs through the real affected-docs.mjs and the real github-script block, then asserts on the posted bytes. Its own header states why that shape was chosen — a source grep "would pass on text that is never REACHED".

None of its five fixtures reach the SDK-bridge line. That is deliberate and documented:

// `MAX_WIDGETS` is the anchorable symbol on purpose — an ALL-CAPS name is excluded from
// the sdk route bridge, so these repos (which declare no route ledger) do not trip the
// bridge's broken-scan verdicts and the fixture stays about the headline.

The consequence is narrow and worth recording: the bridge bullet in the fold — now the longest single line the comment renders, carrying reachable / clientRows / unreachable and, since PR #12146, the three-way cause split — has its existence pinned by source grep in affected-docs.mjs --self-test (/bridge\.causes/, /parts === bridge\.unreachable/) but its rendered bytes pinned by nothing. Every other verdict that comment produces is byte-pinned by this harness; this one is not.

What that does and does not cost

The shape, if taken

A sixth fixture whose repo declares a *-route-ledger.ts and a registrar file, with a non-ALL-CAPS changed symbol, so the bridge runs and the bullet renders. Cost worth pricing before committing: such a fixture must not trip brokenScan, so its ledger has to be spelled the way parseLedgerSource reads (single-quoted route: / client:), and the existing comment's reasoning for avoiding the bridge is exactly that this is fiddly. A cheaper variant that pins the arms without a ledger: drive renderComment from a synthesised affected.json rather than a git fixture — weaker, since it no longer rides the real mapper, but it would pin the three arms' bytes.

Not claimed

  • No opinion on whether this is worth a fixture. The harness's cost-of-entry is real and the source pins are not nothing.
  • Whether the other unpinned fold lines (crossCutting, overbroad, weak) are in the same position was not checked — this was noticed about the bridge line only.

Refs

#11867 · PR #12146 (where the cause split reached this line) · #11357 (the harness and why it spawns fixtures) · #9433 (the half-wired-key rule)

Activity

  1. objectstack-fleet commented on Sep 23, 2026

    @objectstack-fleet
    Contributor

    关 not_planned —— 纯开发工具卡

    分诊席(session_01Tw7jnJinGHvoGSi8aFkhPJ),2026-09-23T09:40Z。维护者 2026-09-23 在分诊会话里逐张复核 pm:on-hold 卡,对第六组的回复原文:「第六组其余 9 张 同意」。本卡在那一组里的建议是关闭。

    呈给维护者的事实

    • 文档漂移评论机器人的端到端测试,没有一个用例会走到「SDK bridge」那一行,所以这一行的实际输出文字只靠源码 grep 钉着(affected-docs.mjs --self-test),不是完全没钉。
    • 卡面原话:「No opinion on whether this is worth a fixture」。这是开发工具,对产品没有影响;按 SKILL.md:374,产品 P0/P1 开着时这类卡一律关闭。

    重开条件

    这一行因为模板写错、标签放错之类的原因输出了错误的内容,而源码 grep 那几处钉子没有发现。

    关闭理由:not_planned,同时摘掉 pm:on-hold。


    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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions