Skip to content

chore: drop the configuration validator - #20

Merged
skateddu merged 1 commit into
mainfrom
chore/drop-config-validator
Aug 13, 2026
Merged

chore: drop the configuration validator#20
skateddu merged 1 commit into
mainfrom
chore/drop-config-validator

Conversation

@skateddu

Copy link
Copy Markdown
Owner

Stacked on #19, which is stacked on #18. Merge order: #18#19 → this one. GitHub retargets each as the one below it lands.

What

Removes scripts/validate_config.py, added in #16, along with its CI step and every reference to it.

Why

The script checked four things: that settings.json and the MCP configs parse, that the hook scripts settings.json names exist on disk, that CLAUDE.md's @-imports resolve, and that each skill's SKILL.md still declares name and description. Three of those are genuine silent-failure modes — a renamed hook stops firing with no error, a broken import drops a rule from context.

But they are checks on the repository, not on what the template does. This project's value is a working, verified configuration; scaffolding that watches the configuration is a second thing to maintain, and it grows. The call is to keep the verification that proves behaviour and drop the verification that proves tidiness.

Worth recording what is given up, so the decision can be revisited on evidence rather than memory:

  • Renaming a hook script without updating settings.json is now caught only partiallyrun_hook asserts the script exists, so deleting protect-main.sh still turns the tests red, but renaming it and updating the tests while forgetting settings.json passes.
  • A broken @-import in CLAUDE.md and a skill that loses its frontmatter are no longer caught by anything.

Its own blind spot argued the same way: it did not catch .claude/hooks/lib/command-text.sh being swallowed by .gitignore in #19 — it inspected files named in settings.json, and a sourced sibling was invisible to it. A checker that needs its own checker is the shape of the problem.

What CI keeps

Check Verifies
ruff check / ruff format --check Lint and formatting
shellcheck --severity=warning Shell bugs in the hook scripts
pytest The hooks reach the right decisions — 75 tests

Also

  • The job is renamed from "Lint and validate configuration" to "Lint and test".
  • scripts/**/*.py dropped from ruff's include; scripts/ is gone entirely.
  • The CHANGELOG entry for the validator is deleted rather than moved to Removed — it was added and removed inside the same unreleased cycle, so it never shipped and recording an add-then-remove pair would be noise. The CI and pyproject.toml entries are corrected to match.
  • The Added entry for tests/ said 65; the suite is 75 after fix(hooks): stop matching patterns against heredoc prose #19. Corrected — the same drift the coherence pass in docs: align README, CHANGELOG and CONTRIBUTING with actual state #18 was about.
  • The uncommitted third-party edit to validate_config.py is resolved by the file's deletion.

Verification

Lint, format and all 75 tests pass. No reference to validate_config remains outside the vendored skills.

🤖 Generated with Claude Code

The script checked that settings.json points at hooks that exist, that
CLAUDE.md's @-imports resolve and that skills keep their frontmatter —
real silent-failure modes, but meta-checks on the repository rather than
on what the template does. The value here is a working, verified
configuration, not scaffolding that watches it.

CI keeps what verifies behaviour: ruff, shellcheck, and the hook tests.

Its CHANGELOG entry is dropped rather than moved to Removed: it was
added and removed inside the same unreleased cycle, so it never shipped.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@skateddu
skateddu changed the base branch from fix/hook-false-positive-on-heredoc to main August 13, 2026 13:58
@skateddu
skateddu merged commit 725f423 into main Aug 13, 2026
1 check passed
@skateddu
skateddu deleted the chore/drop-config-validator branch August 13, 2026 13:59
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