ForgeKitFORGEKIT

Build Log

The Capture Notebook

June 20, 2026

ForgeHome stopped being a task manager and started being a household mind — a place where thoughts land before they have a shape.

ForgeHomeCaptureAIHardening
4
ChatGPT bugs fixed
1
new table (captureItems)
3
new shared utils (date.ts, chatgpt.ts, calendarImportStatus)
7
files hardened (UTC drift, zero-duration events, sortOrder magic number, day-brief cache)

Timeline

Start
ChatGPT's bug report
4 real issues identified from last session's retro
30m
All 4 bugs fixed
UTC drift, zero-duration events, sortOrder:40, day-brief caching
1h
Notebook design agreed
Capture is a landing pad, not a task queue
2h
Notebook built and deployed
captureItems table, NotebookInput, NotebookList, Today nudge
2.5h
ChatGPT research wired in
openInChatGPT extracted to shared util, proven in 2 places
Close
Deployed to home.forgekits.build
Clean build, all 22 pages, DB migrated

What shipped

forgehome/lib/date.ts — localDateStr() and localDateOffset() using Intl, timezone-safe for US East

forgehome/lib/chatgpt.ts — openInChatGPT({ text, context, type }) shared util, context-aware prompts, clipboard fallback

captureItems schema table with status enum (raw/suggested/routed/calendar_created/saved_note/archived/dismissed)

calendarImportStatus column on routeItems (unconfirmed/confirmed/dismissed) — replaces sortOrder:40 magic number

Capture Notebook page — textarea-only input, no form fields, voice support, AI classifies in background

NotebookInput component — drop thought, hit 'Drop it', save is instant, classification is async

NotebookList component — Needs sorting / Still here / Saved notes sections with inline expand-to-act cards

Today nudge — quiet count badge below header, links to Notebook, no guilt tone

Research in ChatGPT — context-aware prompt per capture type, opens new tab + copies to clipboard

RouteItemCard — Search icon in action row on every active route item, same openInChatGPT util

Google Calendar write-back fix — end = start + 60min, never zero-duration again

Day-brief caching — in-process Map keyed by household+date+itemHash, same state = same brief

Capture is not a task queue. It's a place where thoughts go to become something.

Session reframe — the product soul of the Notebook