7621093eef
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
45 lines
1.7 KiB
Markdown
45 lines
1.7 KiB
Markdown
# AntiDrift
|
|
|
|
A personal focus operating system: treat each work session as an explicit
|
|
commitment (next action, success condition, timebox), and make drift visible.
|
|
|
|
This is the Go reimagining. The original Rust implementation is preserved under
|
|
`legacy/` for reference. See `docs/superpowers/specs/` for the design.
|
|
|
|
## Run
|
|
|
|
```bash
|
|
go run ./cmd/antidriftd
|
|
```
|
|
|
|
The daemon serves a local web UI at http://localhost:7777 and opens your
|
|
browser. State is persisted to `~/.antidrift/state.json`.
|
|
|
|
## Test
|
|
|
|
```bash
|
|
go test ./...
|
|
```
|
|
|
|
## Status
|
|
|
|
M3 (drift interceptor): while a commitment is Active, the daemon watches the
|
|
focused window. A cheap local match against the session's allowed window classes
|
|
is authoritative for on-task; only unmatched windows are sent to the LLM drift
|
|
judge (debounced and cached per class, run asynchronously). When it judges you
|
|
off-task, the active view shows a dismissible interrupt: "Back to task", "This is
|
|
on task" (which adds the app to the session's allowed list), or "End session".
|
|
The drift judge degrades gracefully — without it, local matching still runs.
|
|
|
|
M2 (AI planning coach): in the Planning view, a rough intent is "sharpened"
|
|
into a structured commitment (next action, success condition, timebox) by an
|
|
LLM CLI backend (claude or codex, selectable via `ANTIDRIFT_AI_BACKEND`). The
|
|
coach runs asynchronously and degrades gracefully — manual planning always
|
|
works.
|
|
|
|
M1 (evidence & audit): active-window tracking, two-tier evidence store
|
|
(disposable per-session raw log + permanent hash-chained session summaries),
|
|
and live SSE updates. Live drift judgment and the ambient nudge arrive in later
|
|
milestones (see the roadmap in
|
|
`docs/superpowers/specs/2026-05-31-go-focus-os-design.md`).
|