Skip to content

docs-hygiene: proactive repo-scan detection for copied external content, capability enumerations, and internal-name coupling #253

Description

@kyle-sexton

Summary

docs-hygiene has no proactive, repo-wide scanner for three drift shapes
that the new /re-anchor:point-dont-copy corrector (#249) only catches
reactively, inside a live conversation. This issue proposes adding
detection for them — as new declutter noise shapes, a dedicated scan, or
a reviewer pass — so a repo can be swept for them without a human first
noticing the drift in-session.

The three detection gaps

  1. External-copy blocks. Content copied or paraphrased from a source the
    repo does not own — a doc site, a third-party playbook, a tool's own
    documentation — that will drift from its upstream. Includes verbatim
    quotes, detail paraphrase (drifts the same as verbatim), extracted value
    tables, and copied config blocks. Distinct from extract-ssot, which
    deduplicates repetition within the repo; this is about copies of an
    external owner's facts.
  2. Capability enumerations. Closed lists of what something can do — a
    hard-coded tool schema, a fixed "the N things this supports" list — in a
    durable doc. These go stale the moment the surface evolves; the
    discipline is to phrase duties open-ended and name current mechanisms only
    as marked examples.
  3. Internal-name coupling. A durable doc (or citation) that references an
    internal script or file name where the public invocation contract
    (/plugin:skill + args) would do. Internal names are rename blast radius;
    the reference breaks silently on the next rename. Adjacent to
    rename-references (which sweeps after a rename) and audit-encapsulation
    (which catches reaching into skill-private surfaces), but neither
    proactively flags "this citation targets an internal name that should be
    the public contract."

Why proactive detection

point-dont-copy is a reactive corrector: it re-anchors the discipline and
audits the work in flight when a human fires it. That covers a live session
but not a repo-wide sweep — nobody fires a corrector against 200 existing
docs. The docs-hygiene toolkit is where the proactive, classify-the-whole-tree
counterparts live (declutter already classifies five other markdown noise
shapes; extract-ssot scans for duplication). These three shapes have no
proactive home.

Design considerations (not prescriptive)

  • Boundary precision matters. Each shape has a legitimate look-alike the
    detector must NOT flag: an adapted-for-this-repo config, a self-pinned
    constraint the repo owns, a dated one-shot research deliverable, an
    empirically observed error string (external-copy); a genuinely
    fixed/closed set that is the contract (capability enumeration); a contract
    identifier that must stay inline (internal-name). A high false-positive
    rate makes the scan noise. point-dont-copy's OK/violation boundary table
    (feat(re-anchor): add discipline-corrector plugin #249) is a starting rubric for the copy shape.
  • Placement. Could be new declutter shapes (it already classifies into
    Tier 1/2/3), a dedicated scan action, or a read-only reviewer agent —
    whichever fits the toolkit's structure best.
  • Read-only, tiered findings. Consistent with declutter's existing
    contract: classify and surface, do not auto-edit.

Filed as part of the round-2 personal-skill graduation; point-dont-copy
(#249) is the reactive corrective, and this issue is the proactive-scan
counterpart it cannot cover.

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: mediumReal value, no hard deadline; normal backlog flow.wayfind: designWayfind decision item: design-space or domain-model decision; human in the loop.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions