Skip to content

docs: replace restated upstream facts with pointers in docs-hygiene, mcp-tools, plugin-quality, session-flow #12695

Description

@kyle-sexton

Refs: #7292

Outcome

28 passages in 18 files state a fact an external source owns. Rewrite each as a pointer to the live upstream section, or remove it, so the next upstream change cannot leave a stale copy here. Plugins: docs-hygiene, mcp-tools, plugin-quality, session-flow.

Done when

  • Every row below is fixed: the restated value is deleted, the local decision stays in this repository's own words, and the pointer goes to the exact upstream section with an as-of date and a recheck trigger, per .claude/rules/skill-bodies-state-current-rules.md. A record beside a restated value does not fix it. A row marked Remove has no local dependency on the fact.
  • The PR passes check-stamps.sh --trigger-less (plugins/attribution/skills/audit/scripts/check-stamps.sh) on the files it touches.
  • Each touched plugin has a changelog fragment.

Rows

docs-hygiene

mcp-tools

  • plugins/mcp-tools/README.md:29 (r335). Pointer: https://modelcontextprotocol.io/specification/2026-07-28/server/tools#tool Drop the claim that annotations are optional in the spec; keep the decision that a missing annotation is WARN, never FAIL, and point at the Tool data type section.
  • plugins/mcp-tools/README.md:44-45 (r336). Pointer: https://code.claude.com/docs/en/sandboxing#what-runs-outside-the-sandbox Drop the parenthetical claim that a stdio server does not run in the sandbox; keep the sandbox field in the inventory and point at the section.
  • plugins/mcp-tools/skills/audit-posture/SKILL.md:38-41 (r337). Pointer: https://code.claude.com/docs/en/mcp#mcp-installation-scopes Drop the claims about what ~/.claude.json and server entries hold; keep the rule to read MCP configuration only through the inventory script, and point at the scopes section.
  • plugins/mcp-tools/skills/audit-posture/reference/checklist.md:55-58,62-65 (r338). Pointer: https://docs.npmjs.com/cli/commands/npx (confirm the section) Drop the claims about runner resolution at start and the registry not republishing versions; keep the decisions (floating spec is the only FAIL, versioned tarball reads exact) and point at the npx page.
  • plugins/mcp-tools/skills/audit/reference/checklist.md:163-168 (r339). Pointer: https://github.com/modelcontextprotocol/python-sdk (confirm the section) Drop the per-SDK list of how _meta is attached; keep the instruction to accept each SDK's native form when auditing source, and point at each SDK's docs (python, typescript, csharp). Same text also at: plugins/mcp-tools/skills/audit/reference/server-discovery.md:70, plugins/mcp-tools/skills/audit/reference/server-discovery.md:82, plugins/mcp-tools/skills/audit/reference/server-discovery.md:94; a row of its own covers it only if listed.
  • plugins/mcp-tools/skills/audit/reference/server-discovery.md:29-38 (r340). Pointer: https://modelcontextprotocol.io/specification/2026-07-28/changelog#major-changes Drop the per-SDK instructions spellings and the revision-to-message mapping; keep the decision to extract server instructions and point at the changelog and SDK docs.
  • plugins/mcp-tools/skills/audit/reference/server-discovery.md:63-100 (r341). Pointer: https://github.com/modelcontextprotocol/typescript-sdk (confirm the section) Drop the SDK-specific meta-extraction behavior descriptions; keep each language's tool-marker needed for discovery and point at each SDK's docs (python, typescript, csharp).

plugin-quality

  • plugins/plugin-quality/skills/audit/reference/component-types/command.md:3-6 (r385). Pointer: https://code.claude.com/docs/en/skills#how-a-skill-gets-its-command-name Drop the statement that commands and skills both produce the same slash command and what skills support; keep the 'should this be a skill?' finding and point at the section.
  • plugins/plugin-quality/skills/audit/reference/component-types/config.md:27-28 (r387). Pointer: https://code.claude.com/docs/en/plugins/manifest-reference#user-configuration Drop the keychain-backed description of sensitive; keep the rule that credential options must be marked sensitive and point at the user configuration section.
  • plugins/plugin-quality/skills/audit/reference/component-types/config.md:31-33 (r388). Pointer: https://code.claude.com/docs/en/plugins/components#default-settings Drop the list of supported keys, the unknown-key behavior and the precedence claim; keep the instruction to flag unsupported keys and point at the default settings section.
  • plugins/plugin-quality/skills/audit/reference/component-types/config.md:34-36 (r389). Pointer: https://code.claude.com/docs/en/plugins/components#lsp-servers Drop how invalid entries and failed servers surface; keep the check that the server binary prerequisite is documented for installers and point at the LSP servers section.
  • plugins/plugin-quality/skills/audit/reference/component-types/hook.md:7 (r390). Pointer: https://code.claude.com/docs/en/hooks#matcher-patterns Drop the matcher definition in the parenthetical; keep the list of hooks.json aspects the audit inspects and point at the matcher patterns section.
  • plugins/plugin-quality/skills/audit/reference/recurring-concerns.md:10-13 (r392). Pointer: https://code.claude.com/docs/en/hooks#matcher-patterns Drop the statement that hooks match on tool name and the bypass mechanics; keep the concern to check coverage of alternate tools and point at the matcher section.
  • plugins/plugin-quality/skills/audit/reference/recurring-concerns.md:66-68 (r393). Pointer: https://code.claude.com/docs/en/settings#settings-files-and-who-they-affect (confirm the section) Drop the claim about .claude/ write protection and storage status; keep the question of whether an artifact must live there and the tool-agnostic placement advice, with a pointer.

