Commit Graph

6 Commits

Author SHA1 Message Date
irl-dan d3d28297db docs(reactor-cli): make docs-synthesis gateway/classifier inputs explicit
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>
2026-06-07 21:28:30 -07:00
irl-dan f0c71e4d41 fix(reactor-cli): give docs-synthesis accumulators unique facet names
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>
2026-06-07 20:58:41 -07:00
irl-dan 11e87f6ad9 feat(reactor-cli): make docs-synthesis actuator target concrete
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>
2026-06-07 20:47:08 -07:00
irl-dan f3c2d5200b feat(reactor-cli): add docs-synthesis example (merged PRs → docs PR)
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>
2026-06-07 15:08:40 -07:00
dan f16f9bf317 feat(examples): cost-tiered agent-observatory + eval-harness Anthropic judge (#119)
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>
2026-06-04 14:36:59 -07:00
dan f12dcda4d8 Release: the OpenProse Reactor harness (engine + CLI + devtools) — 0.3.0 ideal API surface (#106)
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.
2026-06-02 14:06:56 -07:00