Hindsight
Run only when the user requests it. Review completed work; do not reopen tasks,
edit project code, rerun checks, or start a fresh-agent retry loop. A clean session
may have nothing worth retaining.
Review the evidence you actually have
- Establish coverage. Review available tasks, decisions, corrections, tool
results, and verified outcomes. If compaction or missing history limits the
record, state that limitation; do not claim an end-to-end review you could
not perform.
- Find root causes, not a chronology. Identify which specific earlier decision
or missing check caused repeated work. Separate a reasonable failed attempt
from an unsupported assumption. Infrastructure failures are observations,
not automatically process mistakes.
- Keep only reusable lessons. A candidate must change how a future task is
handled. State the triggering condition, concrete action, reason, and limits.
Exclude task status, one-off content, secrets, personal diagnoses, and generic
advice such as “be careful.”
- Separate observation from inference. A verified fix or confirmed causal
mechanism can support a scoped lesson. One occurrence is not a universal
rule. Label unconfirmed hypotheses as watch-items and preserve contrary
evidence and uncertainty.
Propose, do not silently install
Use Prowl's existing knowledge workflow, not a second memory directory:
- Search related accepted knowledge with
prowl_agent search or
prowl_agent context search; recover detail with context get. Check scope,
freshness, and conflicts before proposing anything.
- If a topic already exists and its bundle-relative target is known, use that
target with learn to propose an update. Do not create a near-duplicate or
guess a target. If the target or evidence is unavailable, report the gap.
- Call
learn only for evidence-backed candidates. Put the lesson, applicable
repository/environment, supporting observations, uncertainty, and exceptions
in memory; use context for the session/source explanation and evidence
for resolvable code anchors such as internal/example.go#Function.
- Do not set
learn.skill during this pass: a managed skill would install the
procedure before the knowledge proposal has been reviewed. Do not accept,
overwrite, or delete accepted knowledge on the user's behalf.
- If new evidence conflicts with an accepted note, identify both claims and
propose the correction for review. Never silently choose the convenient one.
A successful learn call creates a proposal in the review inbox. It does not
mean the lesson has been accepted or will be applied to later sessions. If the
proposal fails, say it was not saved; do not describe a narrative report as
persistent memory.
Finish
Report the concrete lessons proposed, where review is needed, watch-items held
back, and any coverage limits. Keep the report shorter than the reviewed work.
If there is no durable lesson, say so without manufacturing a finding.
Adapted from EfficientStreet's Hindsight. Original author credit: Jeffrey Smith.
The upstream MIT copyright and permission notice are included in LICENSE.
1---2name: hindsight3description: Review the available session evidence and propose only durable process lessons for human review. Use when the user asks for hindsight, lessons learned, or a session retrospective. Does not redo completed work or automatically accept memory.4license: MIT5---67# Hindsight89Run only when the user requests it. Review completed work; do not reopen tasks,10edit project code, rerun checks, or start a fresh-agent retry loop. A clean session11may have nothing worth retaining.1213## Review the evidence you actually have14151. Establish coverage. Review available tasks, decisions, corrections, tool16 results, and verified outcomes. If compaction or missing history limits the17 record, state that limitation; do not claim an end-to-end review you could18 not perform.192. Find root causes, not a chronology. Identify which specific earlier decision20 or missing check caused repeated work. Separate a reasonable failed attempt21 from an unsupported assumption. Infrastructure failures are observations,22 not automatically process mistakes.233. Keep only reusable lessons. A candidate must change how a future task is24 handled. State the triggering condition, concrete action, reason, and limits.25 Exclude task status, one-off content, secrets, personal diagnoses, and generic26 advice such as “be careful.”274. Separate observation from inference. A verified fix or confirmed causal28 mechanism can support a scoped lesson. One occurrence is not a universal29 rule. Label unconfirmed hypotheses as watch-items and preserve contrary30 evidence and uncertainty.3132## Propose, do not silently install3334Use Prowl's existing knowledge workflow, not a second memory directory:3536- Search related accepted knowledge with `prowl_agent search` or37 `prowl_agent context search`; recover detail with `context get`. Check scope,38 freshness, and conflicts before proposing anything.39- If a topic already exists and its bundle-relative target is known, use that40 `target` with `learn` to propose an update. Do not create a near-duplicate or41 guess a target. If the target or evidence is unavailable, report the gap.42- Call `learn` only for evidence-backed candidates. Put the lesson, applicable43 repository/environment, supporting observations, uncertainty, and exceptions44 in `memory`; use `context` for the session/source explanation and `evidence`45 for resolvable code anchors such as `internal/example.go#Function`.46- Do not set `learn.skill` during this pass: a managed skill would install the47 procedure before the knowledge proposal has been reviewed. Do not accept,48 overwrite, or delete accepted knowledge on the user's behalf.49- If new evidence conflicts with an accepted note, identify both claims and50 propose the correction for review. Never silently choose the convenient one.5152A successful `learn` call creates a proposal in the review inbox. It does **not**53mean the lesson has been accepted or will be applied to later sessions. If the54proposal fails, say it was not saved; do not describe a narrative report as55persistent memory.5657## Finish5859Report the concrete lessons proposed, where review is needed, watch-items held60back, and any coverage limits. Keep the report shorter than the reviewed work.61If there is no durable lesson, say so without manufacturing a finding.6263Adapted from EfficientStreet's Hindsight. Original author credit: Jeffrey Smith.64The upstream MIT copyright and permission notice are included in `LICENSE`.