Repository navigation
Public shape: contributor files, the release workflow with attestations, the kit on itself - #4
Merged
Merged
Conversation
…ersion Closes #2. Closes #3. lib/wrap.sh put the manifest's virtual environment on the PATH only for python steps, so a node, go or shell step that ran a python script used the system interpreter under jpdev check. When the manifest declares a venv, every step now runs with it first on the PATH; the toolchain still decides the cap. A kit test runs a step of each toolchain that imports a module installed in the venv. templates/check.sh line 2 is now `# from judgment-pack-devkit v0.1.0 (templates/check.sh)`, so a vendored copy records the kit release it came from. A test holds it to `jpdev --version` and scripts/dev/check.sh to the template; docs/adopting.md says a vendored copy keeps the line. dev.schema.json gives the go toolchain an optional `version` (1.26 or 1.26.5). templates/ci-check.yml reads it with setup-go's go-version and falls back to go-version-file when the manifest names none. jpdev check and jpdev setup select an installed Go that matches it (the go on PATH, else sdk/goX.Y.Z/bin/go under the new JPDEV_GO_SDK_DIR) and say so when none is installed, then run with the go on PATH. The agent repository's example manifest names go 1.26.5. The tests unset what jpdev check exports to its steps, so they run under it. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: Brian Jin <35789537+kikashy@users.noreply.github.com>
…ns, the kit on itself The repository is public. This brings it to the shape of judgment-pack-agent, adapted to a bash kit: - CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md, NOTICE, .gitattributes, .gitignore, the pull request template, dependabot for github-actions, and the thank-merged-contributors workflow. - release.yml: on a v tag, admit the tag, run ci.yml at the tag, package jpdev as judgment-pack-devkit-<version>.tgz with checksums.txt, attest both files, draft the release from docs/releases/<tag>.md and publish it behind the release environment. docs/releasing.md describes the steps, the gate and how to verify an attestation. - The kit on itself: dev.json, scripts/dev/check.sh (a copy of the template), AGENTS.md and CLAUDE.md. ci.yml keeps the lint and tests jobs and runs them through scripts/dev/check.sh --only. - README: a Public paragraph, install from a release or a clone, the release and verification pointers. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: Brian Jin <35789537+kikashy@users.noreply.github.com>
Contributor
Author
Narrow review record (same vendor, not a cross-vendor claim)Reviewer: a clean-room Claude Sonnet agent, read-only; the kit tests once, four probes. Verdict: Review of devkit PR 4, head bf58265. No HIGH and no MEDIUM findings; two LOW. Findings (most severe first):
Answers to the questions:
mergeable — head bf58265 Disposition (LOW never a resume on its own)
Merged on green CI; no second round. |
|
🎉 Thank you for your contribution to Judgment Pack! If you’d like another task, choose a path that interests you: |
kikashy
added a commit
that referenced
this pull request
Oct 20, 2026
The version to 0.2.0 (lib/common.sh), the runner template's and the kit's own vendored line-2 version, examples/ in the release tarball (the workflow, its unpack check and docs/releasing.md, from PR #4's review), and the notes docs/releases/v0.2.0.md. Signed-off-by: kikashy <35789537+kikashy@users.noreply.github.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #2. Closes #3.
The repository is public. This brings it to the shape of
judgment-pack-agent, adapted to a bash kit, and fixes the two open issues. Version stays0.1.0.What it adds
CONTRIBUTING.md(runningtests/run.shandshellcheck, the DCO sign-off, one pull request per issue, the agent docs),CODE_OF_CONDUCT.md(the same text),SECURITY.md(the same reporting path, scope adapted: a manifest is code),NOTICE,.gitattributes,.gitignore,.github/PULL_REQUEST_TEMPLATE.md,.github/dependabot.yml(github-actions only), andthank-merged-contributors.ymlcopied as is.dev.json(stepsdiff-check,local-paths,agent-docs,bash-n,json,shellcheck,tests),scripts/dev/check.sh(a copy of the template),AGENTS.md(the template plus a "This repository" section) andCLAUDE.mdgenerated from it.ci.ymlkeeps itslintandtestsjobs, which branch protection requires, and runs them throughscripts/dev/check.sh --only ...; it also gainsworkflow_call. Thejsonstep is the old "JSON documents parse" lint step, moved into the manifest.docs/releasing.mdis new.lib/wrap.shputs the manifest's venv first on the PATH for every step, whatever its toolchain (the toolchain still decides the cap). A kit test runs anode, ago, ashelland apythonstep that each import a module installed in the venv, and a run without the venv fails all four.templates/check.shline 2 is# from judgment-pack-devkit v0.1.0 (templates/check.sh); a test holds it tojpdev --version, and the release workflow asserts it;docs/adopting.mdsays a vendored copy keeps the line.gotoolchain takes an optionalversion(1.26or1.26.5) indev.schema.json.templates/ci-check.ymlreads it and passes it tosetup-goasgo-version, falling back togo-version-filewhen the manifest names none.jpdev setupandjpdev checkselect a Go that matches it (the go on PATH, elsesdk/goX.Y.Z/bin/gounder the new settingJPDEV_GO_SDK_DIR, default~/sdk) and say so when none is installed, then run with the go on PATH.examples/judgment-pack-agent.dev.jsonnames1.26.5; the agent repository's own manifest is a change in that repository.Public surface: the manifest schema (
toolchains.go.version), a new setting (JPDEV_GO_SDK_DIR), the PATH a step sees, and line 2 oftemplates/check.sh. Tests and documentation changed with them.Release workflow
release.ymlruns on av*tag (vMAJOR.MINOR.PATCH) and is modelled on the agent repository's, without the Go module tag and the mutation-table gate.admitmain;docs/releases/<tag>.mdexists, is not empty and ends its first line with the tag; thereleaseenvironment has a required reviewer.verifyci.yml(lint,tests).packagebin/jpdev --version, line 2 oftemplates/check.shand the tag agree, andscripts/dev/check.shis the template.git archiveofbin/ lib/ templates/ config/ scripts/ docs/ README.md LICENSE NOTICEintojudgment-pack-devkit-<version>.tgz(gzip -n, so the bytes are reproducible),checksums.txt, one run of the unpacked kit, the files uploaded as an artifact.attest-and-draftactions/attest-build-provenance; a draft release is created with the notes fromdocs/releases/<tag>.mdand its id recorded.publishreleaseenvironment (the gate: a maintainer approves). The tag is compared once more; the draft is read by id and must hold the run's notes, title and asset digests; it is published by that id; the published assets are read again and must match.docs/releasing.mddescribes the steps, the gate, what to do when a run fails, and how to verify a release:gh attestation verify <file> --repo ... --signer-workflow Judgment-Pack/judgment-pack-devkit/.github/workflows/release.yml --source-ref refs/tags/<tag> --source-digest <commit> --format json. Thereleaseenvironment exists with a required reviewer. The workflow has not been run:actionlintis clean, and the package steps were run by hand on the commit (the tarball is reproducible and unpacks to a kit that reports its version).Checks
scripts/dev/check.sh --allfrom the clone root, once.shellcheck0.10.0, the native binary (release tarball), in the CI formshellcheck -x -P ".:SCRIPTDIR" ....Also:
actionlint(native, withshellcheckon PATH, underlib/rsscap.sh 6000 600) reports nothing;git diff --checkis clean; no/home/or/tmp/path and no personal name in tracked text. Mutation checks on a scratch copy: restricting the venv to python steps fails the four venv tests; removing the Go selection fails six; a stale line 2 fails two; a prefix match of the Go version (1.7 matching go1.77.5) fails one.Not in this PR
docs/releases/,JPDEV_VERSION, line 2 of the template): the maintainer's, perdocs/releasing.md. Thev0.1.0tag predates the workflow and has no release.🤖 Generated with Claude Code