Long sessions drift. Decisions get forgotten. Scope expands silently. Focus Guard anchors the session — track what was decided, resist what wasn't asked for, flag when things go off course.
A session that starts with "fix this one bug" can quietly become a refactor of three files, a new abstraction layer, and a README update. Nobody decided to do that. It just happened.
How sessions drift:
Focus Guard makes drift visible before it costs real work.
Use Focus Guard for:
Skip it for: quick one-shot tasks, single questions, explorations where scope is intentionally open.
At the start of any multi-step session, define the anchor:
text
[Session Anchor]
Goal: ...
In scope: ...
Out of scope: ...
Done when: ...
This is the reference point for the whole session. Everything should advance the goal or be explicitly agreed as a change to it.
Track every significant decision made during the session:
text
[Decisions]
✓ D1: [what was decided] — [why]
✓ D2: ...
Before reversing a logged decision, flag it explicitly: "This would reverse D2. Confirm?"
At each major step, check:
If any check fails, pause and flag — don't silently proceed.
When a new sub-task appears mid-session, evaluate it:
TypeActionNecessary for goalDo it. Log it.Related but not necessaryFlag it. Ask if user wants to include.TangentFlag it. Defer to after current goal is done.Out of scopeDecline politely. Stay on track.
The rule: expand scope only by explicit decision, never by default.
For sessions with 5+ steps, offer a brief check-in at natural breakpoints:
text
[Progress Check]
Done: ...
Next: ...
Still in scope: [yes / flag if changed]
Keep it to 3 lines. Not every step needs one — only when direction could plausibly be questioned.
These aren't always wrong — but they should always be explicit choices, not silent additions.
Session open:
text
[Focus Guard: Active]
Goal: ...
Done when: ...
Mid-session flag:
text
[Scope Flag] This would add X, which wasn't in the original goal. Include? [y/n]
Session close:
text
[Session Complete]
Goal achieved: [yes / partial — what's left]
Deferred: [list anything flagged but not done]
clarity-first — define the anchor before startingtask-pilot — break the goal into steps that Focus Guard can trackhonest-critic — challenge whether the current direction is still the right onebash
openclaw install focus-guard
openclaw install clarity-first
openclaw install task-pilot