Get the Reactor packages mergeable + publishable and the launch surfaces coherent. CI / publish (ci-reactor-package.yml): - Drop the deleted reactor-cradle from the workflow and remove the obsolete .mjs release-gate suite (.github/scripts/*reactor*.mjs + tests) entirely. - Add per-package pack + publish jobs for @openprose/reactor, @openprose/reactor-cli, and @openprose/reactor-devtools (idempotent, version-from-package.json, reactor-v* tag-gated, provenance). The two CLI packages now have a release path. - Fix the dangling cradle reference in tools/cli build-release-tarball.mjs; regenerate pnpm-lock.yaml. Install / first-run: - reactor-cli: @openprose/reactor moved peer -> dependency (a global install now pulls the SDK); @openai/agents + zod become optional peers (keyless install stays light). - SDK README: replace non-existent *V0 imports with the real exports (verifyReceipt / LedgerReceipt / inspectReceiptProof / projectReceiptProof). - CLI README + http-server comment: correct the trigger route to POST /trigger/<node>. Front-door + taxonomy: - Promote the Reactor-forward launch README; add the technical report at docs/reactor/v0.1/report.md (replacing the stale v0.1). - Migrate SKILL.md and all packages/std + packages/co contracts off the retired taxonomy (kind: service -> function, kind: system deleted, ### Ensures -> ### Maintains, ### Criteria/### Services folded) onto the Reactor model. Prune the dead cradle-importing examples: drop flat-tokens and release-readiness/reactor-package-example (keeping release-readiness/src, which is tested). Gates: build, test:reactor:offline, test:examples (10/0), test:skill (252/252) all green offline. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
std/ops
Operational utilities for debugging, profiling, and validating OpenProse systems. These are the developer tools of the language -- the equivalent of git status, cargo check, and go vet. Each system maps to a prose CLI command.
prose-author.prose.md is the authoring companion in this group: Prose for
making Prose. It plays the same role for OpenProse programs that skill-authoring
helpers play for agent skills: start from rough intent, produce reviewable
source, and keep validation in the generated artifact rather than in a wrapper.
In an agent host, prose write is interactive by default: it can ask targeted
shape/root questions before authoring. The shell CLI wrapper passes request
text up front and marks the run non-interactive, so missing blocking decisions
come back as unresolved-intent instead of terminal prompts.
Systems
| System | CLI Command | Description |
|---|---|---|
lint.prose.md |
prose lint <file> |
Validate structure, schema, shapes, and contract matching |
preflight.prose.md |
prose preflight <file> |
Check that dependencies are installed and environment variables are set |
wire.prose.md |
prose run std/ops/wire |
Run Forme wiring to produce an execution manifest |
status.prose.md |
prose status |
Show recent runs with system name, duration, and pass/fail status |
prose-author.prose.md |
prose write [request...] |
Interactive-by-default authoring of a validated OpenProse package from rough English or pseudo-Prose |
diagnose.prose.md |
prose run std/ops/diagnose |
Diagnose why a run failed -- root cause analysis with fix recommendations |
profiler.prose.md |
prose run std/ops/profiler |
Profile a run for cost, tokens, and time using actual API session data |
Two categories
Source-file tools operate on system *.prose.md files before execution:
lint-- validates that the system is well-formedpreflight-- validates that the runtime environment is readywire-- produces the execution manifest (Forme wiring)
Run-artifact tools operate on completed runs in <openprose-root>/runs/:
status-- lists recent runs and their outcomesdiagnose-- investigates a failed run to find the root causeprofiler-- breaks down cost, time, and token usage from actual session data