ワンクリックで
pre-pr-checklist
"
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
"
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | pre-pr-checklist |
| description | " |
CLAUDE.md — project conventions (commit format, naming, cross-platform constraints).github/workflows/test.yml — exactly what CI runs (syntax job + test job)lib/validate.sh — quality gates applied to generated artifactstests/fixtures/findings/ — fixture files that must stay in sync with schemasmake check
This runs bash -n on all .sh files (excluding test-repos/) and jq empty on all schemas/*.json. This is the same syntax job CI runs first. A failure here blocks the test job from running.
make test-all
Requires Docker. Runs unit, scripts, edge, and integration tests. If Docker is not available locally, the minimum is make test-unit && make test-scripts && make test-edge.
Important: Integration tests run with || true in CI and show green even when failing. After make test-integration, inspect the output explicitly — don't trust the exit code alone.
# Spot-check: do all 8 fixture files have valid JSON?
for f in tests/fixtures/findings/*.json; do
jq empty "$f" && echo "OK: $f" || echo "FAIL: $f"
done
# Verify the merged synthesis fixture is up to date
jq -s '.[0] * .[1]' \
tests/fixtures/synthesis/output-docs.json \
tests/fixtures/synthesis/output-tooling.json \
> /tmp/expected-output.json
diff tests/fixtures/synthesis/output.json /tmp/expected-output.json && echo "output.json in sync" || echo "DIVERGED — re-merge"
If output.json diverged, re-merge it:
jq -s '.[0] * .[1]' \
tests/fixtures/synthesis/output-docs.json \
tests/fixtures/synthesis/output-tooling.json \
> tests/fixtures/synthesis/output.json
All commits must follow Conventional Commits:
feat: — new featurefix: — bug fixtest: — test additions/changesdocs: — documentation onlyrefactor: — code change without feature/fixchore: — maintenance (CI, deps, Makefile)git log --oneline -10 # check recent messages follow the pattern
The project rule from CLAUDE.md (developer answers): "Write untested code" is in the never-do list. For any new function in lib/, there must be a corresponding test in tests/unit/. For changes to scripts/validate-skill.sh or scripts/validate-subagent.sh, there must be updated tests in tests/scripts/.
Scan your changes for forbidden patterns:
# Portable sed check (GNU/BSD incompatible)
grep -n 'sed -i' lib/*.sh scripts/*.sh ultrainit.sh
# gawk-only gensub check
grep -n 'gensub(' lib/*.sh scripts/*.sh
# bash 4+ only features
grep -n 'declare -A\|mapfile\|readarray\|wait -n\|wait -p' lib/*.sh
All of these will silently break on macOS (bash 3.2, BSD sed, stock awk).
If you modified prompts/synthesizer-tooling.md or lib/synthesize.sh, verify postprocess_descriptions() is still stripping angle brackets:
grep -n 'postprocess_descriptions\|[<>]' lib/synthesize.sh | head -20
make check && make test-all
Both must complete without error before opening the PR.
"
"
"
"
"
"