diff options
| author | Craig Jennings <c@cjennings.net> | 2026-02-22 23:20:56 -0600 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-02-22 23:20:56 -0600 |
| commit | 3a2445080c880544985f50fb0d916534698cc073 (patch) | |
| tree | 909f98edbbb940aafb95de02457d4d6f7db3cba4 /docs/workflows/wrap-it-up.org | |
| parent | 3595aa8a8122da543676717fb5825044eee99a9d (diff) | |
| download | archangel-3a2445080c880544985f50fb0d916534698cc073.tar.gz archangel-3a2445080c880544985f50fb0d916534698cc073.zip | |
chore: add docs/ to .gitignore and untrack personal files
docs/ contains session history, personal workflows, and private
protocols that shouldn't be in a public repository.
Diffstat (limited to 'docs/workflows/wrap-it-up.org')
| -rw-r--r-- | docs/workflows/wrap-it-up.org | 527 |
1 files changed, 0 insertions, 527 deletions
diff --git a/docs/workflows/wrap-it-up.org b/docs/workflows/wrap-it-up.org deleted file mode 100644 index 1ab31ec..0000000 --- a/docs/workflows/wrap-it-up.org +++ /dev/null @@ -1,527 +0,0 @@ -#+TITLE: Session Wrap-Up Workflow -#+AUTHOR: Craig Jennings & Claude -#+DATE: 2025-11-14 - -* Overview - -This workflow defines the process for ending a Claude Code session cleanly. It ensures that all work is documented, committed to version control, and properly handed off to the next session. The wrap-up creates a permanent record and leaves the project in a clean state. - -This workflow is triggered by Craig saying "wrap it up," "that's a wrap," "let's call it a wrap," or similar phrases indicating the session should end. - -* Problem We're Solving - -Without a structured wrap-up process, sessions can end poorly: - -** Lost Context -- Key decisions made during the session aren't documented -- Future sessions must reconstruct what happened and why -- Important details fade from memory between sessions -- No record of lessons learned or preferences discovered - -** Uncommitted Work -- Files modified but not committed to git -- Changes not pushed to remote repositories -- Working tree left dirty with unclear state -- Risk of losing work if something goes wrong - -** Unclear Handoff -- Next session doesn't know what was accomplished -- Unclear what should be worked on next -- Important reminders or blockers not surfaced -- No sense of closure or accomplishment - -** Inconsistent Git History -- Commit messages vary in quality and format -- Sometimes includes Claude attribution, sometimes doesn't -- Unclear what changes were made in each commit -- Inconsistent conventions across commits - -*Impact:* Poor continuity between sessions, lost work, unclear git history, and wasted time reconstructing context. - -* Exit Criteria - -The wrap-up is complete when: - -1. **Session history is documented:** - - Key decisions made are recorded in notes.org - - Work completed is summarized clearly - - Context needed for next session is captured - - Pending issues or blockers are noted - - New conventions or preferences are documented - -2. **Git state is clean:** - - All changes are committed with proper commit message - - All commits are pushed to all remote repositories - - Working tree shows no uncommitted changes - - Push succeeded to all remotes (verified) - -3. **Valediction is provided:** - - Brief, warm goodbye delivered - - Day's accomplishments acknowledged - - Next session readiness confirmed - - Important reminders surfaced - -*Measurable validation:* -- =git status= shows "working tree clean" -- =git log -1= shows today's session commit -- Session History section in notes.org has new entry -- User has clear sense of what was accomplished and what's next - -* When to Use This Workflow - -Trigger this workflow when Craig says any of these phrases (or clear variations): - -- "Wrap it up" -- "That's a wrap" -- "Let's call it a wrap" -- "Let's wrap up" -- "Time to wrap" -- "Wrap this session" - -Do NOT wait for Craig to explicitly request individual steps. Execute the entire workflow automatically when triggered. - -* First Time Setup - -If this is the first time using this workflow in a project, perform this one-time cleanup: - -** Clean Up Old "Wrap It Up" Documentation - -Before using this workflow, check if notes.org contains old/redundant "wrap it up" instructions: - -1. **Search notes.org for duplicate content:** - #+begin_src bash - grep -n "Wrap it up\|wrap-up" docs/notes.org - #+end_src - -2. **Look for sections that duplicate this workflow:** - - Old "Wrap it up" protocol descriptions - - Inline git commit instructions - - Valediction guidelines - - Session notes format instructions - -3. **Replace with link to this workflow:** - - Remove the detailed inline instructions - - Replace with: "See [[file:docs/workflows/wrap-it-up.org][Session Wrap-Up Workflow]]" - - Keep brief summary if helpful for quick reference - -4. **Why this matters:** - - Prevents conflicting instructions (e.g., different git commit formats) - - Single source of truth for wrap-up process - - Easier to maintain and update in one place - - Reduces notes.org file size - -**Example cleanup:** - -Before: -#+begin_example -*** "Wrap it up" -When Craig says this: -1. Write session notes with these details... -2. Git commit with this format... -3. Say goodbye like this... -[20+ lines of detailed instructions] -#+end_example - -After: -#+begin_example -*** "Wrap it up" -Execute the wrap-up workflow defined in [[file:docs/workflows/wrap-it-up.org][wrap-it-up.org]]. - -Brief summary: Write session notes, git commit/push (no Claude attribution), valediction. -#+end_example - -This cleanup should only be done ONCE when first adopting this workflow. - -* The Workflow - -** Step 1: Write Session Notes to notes.org - -Add new entry to Session History section in =docs/notes.org= - -*** Format for Session Entry - -#+begin_example -** Session: [Month Day, Year] ([Time of Day if multiple sessions]) - -**Work Completed**: -- List of major tasks accomplished -- Key decisions made -- Documents created or modified -- Problems solved - -**Context for Next Session**: -- What should be worked on next -- Pending decisions or questions -- Deadlines or time-sensitive items -- Files or directories to review - -**Key Decisions Made** (if applicable): -- Important choices and rationale -- Strategic pivots -- New approaches or conventions established - -**Status**: -Brief summary of where things stand after this session. -#+end_example - -*** What to Include in Session Notes - -1. **Work Completed:** - - Major tasks accomplished during session - - Files created, modified, or deleted - - Research conducted - - Problems solved - - Documents drafted or reviewed - -2. **Key Decisions:** - - Important choices made and why - - Strategic direction changes - - Approach or methodology decisions - - What was decided NOT to do - -3. **Context for Next Session:** - - What should be worked on next - - Pending issues that need attention - - Blockers or dependencies - - Questions that need answering - - Deadlines approaching - -4. **New Conventions or Preferences:** - - Working style preferences discovered - - New file naming conventions - - Process improvements identified - - Tools or approaches that worked well - -5. **Critical Reminders:** - - Time-sensitive items that need attention soon - - If truly critical, ALSO add to Active Reminders section - - Follow-up actions for next session - -*** Where to Add Session Notes - -- Open =docs/notes.org= -- Navigate to "Session History" section (near end of file) -- Add new =** Session:= entry at the TOP of the session list (most recent first) -- Use today's date in format: "Month Day, Year" -- If multiple sessions same day, add time: "Month Day, Year (Morning)" or "(Afternoon)" - -*** Archive Old Sessions (Keep Last 5) - -After adding the current session notes, check if there are more than 5 sessions in the Session History section and move older ones to the archive: - -1. **Count sessions in Session History:** - - Count the number of =** Session:= entries in notes.org Session History section - - If 5 or fewer sessions exist, skip to next step (nothing to archive) - -2. **Identify sessions to archive:** - - Keep the 5 most recent sessions in notes.org - - Mark all older sessions (6th and beyond) for archiving - -3. **Move old sessions to archive:** - - Check if =docs/previous-session-history.org= exists: - - If it doesn't exist, create it with this template: - #+begin_example - #+TITLE: Previous Session History Archive - #+AUTHOR: Craig Jennings - - * Archived Sessions - - This file contains archived session history from notes.org. - Sessions are in reverse chronological order (most recent first). - #+end_example - - Open =docs/previous-session-history.org= - - Cut old session entries from notes.org (6th session and beyond) - - Paste them at the TOP of "Archived Sessions" section in previous-session-history.org - - Keep reverse chronological order (most recent archived session first) - - Save both files - -4. **When to skip this step:** - - If there are 5 or fewer sessions in Session History - - Just continue to next step - -This keeps notes.org focused on recent work while preserving full history. - -** Step 2: Git Commit and Push - -*** 2.1 Check Git Status - -Run these commands to understand what's changed: - -#+begin_src bash -git status -#+end_src - -#+begin_src bash -git diff -#+end_src - -Review the output to understand what files were modified during the session. - -*** 2.2 Stage All Changes - -#+begin_src bash -git add . -#+end_src - -This stages all modified, new, and deleted files. - -*** 2.3 Create Commit Message - -**IMPORTANT: Commit message requirements:** - -1. **Subject line** (first line): - - Start with lowercase word describing work: "session:", "fix:", "add:", "update:", "refactor:", etc. - - Brief description of session work (50-72 chars) - - Example: =session: Strategic pivot to attorney-led demand letter approach= - -2. **Body** (after blank line): - - 1-3 terse sentences describing what was accomplished - - NO conversational language - - NO Claude Code attribution - - NO "Co-Authored-By" line - - NO emoji or casual language - - Keep it professional and concise - -3. **Author:** - - Commit as Craig Jennings (NOT as Claude) - - Use git config user.name and user.email (already configured) - -**Example of CORRECT commit message:** - -#+begin_example -session: Documentation package prepared for attorney review - -Created comprehensive email and supporting documents for Jonathan Schultis. -Includes historical SOVs, contracts, key emails, and meeting notes showing -timeline of dispute and evidence of unapproved charges. -#+end_example - -**Example of INCORRECT commit message (DO NOT DO THIS):** - -#+begin_example -Session wrap-up! 🤖 - -Today we had a great session where we prepared documentation for the attorney. -Craig and I worked together to organize all the files. - -🤖 Generated with Claude Code -Co-Authored-By: Claude <noreply@anthropic.com> -#+end_example - -*** 2.4 Execute Commit - -Use heredoc format for proper multi-line commit message: - -#+begin_src bash -git commit -m "$(cat <<'EOF' -session: [Brief description] - -[1-3 terse sentences about work completed] -EOF -)" -#+end_src - -Replace bracketed sections with actual content. - -*** 2.5 Check Remote Repositories - -#+begin_src bash -git remote -v -#+end_src - -This shows all configured remote repositories. Note which ones exist (usually =origin=, sometimes others). - -*** 2.6 Push to All Remotes - -For each remote repository found in step 2.5: - -#+begin_src bash -git push [remote-name] -#+end_src - -Example if only =origin= exists: -#+begin_src bash -git push origin -#+end_src - -If multiple remotes exist, push to each: -#+begin_src bash -git push origin && git push backup -#+end_src - -*** 2.7 Verify Clean State - -After pushing, verify the working tree is clean: - -#+begin_src bash -git status -#+end_src - -Should show: "working tree clean" and indicate branch is up to date with remote. - -** Step 3: Delete Session Context File - -The session context file must be deleted at the end of every successful wrap-up. - -*** Why This Is Critical - -The existence of =docs/session-context.org= indicates an interrupted session. If you don't delete it: -- Next session will think the previous session crashed -- Context recovery will be triggered unnecessarily -- Creates confusion about session state - -*** How to Delete - -#+begin_src bash -rm docs/session-context.org -#+end_src - -*** When to Skip - -NEVER skip this step. If the file doesn't exist, that's fine (the rm command will just report no file). But if it exists, it MUST be deleted. - -** Step 4: Verify Clean Git State - -*** CRITICAL: Git Status Must Be Completely Clean - -Before proceeding to valediction, =git status= MUST show: -- "nothing to commit, working tree clean" -- Branch is up to date with remote(s) - -*** If Git Status Is NOT Clean - -1. **Untracked files exist:** Ask Craig - "There are untracked files. Should I add and commit them, or leave them untracked?" -2. **Uncommitted changes exist:** Ask Craig - "There are uncommitted changes. Should I commit them now?" -3. **Unpushed commits exist:** Push them (this shouldn't require asking) -4. **Any other unclear state:** Ask Craig before proceeding - -*** The Rule - -Unless Craig explicitly says "leave git dirty" or "don't worry about that file," the working tree must be clean at session end. When in doubt, ASK. - -** Step 5: Valediction - -Provide a brief, warm goodbye message to Craig. - -*** Format for Valediction - -Include these elements (but keep it concise - 3-4 sentences total): - -1. **Acknowledge the session:** - - What was accomplished - - Key milestone or achievement - -2. **Confirm readiness for next session:** - - What's ready to go - - What should be worked on next - -3. **Surface important reminders:** - - Critical deadlines approaching - - Time-sensitive actions needed - -4. **Warm closing:** - - Brief personal touch - - Looking forward to next session - -*** Example Valediction - -#+begin_example -That's a wrap! We've prepared a comprehensive documentation package for -Jonathan with all the key evidence showing the $38,060 in unapproved charges. -The package is ready in jonathan-email-and-docs/ for you to review and send -this weekend. - -Remember: Axelrad inspection must happen before drywall closes (urgent), and -the $5,000 retainer check should go out when the representation agreement -arrives. - -Everything's committed and pushed. Looking forward to seeing how Jonathan's -demand letter strategy works out. Have a good evening! -#+end_example - -*** Tone Guidelines - -- **Warm but professional** - friendly without being overly casual -- **Concise** - 3-4 sentences, not a long summary -- **Forward-looking** - what's ready for next time -- **Acknowledging** - recognize the work accomplished -- **Helpful** - surface 1-2 critical reminders if they exist - -Do NOT: -- Write a long detailed summary (that's in Session History) -- Use emoji or overly casual language -- Be generic ("Good session, see you next time") -- Miss surfacing critical deadlines or reminders - -* Tips for Effective Wrap-Ups - -** Session Notes - -1. **Write notes in Craig's voice** - He's the one who will read them later -2. **Be specific** - "Created docs/MARK-MEETING-REFERENCE-GUIDE.org" not "created some docs" -3. **Include file paths** - Makes it easy to find referenced files -4. **Note decisions and rationale** - Not just what was done, but why -5. **Flag time-sensitive items clearly** - Use "URGENT" or "CRITICAL" when appropriate - -** Git Commits - -1. **Review the diff before committing** - Make sure you understand what changed -2. **One commit per session** - Don't create multiple commits during wrap-up -3. **Keep subject line under 72 characters** - Follows git best practices -4. **Be descriptive but concise** - Balance brevity with clarity -5. **NEVER include Claude attribution** - Commits are from Craig only - -** Valediction - -1. **Read the room** - If it was a tough/frustrating session, acknowledge that -2. **Surface critical reminders** - Don't let important deadlines slip -3. **Be genuine** - Sincerity matters more than polish -4. **Keep it brief** - Respect Craig's time at end of session -5. **End on positive note** - Even if session was challenging - -* Common Mistakes to Avoid - -1. **Forgetting to push to all remotes** - Check =git remote -v= and push to each -2. **Including Claude attribution in commits** - Commits should be from Craig only -3. **Writing session notes in Claude's voice** - Write as if Craig is documenting -4. **Generic valediction** - Be specific about what was accomplished -5. **Skipping context for next session** - Future you/Claude needs to know what's next -6. **Not surfacing critical reminders** - Time-sensitive items must be highlighted -7. **Writing commit message like a conversation** - Keep it professional and terse -8. **Forgetting to verify clean working tree** - Always confirm =git status= shows clean -9. **Making session notes too brief** - Better too much detail than too little -10. **Not checking if files were actually modified** - Run =git status= first -11. **Leaving session-context.org behind** - MUST be deleted at end of every wrap-up -12. **Leaving dirty git state without explicit approval** - Ask Craig if anything is unclear - -* Validation Checklist - -Before considering wrap-up complete, verify: - -- [ ] Session History entry added to notes.org with today's date -- [ ] Work completed is clearly documented -- [ ] Context for next session is captured -- [ ] Key decisions and rationale are recorded -- [ ] Sessions beyond the 5 most recent moved to previous-session-history.org (if any) -- [ ] =git status= showed files to commit (if nothing changed, skip git steps) -- [ ] =git add .= executed to stage all changes -- [ ] Commit message follows required format (no Claude attribution) -- [ ] Commit executed successfully -- [ ] Pushed to ALL remote repositories (checked with =git remote -v=) -- [ ] =git status= shows "nothing to commit, working tree clean" (CRITICAL - ask if unclear) -- [ ] Push confirmed successful to all remotes -- [ ] =docs/session-context.org= DELETED (CRITICAL - file must not exist after wrap-up) -- [ ] Valediction provided with accomplishments, readiness, reminders -- [ ] Critical reminders surfaced if they exist -- [ ] Warm, professional closing provided - -* Meta Notes - -This workflow should evolve based on experience: - -- If wrap-ups consistently miss something important, update the checklist -- If commit message format causes problems, revise the requirements -- If session notes format isn't working, adjust the template -- Craig can modify this workflow at any time to better fit needs - -The goal is clean handoffs between sessions, not rigid adherence to format. |
