session-workflow
Session Workflow Management
Structured workflows for starting, checkpointing, and completing coding sessions. Ensures context survives compaction and work is never stranded.
Session Start
1. Orient
bd prime # Load workflow context
bd ready --json # Find unblocked work
2. Understand Current State
If continuing existing work:
bd list --status in_progress # What was I working on?
bd show <id> # Get full context
If starting fresh:
bd ready # Pick highest priority unblocked issue
openspec list # Check for active OpenSpec changes
3. Announce Intent
bd update <id> --status in_progress
Session Checkpoint
Run periodically, especially before:
- Asking user for input
- Context getting large (>70% tokens)
- Switching to a different task
- Taking a break
Quick Checkpoint
# Capture current state
bd update <id> --add-note "CHECKPOINT: <what was done>, <what's next>"
# Sync to git
bd sync
Full Checkpoint
# Update issue notes with full context
bd update <id> --add-note "CHECKPOINT $(date):
COMPLETED: <list of completed items>
IN PROGRESS: <current item and state>
DECISIONS: <any key decisions made>
BLOCKERS: <any blockers discovered>
NEXT: <what to do next>"
# If code changed, verify build
.\build.ps1
# Sync tracking
bd sync
# Commit work-in-progress (optional but recommended)
git add -A
git commit -m "wip: checkpoint - <brief description>"
git push
Landing the Plane (Session End)
MANDATORY workflow. Work is NOT complete until git push succeeds.
Step 1: File Issues for Discovered Work
# Bugs found
bd create "Bug: <description>" -t bug -p 1 -d "<full context>"
# TODO items
bd create "TODO: <description>" -t task -p 2 -d "<full context>"
# Technical debt
bd create "Tech debt: <description>" -t tech-debt -p 3 -d "<full context>"
Step 2: Run Quality Gates
# Build
.\build.ps1
# Test (if applicable)
.\test.ps1
# Whitespace check
.\Build\Agent\check-and-fix-whitespace.ps1
# Commit message validation
.\Build\Agent\commit-messages.ps1
File P0 issues if builds/tests are broken.
Step 3: Update All Tracking
Beads:
# Completed work
bd close <id> --reason "Completed: <summary>"
# Partial progress
bd update <id> --status in_progress --add-note "SESSION END: <what remains>"
# Add context for future sessions
bd update <id> --add-note "HANDOFF: <key context for next session>"
OpenSpec tasks.md (if applicable):
- Mark completed tasks:
- [x] Task description - Add notes for partial progress
Agent Mail (if multi-agent):
send_message(
thread_id="bd-<id>",
subject="[bd-<id>] Session end",
body_md="## Session Summary\n<what was done>\n\n## Remaining\n<what's left>"
)
release_file_reservations()
Step 4: Sync and Push (MANDATORY)
# Sync Beads to git
bd sync
# Stage, commit, push
git add -A
git commit -m "chore: session end - <summary>"
git pull --rebase
git push
# VERIFY - must be clean and pushed
git status
Step 5: Verify Final State
bd list --status open # Review open issues
bd ready # Show what's ready for next session
git status # MUST be clean and pushed
Step 6: Handoff
Provide context for next session:
## Session Handoff
### Completed This Session
- <list of completed items>
### Current State
- **Active Epic**: <id and title>
- **In Progress**: <id and title> (or "none")
- **Ready Work**: `bd ready` shows N issues
### Key Decisions
- <decision 1 and rationale>
- <decision 2 and rationale>
### Blockers
- <blocker 1> (waiting on: <what>)
### Next Session Priorities
1. <first priority>
2. <second priority>
### Important Context
- <anything the next session needs to know>
Critical Rules
| Rule | Why |
|---|---|
Work is NOT complete until git push succeeds |
Local-only work is stranded work |
| NEVER stop before pushing | Leaves work invisible to others |
| NEVER say "ready to push when you are" | YOU must push, not the user |
ALWAYS run bd sync before committing |
Captures issue changes in git |
| If push fails, resolve and retry | Don't give up on pushes |
Emergency Procedures
Context About to Compact
# Immediate dump of current state
bd update <id> --add-note "EMERGENCY CHECKPOINT:
$(Get-Date -Format 'yyyy-MM-dd HH:mm')
Working on: <current task>
Progress: <what's done>
Next steps: <what was about to happen>
Key files: <list of modified files>
Test status: <pass/fail/not run>"
bd sync
git add -A
git commit -m "wip: emergency checkpoint before compaction"
git push
Lost Context After Compaction
# Recover from beads
bd list --status in_progress
bd show <id> # Read the notes!
# Check git for recent changes
git log --oneline -10
git diff HEAD~3
# Check Agent Mail inbox
fetch_inbox(urgent_only=true)
Integration Points
With OpenSpec
- Use
openspec:change-nameas thread_id and label - Keep tasks.md in sync with bd issues
- Archive change when all issues closed
With TodoWrite
- TodoWrite for immediate tactical work (this hour)
- Beads for persistent tracking (this week/month)
- Update Beads notes with TodoWrite outcomes
More from sillsdev/fieldworks
atlassian-skills
Python utilities for Jira, Confluence, and Bitbucket integration. Provides issue management, search, workflows, page management, pull requests, commit history, and more. Use when users need to interact with Atlassian products like "create a Jira issue", "search Confluence pages", "create a pull request", "get commit history", or "update sprint status".
27powershell
>
19atlassian-readonly-skills
Read-only Python utilities for Jira, Confluence, and Bitbucket integration. Provides read access to issues, search, workflows, pages, pull requests, commit history, and more. Use when users need to query Atlassian products like "get a Jira issue", "search Confluence pages", "view pull request details", or "get commit history". This variant excludes all write operations for token efficiency and safety.
19review
Review changes for correctness, style, and risk; propose fixes or follow-ups.
17openspec-bulk-archive-change
Archive multiple completed changes at once. Use when archiving several parallel changes.
17openspec-verify-change
Verify implementation matches change artifacts. Use when the user wants to validate that implementation is complete, correct, and coherent before archiving.
16