Files
antidrift/AGENTS.md
T
felixm 258de2c14b docs: make Keel the repo front door + add agent context
- README: lead with Keel (the human-harness), frame AntiDrift as the focus
  mode, keep the milestone history. Fix the "rename deferred" wording (the
  dir/repo is already keel; only the code identity stays antidrift) and drop
  the dangling 2026-05-31 spec reference (that spec was intentionally removed).
- keel-architecture.md: update the rename status in the header and §8 — the
  directory is keel; the Go module / antidriftd binary / ANTIDRIFT_* env /
  ~/.antidrift -> ~/.keel migration land with the controller refactor.
- add AGENTS.md (agent orientation) + CLAUDE.md symlink so claude / codex /
  Hermes auto-load Keel context when launched in this repo.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 13:20:51 -04:00

66 lines
3.2 KiB
Markdown

# Keel — Agent Context
You are working in **Keel**, Felix's human-harness. Read this, then treat
`docs/keel-architecture.md` as the source of truth for anything architectural.
## What this is
The inversion of an agent harness: instead of a harness watching a model work, a
model (the brain) helps observe and steer a *human*. Felix is the observed
subject; the brain is the operator. The thing we build is **the harness** — the
framework that collects Felix's real state, hands it to a swappable brain, and
acts on the reply.
- **Brain** — swappable, rented compute: `claude` / `codex` / **Hermes** (real,
on another machine). Not the point; interchangeable behind one interface.
- **Storage** — **ActivityWatch** buckets (`keel.state`, `keel.events`). No new
DB / event store. Buckets hold *pointers*, not copies.
- **Frame** — `~/owc` (values, goals, `resources/bug-*.md` life-bugs). Reference,
never duplicate.
- **Surfaces** — a phone-friendly web UI + the WM status bar (`~/.antidrift_status`).
- **Effectors** — gated writes (Marvin tasks, capture, AntiDrift enforce; later
Beeminder datapoints, `~/owc` notes). Start propose-and-confirm; trend toward
autonomy. The gate is per-effector config — Felix's agency-vs-cage dial.
## What runs today
**AntiDrift**, Keel's first *mode*: a Go focus daemon (ports-and-adapters) —
`evidence.Source` (perception) · `tasks.Provider` (Marvin) · `knowledge.Source`
(the `~/owc`-derived profile) · `ai.Backend` (the brain) · `enforce.Guard`
(window-minimize). The cockpit work is **loosening its session controller** into a
general *collect → brain → act* loop where a focus-session is one mode among many.
```bash
go run ./cmd/antidriftd # local web UI at http://localhost:7777
go test ./...
```
## Naming / rename status
The directory and git repo are **`keel`**. The **code identity is intentionally
still `antidrift`** — Go module `antidrift`, `antidriftd` binary, `~/.antidrift/`
runtime, `ANTIDRIFT_*` env. The code rename lands later, *with a state migration*
(`~/.antidrift/` owns the live ledger), during the controller refactor. Don't
`mv ~/.antidrift` or rename the module casually.
## How to work here
- **Reuse before building.** Read the code before claiming something is missing.
AntiDrift already is the harness skeleton; widen it, don't rebuild.
- **Reference, don't duplicate.** `~/owc` and each tool's store stay source of
truth; Keel never becomes a hidden second source.
- **Ship visible proof.** Every session ends with a real artifact — reframing and
planning are not progress. Felix's named failure mode is tooling-as-avoidance;
resist it.
- **Concise coaching.** The status line is one signal / one action / one question.
Not "nice summaries" — that was explicitly rejected.
- **Local-first; mind secrets.** The operator runs as the full Unix user with no
sandbox; window titles and on-disk keys can leak. Filter at the assembler.
## Pointers
- `docs/keel-architecture.md` — authoritative architecture (components, data flow,
AW-as-storage, the open questions in §8).
- `docs/superpowers/` — AntiDrift focus-mode feature specs/plans (historical).
- `README.md` — project front door.