.claude-plugin/skills/consolidate-pre-commit-excludes/SKILL.md
# Skill: Consolidate Pre-commit Exclude Patterns ## Overview | Field | Value | |-----------|---------------------------------------------------| | Date | 2026-02-20 | | Issue | #782 | | PR | #828 | | Objective | Consolidate shellcheck `exclude` patterns into a single combined regex | | Outcome | Succes
npx skillsauth add homericintelligence/projectscylla .claude-plugin/skills/consolidate-pre-commit-excludesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| Field | Value |
|-----------|---------------------------------------------------|
| Date | 2026-02-20 |
| Issue | #782 |
| PR | #828 |
| Objective | Consolidate shellcheck exclude patterns into a single combined regex |
| Outcome | Success — one-line change, all hooks passed |
| Category | ci-cd |
exclude: for one path while other hooks use combined regexesbuild/ or another common directory to an existing hook's exclude list.pre-commit-config.yamlRead the current config
cat .pre-commit-config.yaml
Look for hooks that have a lone exclude: vs hooks that use ^(path1/|path2/) combined patterns.
Identify the target hook and compare its exclude: against the project convention (other hooks).
Apply the one-line fix — replace (or add) the exclude: field with a combined regex:
exclude: ^(build/|docs/arxiv/)
Place exclude: immediately after description: and before files: to match the ordering used by other hooks.
Verify locally
pixi run pre-commit run shellcheck --all-files
Expected output: ShellCheck...Passed
Commit, push, and open PR
git add .pre-commit-config.yaml
git commit -m "chore(pre-commit): consolidate shellcheck exclude patterns into single regex"
git push -u origin <branch>
gh pr create --title "..." --body "Closes #<issue>"
gh pr merge --auto --rebase <pr-number>
| Attempt | What happened | Why it failed |
|---------|---------------|---------------|
| Used Skill tool (commit-commands:commit) | Permission denied — session running in don't-ask mode | Skill tool blocked; fell back to direct git + gh CLI commands |
.pre-commit-config.yaml) # Shell script linting
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.9.0.6
hooks:
- id: shellcheck
name: ShellCheck
description: Lint shell scripts and templates for best practices
exclude: ^(build/|docs/arxiv/) # <-- added line
files: \.(sh|bash|sh\.template)$
types: [text]
args: ['--exclude=SC1091']
| Hook | Exclude pattern |
|-------------------|------------------------------------------|
| markdownlint-cli2 | combined regex (notes, build, docs/arxiv, docs/design) |
| yamllint | ^(\.pixi\|build)/ |
| shellcheck | ^(build/\|docs/arxiv/) (after this fix) |
Markdownlint-cli2 full pattern:
^(notes/(plan|issues|review|blog)/|build/|docs/template\.md|docs/arxiv/|docs/design/figures/)
docs/arxiv/ was the only previously-excluded path; build/ was new)build/ should also be excluded when adding docs/arxiv/ — generated content in
both directories should not trigger linting errorsdevelopment
# Skill: docs-status-fix ## Overview | Field | Value | |------------|----------------------------------------------------| | Date | 2026-02-19 | | Category | documentation | | Objective | Fix stale "Current Status" in CLAUDE.md | | Issue | #753 | | PR | #810
tools
# Skill: preflight-closing-issues-fix ## Overview | Field | Value | |-------|-------| | Date | 2026-02-21 | | Issue | #802 | | PR | #912 | | Category | tooling | | Objective | Fix `preflight_check.sh` Check 3 false positives caused by free-text PR search matching issue numbers in unrelated PR titles/bodies | | Outcome | Success — 6 bash tests pass, all pre-commit hooks green, PR created with auto-merge | ## When to Use Trigger this skill when: - A preflight/guard script uses `gh pr list --s
tools
# Preflight Check Skill Propagation ## Overview | Field | Value | |-------|-------| | Date | 2026-02-21 | | Issue | #803 | | Objective | Add preflight check to `worktree-create` skill so developers bypassing `gh-implement-issue` still run the 6-check safety gate | | Outcome | Success — PR #917 created, auto-merge enabled | | Files Changed | `tests/claude-code/shared/skills/worktree/worktree-create/SKILL.md` | ## When to Use Use this pattern when: - A safety/quality gate exists in one entry-
tools
# Orphan Config Detection ## Overview | Field | Value | |------------|-----------------------------------------------------------------| | Date | 2026-02-20 | | Issue | #777 | | PR | #824 | | Objective | Warn when a `config/models/*.yaml` file