skills/docs/intent/2026-01-24-session-hygiene.md

1.9 KiB

Intent: Session Hygiene Extension

Motivation

Working in pi across long sessions, it's easy to lose track of what's changed. You finish a session with dozens of uncommitted files, unclear what goes with what, and the commit history becomes a mess of grab-bag commits. The problem isn't catastrophic — nothing is lost — but it erodes organization over time.

Need

Ambient awareness of git state while working, so commits happen naturally at good moments rather than as panicked cleanup at session end.

Use-Cases

  • Mid-session glance: You're deep in a refactor, glance at the footer, see "14 files" — mental note that there's a chunk of work building up. You might commit now, or keep going. Either way, you're aware.

  • Natural stopping point: You finish a logical unit of work. The footer reminds you there's uncommitted work. You run /commit, get a suggested message based on what we discussed, and commit cleanly.

  • Session end: You're about to close pi. Footer shows dirty state. You either commit, stash, or consciously leave it — but you're not surprised by 48 files later.

Success Criteria

  • Footer widget shows uncommitted file count for current repo at all times
  • /commit command triggers guided flow with auto-drafted commit message from conversation context
  • User never feels nagged, blocked, or guilty — just informed
  • Commits end up logical and well-messaged because awareness came early

Constraints

  • Single repo only (the one we're in)
  • Must work as a pi extension (TypeScript, pi extension API)
  • No external dependencies beyond git

Anti-Goals

  • No auto-commit: Never commit without explicit user action
  • No blocking prompts: Never interrupt flow with modal dialogs
  • No guilt mechanics: No "you should commit" nudges, red warnings, or escalating alerts
  • No multi-repo tracking: Don't watch repos outside current working directory
  • No push: This is about local commits only