session-flow

  • plugins/session-flow/reference/structure.md:340-341,357-363 (r427). Pointer: https://code.claude.com/docs/en/tools-reference#task-tool-availability Drop the claims about which task tools exist, TodoWrite having no read call, and /clear destroying the task list; keep the branch-on-tool-list rule and render format, pointing at the section.
  • plugins/session-flow/reference/structure.md:825-828 (r429). Pointer: https://code.claude.com/docs/en/claude-directory#application-data Drop the statement that the transcript lives at the projects glob path; keep the stat-at-write, unresolved fallback and validate behavior, and point at the transcript location in the docs.
  • plugins/session-flow/skills/clean-stop/SKILL.md:93-96 (r430). Pointer: https://git-scm.com/docs/git-worktree#commands (confirm the section) Drop the claims that plain git status hides ignored files and worktree remove deletes them; keep the rule to inspect and preserve ignored content before removal, pointing at the docs.
  • plugins/session-flow/skills/recommend-skills/SKILL.md:57-58 (r439). Pointer: none found; Find the Claude Code docs page and section on plugin cache location and layout; plugins-reference#plugin-caching-and-file-resolution does not exist (the page has no such section). Drop the description of the plugin cache layout; keep the decision to reuse the existing result instead of walking the cache, and point at the docs section on the cache.
  • plugins/session-flow/skills/reconcile/SKILL.md:70-76 (r435). Pointer: https://code.claude.com/docs/en/sub-agents#finished-subagents-in-the-panel-and-task-list (confirm the section) Drop the claim about why a returned worker stays listed; keep the rule to check for a still-running background task before retiring it, and point at the section.
  • plugins/session-flow/skills/running-retro/SKILL.md:43-46 (r437). Pointer: https://code.claude.com/docs/en/how-claude-code-works#work-with-sessions (confirm the section) Drop the lossless and survives-compaction claims about the on-disk transcript; keep that running-retro reads it with the retro parser, and point at the section.
  • plugins/session-flow/skills/running-retro/SKILL.md:242-245 (r438). Pointer: https://code.claude.com/docs/en/scheduled-tasks#how-session-scoped-scheduled-tasks-run Drop the statement that a /loop cannot fire after the session ends; keep that running-retro ships no scheduler, composes with /loop, and the observer is the push counterpart.

Notes

Lines are as of 3bd42cabfe (https://github.com/melodic-software/claude-code-plugins/blob/3bd42cabfe6bdef37a05778d396869af0381bb51); locate each passage by its text if main has moved. Each rNNN is that row's number in the order of #7292's "Findings by plugin". Every row was upheld by three blind judges and survived a refutation pass, run report-only for #12072. Pointers are candidates: fetch each before writing it, and confirm the section still documents the fact.

Parent: #7292

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Nov 3, 2026
  2. github-actions commented on Nov 3, 2026

    @github-actions
    Contributor

    Proposed work class: work-class: scoped
    Basis: automated intake triage; the lanes App applied this class.

    Size: Medium
    Complexity: Medium
    Uncertainty: Knowable
    Flags: none
    Blocked by: none

    Understood: 28 passages in 18 files across docs-hygiene, mcp-tools, plugin-quality and session-flow restate facts that upstream sources own. Each should become a pointer to the live upstream section, with the local decision kept in this repo's own words. The PR should pass check-stamps.sh --trigger-less, and each touched plugin needs a changelog fragment.

    Nothing blocks triage. Several pointers are marked "confirm the section", so whoever does the work will need to fetch and verify them first. The row for r439 has no pointer yet.

    This looks related to the sibling pointer-replacement issues #12696 to #12699, which cover other plugins, plus parent #7292. They are not duplicates, because each covers different plugins.

    Automated triage, applied by the lanes App.

  3. removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Nov 3, 2026
  4. github-actions commented on Nov 3, 2026

    @github-actions
    Contributor

    The triage sweep dispatched intake triage for this issue (attempt 1 of 2).

  5. added
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.
    on Nov 3, 2026
  6. added
    admission-deferredAdmitted but waiting for WIP room; the hourly work-unblock sweep labels it agent-ready.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    and removed
    admission-deferredAdmitted but waiting for WIP room; the hourly work-unblock sweep labels it agent-ready.
    on Nov 3, 2026
  7. github-actions commented on Nov 3, 2026

    @github-actions
    Contributor
    No description provided.
  8. github-actions commented on Nov 3, 2026

    @github-actions
    Contributor
    No description provided.
  9. removed
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    on Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: lowNice-to-have, cosmetic, or speculative; opportunistic.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

    Type

    Fields

    Work status

    agent-ready

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions