This project uses rsry for bead tracking.
rsry bead --repo . list --status ready
rsry bead --repo . review <id>
rsry bead --repo . comment add <id> "progress note"
rsry bead --repo . close <id>
rsry bead --repo . export --status all --jsonl -o .beads/beads.jsonlALWAYS use non-interactive flags with file operations to avoid hanging on confirmation prompts.
Shell commands like cp, mv, and rm may be aliased to include -i (interactive) mode on some systems, causing the agent to hang indefinitely waiting for y/n input.
Use these forms instead:
# Force overwrite without prompting
cp -f source dest # NOT: cp source dest
mv -f source dest # NOT: mv source dest
rm -f file # NOT: rm file
# For recursive operations
rm -rf directory # NOT: rm -r directory
cp -rf source dest # NOT: cp -r source destOther commands that may prompt:
scp- use-o BatchMode=yesfor non-interactivessh- use-o BatchMode=yesto fail instead of promptingapt-get- use-yflagbrew- useHOMEBREW_NO_AUTO_UPDATE=1env var
IMPORTANT: This project uses rsry beads for ALL issue tracking. Do NOT use markdown TODOs, task lists, or external issue trackers.
- Dependency-aware: Track blockers and relationships between issues
- Version-controlled: bead content is shared through
.beads/beads.jsonl - Agent-optimized: JSON output, ready work detection, discovered-from links
- Prevents duplicate tracking systems and confusion
Check for ready work:
rsry bead --repo . list --status readyCreate new issues:
rsry bead --repo . create "Issue title" -d "Detailed context" -t bug|feature|task -p 0Review and update:
rsry bead --repo . review <id>
rsry bead --repo . comment add <id> "What changed / what remains"Complete work:
rsry bead --repo . close <id>bug- Something brokenfeature- New functionalitytask- Work item (tests, docs, refactoring)epic- Large feature with subtaskschore- Maintenance (dependencies, tooling)
0- Critical (security, data loss, broken builds)1- High (major features, important bugs)2- Medium (default, nice-to-have)3- Low (polish, optimization)4- Backlog (future ideas)
- Check ready work:
rsry bead --repo . list --status readyshows unblocked issues - Review your task:
rsry bead --repo . review <id>gives bead context - Work on it: Implement, test, document
- Discover new work? Create linked issue:
rsry bead --repo . create "Found bug" -d "Details about what was found" -p 1
- Complete:
rsry bead --repo . close <id>
Bead content is shared through git:
- The live local store is SQLite (
.beads/beads.db) and is ignored. - The shared artifact is
.beads/beads.jsonl. - After mutating beads, refresh the export:
rsry bead --repo . export --status all --jsonl -o .beads/beads.jsonl.
- ✅ Use
rsry beadfor ALL task tracking - ✅ Keep
.beads/beads.jsonlrefreshed after bead mutations - ✅ Add progress comments for context that should survive sessions
- ✅ Check ready beads before asking "what should I work on?"
- ❌ Do NOT create markdown TODO lists
- ❌ Do NOT use external issue trackers
- ❌ Do NOT duplicate tracking systems
When ending a work session, you MUST complete ALL steps below. Work is NOT complete until git push succeeds.
MANDATORY WORKFLOW:
- File issues for remaining work - Create issues for anything that needs follow-up
- Run quality gates (if code changed) - Tests, linters, builds
- Update issue status - Close finished work, update in-progress items
- PUSH TO REMOTE - This is MANDATORY:
git pull --rebase rsry bead --repo . export --status all --jsonl -o .beads/beads.jsonl git push git status # MUST show "up to date with origin"
- Clean up - Clear stashes, prune remote branches
- Verify - All changes committed AND pushed
- Hand off - Provide context for next session
CRITICAL RULES:
- Work is NOT complete until
git pushsucceeds - NEVER stop before pushing - that leaves work stranded locally
- NEVER say "ready to push when you are" - YOU must push
- If push fails, resolve and retry until it succeeds