Planr has two test layers plus a release-grade V1.1 verification ladder.
cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo testFocused V1.1 checks should be run when their surfaces change:
cargo test recovery_sweep -- --nocapture
cargo test local_review_workspace -- --nocapture
cargo test review_evidence -- --nocapture
cargo test template_export_import -- --nocaptureThe standalone consumer suite is a maintainer-local project that is not part of this repository. On maintainer machines it lives at:
~/projects/planr-testContributors without that project should rely on the in-repo suite (cargo test), which covers the same CLI, MCP, and HTTP surfaces.
Run against the local native binary:
cd ~/projects/planr
cargo build --release
cd ~/projects/planr-test
npm testRun through the npm package wrapper:
cd ~/projects/planr
npm link
cd ~/projects/planr-test
npm link planr
npm run test:npm-planrThe consumer suite exercises every public command group and subcommand, MCP stdio, local HTTP/SSE, import/export, review gates, install helpers, and generated plan files.
Before calling V1.1 complete, run the full in-repo and consumer ladder:
cargo fmt --check
cargo test
cargo clippy --all-targets -- -D warnings
scripts/build-release.sh
(cd dist && shasum -a 256 -c SHA256SUMS)
(cd dist/planr-1.0.0 && shasum -a 256 -c SHA256SUMS)
npm pack --dry-runInstaller changes also require:
/Users/kregenrek/.agents/skills/shellck/scripts/run_shellck.sh scripts/install.sh
PREFIX="$(mktemp -d)" PLANR_DOWNLOAD=1 PLANR_RELEASE_BASE_URL="file://$PWD/dist" scripts/install.shLive behavior must be proved with:
- a fresh consumer project at
~/projects/planr-test; - MCP stdio contract checks against
docs/fixtures/mcp-contract.json; - localhost HTTP/SSE checks and the browser review workspace at
/review; - recovery sweep checks for stale, timed-out, and retryable work;
- Git/PR review evidence checks that do not inline source content;
- package export/import checks for templates, logs, plan files, and review artifacts;
- prompt output checks for CLI, MCP, and HTTP setup text;
- a forbidden-reference scrub across public repo files.
docs/fixtures/mcp-contract.json is checked by the Rust E2E suite against live MCP stdio responses, install dry-runs, and the CLI reference. Update the fixture and docs/MCP_CONTRACT.md together when adding or removing MCP tools, resources, prompts, or install snippets.