docs(sprint): record the #312/#313 context message-type sweep
Landed out-of-band on 2026-07-26: upstream of Goal 1's gate verdicts and Goal 3's recovery tickets, both of which deliver through the context builders it touched. Drops #312 from the deferred table (its stated dependency on #307 turned out to be unnecessary) and notes that #309 now lands on top of the re-roled recoveryTicket. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -55,7 +55,7 @@
|
||||
- **#299** Single provider death → unrecoverable session kill (`NoEligibleProvider` on retry) — re-route, don't die.
|
||||
- **#300** HealthMonitor detects provider loss ~18s too late (reactive, not gating) — gates #299's recovery path on a fast signal.
|
||||
- **#304** Recovery stage runs expensively then run dies on stale failure-cap — wasted work; the cap must reset on the recovery's own progress.
|
||||
- **#309** Recovery stage: apply same-fingerprint loop-breaker + repair-ledger — the runaway root cause; closes the loop Goal 3 started.
|
||||
- **#309** Recovery stage: apply same-fingerprint loop-breaker + repair-ledger — the runaway root cause; closes the loop Goal 3 started. Now lands on top of #312/#313: `recoveryTicket` is USER-role in the trailing slot at highest precedence, and the loop-breaker is the agreed place to escalate a repeated tool failure out of tool-role (per-failure sites stay tool-role).
|
||||
- **#307** Observability: no event records the assembled stage-context manifest — cheap event, makes every above failure diagnosable post-run.
|
||||
|
||||
**Stretch (if #307 lands fast):** **#308** Background-process execution + monitor tool for long-running shell commands — unblocks real test gates but not load-bearing for the goals above.
|
||||
@@ -80,6 +80,32 @@
|
||||
|
||||
---
|
||||
|
||||
## Landed out-of-band — context message-type sweep (#312, #313)
|
||||
|
||||
Not in the original three goals; pulled in on 2026-07-26 because it is upstream of Goal 1's gate
|
||||
verdicts and Goal 3's recovery tickets — both deliver their findings through the context builders
|
||||
this touched. #312 was listed as deferred-behind-#307; that turned out to be unnecessary, placement
|
||||
is statically determined by `PromptRenderer` + each producer's role, so no run ground truth was needed.
|
||||
|
||||
**Rule established:** the system block carries only what does not change during a run. Anything the
|
||||
run mutates is a user message — a mutating system prefix defeats prompt caching, and models
|
||||
under-weight system-folded content against the trailing user turn. `role` = which chat message type,
|
||||
`layer` = pinning/prune eligibility; those were tangled and are now separate.
|
||||
|
||||
- **#312** ✅ Audit — report at `docs/audits/2026-07-26-context-role-audit.md` (commit 514aeae7).
|
||||
- **#313** ✅ Implementation (commit a4f6cf05, `./gradlew check` green). Ten entries re-roled
|
||||
SYSTEM→USER; trailing repair-mandate slot now emits exactly one mandate by precedence
|
||||
(`recoveryTicket > retryFeedback > groundingFeedback > rejectionFeedback`) with `remainingDelta`
|
||||
appended, so the slot stays scarce as members were added.
|
||||
- **Bug fixed en route:** the renderer's `layer == L0` clause was overriding role on four L0+USER
|
||||
packs — `InferenceSummarizer`, `SemanticReviewerImpl`, `CapabilityGapReflectorImpl`, Talkie
|
||||
session-naming — all four were sending a system-only request with **no user turn at all**.
|
||||
|
||||
**Not verified live.** Needs one freestyle run to confirm the trailing mandate lands as intended.
|
||||
Fold into the Goal 1 acceptance run (#267) rather than spending a separate run.
|
||||
|
||||
---
|
||||
|
||||
## Intentionally deferred (seen, not dropped)
|
||||
|
||||
| ID | Title | Why out |
|
||||
@@ -94,5 +120,4 @@
|
||||
| **#301** | Escalate repeated scope/manifest write-block to user approval | Falls under Goal 2 once DoD lands; premature now. |
|
||||
| **#302** | Mid-run hard steering (drop inference, inject operator message, restart) | Bigger surface; pairs with the steering-channel design, post-Goal 3 reliability. |
|
||||
| **#303** | Auto-repair collapsed-argv shell calls | Nice-to-have shell hygiene. |
|
||||
| **#312** | Audit USER- vs SYSTEM/tool-role context placement | Context-salience sweep — better run after #307's manifest event exists so the audit has ground truth. |
|
||||
| **#25** | Backlog (deferred/spec-level from memory) | Meta-task; verify-against-code before any sub-item is promoted. |
|
||||
|
||||
Reference in New Issue
Block a user