Sidequests
Work that surfaces while you're in a goal — important to track, too small to be its own goal. You fold it in instead of losing it or letting it hijack the work.
What it's for
Every real goal kicks up adjacent work. You're shipping a feature and notice a flaky test; you're mid-deploy and trip over a setting that should be environment-agnostic; you spot a data mismatch a migration will hit. Each is too small to deserve a full Goal, but too important to drop on the floor — and if you stop to chase it, the goal you were on derails.
A sidequest is the right-sized container in between. You capture the adjacent work where it surfaced, keep moving on the main goal, and come back to it deliberately. Without that container, a mid-goal discovery does one of three bad things — it derails the current goal, it gets forgotten, or it gets over-promoted into a full goal that doesn't deserve the ceremony. The sidequest keeps the goal on track while nothing important is lost.
When they surface
You don't plan sidequests up front — you don't spec them. They emerge while you work and review a goal, which is why they live in the Review beat of the lifecycle loop (adjust → sidequests → docs): you're checking the work, you notice the adjacent thing, you capture it, you carry on.
Three fates (promotion isn't failure)
A sidequest is captured as a dated note or a nested folder under the current goal — then it takes one of three paths:
- Handled inline — small enough to fix on the spot; the note just records that it was.
- Deferred — tracked for later, so it resurfaces instead of being forgotten.
- Promoted to its own Goal — if it grows past sidequest size. Promotion isn't a mistake; it's the signal the work was bigger than it first looked.
Either way it keeps a dated record — what surfaced it, what was done — so the trail holds. A sidequest is a smaller unit of the same accountable work, not an untracked detour.
Example
Two sidequests captured while building the contact form, tracked in the goal folder:
Goals/2026-06-16_contact-form/
├── spec.md
├── plan.md
├── tasks.md
└── sidequests.md
# Sidequests — contact-form goal
## SQ1 — the form has no spam protection · status: deferred
Spotted while wiring it up. Too small for its own goal, but bots will find it.
Next: add a honeypot field or a simple check before launch.
## SQ2 — the old "feedback" page overlaps this · status: promoted → its own goal
Bigger than expected (redirects, links, analytics). Lifted out into
Goals/2026-06-18_retire-feedback-page/.
Each is tracked where it surfaced — one deferred, one that outgrew the goal and got promoted — so the main goal shipped without either being lost or allowed to take it over.
Related
Last updated