with one click
check-ci-locally
"
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
"
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
"
"
"
"
"
"
.github/workflows/test.yml — the syntax job (runs before test job)Makefile — check target (mirrors what CI does)make check
This runs:
bash -n on all .sh files (excluding ./test-repos/*)jq empty on all schemas/*.jsonEquivalent manual commands:
# Shell syntax check
find . -name '*.sh' -not -path './test-repos/*' | xargs bash -n
# Schema JSON validity
for f in schemas/*.json; do
jq empty "$f" && echo "OK: $f" || echo "FAIL: $f"
done
bash -n failure:
./lib/agent.sh: line 42: unexpected end of file
Means a syntax error at line 42 of lib/agent.sh. bash -n checks syntax only — it does not execute the script, so functions and variables are not evaluated.
jq empty failure:
jq: error: schemas/identity.json: Invalid numeric literal
Means schemas/identity.json is not valid JSON. Use python3 -m json.tool schemas/identity.json for a more informative error with line numbers.
If you changed any file in lib/, prompts/, scripts/, or added new files:
grep '__EOF_LIB_' lib/*.sh scripts/*.sh prompts/*.md 2>/dev/null
Any match means a file contains the exact heredoc delimiter used by bundle.sh, which will cause the bundle to self-truncate silently.
make check
echo "Exit code: $?"
Exit 0 = CI syntax job will pass. Then run make test-all for the full picture.