joy-check
Skill448 starsChanged 4 days agoMITView on GitHub
Validate content framing on joy-grievance spectrum.
- Reads credentials
1 other project uses a version of this.
Adopted by
Most recently taken up by
- notque/claude-code-toolkitword for word, first seen Oct 8, 2026
Other versions1 project uses a version of this.
Word for word · 1
- notque/claude-code-toolkit★ 448100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository64 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- assessmentSkill
- dataSkill
- business-opsSkill
- code-qualitySkill
- comment-qualitySkill
- condenseSkill
- content-engineSkill
- contentSkill
- headlinesSkill
- image-genSkill
- image-to-videoSkill
- series-plannerSkill
- topic-brainstormerSkill
- video-editingSkill
- writingSkill
- domainSkill
- cli-designSkill
- frontendSkill
- frontend-slidesSkill
- jev-designSkill
- webgl-card-effectsSkill
- game-asset-generatorSkill
- game-devSkill
- game-trailerSkill
- motion-pipelineSkill
- browser-jev-automationSkill
- cve-source-checkSkill
- deploySkill
- endpoint-validatorSkill
- headless-cron-creatorSkill
- kubernetesSkill
- githubSkill
- accountsSkill
- auto-dreamSkill
- building-with-jevSkill
- codexSkill
- docs-sync-checkerSkill
- doSkill
- dSkill
- grill-jevSkill
- toolkitSkill
- workflow-helpSkill
- debuggingSkill
- plant-seedSkill
- processSkill
- pr-workflowSkill
- quickSkill
- testingSkill
- with-anti-rationalizationSkill
- workflowSkill
- worktree-agentSkill
- programmingSkill
- architecture-deepeningSkill
- codebase-analyzerSkill
- markdown-converterSkill
- news-collectionSkill
- researchSkill
- roastSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 3 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 89
Read full file. Skip frontmatter and code blocks.
- Distinctive: line 105
If an item seems "too subtle to flag" — that is precisely when flagging matters.
- Distinctive: line 107
GATE: All items scored. Reframe suggestions drafted for flagged items.
- Very specific: line 177
Verify path with ls -la. Use glob to search: Glob /*.md.
- Very specific: line 180
Verify scripts/scan-negative-framing.py exists.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Joy Check
Two modes:
- writing — Joy-grievance spectrum for human-facing content (blog posts, emails, articles). Evaluates curiosity/generosity vs. grievance/accusation framing.
- instruction — Positive framing for LLM-facing content (agents, skills, pipelines). Evaluates "what to do" vs. "what to avoid" (ADR-127).
Evaluates each paragraph/instruction independently, produces a score (0-100), suggests reframes without modifying content. Flags: --fix rewrites flagged items in place and re-verifies; --strict fails on any item below 60; --mode writing|instruction overrides auto-detection.
Checks framing, not topic or voice. The writing workflow owns voice fidelity and AI-pattern detection.
Reference Loading Table
| Signal | Load These Files | Why |
| Scoring agents, skills, pipelines, or toolkit documentation | references/instruction-rubric.md | Positive-framing patterns, scoring, and examples. |
| Scoring articles, emails, posts, or other human-facing prose | references/writing-rubric.md | Joy-grievance patterns, scoring, and examples. |
Instructions
Phase 0: DETECT MODE
Auto-detection (priority order):
- Explicit
--modeflag → use that agents/*.md→ instructionskills/**/SKILL.md→ instructionskills/process/workflow/references/*.md→ instructionCLAUDE.mdorREADME.md→ instruction- Everything else → writing
Load references/{mode}-rubric.md for scoring criteria and examples.
GATE: Mode determined, rubric loaded.
Phase 1: PRE-FILTER
Regex scanning as a fast gate before LLM semantic analysis.
Writing mode:
python3 ~/.claude/scripts/scan-negative-framing.py [file]Instruction mode:
grep -nE 'NEVER|do NOT|must NOT|FORBIDDEN' [file]
grep -nE "^-?\s*Don't|^-?\s*Avoid|^#+.*Anti-[Pp]attern|^#+.*Avoid" [file]Report findings with reframe suggestions from the rubric. If --fix, apply reframes and re-run.
GATE: Zero regex/grep hits. Resolve obvious patterns before Phase 2.
Phase 2: ANALYZE
Step 1: Read content
Read full file. Skip frontmatter and code blocks.
- Writing: Identify paragraphs (blank-line separated). Skip blockquotes.
- Instruction: Identify instructional statements — bullets, table cells, imperatives, headings. Skip examples, code blocks, quoted dialogue, file paths.
Step 2: Evaluate against rubric
Apply scoring dimensions from references/{mode}-rubric.md.
For writing: Joy-grievance lens. Watch for subtle patterns in references/writing-rubric.md (defensive disclaimers, accumulative grievance, passive-aggressive factuality, reluctant generosity).
For instruction: Positive-negative lens. Check against patterns table in references/instruction-rubric.md. Contextual exceptions: subordinate negatives attached to positive instructions are PASS, as are negatives in code examples, writing samples, and technical terms.
Step 3: Score each item
Apply the rubric's scoring scale. For items scoring CAUTION/GRIEVANCE (writing) or NEGATIVE-LEANING/PROHIBITION-HEAVY (instruction), draft specific reframe suggestions preserving substance.
If an item seems "too subtle to flag" — that is precisely when flagging matters. Subtle patterns are the primary purpose of this LLM phase.
GATE: All items scored. Reframe suggestions drafted for flagged items.
Phase 3: REPORT
Step 1: Calculate overall score
Average all item scores. Pass criteria:
- Writing: Score >= 60 AND no GRIEVANCE paragraphs
- Instruction: Score >= 60 AND no primary negative patterns in instructional context
Step 2: Output
JOY CHECK: [file]
Mode: [writing|instruction]
Score: [0-100]
Status: PASS / FAIL
Items:
[writing mode]
P1 (L10-12): JOY [85] -- explorer framing, curiosity
P3 (L18-22): CAUTION [40] -- "confused" leans defensive
-> Reframe: Focus on what you learned from the confusion
[instruction mode]
L33: NEGATIVE [20] -- "NEVER edit code directly"
-> Rewrite: "Route all code modifications to domain agents"
L45: PASS [90] -- "Create feature branches for all changes"
L78: PASS [85] -- "Credentials stay in .env files, never in code" (subordinate negative OK)
Overall: [summary of framing arc]Step 3: Fix mode
If --fix:
- Rewrite flagged items using drafted suggestions
- Preserve substance — change only framing
- Re-run Phase 2 on rewrites to verify
- Maximum 3 iterations if fixes introduce new flags
GATE: Report produced. If --fix, all rewrites applied and re-verified.
Integration
Writing pipeline:
CONTENT --> writing workflow --> scan-ai-patterns --> joy-check --mode writingInstruction pipeline:
SKILL.md --> joy-check --mode instruction --> fix flagged patterns --> re-verifyAuto-invocation points:
toolkit: after generating a new skillagent-upgrade: after modifying an agentwriting: during validationdoc-pipeline: for toolkit documentation
Invoke standalone via /joy-check [file] (auto-detects mode) or with explicit --mode.
Error Handling
Error: "File Not Found"
Verify path with ls -la. Use glob to search: Glob **/*.md. Confirm working directory.
Error: "Regex Scanner Fails or Not Found"
Verify scripts/scan-negative-framing.py exists. Requires Python 3.10+. If unavailable, skip to Phase 2 — the pre-filter is an optimization, not a requirement.
Error: "All Paragraphs Score GRIEVANCE"
Content is fundamentally grievance-framed. Report scores honestly. Suggest full rewrite with different framing premise, not paragraph-level fixes.
Error: "Fix Mode Fails After 3 Iterations"
Output best version with remaining concerns. Explain which rubric dimensions resist correction. The framing premise itself may need rethinking.
References
Rubric Files
references/writing-rubric.md— Joy-grievance spectrum, subtle patterns, scoring, examplesreferences/instruction-rubric.md— Positive framing rules, patterns, rewrite strategies, examples
Scripts
scan-negative-framing.py— Regex pre-filter for grievance patterns (writing mode, Phase 1)
Complementary Skills
writing— Voice, prose quality, and content validationtoolkit— Skill creation and instruction validation
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

