fix: keep next-step offers within the session purpose
Routine next-step and backlog requests now keep offers within the selected session purpose. Parked observations enter those offers when the user explicitly requests parked or broader work, or evidence shows they block selected work.
The core rule and hr-what-next no longer treat finishing the purpose or invoking the skill as a broader request. The ledger still accounts for every item. Out-of-scope entries retain their decisions and triggers and appear by count and ledger link. Existing authorized work continues.
Scope scenarios cover routine next-step requests, explicit parked-work requests, a demonstrated blocker and a finished purpose with parked items remaining. Deterministic checks exercise accepted and rejected replies and the evaluation runner's stub responses. These checks do not establish model compliance.
Local review also corrected close-out instructions that could reintroduce parked items and strengthened the finished-purpose fixture to reject dropped work and false completion. The reported fixture counterexample was reproduced before the correction and rejected afterward. No further review round ran for these wording and test corrections.
Source adoption and installation are separate. Linux and Windows CI must pass before landing.
- The checks in the README's Development section pass.
- A change users will notice has a
CHANGELOG.mdentry underUnreleased. - Nothing names a private project or repository, a local path, a home directory or a credential.
Summary by cubic
Routine next-step and backlog requests now keep offers within the selected session purpose. Parked observations enter those offers only when the user explicitly asks for parked or broader work, or evidence shows they block selected work.
- Finishing the purpose or invoking
hr-what-nextno longer counts as a broader request; the ledger keeps accounting for every item, with out-of-scope entries offered only by count and ledger link while retaining their decisions and triggers. - Adds two eval scenarios (a demonstrated blocker and a finished purpose with parked items remaining) with deterministic tests for accepted and rejected replies.
- Corrects close-out handling so parked items stay out of close-out offers and their presence blocks a whole-session completion claim, and strengthens the finished-purpose fixture to reject dropped work and false completion claims.
Summary by CodeRabbit
-
Behavior Updates
- Routine next-step and backlog requests now remain within the selected session purpose.
- Parked items stay tracked and counted without being treated as completed or discarded.
- Parked work is surfaced only when explicitly requested or when it blocks the selected work.
- When requested, parked items are offered together as separate conversations.
- Close-out now clearly distinguishes unresolved in-scope decisions from out-of-scope items.
-
Tests
- Added coverage for parked work, blocking dependencies, scope boundaries, and session completion behavior.