Skip to content

chore: refresh skills-index and add deterministic consistency check#121

Merged
shinpr merged 1 commit intomainfrom
chore/refresh-skills-index
May 2, 2026
Merged

chore: refresh skills-index and add deterministic consistency check#121
shinpr merged 1 commit intomainfrom
chore/refresh-skills-index

Conversation

@shinpr
Copy link
Copy Markdown
Owner

@shinpr shinpr commented May 2, 2026

Summary

Refreshes three stale entries in the task-analyzer skills metadata index and adds a pre-commit script that detects future drift automatically.

Changes

Skills index entries refreshed

  • coding-principles — yaml's section list referenced Security Principles (Secure Defaults, ...) with bracketed subsections; the actual SKILL.md H2 heading is just Security Principles. Trimmed to match.
  • integration-e2e-testingtags and typical-use updated to reflect the two-lane E2E split (fixture-e2e and service-integration-e2e) introduced in 0.17.0. Added tag terms: fixture-e2e, service-integration-e2e, lane-selection.
  • test-implementtags and typical-use updated so references/e2e.md is described as covering both fixture-e2e (mocked backend) and service-integration-e2e (live local stack) patterns. Added tag terms: fixture-e2e, service-integration-e2e.

New consistency checker

scripts/check-skills-index.mjs:

  • Walks every entry in skills-index.yaml.
  • For each, reads the corresponding skills/<name>/SKILL.md, extracts H2 headings in order.
  • Compares against the yaml sections list (strict order + text match).
  • Exits non-zero on any mismatch, missing skill directory, or empty sections list.
  • Reports yaml vs md diff per index for fast triage.

Scope is intentionally narrow — sections are deterministically checkable; tags/typical-use are subjective and remain manual.

Wiring

  • pnpm check:skills-index registered in package.json.
  • lefthook.yml pre-commit job check-skills-index fires when any skills/*/SKILL.md or skills/task-analyzer/references/skills-index.yaml changes.

Version

0.17.00.17.1 (semver patch: bug fix + tooling, no behavior change).

Test Plan

  • pnpm check:skills-index passes (verified locally — 10/10 skills consistent).
  • Failure path verified locally: introducing a deliberate yaml/md mismatch produces exit 1 with diff output showing [index] yaml: "..." vs md: "...".
  • claude plugin validate passes for marketplace and all three plugin manifests (run by lefthook pre-commit).
  • Pre-commit hook runs the new check successfully (verified during the commit on this branch).

The metadata index used by task-analyzer (skills-index.yaml) had drifted
from the actual SKILL.md content for three entries. Refresh those entries
and add a pre-commit script that detects future drift automatically.

- coding-principles: yaml section list referenced "Security Principles
  (Secure Defaults, ...)" with bracketed subsections; the actual SKILL.md
  H2 heading is just "Security Principles". Trimmed to match.

- integration-e2e-testing: tags and typical-use updated to reflect the
  two-lane E2E split (fixture-e2e and service-integration-e2e) introduced
  in 0.17.0.

- test-implement: tags and typical-use updated so references/e2e.md is
  described as covering both fixture-e2e (mocked backend) and
  service-integration-e2e (live local stack) patterns.

- New scripts/check-skills-index.mjs walks every entry in skills-index.yaml,
  reads the corresponding skill's SKILL.md, extracts H2 headings in order,
  and exits non-zero on any mismatch (missing skill directory, empty
  sections list, or order/text divergence). Reports yaml vs md diff per
  index for fast triage.

- Registered as pnpm script `check:skills-index` and wired into lefthook
  pre-commit (fires when any skill SKILL.md or skills-index.yaml changes).

Patch version bump 0.17.0 -> 0.17.1.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@shinpr shinpr self-assigned this May 2, 2026
@shinpr shinpr merged commit 3e189e0 into main May 2, 2026
1 check passed
@shinpr shinpr deleted the chore/refresh-skills-index branch May 2, 2026 22:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant