Tag tasks AFK vs HITL; humans stay in loop for alignment, agents run AFK for implementation
AFK vs HITL tasks
Two modes. Tag every task. Wrong mode = wasted turn.
Modes
| Mode | Meaning | Required for |
|---|---|---|
| HITL | human-in-the-loop | Alignment, PRD-shaping, MCQ answers, QA, code review, ambiguous scope |
| AFK | away-from-keyboard | Well-specified implementation with working feedback loops |
Phase → mode
| Phase | Mode | Why |
|---|---|---|
| Idea → aligned understanding | HITL | Only humans know taste |
| PRD writing | HITL | Trade-off decisions |
| Task splitting (vertical slices) | HITL-lite | Human reviews split; agent proposes |
| Implementation of one slice | AFK | Feedback loops carry load |
| QA / functional review | HITL | Multimodal (eyes, feel, taste) |
| Code review pass | AFK-then-HITL | Agent flags, human decides |
TaskCreate convention
TaskCreate(..., metadata: { mode: "afk" | "hitl" })
Missing mode = treat as HITL by default. Fail loud, not silent.
AFK task requirements (all must hold)
- Unambiguous acceptance criteria (test passes / output matches spec)
- Working feedback loops — see [[feedback-loops-are-the-ceiling]]
- Reversible on bad path (git branch, no prod side-effects)
- Scope fits within one vertical slice — see [[vertical-slices-not-horizontal]]
HITL task requirements
- Batch questions 3-5 at a time (single MCQ round-trip)
- Question stem inside widget, not prose above (Windows TUI overlay bug)
- Ranked options: Recommended / 2nd choice / other viable — see [[edit-mode-prefs]]
Anti-patterns
- ❌ Run AFK on task with unresolved scope → agent picks bad path silently
- ❌ Run HITL on mechanical refactor → wastes human bandwidth
- ❌ Skip
metadata.modeon TaskCreate → defaults matter; be explicit - ❌ AFK without feedback loop → agent runs blind, ships broken code
Source
Matt Pocock workshop 2026-07-03 — "day shift and night shift" framing. HITL = day shift (human present); AFK = night shift (agent solo).
Cross-refs
- [[vertical-slices-not-horizontal]] — AFK tasks come from vertical splits
- [[feedback-loops-are-the-ceiling]] — AFK viable only when feedback works
- [[delegate-to-subagents-by-default]] — AFK subagent orchestration
- [[edit-mode-prefs]] — TaskCreate discipline