Skip to content

docs: add Reactor DAG + Reactor CLI sections as headline items - #2

Merged
irl-dan merged 14 commits into
mainfrom
docs/reactor-dag-and-cli
Jun 2, 2026
Merged

docs: add Reactor DAG + Reactor CLI sections as headline items#2
irl-dan merged 14 commits into
mainfrom
docs/reactor-dag-and-cli

Conversation

@irl-dan

@irl-dan irl-dan commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

What

Documents the two execution-layer pieces of OpenProse as first-class, headline parts of the docs site.

New sections

  • content/docs/reactor/ (6 pages) -- the Reactor DAG engine: the two-phase compile/run model, the content-addressed DAG + compile-as-sessions, world-model + fingerprints + facet propagation, the dumb reconciler + signed receipts, continuity + ingestion, and the Incident Briefing Room case study.
  • content/docs/cli/ (7 pages) -- @openprose/reactor-cli (command reactor): overview, quickstart, configuration (reactor.yml), compile/run/serve, connectors + sandbox, observability, and a full command reference with documented exit codes (0/1/2). Grounded in the as-built source (12 commands, no invented flags).

Headline placement

  • Landing page (content/docs/index.mdx): both surfaced as headline <Card>s plus a top-of-page prose mention.
  • Nav (content/docs/meta.json): reactor + cli placed right after think.

