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
- 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.
- Data-driven — no hardcoded file list; new auxiliary files covered automatically.
- 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.
Story Statement
As a Pair maintainer/reviewer
I want the per-skill mirror-equality guard to also assert non-
SKILL.mdfiles 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.mdequals the realpair updatecopy-pipeline transform of its dataset source. That guard is intentionally scoped toSKILL.md(AC1-AC5).Multi-file skills (
pair-process-review,pair-process-bootstrap,pair-process-implement, ...) also mirror auxiliary.mdfiles 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
SKILL.md), reusing the same real pipeline output already produced bybuildInstalledSkillMd.pair updatehint.Notes
buildInstalledSkillMdalready runs the full pipeline over the entire tree; it currently only extractsSKILL.mdper dir. Extending to all produced files is mostly enumeration.Found during independent review of PR #377.