{"_id":"@crown-dev-studios/review-council","_rev":"5-d8cc8149fa004e20b6368ccf903c5c06","name":"@crown-dev-studios/review-council","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@crown-dev-studios/review-council","version":"0.1.0","license":"MIT","_id":"@crown-dev-studios/review-council@0.1.0","maintainers":[{"name":"jblwilliams","email":"jblwilliams@gmail.com"}],"bin":{"review-council":"dist/cli.js"},"dist":{"shasum":"d2876ed61f52f46cd3eb12b5d693917f477bef59","tarball":"https://registry.npmjs.org/@crown-dev-studios/review-council/-/review-council-0.1.0.tgz","fileCount":19,"integrity":"sha512-x/W0d4QIjE4Jqvctfer+Mb90F0nlsQ8J7X50I9zpsaDfF3dOxTiYnisrtx0l+otJyZWPsn8pj00nn7VmzwC9/Q==","signatures":[{"sig":"MEQCIBxLIOJ4Vs4nmBOVcPvyV5DKrjTwAKLrrfITpxe0sgW3AiB/7QlBvvf3lp/2PtBCetqeqN0qzClc1Fr0j+d9ROJOEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96992},"type":"module","engines":{"node":">=20"},"gitHead":"093f58960b479ab15cd633a6431b84fff5376a07","scripts":{"test":"pnpm run typecheck && pnpm run test:unit && pnpm run test:package","build":"rm -rf dist && tsc -p tsconfig.build.json","prepack":"npm run build","test:unit":"node --import tsx/esm --test test/*.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","pack:dry-run":"npm_config_cache=.npm-cache npm pack --dry-run --json","test:package":"node --test test/package-smoke.test.mjs","release:manual":"bash scripts/prepare-release.sh","verify:package":"pnpm run pack:dry-run && pnpm run test:package","review-council:render":"tsx src/render-review-html.ts","review-council:orchestrate":"tsx src/cli.ts"},"_npmUser":{"name":"jblwilliams","email":"jblwilliams@gmail.com"},"_npmVersion":"11.6.2","description":"Parallel multi-agent code review orchestration with bundled prompts, schemas, and HTML reporting.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"zod":"^4.3.5","markdown-it":"^14.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.30.3","devDependencies":{"tsx":"^4","typescript":"^5","@types/node":"^24","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/review-council_0.1.0_1773961047077_0.717198414176049","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved to @crown-dev-studios/skill-issue"},"0.2.0":{"name":"@crown-dev-studios/review-council","version":"0.2.0","license":"MIT","_id":"@crown-dev-studios/review-council@0.2.0","maintainers":[{"name":"jblwilliams","email":"jblwilliams@gmail.com"}],"homepage":"https://github.com/crown-dev-studios/review-council#readme","bugs":{"url":"https://github.com/crown-dev-studios/review-council/issues"},"bin":{"review-council":"dist/cli.js"},"dist":{"shasum":"8acb0ad4dc99a103cbc46282a0f4767cbaf22f28","tarball":"https://registry.npmjs.org/@crown-dev-studios/review-council/-/review-council-0.2.0.tgz","fileCount":18,"integrity":"sha512-7MlUTgSff1EEMl1+QJlqQBIvc0q9azWvl47oLg6XNzqYhx34n2Vbkbmd09teWKEh/dbm7rLcytAI6XR2iPeY/w==","signatures":[{"sig":"MEUCIQCcsD4Kr+fZDlHGXgE1lU8fb99ZVcklQEUfZBP/hnvvmAIgSk8AJduu2af/FnfGpPorXyev9oeygu7r9HAY/+CHAo8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88931},"type":"module","_from":"file:crown-dev-studios-review-council-0.2.0.tgz","engines":{"node":">=20"},"scripts":{"test":"pnpm run typecheck && pnpm run test:unit","build":"rm -rf dist && tsc -p tsconfig.build.json","test:unit":"node --import tsx/esm --test test/*.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","pack:dry-run":"npm_config_cache=.npm-cache npm pack --dry-run --json","release:bump":"bash scripts/bump-version.sh","release:deploy":"bash scripts/deploy.sh","release:manual":"bash scripts/prepare-release.sh","verify:package":"pnpm run pack:dry-run","release:preflight":"bash scripts/prepare-release.sh","release:check-version":"bash scripts/check-version.sh","review-council:render":"tsx src/render-review-html.ts","review-council:orchestrate":"tsx src/cli.ts"},"_npmUser":{"name":"jblwilliams","email":"jblwilliams@gmail.com"},"_resolved":"/private/var/folders/kd/snr2vjq518z9mhx6x_27gjw80000gn/T/21fc7314068325625866eca598a064e3/crown-dev-studios-review-council-0.2.0.tgz","_integrity":"sha512-7MlUTgSff1EEMl1+QJlqQBIvc0q9azWvl47oLg6XNzqYhx34n2Vbkbmd09teWKEh/dbm7rLcytAI6XR2iPeY/w==","repository":{"url":"git+https://github.com/crown-dev-studios/review-council.git","type":"git"},"_npmVersion":"11.9.0","description":"Parallel multi-agent code review orchestration with bundled prompts, schemas, and HTML reporting.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"markdown-it":"^14.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","typescript":"^5","@types/node":"^24","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/review-council_0.2.0_1774651852329_0.5185716808867007","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved to @crown-dev-studios/skill-issue"},"0.3.0":{"name":"@crown-dev-studios/review-council","version":"0.3.0","license":"MIT","_id":"@crown-dev-studios/review-council@0.3.0","maintainers":[{"name":"jblwilliams","email":"jblwilliams@gmail.com"}],"homepage":"https://github.com/crown-dev-studios/review-council#readme","bugs":{"url":"https://github.com/crown-dev-studios/review-council/issues"},"bin":{"review-council":"dist/cli.js"},"dist":{"shasum":"1a1df0e2a5727b66e171ed5433cc2e27dbf5cab7","tarball":"https://registry.npmjs.org/@crown-dev-studios/review-council/-/review-council-0.3.0.tgz","fileCount":18,"integrity":"sha512-cMTg5O5N3h+lxi+MLfsSib1usbJkDik3zlnNzmt0ulTO4K7+92XkgAmyGqqGHlBW5Jl6JLNBKFMQQHQ8WbkI3g==","signatures":[{"sig":"MEQCIChF69vKnwR97TDtW4OnRKJHaExX9k/6dQPTFcDC6ECjAiB2df9ltpY9AkyQpK2B6fd2Zkou3Ffug6AUXmejm/e5aw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89116},"type":"module","_from":"file:crown-dev-studios-review-council-0.3.0.tgz","engines":{"node":">=20"},"scripts":{"test":"pnpm run typecheck && pnpm run test:unit","build":"rm -rf dist && tsc -p tsconfig.build.json","test:unit":"node --import tsx/esm --test test/*.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","pack:dry-run":"npm_config_cache=.npm-cache npm pack --dry-run --json","release:bump":"bash scripts/bump-version.sh","release:deploy":"bash scripts/deploy.sh","release:manual":"bash scripts/prepare-release.sh","verify:package":"pnpm run pack:dry-run","release:preflight":"bash scripts/prepare-release.sh","release:check-version":"bash scripts/check-version.sh","review-council:render":"tsx src/render-review-html.ts","review-council:orchestrate":"tsx src/cli.ts"},"_npmUser":{"name":"jblwilliams","email":"jblwilliams@gmail.com"},"_resolved":"/private/var/folders/kd/snr2vjq518z9mhx6x_27gjw80000gn/T/5222ded9e639bcfdf7787565ef1e1f2b/crown-dev-studios-review-council-0.3.0.tgz","_integrity":"sha512-cMTg5O5N3h+lxi+MLfsSib1usbJkDik3zlnNzmt0ulTO4K7+92XkgAmyGqqGHlBW5Jl6JLNBKFMQQHQ8WbkI3g==","repository":{"url":"git+https://github.com/crown-dev-studios/review-council.git","type":"git"},"_npmVersion":"11.9.0","description":"Parallel multi-agent code review orchestration with bundled prompts, schemas, and HTML reporting.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"markdown-it":"^14.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","typescript":"^5","@types/node":"^24","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/review-council_0.3.0_1774809609109_0.809534438190255","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved to @crown-dev-studios/skill-issue"},"0.4.0":{"name":"@crown-dev-studios/review-council","version":"0.4.0","license":"MIT","_id":"@crown-dev-studios/review-council@0.4.0","maintainers":[{"name":"jblwilliams","email":"jblwilliams@gmail.com"}],"homepage":"https://github.com/crown-dev-studios/review-council#readme","bugs":{"url":"https://github.com/crown-dev-studios/review-council/issues"},"bin":{"review-council":"dist/cli.js"},"dist":{"shasum":"7e03a8b5e5c088e73557a45983b52a48dc3fe94c","tarball":"https://registry.npmjs.org/@crown-dev-studios/review-council/-/review-council-0.4.0.tgz","fileCount":18,"integrity":"sha512-Kv8mb2QCYg5phTI30YK7dkt1rZW13tz/XB1bor/UAqJYNl9c0+CjGaanIsYgbySwNSVUNpLRUXGpcjyR8qIjkg==","signatures":[{"sig":"MEUCIQDVh3xJh9PCpxrPSwfBHAOzv8A6wLvolx0i5ZqQJIb+zgIgeIByztNKVyxz5ZYKFkOi4u1Kc40bbe70/uupkoZK8G8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94416},"type":"module","_from":"file:crown-dev-studios-review-council-0.4.0.tgz","engines":{"node":">=20"},"scripts":{"test":"pnpm run typecheck && pnpm run test:unit","build":"rm -rf dist && tsc -p tsconfig.build.json","test:unit":"node --import tsx/esm --test test/*.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","pack:dry-run":"npm_config_cache=.npm-cache npm pack --dry-run --json","release:bump":"bash scripts/bump-version.sh","release:deploy":"bash scripts/deploy.sh","release:manual":"bash scripts/prepare-release.sh","verify:package":"pnpm run pack:dry-run","release:preflight":"bash scripts/prepare-release.sh","release:check-version":"bash scripts/check-version.sh","review-council:render":"tsx src/render-review-html.ts","review-council:orchestrate":"tsx src/cli.ts"},"_npmUser":{"name":"jblwilliams","email":"jblwilliams@gmail.com"},"_resolved":"/private/var/folders/kd/snr2vjq518z9mhx6x_27gjw80000gn/T/9cdbb275b9e891cc07dae71c87959db4/crown-dev-studios-review-council-0.4.0.tgz","_integrity":"sha512-Kv8mb2QCYg5phTI30YK7dkt1rZW13tz/XB1bor/UAqJYNl9c0+CjGaanIsYgbySwNSVUNpLRUXGpcjyR8qIjkg==","repository":{"url":"git+https://github.com/crown-dev-studios/review-council.git","type":"git"},"_npmVersion":"11.9.0","description":"Parallel multi-agent code review orchestration with bundled prompts, schemas, and HTML reporting.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"markdown-it":"^14.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","typescript":"^5","@types/node":"^24","@types/markdown-it":"^14.1.2"},"_npmOperationalInternal":{"tmp":"tmp/review-council_0.4.0_1774922138464_0.08243650350808118","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved to @crown-dev-studios/skill-issue"}},"time":{"created":"2026-03-19T22:57:26.941Z","modified":"2026-04-13T01:09:59.709Z","0.1.0":"2026-03-19T22:57:27.218Z","0.2.0":"2026-03-27T22:50:52.485Z","0.3.0":"2026-03-29T18:40:09.251Z","0.4.0":"2026-03-31T01:55:38.625Z"},"bugs":{"url":"https://github.com/crown-dev-studios/review-council/issues"},"license":"MIT","homepage":"https://github.com/crown-dev-studios/review-council#readme","repository":{"url":"git+https://github.com/crown-dev-studios/review-council.git","type":"git"},"description":"Parallel multi-agent code review orchestration with bundled prompts, schemas, and HTML reporting.","maintainers":[{"name":"jblwilliams","email":"jblwilliams@gmail.com"}],"readme":"# Review Council\n\nReview Council is a standalone skill repo for model-parallel code review. It runs Claude and Codex in parallel with selected skill references (architecture-review, testing-philosophy, plan-compliance) passed into reviewer prompts as additional review lenses, then synthesizes all findings through an LLM judge with semantic deduplication, contradiction detection, and dependency ordering.\n\nUse it when you want:\n\n- model-parallel review where Claude and Codex each independently apply specialized review skills\n- a judge that deduplicates across both models, detects contradictions, and orders findings by dependency\n- automated self-review integrated into agentic workflows\n\n## Status\n\nThe orchestrator handles the happy path and common failure modes:\n\n- Stage timeouts with two-phase kill (SIGTERM then SIGKILL) prevent hung runs\n- Automatic retry with exponential backoff handles transient failures\n- Every stage emits a JSONL stdout event stream for diagnosis\n- Partial reviewer failure still allows the judge to run on available data\n- Failed stages surface stderr excerpts, validation errors, warnings, and stream log paths in the HTML report\n\n## Requirements\n\n- Node.js 20+\n- `pnpm` 10.30.3+\n- `claude` and/or `codex` on `PATH`\n- a Git working tree to review\n\n## Install\n\n```bash\nnpx @crown-dev-studios/review-council --target \"staged changes\" --open-html\n```\n\n## Quick Start\n\nFrom the project root you want to review:\n\n```bash\nnpx @crown-dev-studios/review-council \\\n  --target \"staged changes\" \\\n  --open-html\n```\n\nThat's it. Claude + Codex review in parallel, Codex judge, HTML report opens in your browser. Output goes to `docs/reviews/<run-id>/`.\n\nMain outputs:\n\n- `judge/summary.md`\n- `judge/verdict.json`\n- `follow-ups.md`\n- `bundle.json`\n- `index.html`\n\n## CLI Options\n\n```\n--target <target>                 Review target label (required)\n--run-dir <dir>                   Output directory for this run\n--no-claude                       Skip Claude reviewer\n--no-codex                        Skip Codex reviewer\n--skip-judge                      Skip the judge stage\n--skill-paths <paths>             Comma-separated paths to skill directories\n--open-html                       Open index.html after rendering (macOS)\n--skip-html                       Skip HTML rendering\n--timeout <ms>                    Stage timeout in ms (default: 300000)\n--retries <n>                     Max retries per stage on failure (default: 2)\n```\n\n### Execution Contract\n\nThere are no command override or sentinel bypass flags. Review Council uses canonical built-in execution metadata for Claude, Codex, and the judge, and every executable stage still requires exit code `0` plus its expected artifacts plus `done.json`.\n\n## Operational Rules\n\n- Built-in reviewer commands are non-interactive and emit JSONL to stdout.\n- Keep reviewer artifacts inside the run directory.\n- Selected skills are passed into reviewer prompts as additional review lenses for the run; the orchestrator does not inline local `SKILL.md` contents.\n- Do not create authoritative files in `todos/` during raw review.\n- If you reuse `workflows-review`, run each reviewer in a separate worktree.\n\n## Failure Triage\n\nIf a run fails or stalls, inspect:\n\n- `<run>/claude/status.json`\n- `<run>/codex/status.json`\n- `<run>/judge/status.json`\n- each stage's `stream.jsonl` and `stderr.log`\n\nThe `status.json` for each stage includes `exit_code`, `timed_out`, `attempts`, `missing_artifacts`, and `validation_errors`. Stages additionally record stream artifact paths, `last_activity_at`, `last_event_type`, `stream_event_count`, `stream_parse_errors`, and optional warnings.\n\nIf a stage exits `0` but does not write `done.json`, the stage is incomplete and the run should be treated as failed.\n\n## Publishing (maintainers)\n\nCanonical release version lives in the [`VERSION`](VERSION) file and must match `version` in [`package.json`](package.json).\n\n**Prerequisites**\n\n- [`npm login`](https://docs.npmjs.com/cli/v11/commands/npm-login) (or another auth method `pnpm publish` can use for the public registry)\n- A **clean** git working tree in this repository\n- Git tag `vX.Y.Z` present locally before deploy (created by the bump script or manually)\n- Permission to publish `@crown-dev-studios/review-council` on npm\n\n**Scripts (same idea as `simple-auth`)**\n\n| Step | Command |\n|------|---------|\n| Preflight only (build, test, pack dry-run) | `pnpm run release:preflight` or `./scripts/prepare-release.sh` |\n| Confirm `VERSION` ↔ `package.json` | `pnpm run release:check-version` or `./scripts/check-version.sh` |\n| Require local tag exists | `./scripts/check-version.sh --require-tag` |\n| Bump version, refresh lockfile, commit + tag (+ push) | `pnpm run release:bump -- patch` (or `major` / `minor` / `1.2.3`) |\n| Publish to npm | `pnpm run release:deploy` or `./scripts/deploy.sh` |\n\n**Typical release**\n\n1. `./scripts/bump-version.sh patch` — updates `VERSION`, `package.json`, `pnpm-lock.yaml`, commits, tags `v…`, pushes (omit `--no-push` / `--no-tag` as needed).\n2. `./scripts/check-version.sh --require-tag`\n3. `./scripts/deploy.sh --dry-run` (optional)\n4. `./scripts/deploy.sh` — pushes branch + tag (unless `--skip-git`), runs install/build/test/verify, then `pnpm publish --access public`.\n\nOptions: `./scripts/deploy.sh --dry-run` (no push/publish), `./scripts/deploy.sh --skip-git` (publish only; you already pushed).\n\nUpdate [`package.json`](package.json) `repository` / `homepage` / `bugs` if the GitHub repo URL differs from `@crown-dev-studios/review-council` on GitHub.\n\n## Files\n\n- [SKILL.md](SKILL.md)\n- [references/cli-integration.md](references/cli-integration.md)\n- [references/output-contract.md](references/output-contract.md)\n- [src/orchestrate-review-council.ts](src/orchestrate-review-council.ts)\n- [src/render-review-html.ts](src/render-review-html.ts)\n","readmeFilename":"README.md"}