Accuracy

  • CLI pages verified against packages/reactor-cli (src/cli.ts, src/commands/*, src/config.ts, README.md): real command/flag/exit-code/config surface; --concurrency is across-reactor only; no reactor pull; sandbox modes none/docker.
  • DAG pages verified against reactor-technical-report.md + the binding model docs: two-phase compile(sessions)/run(dumb reconciler), no .prose parser ("the session embodies the VM"), cost scales with surprise, render-writes-files. Deferred work (cryptographic signer, fixpoint/Phase 6) is honestly scoped, not over-claimed.

Gates (green under Node 24)

typecheck · lint · spell · vitest (37/37) · check:emdash · check:links (72/72 resolve). An independent adversarial audit confirmed accuracy against source and found no defects.

🤖 Generated with Claude Code

irl-dan and others added 14 commits May 20, 2026 13:46
Document the two execution-layer pieces of OpenProse as first-class,
headline parts of the site:

- New content/docs/reactor/ (6 pages): the Reactor DAG engine -- the
  two-phase compile/run model, the content-addressed DAG + compile-as-
  sessions, world-model + fingerprints + facet propagation, the dumb
  reconciler + signed receipts, continuity + ingestion, and the
  Incident Briefing Room case study.
- New content/docs/cli/ (7 pages): @openprose/reactor-cli (command
  `reactor`) -- overview, quickstart, configuration (reactor.yml),
  compile/run/serve, connectors + sandbox, observability, and a full
  command reference with the documented exit codes. Grounded in the
  as-built source (12 commands, no invented flags).
- Landing page (content/docs/index.mdx): both surfaced as headline
  Cards plus a prose mention; nav (content/docs/meta.json) lists
  reactor + cli right after "think".
- .cspell.json: allowlist the new technical terms.

Gates green under Node 24: typecheck, lint, spell, vitest (37),
check:emdash, check:links (72 links resolve).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ing, reference)

Full documentation for @openprose/reactor-devtools as a sibling of the Reactor
CLI section: overview/index, quickstart, state-dirs-and-replay (incl. the
ReplaySession SDK surface), the-viewer, --describe, recording, and reference.
Registered in the top nav after cli; cross-linked from cli/observability.
Grounded in the package source (bin flags, HTTP API, ReceiptFrame shape,
library exports). House-style ASCII (no em-dashes); cspell dictionary extended.
…lign state-dir + fixture docs

Resolves the docs-layer findings from the spec→code→docs cross-check
(planning/plans/2026-05-31-reactor-devtools/CROSSCHECK-REPORT.md).

Remove the outdated `incident-briefing-room` case study (and its inbound links
from reactor/index.mdx, continuity-and-ingestion.mdx, meta.json). It leaked the
RETIRED judge/verdict architecture, anchored to the deleted v0.1 technical
report, and cited unreproducible token figures from the deleted reactor-cradle
eval. Clears dt-verdict-1, dt-report-provenance-1, dt-numbers-1,
dt-surprise-cause-1, dt-fulfillment-1 by removal (this material is being
published differently).

Accuracy fixes:
  - dt-statedir-layout-1 / dt-receiptspath-1: state-dir docs now describe the ONE
    canonical flat `<state-dir>/receipts.json`, and note `run`/`trigger` persist
    it (so a run is directly replayable in DevTools). (cli/compile-run-serve.mdx)
  - dt-fixture-count-2: six → seven committed fixtures; add the `masked-relay`
    row (the un-narrated original). (quickstart.mdx, recording.mdx)
  - dt-worldmodel-paths-3: clarify the per-node dir is hex-encoded and versions
    are `sha256_<hash>.bin`. (state-dirs-and-replay.mdx)
  - dt-init-readme-1: `reactor init` scaffolds a README.md too. (command-reference.mdx)
  - dt-sandbox-mode-1: note the accepted-but-deferred `unix-local` sandbox mode.
  - dt-file-connector-watch-1: the `file` connector re-scans per poll, not a watcher.
  - dt-surface-1: note the standalone bin is the interim surface; `reactor dev` is
    the intended end-state. (reactor-devtools/index.mdx)

Gates: check:emdash clean, check:links 89/89 resolve, typecheck passes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ox knobs, recorder/beats, continuity tick

Resolves round-2 docs-layer findings (CROSSCHECK-REPORT-R2.md).

- r2-cli-trigger-ephemeral-1 (high): `trigger` persists to the flat receipts.json
  (was "ephemeral receipt trail"; contradicted its own page + spec + code).
- r2-cli-sandbox-network-1: `sandbox.network` is accepted but not honored (docker
  forces --network=none); r2-cli-sandbox-image-default-1: image default is
  node:22-bookworm-slim, not "(none)".
- r2-dt-maskedrelay-only-beats-1 / r2-dt-record-fixture-id-throws-1 /
  r2-dt-records-without-beats-1: agent-observatory also lacks a beats.json;
  masked-relay (no beats) replays but cannot be driven through the FIXTURE= recorder.
- r2-rollin-self-rerender-docs-1: the self-driven tick is a deterministic zero-token
  bridge, not a model re-render.
- r2-rollin-docs-version-1p0-1: doctor sample shows @openprose/reactor@0.2.0 (was 1.0.0).
- r2-cli-concurrency-default-doc-1: state the v1 `--concurrency` default of 1.

Gates: check:emdash clean, check:links resolve.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…not adaptive)

r3-cli-poll-interval-adaptive-doc-1 (CROSSCHECK-REPORT-R3.md): compile-run-serve.mdx
said the serve loop "sleeps to the soonest armed self-recheck" -- the deferred
adaptive-idle behavior, contradicting line 59 + the spec + the code (flat sleep).
A half-resolved round-2 sibling (round 2 fixed the spec + continuity docs page but
not this line). Now describes the flat v1 cadence + notes adaptive sleep is deferred.

Gates: check:emdash clean, check:links resolve.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Dead, unpublished, unreferenced file at the repo root (outside content/docs, so
fumadocs never rendered it). It described the retired v0.1 model
(@openprose/reactor-cradle, prose compile/serve, judge/policy). Not a live-site
artifact; deleting to avoid a stale doc shipping in the repo.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Retire the pre-Reactor model pages and reframe the docs around the Reactor
harness, matching the launch README + the intelligent-react architecture/CLI
specs.

- Delete the retired page trees that taught `prose run`, `.prose/runs/`,
  `### Ensures`, `### Services`, `kind: program`/`kind: system`, and the
  retired Forme/VM/services model: start/*, think/*, use/*, agents/*, and the
  whole reference/* tree.
- Drop them from the root nav (meta.json): pages now index → reactor → cli →
  reactor-devtools only.
- Rewrite index.mdx to the Reactor model: lead with Responsibilities, the
  world-model, ### Requires → ### Maintains, the React↔Reactor table, and the
  keyless `reactor-devtools --example` replay.
- cli/quickstart: install now pulls the SDK + CLI + devtools
  (`npm i -g @openprose/reactor @openprose/reactor-cli @openprose/reactor-devtools`);
  the static scaffold is driven with `reactor serve`, not `reactor run`
  (only serve's continuity loop ingests a static gateway).
- reactor-devtools/reference: add the shipped flags --example, --copy-to,
  --json, --version/-V, --force; correct /api/node from "the click-through
  inspector" to a server/library endpoint the SPA does not call (no node-click
  UI in v1).
- Relax the now-stale ProseProgram sanity test (no docs page embeds a vendor
  .prose program anymore; per-use resolution check remains).

typecheck/lint/tests/link-check pass. spell is blocked only by the local Node
version (cspell needs >=22.18.0), unrelated to these changes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
verify/pnpm spell flagged new content words: fixpoint (core term), wakeups,
desugars, footguns, greppable, headlessly, screenshotting, unparseable, bucketings.
@irl-dan
irl-dan merged commit 102229f into main Jun 2, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant