mirror of
https://github.com/openprose/prose.git
synced 2026-09-19 05:55:05 +08:00
f16f9bf317
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>
1.5 KiB
1.5 KiB
name, kind
| name | kind |
|---|---|
| decisions-log | responsibility |
Goal
Maintain a running log of decisions and open questions drawn from agent sessions, each traceable to the session that produced it.
Requires
- the decision-signal facet of session-signal (the only wake source: a decision signal moved)
Maintains
A decisions log. Material: the entry set and, per entry, its stable id, its text, its kind (decision or open question), and its status (open or settled); plus the open count. The recorded time is immaterial. The log moves only when a decision's text, kind, or status changes, or an entry is added; a session that produced no new decision content leaves the log unchanged.
Postcondition: every entry cites the session id it was derived from.
open-decisions
The entries whose status is open, with their text and kind. Subscribed to by attention-queue and dashboard.
decision-history
The full entry set with the open count. Subscribed to by dashboard.
Continuity
- input-driven: wake only when the decision-signal facet moves. A bug-only or use-case-only session never touches this input, so this domain stays silent for it (memo-skip at zero cost).
Invariants
- This render is a bounded transform over the decision-signal it was woken with and this node's prior log. Append or update the one affected entry; never scan the filesystem, read transcripts, or run shell commands. Complete in a few steps.
- The only writable surface is this node's published world-model.