Review PR
microsoft/vscode-containers
Review a specific vscode-containers pull request on demand from the CLI (or any interactive agent), the way a Container Tools maintainer would.
Validate content framing on joy-grievance spectrum. An agent skill from notque/vexjoy-agent.
$ npx skills add notque/vexjoy-agent --skill joy-check -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install notque/vexjoy-agent joy-check --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/notque/vexjoy-agent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/code-quality/joy-check .claude/skills/joy-check && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "joy-check" agent skill from https://github.com/notque/vexjoy-agent/tree/main/skills/code-quality/joy-check into .claude/skills/joy-check/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "joy-check", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/notque/vexjoy-agent/tree/main/skills/code-quality/joy-checkType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add notque/vexjoy-agent --skill joy-check -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install notque/vexjoy-agent joy-check --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/notque/vexjoy-agent.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/code-quality/joy-check .agents/skills/joy-check && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "joy-check" agent skill from https://github.com/notque/vexjoy-agent/tree/main/skills/code-quality/joy-check into .agents/skills/joy-check/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "joy-check", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add notque/vexjoy-agent --skill joy-check -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install notque/vexjoy-agent joy-check --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/notque/vexjoy-agent.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/code-quality/joy-check .cursor/skills/joy-check && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "joy-check" agent skill from https://github.com/notque/vexjoy-agent/tree/main/skills/code-quality/joy-check into .cursor/skills/joy-check/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "joy-check", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/notque/vexjoy-agent.git --path skills/code-quality/joy-check--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add notque/vexjoy-agent --skill joy-check -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install notque/vexjoy-agent joy-check --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/notque/vexjoy-agent.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/code-quality/joy-check .gemini/skills/joy-check && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "joy-check" agent skill from https://github.com/notque/vexjoy-agent/tree/main/skills/code-quality/joy-check into .gemini/skills/joy-check/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "joy-check", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install notque/vexjoy-agent joy-checkInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add notque/vexjoy-agent --skill joy-check -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/notque/vexjoy-agent.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/code-quality/joy-check .github/skills/joy-check && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "joy-check" agent skill from https://github.com/notque/vexjoy-agent/tree/main/skills/code-quality/joy-check into .github/skills/joy-check/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "joy-check", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add notque/vexjoy-agent --skill joy-check -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install notque/vexjoy-agent joy-check --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/notque/vexjoy-agent.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/code-quality/joy-check .opencode/skills/joy-check && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "joy-check" agent skill from https://github.com/notque/vexjoy-agent/tree/main/skills/code-quality/joy-check into .opencode/skills/joy-check/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "joy-check", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
joy-checkValidate content framing on joy-grievance spectrum. An agent skill from notque/vexjoy-agent.
Joy Check is an agent skill from notque/vexjoy-agent. Validate content framing on joy-grievance spectrum.
Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/instruction-rubric.md` and `references/writing-rubric.md`).
It sits in Development, covering Quizzes and assessments. The repository describes itself as: VexJoy AI Agent with Jev Intelligent Routing - /do routes plain-English requests to the right specialist agent and gates the work with reviews, tests, and a learning loop. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 5218674. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditBashGrepGlobFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Joy Check loads about 1.7k tokens when it runs, and up to ~6.3k if it reads all its reference files. Until then it costs about 15 tokens; SKILL.md has 617 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
L78: PASS [85] -- "Credentials stay in .env files, never in code" (subordinate negative OK)allowed-tools: Read, Write, Edit, Bash, Grep, GlobAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from notque/vexjoy-agent at commit 5218674, republished under its MIT licence (© notque). 617 words, ~1,724 tokens.
.claude/skills/joy-check/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Two modes:
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.
| 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. |
Auto-detection (priority order):
--mode flag → use thatagents/*.md → instructionskills/*/SKILL.md → instructionskills/workflow/references/*.md → instructionCLAUDE.md or README.md → instructionLoad references/{mode}-rubric.md for scoring criteria and examples.
GATE: Mode determined, rubric loaded.
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.
Step 1: Read content
Read full file. Skip frontmatter and code blocks.
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.
Step 1: Calculate overall score
Average all item scores. Pass criteria:
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:
GATE: Report produced. If --fix, all rewrites applied and re-verified.
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 documentationInvoke standalone via /joy-check [file] (auto-detects mode) or with explicit --mode.
Verify path with ls -la. Use glob to search: Glob **/*.md. Confirm working directory.
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.
Content is fundamentally grievance-framed. Report scores honestly. Suggest full rewrite with different framing premise, not paragraph-level fixes.
Output best version with remaining concerns. Explain which rubric dimensions resist correction. The framing premise itself may need rethinking.
references/writing-rubric.md — Joy-grievance spectrum, subtle patterns, scoring, examplesreferences/instruction-rubric.md — Positive framing rules, patterns, rewrite strategies, examplesscan-negative-framing.py — Regex pre-filter for grievance patterns (writing mode, Phase 1)writing — Voice, prose quality, and content validationtoolkit — Skill creation and instruction validation© notque, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in skills/code-quality/joy-check of notque/vexjoy-agent.
Open the folder on GitHubat commit 5218674
Joy Check next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Joy Check this skillnotque/vexjoy-agent | 438 | — | ~1.7k | Automated safety check: Notes | MIT | |
| Review PRmicrosoft/vscode-containers | 141 | — | ~900 | Automated safety check: Pass | Custom licence | |
| Self Reviewverl-project/verl-omni | 1.2k | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| PR ReviewNVIDIA/Megatron-LM | 18k | — | ~839 | Automated safety check: Pass | Apache-2.0 | |
| Code Review Rubricmakifbaysal/tasktrooper | 109 | — | ~2.5k | Automated safety check: Pass | Apache-2.0 | |
| Auto Improvecrimeacs/auto-improve | 135 | — | ~651 | Automated safety check: Pass | MIT |
microsoft/vscode-containers
Review a specific vscode-containers pull request on demand from the CLI (or any interactive agent), the way a Container Tools maintainer would.
verl-project/verl-omni
Review your own verl-omni branch against the project rubric before opening or updating a PR.
NVIDIA/Megatron-LM
Review rubric for the /review pull-request command. An agent skill from NVIDIA/Megatron-LM.
makifbaysal/tasktrooper
A skill your agent uses when a task is in codereview - how to read the diff, which findings block, and the verdict move
crimeacs/auto-improve
GAN-style iterative improvement loop for any text artifact. An agent skill from crimeacs/auto-improve.
Continuum-AI-Corp/Orca-Code-Review
Review code changes yourself, locally, with OrcaCode Review's severity contract and merge gate — no GitHub Action, no OrcaRouter account, no API key.
notque/vexjoy-agent
Deterministic palette/matrix pixel art (not AI). An agent skill from notque/vexjoy-agent.
notque/vexjoy-agent
Pull request lifecycle: commit, codex review, sync, review, fix, status, cleanup, and PR mining.
notque/vexjoy-agent
Improve architecture across modules by deepening interfaces.
notque/vexjoy-agent
Code quality: cleanup, linting, formatting, quality gates. An agent skill from notque/vexjoy-agent.
notque/vexjoy-agent
Statistical rule discovery from Go codebase patterns. An agent skill from notque/vexjoy-agent.
notque/vexjoy-agent
Review and fix temporal references in code comments. An agent skill from notque/vexjoy-agent.
Categories
Validate content framing on joy-grievance spectrum. An agent skill from notque/vexjoy-agent. Joy Check is an agent skill from notque/vexjoy-agent. Validate content framing on joy-grievance spectrum.
Joy Check fits situations like: tasks that involve Quizzes and assessments.
Run `npx skills add notque/vexjoy-agent --skill joy-check -a claude-code`. Or copy the skill folder (skills/code-quality/joy-check in notque/vexjoy-agent) into .claude/skills/joy-check in your project. Claude Code loads it when a task matches its description.
Run `npx skills add notque/vexjoy-agent --skill joy-check -a codex`. Or copy the skill folder (skills/code-quality/joy-check in notque/vexjoy-agent) into .agents/skills/joy-check in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add notque/vexjoy-agent --skill joy-check -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/joy-check, .gemini/skills/joy-check, .github/skills/joy-check and .opencode/skills/joy-check in your project.
Going by SKILL.md and its folder, Joy Check needs the command-line tools its instructions call (python3). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash, Grep, Glob.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file; pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Joy Check is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Joy Check: Review PR (microsoft/vscode-containers, 141 stars), Self Review (verl-project/verl-omni, 1.2k stars), PR Review (NVIDIA/Megatron-LM, 18k stars) and Code Review Rubric (makifbaysal/tasktrooper, 109 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
notque (a GitHub user) maintains it in notque/vexjoy-agent, which has 438 GitHub stars. The repository holds 61 skills in this directory. The repository was last updated on October 3, 2026.
Source: notque/vexjoy-agent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.