Summary
Failed outcomes can never be recalled by the SessionStart hook, despite the injected guidance telling the agent to avoid repeating failed patterns.
Verified on main at 3048fb73910a0a8944f74fb2e70abd5752a60b2f.
Reproduction
-
Create a temporary Git repository and a matching workspace id.
-
Write a current, same-workspace memory entry with:
{
"outcome": {
"status": "failed",
"score": 1.0,
"note": "Do not repeat broken migration"
}
}
-
Point MEMORY_GRAPH_PATH at that graph and run hooks/session-start.js.
Actual result
The hook exits successfully but emits {}. In a mixed graph, it emits only successful entries while still appending Avoid repeating failed patterns.
Expected result
Recent same-workspace failures should be available to the formatter, or the product guidance should stop claiming that SessionStart recalls failed patterns.
Cause
hooks/_filter.js:42-48 rejects every entry whose status is not success.
hooks/session-start.js:202-220 nevertheless contains failed-outcome formatting and lines 237-239 tell the agent to avoid failed patterns.
.github/copilot-instructions.md:8-9 and skills/capability-evolver/SKILL.md:35-37 also promise failure reuse.
Impact
The plugin records failures but cannot automatically learn from them, breaking a core stated behavior.
Summary
Failed outcomes can never be recalled by the SessionStart hook, despite the injected guidance telling the agent to avoid repeating failed patterns.
Verified on
mainat3048fb73910a0a8944f74fb2e70abd5752a60b2f.Reproduction
Create a temporary Git repository and a matching workspace id.
Write a current, same-workspace memory entry with:
{ "outcome": { "status": "failed", "score": 1.0, "note": "Do not repeat broken migration" } }Point
MEMORY_GRAPH_PATHat that graph and runhooks/session-start.js.Actual result
The hook exits successfully but emits
{}. In a mixed graph, it emits only successful entries while still appendingAvoid repeating failed patterns.Expected result
Recent same-workspace failures should be available to the formatter, or the product guidance should stop claiming that SessionStart recalls failed patterns.
Cause
hooks/_filter.js:42-48rejects every entry whose status is notsuccess.hooks/session-start.js:202-220nevertheless contains failed-outcome formatting and lines 237-239 tell the agent to avoid failed patterns..github/copilot-instructions.md:8-9andskills/capability-evolver/SKILL.md:35-37also promise failure reuse.Impact
The plugin records failures but cannot automatically learn from them, breaking a core stated behavior.