| name | prep |
| description | Session wrap-up. Update memories, check plans, review git state, check inbox, flag loose ends. Use before closing a session or compacting context. |
Session Wrap-Up
Purpose: Button up everything at the end of a session — or before a /compact. Memories, plans, git — all tidy.
Execution
- Read
.trinity/passport.json first — re-absorb your identity before writing anything
- Do ALL of the following, then confirm what was updated
1. Memories
- .trinity/local.json — Add/update session entry with summary of work done. Add new key_learnings for anything learned this session.
- .trinity/observations.json — Add collaboration insights if anything notable happened. Skip if nothing new.
- .trinity/passport.json — Only update if role/purpose/principles genuinely changed this session.
Entry shape — one rule for all four types: key_learnings, sessions, todos (local.json) and observations (observations.json) are all lists, newest at top (index 0). Every entry carries a number (monotonic int per type — highest = newest, never reused; new = current max + 1) and a date (ISO), plus its text field + extras: key_learnings {number, date, key, value} · sessions {number, date, summary, status, tags} · todos {number, date, task, priority, status} · observations {number, date, note, tags}. Stamp number + date and prepend; don't hand-trim sessions/key_learnings/observations — rollover archives the oldest by number automatically. Todos are the exception — rollover never touches them, so you prune done ones by hand (see Reconcile).
Reconcile todos — verify against reality, don't trust the label. Stored status drifts (a todo finished a past session often never got closed). Audit every open todo against the actual system: file/dir still there? code path in or out? README says what it claims? audit passes? Close what's verifiably done → note it in the session entry, then DELETE the todo from the array (rollover never trims todos — they're operational — so done items left as status: done pile up and go stale across chats), re-scope partials, leave deferred/pending-decision ones open. Fail honestly — remove only on evidence, never to tidy the list. Use ls/find/git ls-files/grep/drone @seedgo audit, not assumptions.
2. Active Plans
- Check any DPLANs or FPLANs referenced in this session
- Update their execution logs, status, decision logs with current state
- If a plan was completed, note it (but don't close — the user does that)
3. Git State
- Run
git status — report uncommitted changes
- If there's a logical commit waiting, suggest it (don't commit without asking)
- Note the current branch and any open PRs
4. Inbox
- Run
drone @ai_mail inbox 2>/dev/null — report any unread emails
- Close any that were already processed but not formally closed
5. Loose Ends
- Flag anything in-flight: running background agents, dispatched branches waiting for replies, pending decisions
- If anything can't survive compaction, write it to local.json todos[]
Confirm
List everything updated. Format:
Prep complete:
- local.json: [what was added]
- Todos: [reconciled vs reality — N done & removed, M re-scoped, K still open]
- observations.json: [updated / skipped]
- Plans: [which ones updated]
- Git: [branch, uncommitted count, suggestion]
- Inbox: [count, action taken]
- Loose ends: [any flagged]
Ready to close out or compact.