feat: joy-check public migration with 100% CI gate#634
Merged
Conversation
…pdate Adds deterministic CI enforcement of positive instruction framing across all agents and skills. Joy-check SKILL.md and rubrics accessible at skills/voice/skills/joy-check/ (via private-skills symlink); validator, tests, CI job, and PHILOSOPHY documentation committed to public repo. Changes: - scripts/validate_positive_instruction_docs.py: add NEVER and Don't patterns (2 missing from instruction rubric), tighten Avoid regex to skip technical phrases like "to Avoid N+1", add voice-andy-nemmity and voice-vexjoy to allowlist as contextual exceptions - scripts/tests/test_joy_check_instruction_mode.py: new — golden fixtures for all 7 primary patterns, 6 contextual exceptions, 4 positive rewrites, parametrized fleet scan across 44 agents + 134 SKILL.md files (178 pass) - .github/workflows/test.yml: new joy-check job runs pytest fleet scan on every push and PR - docs/PHILOSOPHY.md: new "Positive Framing as CI Gate" section documenting the 100% zero-tolerance requirement, pattern table, and implementation refs Symlink updated: ~/.claude/skills/joy-check → skills/voice/skills/joy-check/
Joy-check was in private-skills/ (gitignored, invisible to CI). Moved to skills/code-quality/joy-check/ — a real git-tracked directory alongside code-cleanup, code-linting, comment-quality. - SKILL.md with 100% threshold (zero tolerance) - references/instruction-rubric.md (7 primary patterns) - references/writing-rubric.md (joy-grievance spectrum) - Updated test docstring path reference
Fixes test_skill_mapping_covers_all_categorized_skills — joy-check was on disk at skills/code-quality/joy-check/ but missing from the migration mapping and routing index.
… location Was: ~/.claude/skills/joy-check/ (symlink, flagged as old flat path) Now: repo-relative skills/code-quality/joy-check/ (direct, deterministic) Fixes test_no_old_flat_paths_in_md_py_files. Full test suite: 3167 passed, 0 failed.
notque
added a commit
that referenced
this pull request
May 11, 2026
) Create hooks/posttooluse-joy-check-warn.py — an advisory hook that runs joy-check framing validation on any .md file immediately after Write/Edit, shifting the feedback loop from CI to write time. Behaviour: - Fires only on .md files; silent for all other file types - Skips violations inside code fences and blockquotes (matches CI logic) - Prints violations to stdout with line number and pattern label - Always exits 0 (advisory — never blocks the write) - Registered in PostToolUse Write|Edit block, timeout 5000ms Complements the zero-allowlist CI gate from PR #634: engineers see prohibition-led framing issues inline rather than as CI failures after push. Test coverage: 4 scenarios validated (violation file, clean file, non-md file, code-fence exemption) — all pass.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
skills/code-quality/joy-check/— was inprivate-skills/(gitignored, invisible to GitHub Actions).mdfilesFiles
skills/code-quality/joy-check/SKILL.mdskills/code-quality/joy-check/references/instruction-rubric.mdskills/code-quality/joy-check/references/writing-rubric.mdscripts/validate_positive_instruction_docs.pyscripts/tests/test_joy_check_instruction_mode.py.github/workflows/test.ymljoy-checkCI jobdocs/PHILOSOPHY.mdWhat is NOT in this PR
Test plan