Skip to content

14 internal issue-id references survive in generated skills/** artifacts — their source is packages/spec TSDoc, so the ruled strip could not reach them #11930

Description

@os-zhuang

Measured while implementing #11052 (the ruled strip of internal issue ids from the published catalog). Filed unassigned — out of that card's scope, which was the hand-authored corpus.

Sub-issue of #11052: same ruling, same citation kind, one source-layer over. The 2026-08-23 ruling was «strip the internal issue-id references from the published skill corpus»; these 14 sites are in that corpus but are not authored there.

What

After the strip, skills/** still carries 14 #NNNN references, all in generator-owned files:

3  skills/objectstack-data/references/_index.md          #4410 ×2, #6345
3  skills/objectstack-platform/references/_index.md      #4410 ×2, #6345
3  skills/objectstack-ui/contracts/react-blocks.contract.json   #11284 ×2, #4413
3  skills/objectstack-ui/references/react-blocks.md      #11284 ×2, #4413
1  skills/objectstack-automation/references/_index.md    #4661
1  skills/objectstack-i18n/references/_index.md          #4001

Every one of these files says so in its own header — > **Auto-generated** — do not edit for _index.md, {/* GENERATED by packages/spec/scripts/build-react-blocks-contract.ts — do not edit. */} for the react-blocks pair.

Why the cleanup PR did not fix them

The ids are not written in skills/. They are projected from .describe() / TSDoc text in packages/spec/src/** by gen:skill-refs and gen:react-blocks. So the fix is a spec-source edit plus a regeneration, and that has a materially wider blast radius than the card it would have ridden on:

Doing it inside the cleanup PR would have been an unmeasured widening riding on a measured card, so it was deliberately left and exempted by path in the new gate, with the reason recorded in scripts/check-doc-authoring.mjs next to the exemption rather than left implicit. The exemption is exact: 9 _index.md + 1 react-blocks.md, each verified to carry a generated marker, leaving 38 of the 48 .md files in scope.

What a card here would do

  1. Strip the ids from the source .describe() / TSDoc in packages/spec/src/** (keeping the teaching, per the 2026-08-12 ruling: 「处理 issue 时犯的错应该总结成经验,保留 issue id没有意义」), then regenerate.
  2. Decide whether the doc-authoring gate's GENERATED_SKILL_ARTIFACTS exemption can then be narrowed or removed — once the source is clean the generated files are clean, and keeping a permanent exemption over a surface that no longer needs one is how the next id gets in unseen.
  3. Consider whether the ban belongs on the spec-source side too, where the text is actually authored — that is the only place a regeneration cannot reintroduce it from.

⚠️ skills/** and the generated artifacts under it are a governed surface, so whatever lands here is draft + human merge.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions