dream-rsi

Installation
SKILL.md

dream-rsi inference

Schedule (set by the caller, not by this skill): run as a background agent on the smallest available model at an interval. The subagent reads files and returns one JSON object. It does not edit files or dispatch verbs.

Inputs:

  • Storage index: <repo>/.gm/dream-rsi/index.json (schema_version, files, record_kinds, fields), written by the guest on every persist. Read it first and resolve every Dream-RSI file name and record kind from it; the observation log, the cycle result and their fields are described there. Orchestration verbs and dream-* dispatches are not recorded. A failed record carries error_code (the reply's short failure code) or no_match:true (a zero-count failure, scored 0.5 and not counted as a failure); a success carries neither.
  • Cycle result: the cycle_result file of each session named in index.json, written by the automatic dream-replay-cycle boundary.
  • The gm graph: skills/dream-rsi/gm-graph.json (nodes, edges; node kind is principle, gate, tension or terminal -- there is no phase node; edge kind is forward or backreference). A node is a book when its book is non-empty; book_index names each anchor book and the node that carries it.
  • Phase history: .gm/turn-state.json phase_history.
  • Walk evidence: .gm/lean-walk/<NODE>.<SESSION>.json, one subagent record per node visit (node, applied, witness); every file matching <NODE>.*.json is a visit of that node.

Part A: verb strategy

  1. Read every observation file. Count records. If there are fewer than MIN_NEW_OBSERVATIONS across all sessions, return an Insufficient for Part A.
  2. Per verb, compute count, failure rate (exit_code != 0), gate-drift rate, and mean quality.
  3. Treat quality with caution. quality can reflect the open PRD/unknown backlog rather than the dispatch outcome. Rank by failure rate weighted by count, not by quality.
  4. Some non-zero exits are valid answers, not failures. A grep exit 1 with no matches is a no-match result. Classify each failure by the record's error_code field; a no_match:true record is an answer, not a failure. A failed record with neither is unclassified, because its reply is pruned from .gm/exec-spool/out and cannot be recovered. The agent shall not propose a change for a verb until its failure exits are shown to be real errors. A verb whose failures are all unclassified gets no proposal and is counted in unclassified_failures.
  5. Read the open rows in .gm/prd/ (legacy single file .gm/prd.yml, read only during migration). Drop a candidate when an open row already names its verb and the same change.
  6. For up to MAX_PART_A_PROPOSALS candidates, write one proposal with the verb, the change, the counts and rates as evidence, and a measurable target on the same log. A change is executable: code, a config value or a verb contract. The paper found that directional prose hints do worse than no hint at equal budget, so a proposal that only adds guidance prose is refused.
Installs
5
Repository
anentrypoint/gm
GitHub Stars
6
First Seen
Oct 9, 2026