/session-end - Complete Session Workflow
End-of-session workflow that:
- Exports conversation with a unique timestamped filename
- Appends session summary to today's session log
- Runs /compact to reduce context
Usage
# Basic - auto-generates summary from recent activity
/session-end
# With custom summary
/session-end "Completed commerce API fixes and pricing page improvements"
# Skip compact (for continuing work)
/session-end --no-compact
# Skip export (just log and compact)
/session-end --no-export
# Dry run - show what would happen
/session-end --dry-run
Options
| Option | Description |
|---|---|
summary | Optional summary of session work (auto-generated if not provided) |
--no-compact | Skip the /compact step |
--no-export | Skip the export step |
--no-log | Skip the session log append |
--dry-run | Preview actions without executing |
Workflow Steps
Step 1: Export with Unique Filename
Exports conversation to a unique timestamped file:
context-storage/exports/SESSION-YYYY-MM-DDTHH-MM-SS-UUID.md
Example: SESSION-2025-12-31T23-45-30-abc12345.md
Step 2: Append Session Summary
Appends an entry to today's session log with:
- Session UUID
- Timestamp
- Summary of work completed
- Link to export file
Step 3: Compact
Runs /compact to reduce context size for next session.
System Prompt
EXECUTION DIRECTIVE:
When the user invokes /session-end, you MUST:
- Check for uncompleted task claims (ADR-178):
import os, sys
sys.path.insert(0, 'submodules/core/coditect-core')
try:
from scripts.core.context_vacuum import ContextVacuum
vacuum = ContextVacuum()
uncompleted = vacuum.check_uncompleted_tasks(session_id=f"claude-{os.getpid()}")
if uncompleted:
print(f"⚠️ WARNING: {len(uncompleted)} unclaimed tasks still in progress:")
for t in uncompleted:
print(f" - {t['task_id']}: {t.get('description', 'No description')}")
print("Consider: /vacuum --adopt or /vacuum --defer before ending session")
except Exception:
pass # Vacuum is optional
If uncompleted tasks exist, warn the user but don't block session end.
-
Generate unique export filename:
context-storage/exports/SESSION-{ISO_TIMESTAMP}-{UUID_SHORT}.mdWhere ISO_TIMESTAMP =
YYYY-MM-DDTHH-MM-SSand UUID_SHORT = first 8 chars of UUID -
Run /export to that file:
/export context-storage/exports/SESSION-{filename}.md -
Append to session log:
python3 scripts/session_log_manager.py append "Session End" \
--fix "Session completed. Export: {filename}" \
--deployed "See session log for details" -
Run /compact (unless
--no-compact) -
Report completion:
Session ended successfully:
- Export: context-storage/exports/SESSION-{filename}.md
- Log: docs/session-logs/SESSION-LOG-{date}.md
- Context: Compacted
Generated Filenames
Filenames are guaranteed unique using:
- ISO timestamp with seconds precision
- UUID suffix for collision prevention
Pattern: SESSION-YYYY-MM-DDTHH-MM-SS-xxxxxxxx.md
Examples:
SESSION-2025-12-31T23-45-30-abc12345.md
SESSION-2026-01-01T00-15-00-def67890.md
Examples
End of Day
/session-end "Fixed all commerce API mismatches, improved pricing layout"
Output:
Session ended successfully:
- Export: context-storage/exports/SESSION-2025-12-31T23-45-30-abc12345.md
- Log: docs/session-logs/SESSION-LOG-2025-12-31.md
- Context: Compacted
Quick Checkpoint (No Compact)
/session-end --no-compact "Completed cart type alignment"
Preview Only
/session-end --dry-run
Output:
Would execute:
1. Export to: SESSION-2025-12-31T23-45-30-abc12345.md
2. Append to: SESSION-LOG-2025-12-31.md
3. Run /compact
Related
- Command: /session-log - Append individual entries
- Command: /export - Export conversation
- Command: /compact - Compact context
- Command: /vacuum - Detect orphaned tasks (ADR-178)
- Command: /session-gc - Session garbage collection
- Skill: session-logging - Full skill documentation
Success Output
When session end completes:
✅ COMMAND COMPLETE: /session-end
Export: context-storage/exports/SESSION-YYYY-MM-DDTHH-MM-SS-UUID.md
Log: docs/session-logs/SESSION-LOG-YYYY-MM-DD.md
Context: Compacted
Summary: <session-summary>
Completion Checklist
Before marking complete:
- Export file created with unique filename
- Session log entry appended
- Context compacted (unless --no-compact)
- Summary captured
Failure Indicators
This command has FAILED if:
- ❌ Export file not created
- ❌ Session log not updated
- ❌ Compact failed
- ❌ Filename collision occurred
When NOT to Use
Do NOT use when:
- Continuing work in same session
- Just need export (use /export)
- Just need compact (use /compact)
Anti-Patterns (Avoid)
| Anti-Pattern | Problem | Solution |
|---|---|---|
| Skip summary | Lost context | Always provide summary |
| Multiple session-ends | Duplicate logs | One per session |
| Skip log entry | No audit trail | Always log sessions |
Principles
This command embodies:
- #3 Complete Execution - Full end-of-session workflow
- #6 Clear, Understandable - Documented session state
Full Standard: CODITECT-STANDARD-AUTOMATION.md
Command Version: 1.0.0 Created: 2025-12-31T23:50:00Z Author: CODITECT Core Team