Maintain
openwpm/OpenWPM
A skill your agent uses to run a periodic codebase-health pass — dependency audit, lint, test suite, dead code / TODO scan, doc freshness, crosslink issue hygiene, and build artifacts.
Generates and self-executes a diff-derived test plan for a PR.
$ npx skills add athola/claude-night-market --skill validate-pr -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install athola/claude-night-market validate-pr --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/athola/claude-night-market.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/sanctum/skills/validate-pr .claude/skills/validate-pr && 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 "validate-pr" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/sanctum/skills/validate-pr into .claude/skills/validate-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-pr", 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/athola/claude-night-market/tree/master/plugins/sanctum/skills/validate-prType 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 athola/claude-night-market --skill validate-pr -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install athola/claude-night-market validate-pr --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/sanctum/skills/validate-pr .agents/skills/validate-pr && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "validate-pr" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/sanctum/skills/validate-pr into .agents/skills/validate-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-pr", 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 athola/claude-night-market --skill validate-pr -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install athola/claude-night-market validate-pr --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/sanctum/skills/validate-pr .cursor/skills/validate-pr && 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 "validate-pr" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/sanctum/skills/validate-pr into .cursor/skills/validate-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-pr", 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/athola/claude-night-market.git --path plugins/sanctum/skills/validate-pr--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 athola/claude-night-market --skill validate-pr -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install athola/claude-night-market validate-pr --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/sanctum/skills/validate-pr .gemini/skills/validate-pr && 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 "validate-pr" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/sanctum/skills/validate-pr into .gemini/skills/validate-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-pr", 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 athola/claude-night-market validate-prInstalls 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 athola/claude-night-market --skill validate-pr -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/sanctum/skills/validate-pr .github/skills/validate-pr && 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 "validate-pr" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/sanctum/skills/validate-pr into .github/skills/validate-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-pr", 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 athola/claude-night-market --skill validate-pr -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install athola/claude-night-market validate-pr --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/sanctum/skills/validate-pr .opencode/skills/validate-pr && 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 "validate-pr" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/sanctum/skills/validate-pr into .opencode/skills/validate-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-pr", 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.
validate-prGenerates and self-executes a diff-derived test plan for a PR.
Validate PR is an agent skill from athola/claude-night-market. Generates and self-executes a diff-derived test plan for a PR. Use when validating PR changes before merge. Do not use for code review; use sanctum:pr-review.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Testing & QA, covering Test generation and Pull requests. It works with Rust and Python. The repository describes itself as: 23 Claude Code plugins: TDD enforcement hooks, git/PR workflows, spec-driven development, code review, project lifecycle, fix-from-error, maintenance automation, context… The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 9f3eb00. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
rgcargouvghpython3makeshellcheckgitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use uv, gh and git, which can reach the network depending on how they are called.
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.
Validate PR loads about 2.2k tokens when it runs. Until then it costs about 43 tokens; SKILL.md has 703 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 found no risky patterns in SKILL.md.
Automated 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 athola/claude-night-market at commit 9f3eb00, republished under its MIT licence (© athola). 703 words, ~2,227 tokens.
.claude/skills/validate-pr/SKILL.md (or your agent's skills folder).Generate and self-execute a validation plan matched to what actually changed in a PR. Replaces generic "tests pass" with area-targeted evidence and revert-test quality checks that prove tests catch regressions.
/fix-pr Step 5 (Validate), before Step 6 (Complete)--scope minor with only formatting or doc changes (no logic changed)--skip-validate passed to /fix-prfetch diff -> group by area -> generate steps -> execute -> revert-test -> table# Get changed file list from the PR
PR_NUMBER=<number from invocation or current branch>
CHANGED=$(gh pr diff "$PR_NUMBER" --name-only)
# Fallback when no PR number:
# CHANGED=$(git diff "origin/$(git rev-parse --abbrev-ref HEAD@{upstream})...HEAD" \
# --name-only 2>/dev/null)Group changed files into areas using ripgrep (grep if rg unavailable):
RUST_FILES=$(echo "$CHANGED" | rg '\.rs$|Cargo\.(toml|lock)$' || true)
PY_FILES=$(echo "$CHANGED" | rg '\.py$|pyproject\.toml$|requirements.*\.txt$' || true)
SH_FILES=$(echo "$CHANGED" | rg '\.sh$|\.githooks' || true)
GRAMMAR_FILES=$(echo "$CHANGED" | rg '\.(lark|peg|g4)$' || true)Area routing table:
| Area | File patterns | Verification type |
|---|---|---|
| Rust | *.rs, Cargo.toml, Cargo.lock | cargo build + per-crate test |
| Python | *.py, pyproject.toml | pytest per changed module |
| Shell | *.sh, .githooks/* | shellcheck |
| Grammar | *.lark, *.peg, *.g4 | language-specific lint |
| Build/config | *.yaml, *.json, *.toml | parse check |
For each non-empty area, generate and run at least one verification step.
Assign [E1], [E2], ... labels to each captured output.
# Build with default features
cargo build --workspace 2>&1
# Evidence: [En] → "0 errors, 0 warnings"
# Build with --all-features
cargo build --workspace --all-features 2>&1
# Evidence: [En+1]
# Per-crate test for each changed crate
# Extract crate directory from changed path, e.g. crates/token-types/src/lib.rs
CHANGED_CRATES=$(echo "$RUST_FILES" \
| rg -o '(?:crates|src)/[^/]+' \
| sort -u \
| xargs -I{} basename {})
for CRATE in $CHANGED_CRATES; do
cargo test -p "$CRATE" 2>&1
done# Targeted test per changed module
for PY_FILE in $PY_FILES; do
MODULE=$(basename "${PY_FILE%.py}")
TEST_FILE="tests/test_${MODULE}.py"
if [[ -f "$TEST_FILE" ]]; then
uv run pytest "$TEST_FILE" -v 2>&1
fi
done
# Or project-specific runner if Makefile target exists
make test 2>&1 || uv run pytest tests/ -v 2>&1for SH_FILE in $SH_FILES; do
[[ -f "$SH_FILE" ]] && shellcheck "$SH_FILE" 2>&1
done# YAML files
for YML in $(echo "$CHANGED" | rg '\.ya?ml$' || true); do
[[ -f "$YML" ]] && python3 -c "import yaml; yaml.safe_load(open('$YML'))" \
&& echo "PASS: $YML" || echo "FAIL: $YML"
done
# JSON files
for JSON_F in $(echo "$CHANGED" | rg '\.json$' || true); do
[[ -f "$JSON_F" ]] && python3 -m json.tool "$JSON_F" > /dev/null \
&& echo "PASS: $JSON_F" || echo "FAIL: $JSON_F"
doneProve at least one test is a genuine guard, not a dead assertion.
Safety: abort if the working tree has uncommitted changes.
if ! git diff --exit-code > /dev/null 2>&1; then
echo "[RT] SKIP: working tree dirty: revert-test unsafe"
# Mark INCONCLUSIVE and continue
fiAlgorithm (one representative fix):
#[test] in the same crate that exercises a changed function.tests/test_<module>.py for a changed <module>.py.1
specifically. A pytest usage error (4) or an empty collection (5)
is also non-zero, so a harness that only checks "not zero" reports a
dead assertion as a genuine guard.git checkout -- <file> (git-based restore, safe on interrupt).Revert-test output format:
[RT-1] Target: <file>:<line>: <description of fix>
[RT-2] Broke fix: <edit description>
[RT-3] Ran: <test command> → <test name> FAILED (expected)
[RT-4] Restored: git checkout -- <file>
[RT-5] Ran: <test command> → <test name> PASSED
Result: PASS: test is a genuine guardReverting a test that guards document content:
Content tests assert on prose, and this repo wraps prose at 80 columns, so any anchor phrase long enough to be meaningful eventually straddles a line break. Collapse whitespace before matching. Otherwise a pure reflow turns the test red and tempts an author to "fix" it by unwrapping the line.
Normalizing reintroduces the hazard the revert test exists to catch: a rejoined anchor can also appear elsewhere in the file, so deleting the paragraph the test guards leaves it green. Anchor on a full clause that is unique to that paragraph, then delete the paragraph and confirm the test goes red. A DDD paradigm test passed its revert check this way in PR #612 while guarding nothing.
When no covering test exists:
Revert-test: INCONCLUSIVE: no covering test for <changed area>
Recommendation: add a test for <changed function or behaviour>After all area checks and the revert-test:
# Rust workspace
cargo test --workspace 2>&1
# Python project
uv run pytest tests/ -v 2>&1
# Mixed project: run both
cargo test --workspace 2>&1 && uv run pytest tests/ -v 2>&1Capture full output as final evidence [En].
### validate-pr: <PR title or number>
| Area | Step | Evidence | Result |
|------|------|----------|--------|
| Rust: token-types | cargo build --workspace | [E1] 0 errors | PASS |
| Rust: token-types | cargo test -p token-types | [E2] 12 passed | PASS |
| Rust: token-types | cargo build --all-features | [E3] 0 errors | PASS |
| Shell: hooks/pre-commit | shellcheck | [E4] 0 issues | PASS |
| Revert-test: lib.rs:45 | break/fail/restore | [RT-1..5] genuine guard | PASS |
| Final: cargo test --workspace | full suite | [E5] 694 passed, 0 failed | PASS |
**Totals**: 6 steps: 6 PASS, 0 FAIL, 0 INCONCLUSIVEWhen --post is given, post the summary table as a PR comment:
gh pr comment "$PR_NUMBER" --body "$(cat /tmp/validate-pr-summary.md)"Skip posting when invoked from /fix-pr: results feed into the Gate 3
summary comment instead.
When any step produces FAIL:
/fix-pr: halt before Step 6 (Complete). The user must
fix the failures or pass --skip-validate to /fix-pr to bypass.INCONCLUSIVE results are reported but do not halt the workflow.
gh pr diff --name-only returned a non-empty file list (diff fetched)[E1], [E2], etc.) with the
actual command output, not fabricated/fix-pr before Step 6 when called from fix-pr© athola, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugins/sanctum/skills/validate-pr of athola/claude-night-market.
Open the folder on GitHubat commit 9f3eb00
Validate PR 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 |
|---|---|---|---|---|---|---|
| Validate PR this skillathola/claude-night-market | 342 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Maintainopenwpm/OpenWPM | 1.4k | — | ~1.5k | Automated safety check: Pass | Custom licence | |
| Find Untested Sourcesdotnet/skills | 5.6k | 1 repos | ~3.3k | Automated safety check: Pass | MIT | |
| Review Pre Commitopenwpm/OpenWPM | 1.4k | — | ~788 | Automated safety check: Pass | Custom licence | |
| Testing Strategiesancoleman/ai-design-components | 526 | — | ~3.8k | Automated safety check: Pass | MIT | |
| Polyglot Test Agentboshi-xixixi/TraeSkill | 275 | — | ~1.7k | Automated safety check: Pass | MIT |
openwpm/OpenWPM
A skill your agent uses to run a periodic codebase-health pass — dependency audit, lint, test suite, dead code / TODO scan, doc freshness, crosslink issue hygiene, and build artifacts.
dotnet/skills
Statically pairs source files with test files to list code that no test references, using Roslyn for C# or tree-sitter for many languages, with no build.
openwpm/OpenWPM
Use as a pre-commit quality gate — review the working diff for stub patterns (TODO/FIXME/unimplemented!()/todo!()), debug leftovers (dbg!, stray console.log/println!, commented-out code), then run…
ancoleman/ai-design-components
Strategic guidance for choosing and implementing testing approaches across the test pyramid.
boshi-xixixi/TraeSkill
Generates comprehensive, workable unit tests for any programming language using a multi-agent pipeline.
mastra-ai/mastra
Authoring playbook for building agents that write, edit, review, or refactor code.
athola/claude-night-market
Run and interpret repo diagnostic scripts (ratchets, validators, token stats).
athola/claude-night-market
Evaluate Claude skill quality through auditing. An agent skill from athola/claude-night-market.
athola/claude-night-market
Coordinates Claude agent teams via filesystem protocol. An agent skill from athola/claude-night-market.
athola/claude-night-market
Delegates execution to eight CLIs (Gemini, Qwen, MiniMax, GLM, Muse, Codex, OpenCode, Glimmer).
athola/claude-night-market
Guide minimal code via a decision ladder with full safety, edge, and negative-case coverage.
athola/claude-night-market
Build a project skill library in .claude/skills/ via discovery, parallel authoring, and review.
Categories
Generates and self-executes a diff-derived test plan for a PR. Validate PR is an agent skill from athola/claude-night-market. Generates and self-executes a diff-derived test plan for a PR.
Validate PR fits situations like: validating PR changes before merge; use sanctum:pr-review.
Run `npx skills add athola/claude-night-market --skill validate-pr -a claude-code`. Or copy the skill folder (plugins/sanctum/skills/validate-pr in athola/claude-night-market) into .claude/skills/validate-pr in your project. Claude Code loads it when a task matches its description.
Run `npx skills add athola/claude-night-market --skill validate-pr -a codex`. Or copy the skill folder (plugins/sanctum/skills/validate-pr in athola/claude-night-market) into .agents/skills/validate-pr 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 athola/claude-night-market --skill validate-pr -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/validate-pr, .gemini/skills/validate-pr, .github/skills/validate-pr and .opencode/skills/validate-pr in your project.
Going by SKILL.md and its folder, Validate PR needs the command-line tools its instructions call (rg, cargo, uv, gh, python3 and make). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use uv, gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Validate PR is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Validate PR: Maintain (openwpm/OpenWPM, 1.4k stars), Find Untested Sources (dotnet/skills, 5.6k stars), Review Pre Commit (openwpm/OpenWPM, 1.4k stars) and Testing Strategies (ancoleman/ai-design-components, 526 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
athola (a GitHub user) maintains it in athola/claude-night-market, which has 342 GitHub stars. The repository holds 159 skills in this directory. The repository was last updated on October 6, 2026.
Source: athola/claude-night-market on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.