code-sentinel
This skill fixes recurring anti-patterns when specific tests fail, providing documented root causes and verification steps. It maps test failures to detailed anti-pattern documentation across CI workflows, build packaging, and application runtime issues.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install mharbulous-syncopaid-code-sentinel
Repository
Skill path: .claude/skills/code-sentinel
This skill fixes recurring anti-patterns when specific tests fail, providing documented root causes and verification steps. It maps test failures to detailed anti-pattern documentation across CI workflows, build packaging, and application runtime issues.
Open repositoryBest for
Primary workflow: Run DevOps.
Technical facets: Testing, DevOps.
Target audience: Python developers working on projects with recurring CI/CD, packaging, or runtime issues who want systematic fixes.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: Mharbulous.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install code-sentinel into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/Mharbulous/SyncoPaid before adding code-sentinel to shared team environments
- Use code-sentinel for testing workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
--- name: code-sentinel description: Use when tests/test_code_patterns.py fails - fixes recurring anti-patterns with documented root causes and verification --- # Code Sentinel Fix recurring anti-patterns detected by `tests/test_code_patterns.py`. **You MUST use this skill when test_code_patterns.py fails.** Even if the fix looks obvious. The anti-pattern files document WHY patterns fail, not just HOW to fix them. ## Workflow 1. Run `pytest tests/test_code_patterns.py -v` 2. For each failing test, read the anti-pattern file (see index below) 3. Understand the root cause (not just the fix) 4. Apply the documented fix 5. Verify tests pass ## Anti-Pattern Index ### CI/Workflow Anti-Patterns Issues that occur in GitHub Actions workflows and CI pipelines. | Anti-Pattern | File | Automated Test | |--------------|------|----------------| | Heredocs fail inside YAML `run:` blocks | `ci-workflow/yaml-heredoc-indentation.md` | `test_no_heredocs_in_github_actions` | | `grep -c \|\| echo "0"` creates duplicate output | `ci-workflow/grep-exit-code-echo-fallback.md` | `test_no_grep_exit_code_echo_pattern` | | Git pull/rebase fails with dirty working tree | `ci-workflow/git-pull-without-autostash.md` | `test_git_operations_with_staging` | | `gh workflow run` silently fails without permission | `ci-workflow/gh-workflow-run-permissions.md` | `test_workflow_dispatch_has_actions_permission` | | Windows venv path used on Linux runner | `ci-workflow/windows-venv-path-on-linux.md` | `test_venv_activation_uses_linux_path` | ### Build/Packaging Anti-Patterns Issues with PyInstaller bundling, version generation, and cross-platform builds. | Anti-Pattern | File | Automated Test | |--------------|------|----------------| | Missing hidden imports after refactoring | `build-packaging/pyinstaller-missing-hidden-imports.md` | `test_pyinstaller_hidden_imports` | | Import path case mismatch breaks bundling | `build-packaging/import-path-case-mismatch.md` | (manual) | | Bare imports for sibling modules fail in bundle | `build-packaging/sibling-absolute-import-bundling.md` | `test_sibling_imports_use_relative_syntax` | | Gitignored file committed before rule | `build-packaging/gitignored-file-still-tracked.md` | (manual) | | Version hash embedded before commit | `build-packaging/version-hash-before-commit.md` | (design issue) | | Windows backslash paths in .spec file | `build-packaging/windows-backslash-in-spec.md` | `test_spec_uses_forward_slashes` | ### Application/Runtime Anti-Patterns Issues in application code that cause runtime failures or unexpected behavior. | Anti-Pattern | File | Automated Test | |--------------|------|----------------| | Sort without secondary tiebreaker key | `application-runtime/sort-without-tiebreaker.md` | `test_deterministic_file_sorting` | | Fixed window geometry cuts off content | `application-runtime/fixed-window-geometry.md` | `test_no_fixed_window_geometry` | | Same constant defined in multiple modules | `application-runtime/duplicate-module-level-constants.md` | (manual) | | Optional import fails silently | `application-runtime/silent-optional-import-failure.md` | (manual) | | PIL ImageGrab black on secondary monitor | `application-runtime/pil-imagegrab-multimonitor.md` | (hardware-dependent) | | PIL-saved ICO renders invisible | `application-runtime/pil-ico-save-invisible.md` | (Windows-dependent) | ## Quick Reference: Test-to-File Mapping ``` test_no_heredocs_in_github_actions → ci-workflow/yaml-heredoc-indentation.md test_no_grep_exit_code_echo_pattern → ci-workflow/grep-exit-code-echo-fallback.md test_git_operations_with_staging → ci-workflow/git-pull-without-autostash.md test_workflow_dispatch_has_actions_permission → ci-workflow/gh-workflow-run-permissions.md test_venv_activation_uses_linux_path → ci-workflow/windows-venv-path-on-linux.md test_pyinstaller_hidden_imports → build-packaging/pyinstaller-missing-hidden-imports.md test_sibling_imports_use_relative_syntax → build-packaging/sibling-absolute-import-bundling.md test_spec_uses_forward_slashes → build-packaging/windows-backslash-in-spec.md test_deterministic_file_sorting → application-runtime/sort-without-tiebreaker.md test_no_fixed_window_geometry → application-runtime/fixed-window-geometry.md ``` ## Common Mistakes | Mistake | Why It's Wrong | |---------|---------------| | "Fix is obvious, skip the skill" | You miss the root cause. Next time you'll make the same mistake. | | Fixing without reading anti-pattern doc | The doc explains WHY, not just WHAT. Understanding prevents recurrence. | | Not verifying tests pass | The pattern might exist elsewhere in codebase. | ## Adding New Anti-Patterns When you discover a new recurring issue: 1. **Identify the category**: CI/Workflow, Build/Packaging, or Application/Runtime 2. **Create the file** in the appropriate subfolder with a descriptive name 3. **Follow the template**: - Category - Issue (one-line summary) - Pattern to Avoid (code example) - Correct Approach (code example) - Why It Fails (root cause explanation) - Detection (how to find instances) - Test Reference (if automated test exists) - Related Commits (historical context) 4. **Update this index** with the new anti-pattern 5. **Add automated test** in `tests/test_code_patterns.py` if feasible Anti-pattern files: `.claude/skills/code-sentinel/anti-patterns/`