T-LNHL-delete-skill-prose-custom-matcher
Status: closed/done · Impact: medium · Complexity: small
With the gate running the contract, the bespoke matcher is dead code.
Remove plugin/lib/services/gate/ops/_skill_prose_core.ts and its
hand-rolled phrase / section / tool-ref matching, and thin the
skill-prose op down to a markdown-contract caller — mirroring the
shape of skill_md_harness.ts, the sibling SKILL.md harness that is
already a thin contract caller.
| Location | Role today |
|---|---|
plugin/lib/services/gate/ops/_skill_prose_core.ts | The bespoke matcher — lintSkill plus the phrase / section / tool-ref matching logic; once the gate is rewired, nothing imports it |
plugin/lib/services/gate/ops/skill-prose.ts | The gate op; after this task it is a thin contract caller with no project-local matching |
.claude/skills/project-check/skill_md_harness.ts | The thin-contract-caller pattern this op mirrors |
Approach
Section titled “Approach”After T-6OS7 the op imports the contract runner, so _skill_prose_core.ts has no
callers. Confirm, then remove it.
- Grep for importers: the only one is
skill-prose.ts(rewired in T-6OS7). The op’s localViolationinterface (skill-prose.ts:88) is independent of the core’s, so deleting the core orphans no shared type. - Delete
_skill_prose_core.tsand any residual import line; confirm the op is a thinmarkdown-contractcaller in the shape ofskill_md_harness.ts.
Files to touch
Section titled “Files to touch”| Location | Kind | Change |
|---|---|---|
plugin/lib/services/gate/ops/_skill_prose_core.ts | delete | Remove the bespoke matcher (lintSkill + phrase / section / tool-ref logic); no importers remain after the rewire |
plugin/lib/services/gate/ops/skill-prose.ts | modify | Remove the now-unused _skill_prose_core.ts import if T-6OS7 left it; confirm no residual references |
Acceptance criteria
Section titled “Acceptance criteria”- AC-1:
_skill_prose_core.tsis deleted; no source file importslintSkillor any symbol from it. - AC-2: The
skill-proseop is a thinmarkdown-contractcaller with no bespoke matching, structured likeskill_md_harness.ts. - AC-3: The skill-prose tests and the lefthook gate run green after the deletion.
Out of scope
Section titled “Out of scope”- Removing the
invariants.yamlsidecars or migrating fixtures — the next task. - Authoring or changing the contract — done in earlier phase-B tasks.
Dependencies
Section titled “Dependencies”- T-6OS7-rewire-skill-prose-gate-onto-contract — the gate must no longer import
lintSkillbefore the matcher can be deleted.
Depends on
Section titled “Depends on”T-6OS7-rewire-skill-prose-gate-onto-contract