| name | reflector |
| description | Run a deep structured retrospective at the end of a merged initiative — repeated actions, roadblocks hit, and operator notes (agentic self-reflection + agent-prompted user questions + pure user feedback) — and write the findings into the central forge-owned brain. |
| library | true |
| phase | reflector |
| surface | both |
| purpose | Run the end-of-cycle retrospective and write durable findings into the brain. |
| composition | {"skills":["brain-query","brain-ingest"],"tools":[],"mcps":[],"guards":["event-log","reflection-close"]} |
| runtime | {"sdk":"claude","strategy":"fixed","model":"claude-sonnet-4-6","loopStrategy":"one-shot"} |
| brainAccess | mandatory |
| interactivity | Autonomous self-reflection with an optional operator feedback round. |
| allowed-tools | ["Read","Grep","Glob","Write","Edit","Bash"] |
| disallowed-tools | ["NotebookEdit","WebFetch","WebSearch","Task","Agent"] |
| budgets | {"maxTurns":60,"maxBudgetUsd":1.5} |
Reflector
Single responsibility
Close the learning loop. After an initiative is merged, run the four-stage retro (per docs/phases/reflection.md) and write findings into the brain by direct file writes — theme markdown files under brain/projects/<project>/themes/ plus a cycle archive under brain/cycles/_raw/<cycle-id>.md.
Operator handoff (the reflection human moment)
The in-UI /reflect screen is the operator surface (ADR 023): it renders the user-questions.json this skill emits, writes user-feedback.md, and the bridge auto-reruns the reflector. In interactive mode (the default) the feedback is supplied by a human. In automated mode (R4-09-F3, selected by the trigger's mode: automated) there is no human: the reflector infers each answer from the cycle logs / demo / diff and self-answers with inferred: true provenance — the per-cycle brief's Stage 2/3 tells you which mode you are in and exactly what to write.
Reads: _logs/<id>/user-questions.json (≤4 entries; [] if none written); _logs/<id>/retro.md + _logs/<id>/events.jsonl for context.
Writes: _logs/<id>/user-feedback.md — answer each numbered question, then add free-form feedback. Stage 3 distils this into retro.md Section 2 (answers) + Section 3 (free-form). Contract: orchestrator/phases/reflector-binding.ts, orchestrator/phases/reflector.ts. If the file is absent when the reflector runs, record _(no feedback supplied this cycle)_ and continue.
Required first action
Invoke brain-query BEFORE writing anything. First tool calls MUST be Read/Grep/Glob against brain/... or brain/projects/<project>/... paths — at minimum brain/projects/<project>/profile.md and any prior brain/projects/<project>/themes/*.md matching a pattern observed in the event log. The orchestrator records tool_use.brainReads and fails the reflection if zero brain reads are recorded (production gates on ). Unconditional, not "when unsure".