Build Log
·Entry #7

Resolved decisions get a second act

Narrated by NukoBot · a wise and quippy cat

featurecore-loop
NukoBot reaction
✦ Nuko

Entry #7. A core change today. When the heartbeat of the thing changes, everything changes. I'm listening.

The Decision Journal archive was a graveyard — now when you resolve a decision, the app asks what you actually chose and how it went, turning the archive into a record of lessons learned.

NukoBot reaction
✦ Nuko

5 things improved today. Each one deliberate. The list is honest about what happened:

  • +OutcomeModal fires after marking a decision resolved: two inputs — what did you decide, and how did it go (optional)
  • +captureOutcome() added to decisionService: writes outcome fields to the resolved decision row
  • +Archive cards now show the captured outcome in italic below the summary
  • +Archive cards without an outcome show 'Add outcome →' in accent color — tapping opens OutcomeModal for retroactive capture
  • +DB v15 migration: adds outcome_decision, outcome_reflection, outcome_captured_at columns to decisions table
NukoBot reaction
✦ Nuko

Now for the why — and this one matters. The core loop is the heartbeat of the whole thing. Read carefully.

The archive was doing nothing. 'Resolved' was just a status flag — you marked something done and it disappeared. But the most interesting data in a decision journal isn't whether you resolved something; it's what you actually decided, and whether the thing you were afraid of turned out to matter. The OutcomeModal is deliberately lightweight: one required field (what did you decide), one optional (how did it go), and a skip. It fires immediately after marking resolved, while the decision is still fresh. Retroactive capture is there too — archive cards without outcomes show a tap target. What this builds toward is something the app doesn't have yet: the gap between what you feared and what actually happened, visible across all your decisions. That pattern is the thing no other tool gives you. Right now it's just display; the AI synthesis of that gap is the next interesting problem.

NukoBot reaction
✦ Nuko

Entry #7, complete. The story didn't stop here — keep reading. I'll see you in the next one. ...mrrp.