Files
irl-dan 27ac01e8f0 feat(reactor-cli): Phase 6 — init + doctor polish + release prep
Production-ready DX + release prep for the reactor CLI (packages/reactor-cli):

- `reactor init [dir]`: scaffold a minimal .prose project (gateway +
  responsibility) + reactor.yml (sandbox.mode:none, a static-connector gateway)
  + .gitignore for .reactor/ + a project README. Keyless (no model surface);
  refuses to clobber without --force. `reactor compile --check` RECOGNIZES the
  scaffold (real contract-set fingerprint -> stale, not the no-contracts error),
  and the contracts compile to a mountable IR under a fake provider.

- doctor polish: now reports the project sandbox mode (+ Docker availability when
  mode:docker), state-dir writability, and compiled-IR freshness
  (no-contracts/absent/stale/fresh). `--live` probes one smoke render by
  dynamic-importing the live checks from the agent-render barrel (correction #8);
  key PRESENCE is reported, never printed. Added `--json`. Stays keyless on the
  report path (live deps reached only via dynamic import under --live).

- README: quickstart, full command reference + documented exit codes, the
  compile -> run -> serve reference-client narrative, the cost-scales-with-
  surprise story, across-reactor --concurrency semantics, and the Change-B
  within-reactor-parallelism deferral note. examples/ (quickstart +
  gateway-connector) run end-to-end offline from a fresh checkout, guarded by an
  examples gate.

- npm pack is CLEAN: split the test compile into dist-test (tsconfig.test.json)
  so the production `build` (tsconfig.build.json) excludes the test suite; the
  published artifact ships dist/ + README.md + examples/ only — no test
  scaffolding. bin wired to dist/cli.js.

Gate: CLI offline 76/76/0 (init + doctor + examples suites added);
SDK offline 421/414/0/7 (no regression, SDK untouched). --help for every
command; init/doctor recognized + honest keyless.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 19:31:50 -07:00
..