Skip to content

tech-debt: extend per-skill mirror-equality guard to auxiliary skill files (not just SKILL.md) #379

Description

@rucka

Story Statement

As a Pair maintainer/reviewer
I want the per-skill mirror-equality guard to also assert non-SKILL.md files in each skill dir (e.g. degradation-levels.md, merge-and-cascade.md, assess-orchestration.md, post-review-merge.md)
So that drift in a skill's auxiliary transformed files is caught by CI, not just its SKILL.md.

Context

PR #377 (story #352) added a data-driven guard asserting every root .claude/skills/<prefixed>/SKILL.md equals the real pair update copy-pipeline transform of its dataset source. That guard is intentionally scoped to SKILL.md (AC1-AC5).

Multi-file skills (pair-process-review, pair-process-bootstrap, pair-process-implement, ...) also mirror auxiliary .md files that the same pipeline transforms (link-depth + skill-reference rewrites). These are currently not guarded, so hand-edit / stale-mirror drift in them would go uncaught.

Acceptance Criteria

  1. Guard asserts byte-for-byte equality for every transformed file in each dataset skill dir (not only SKILL.md), reusing the same real pipeline output already produced by buildInstalledSkillMd.
  2. Data-driven — no hardcoded file list; new auxiliary files covered automatically.
  3. Missing / drifted auxiliary file fails loudly with skill + file path + pair update hint.

Notes

  • Low effort: buildInstalledSkillMd already runs the full pipeline over the entire tree; it currently only extracts SKILL.md per dir. Extending to all produced files is mostly enumeration.
  • Priority P2, R7.2 tech-debt — non-blocking.

Found during independent review of PR #377.

Metadata

Metadata

Assignees

No one assigned

    Labels

    tech-debtTracked technical debt (living backlog, R7.2 — never blocks a PR)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions