Point repo-changes at its upstream `inbox.json` (the phantom ingress producer)
and forbid git/filesystem inspection; point change-signal at the upstream
`changes` records and their `files` field. Clarifies the intended data path —
the connector stages PRs into the gateway's ingress, the gateway folds them, the
classifier routes by changed path.
NOTE (live-run finding): in the current CLI/SDK build the staged ingress inbox
does NOT surface as a readable upstream to the gateway render (a render's
readable upstream = its mounted inbound edges; the ingress is an unmounted
producer), so an LLM gateway cannot actually fold connector arrivals. The
canonical agent-observatory example exhibits the same empty result. Filed as
feedback; this wording is the correct intent for when that path is wired.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
All five section accumulators exposed a facet literally named `pending-edits`,
so docs-pr's five requires were ambiguous and the *-pending -> docs-pr edges
failed to wire. Rename to cli-pending / sdk-pending / reactor-pending /
devtools-pending / openprose-pending (the same distinct-naming discipline
agent-observatory uses for unambiguous wiring) and point docs-pr at each.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs-pr now operates on the docs clone at $DOCS_SYNTH_DOCS_REPO with explicit
git/gh steps (branch docs-synthesis/prs-<cited-PRs>, edit named pages, push, gh
pr create). Generic and runnable; the dry-run guard is unchanged.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
A cost-tiered Reactor example, parallel to agent-observatory, that watches a
code repo's merged PRs and opens one PR against the public docs site to keep it
current. It is the worked example of the Cost and Context Discipline authoring
guidance (the PR→docs shape that guidance was written for):
- repo-changes (gateway): folds merged-PR deltas (changed-path list + diffstat,
never the full diff).
- change-signal (cheap classifier): maps each PR's inline changed paths to
per-section doc-impact signals, faceted so an unrelated PR wakes nobody.
- five section accumulators (cli/sdk/reactor/reactor-devtools/openprose): each
subscribes to its one signal facet and accumulates pending edits (page + why +
cited PR); memo-skips at zero cost otherwise.
- docs-pr (coalesced actuator): the one effectful node — reads only the pages it
edits, drafts the .mdx changes, and opens one PR (git + gh). Dry under
REACTOR_OFFLINE or DOCS_SYNTH_DRY_RUN, which is how the replay is produced.
Ships static PR fixtures (offline demo) and a git-log connectors.cjs.example
(live opt-in). Compile-check passes keyless. The committed replay/ + eval-harness
validation is a follow-up keyed run.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
A Claude-Code session scanner piped into domain world-state. A cheap classifier
(session-signal) fans per-domain signals into four maintained truths
(decisions-log, eng-backlog, use-case-guide, attention-queue) and a coalesced
dashboard, so cost scales with surprise: a session moves only the domains it
touches; the rest memo-skip.
- 7 contracts + reactor.yml (OpenAI gpt-5.4-mini renders, gpt-5.4 compile),
inline-flow static fixtures, opt-in real scanner (connectors.cjs.example),
README + PIPELINE-DESIGN.md.
- Committed replay/ from a captured run (11 rendered, 2 skipped, 0 failed,
~38k fresh tokens) so the reactor eval-harness is reproducible.
- eval-harness: additive, env-gated Anthropic judge (JUDGE_PROVIDER=anthropic
+ JUDGE_MODEL, default claude-opus-4-8) via the CLI's native-Anthropic provider
builder. Default OpenRouter behavior unchanged; REACTOR_OFFLINE still forces
judges off. Eval result: 2/2 grade A (deterministic + opus judge).
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Ships @openprose/reactor 0.3.0, @openprose/reactor-cli 0.2.0, @openprose/reactor-devtools 0.2.0: the Reactor harness (compile-once-intelligent then dumb reconciler, content-addressed receipts, cost scales with surprise) with the distilled ideal public API — curated front door, full @openai/agents passthrough, one typed handle, one Substrate, unified observe, branded ids, and additive forward seams for the fixpoint.