Skip to content

spec-property-retirement playbook still prescribes an issue id inside the retiredKey() guidance string, which check:doc-authoring now refuses #15388

Description

@os-justin

Observation from executing #14788 (PR #15386): the two instructions disagree, and a retirement authored from the playbook reds the gate on its first run.

The contradiction

  • .claude/skills/spec-property-retirement/SKILL.md → "guidance 字符串怎么写", convention 2: the prescription reads was removed in @objectstack/spec <version> (#issue[, ADR-XXXX Dn]) — the issue id is part of the prescribed shape, and the tombstone note template a few lines up also carries (#<issue>).
  • pnpm check:doc-authoring (scripts/check-doc-authoring.mjs) refuses an internal issue id in customer-facing spec text, retiredKey() tombstone prescriptions included, citing the maintainer ruling 2026-08-12 verbatim: 「处理 issue 时犯的错应该总结成经验,保留 issue id没有意义」. Measured on PR feat(spec,hono-server): retire SessionUser.language — /auth/me/localization is the one read face for the user's language (#14788) #15386: the tombstone '... was removed in @objectstack/spec 17.4.0 (#14788, ADR-0049) — ...' was flagged (packages/spec/src/api/auth.zod.ts:57 #14788 [retiredKey()]) and passed once the id was dropped in favour of the ADR alone.

The gate is the newer instrument and carries the ruling; the playbook is the stale one. The existing tombstones in the tree already follow the gate (EnhancedApiError.fieldErrors cites ADR-0114 D4 only; stack.zod.ts themes cites ADR-0049 only).

Suggested repair

Rewrite convention 2 in the playbook to was removed in @objectstack/spec <version> (ADR-XXXX[ Dn]) and say in one line why the issue id is not there (the gate + the ruling), and drop (#<issue>) from the tombstone-note template — or move it into the schema COMMENT, where the id is welcome and the gate does not read. The playbook is a governed file (check:doc-authoring scans .claude/), so the edit is checked by the same gate.

Related: #14788, PR #15386.

Activity

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

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions