Repository navigation
Conversation
… runner, the agent docs and the policy Adds the development kit: bin/jpdev with setup, check, mutants, record and env; the node, Go and python caps and the machine lock; the dev.json manifest and its JSON Schema; the vendored check.sh; AGENTS.md and CLAUDE.md templates with a sync check; the CI step list; the operating policy and the adoption guide; the agent repository's manifest as the worked example; the kit's own tests and CI. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: kikashy <35789537+kikashy@users.noreply.github.com>
Source directives name lib/common.sh from the repository root and CI runs shellcheck with -x -P ".:SCRIPTDIR" so they resolve; the two "A && B || C" argument checks become if statements. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: kikashy <35789537+kikashy@users.noreply.github.com>
- record post refuses an invalid name-pattern regex and any grep failure (it no longer fails open), and refuses a missing name-pattern file unless --no-name-check is given; an empty file is warned about. - check.sh: a step skipped for an empty requires_env variable fails when CI is set unless it is marked optional; --only and --skip with an unknown name fail naming it; ci-check.yml shows how CI sets the variable for a parity step. - wrap.sh: a shell step runs under timeout, as under check.sh; the python virtual environment is the manifest's venv name. - tests: the node memory cap, the python ulimit and timeout, the venv name, the runner timeout agreement, the CI skip rules and the gate cases above. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: kikashy <35789537+kikashy@users.noreply.github.com>
Narrow review record (same vendor, not a cross-vendor claim)Reviewer: a clean-room Claude Sonnet agent, read-only, four probes and the kit tests once. Verdict on the reviewed head: Review of judgment-pack-devkit PR 1 at head 2182988. Read-only; nothing posted; no sub-agents; no pkill. FINDINGS (most severe first)
WHAT HOLDS
RAN: tests/run.sh once (55 of 55 pass, under ulimit -v 8000000). Four probes: node cap, ulimit -v and the python cap; two parallel go runs; the record gate (path, name, missing, invalid and empty pattern file, reduced body); the runner diff and shell timeout. No lingering processes; no pkill. Scratch files are under the scratchpad, in review-devkit, probe and sc. not mergeable — head 2182988 Disposition (maintainer's rule: HIGH fixed in-PR before merge; MEDIUM fixed in the one pre-release batch, which for an untagged first version is the same round; LOW rides)
Merged on green CI after the round; tagged v0.1.0 by the coordinator. |
What it holds
bin/jpdev0.1.0 withsetup,check,mutants,record postandenv; settings from${XDG_CONFIG_HOME:-$HOME/.config}/jpdev/env, overridden by the environment (config/env.exampledocuments each with its default).lib/rsscap.sh(the memory-cap wrapper for node, unchanged in behaviour),lib/wrap.sh(the caps by toolchain: node under the RSS cap; Go under the machine lock withulimit -v,GOFLAGS=-mod=mod, a per-cloneGOCACHEandtimeout; python underulimit -v; shell none),lib/common.sh,lib/validate_manifest.py,lib/mutants_report.py.templates/dev.jsonandtemplates/dev.schema.json(the manifest and its JSON Schema;jpdev checkvalidates with python3, using thejsonschemapackage when it is installed and a structural check otherwise).templates/check.sh: the public runner a repository vendors asscripts/dev/check.sh(python3 standard library, no caps;jpdev checkdelegates to it and adds the caps and lock throughJPDEV_WRAP).templates/AGENTS.mdandtemplates/CLAUDE.md(one text, 31 lines;scripts/sync-agent-docs.shgenerates the second and--checkis a CI step),templates/ci-check.yml.docs/policy.md,docs/adopting.md,docs/releases/v0.1.0.md,examples/judgment-pack-agent.dev.json,README.md.tests/run.sh(80 checks) withtests/fixture/(a manifest of shell echoes and one deliberate failure), and.github/workflows/ci.yml(shellcheck,bash -n, the agent-docs sync check, JSON parse, the machine-local-path grep, whitespace, the tests).Checks
Kit tests:
tests/run.sh80 passed, 0 failed (check.sh andjpdev checkon the fixture, the three caps and the lock, the manifest schema, mutants on a scratch copy, the record gate, env, setup on a local origin).shellcheck 0.10.0 (the native binary), in the CI form from the repository root, no check excluded:
shellcheck -x -P ".:SCRIPTDIR" bin/* lib/*.sh templates/*.sh scripts/*.sh tests/*.sh tests/fixture/*.sh: clean.bash -non every script andgit diff --check: clean. No machine-local path or personal name in tracked text.The agent repository's manifest,
jpdev setupthenjpdev check --allon a copy of a clone ofjudgment-pack-agentat 61b1331 (the Desk checkout at d9251ec for the parity step):jpdev mutants --row "a source's description reaches the model unframed"on the same copy:caught, 1 caught, 0 not caught; the scratch copy removed afterwards.Review round
Findings of the narrow review of 2182988, all fixed in edc51a8:
grep -E -fon empty input, status 2 refuses) and any grep status other than 0 or 1 refuses.record postnow refuses unless--no-name-checkis given; an empty file, or one of comments only, is warned about.requires_envlet CI go green on a skipped check: underCIa skip fails unless the step isoptional: true(new schema field; the agent example marks parity optional);ci-check.ymlshows the shallow checkout that sets the variable;docs/adopting.mdsays so.shellstep had no timeout underjpdev check: the shell branch oflib/wrap.shruns undertimeout -k 10, and a test runs the same timing-out step through both runners.ulimit -vand timeout, and the gate cases above.jpdev_prepare_runexports the manifest'svenvname andwrap.shuses it.--onlywith an unknown name exited 0: it exits 2 naming the step (--skiplikewise).Each new safeguard was broken in a scratch copy and the tests failed on it. Earlier, 2182988 fixed the CI lint failures (the source directives and two
A && B || Ctests).The shellcheck line of the first version of this description named a build that could not follow
sourcepaths and was run with SC1091 excluded; it is replaced above.Not in this PR
jpdev releasecommand for the prepare, tag and gate chain.check.sh, writes itsdev.json, addsAGENTS.mdandCLAUDE.mdand the CI workflow in its own pull request).🤖 Generated with Claude Code