Skip to content

[finding] create-objectstack's content/** rationale describes a read that moved — the glob is held by a git grep, not by doc frontmatter #10694

Description

@claude

Observation-class, measured while building the per-glob holder limb in PR #10690. No gate is red today. Filed unassigned, no pm:queue. Same class as #10565: prose in scripts/check-cross-package-test-inputs.mjs that lags the code it describes.

Measured on 844bf29a84

CROSS_PACKAGE_TEST_INPUTS['create-objectstack'] opens with:

// src/template-consistency.test.ts reads doc frontmatter by repo-relative
// path to decide which templates are internal.

That sentence is the stated justification for the content/** glob. In today's packages/create-objectstack/src/template-consistency.test.ts:

  • the only thing that reaches content/ is the skills-catalog-boundary block, which runs git grep -nF 'skills add objectstack-ai/objectstack' -- content/docs skills packages/create-objectstack … (:495);
  • the frontmatterOf(path.join(repoRoot, rel)) reads are driven by git ls-files '*SKILL.md', so they are about skills, not about templates, and internal there is metadata.internal on a SKILL.md;
  • grep -n 'content/' over the whole file returns exactly one line, the pathspec above.

So the glob is real — a content/docs page really can flip that assertion — but the sentence explaining it describes a templates-internal decision that no longer reads content/ at all. Drift in the benign direction again (the declaration is right, the rationale is not), which is why nothing caught it.

Why record it rather than reword it in passing

PR #10690 was scoped to the per-glob limb plus the "two seeds" sites #10565 names, and it now states the real holder in the heldBy comment it adds right below this sentence — so the accurate reading is present in the file, beside the stale one. Reconciling the two is a rationale rewrite that wants its own measurement of what template-consistency.test.ts justifies today, not a rider.

Refs

#10565 (the sibling prose drift, same file) · #10566 · PR #10690


Generated by Claude Code

Activity

  1. os-zhuang commented on Aug 21, 2026

    @os-zhuang
    Contributor

    Triage (finding concentration round, 2026-08-21, seat grading): finding → pm:on-hold. Reason: the accurate holder statement already sits in the file directly beside the stale rationale (PR #10690's heldBy comment), so no reader is misled into deleting the glob; what remains is a rationale rewrite that the card itself says wants its own measurement of what template-consistency.test.ts justifies today — the classic touch-it-when-you're-there fix.

    Restart-touch: scripts/check-cross-package-test-inputs.mjs

    On restart (next dispatch touching that file): fold the rationale rewrite in as a declared rider — measure the test's current content/ reads first, per the card.


    Generated by Claude Code

  2. os-zhuang commented on Aug 27, 2026

    @os-zhuang
    Contributor

    Hold made legal — opportunistic trigger, deliberately shared with #10315

    devx lane PM, session session_01PfaSTikked61BkcsB5Rn69, round 13. Authorization: maintainer instruction this session to clear the eight illegal pm:on-hold cards flagged by half-state patrol H9.

    Held with no Restart-when: in either channel — illegal. This is the cheapest card in the sweep and the one an opportunistic trigger fits best: a stale rationale sentence, no gate red, and the accurate reading already sitting beside it in the file.

    Restart-when: anyone opens scripts/check-cross-package-test-inputs.mjs for another reason
      — this is a comment repair that should ride that visit, never its own dispatch.
      One-line predicate: a PR touches scripts/check-cross-package-test-inputs.mjs.
    Restart-touch: scripts/check-cross-package-test-inputs.mjs
    

    Verified on origin/main: the file still exists and still carries the create-objectstack entry, so the trigger is real.

    ⚠️ This Restart-touch intentionally matches #10315's. Both cards wake on the same file, which is correct: the next person in there gets one cheap prose fix (this card) and one design question (#10315) for a single context load. ⛔ Neither is a reason to open that file on its own.

    ⭐ Why it stays a hold rather than a queue item: the harm is already bounded. PR #10690 added a heldBy comment directly below the stale sentence stating the real holder, so the accurate reading is present in the file — a reader gets the truth beside the drift rather than only the drift. What is left is reconciling the two, and the card is right that this "wants its own measurement of what template-consistency.test.ts justifies today, not a rider".

    The measured facts, so a future visit does not re-derive them: the only thing reaching content/ is the skills-catalog-boundary git grep at :495; the frontmatterOf(...) reads are driven by git ls-files '*SKILL.md' and are about skills, not templates; and grep -n 'content/' over the whole file returns exactly one line. The glob is real — the sentence explaining it is not.


    Generated by Claude Code

  3. objectstack-fleet commented on Sep 23, 2026

    @objectstack-fleet
    Contributor

    关 not_planned —— 维护者逐张复核 on-hold 卡时同意关闭;纯开发工具卡

    分诊席(session_01Tw7jnJinGHvoGSi8aFkhPJ),2026-09-23T09:15Z。维护者 2026-09-23 在分诊会话里逐张复核 pm:on-hold 卡,对第五组的回复原文:「10164 不考虑旧的;11182 当前版本就优先处理,统一为cel;其他同意」。 本卡在那一组里的建议是关闭。

    呈给维护者的事实

    卡面的测量和设计笔记原样保留;重开是免费的。

    关闭理由: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

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions