This project uses the native Tasks tool for issue tracking whenever possible. The Tasks tool uses bd (beads) under the hood in this repo, so prefer native task tool calls first and use direct bd CLI commands as a fallback when the native tool cannot express the needed operation. Run bd onboard to get started if you need the CLI fallback.
bd ready # Find available work
bd show <id> # View issue details
bd update <id> --claim # Claim work atomically
bd close <id> # Complete work
bd dolt push # Push beads data to remote- Prefer the native Tasks tool and native tool calls whenever possible
- Use direct
bdCLI commands as a fallback - Do not use markdown TODO lists for project tracking
- If there is a mismatch, treat Tasks as the preferred interface and beads as the backing store
- Prefer native structured developer tools over ad hoc shell commands when possible
- Prefer Read for inspecting code and files instead of shelling out to
sed,cat, or one-off Python readers - Do not use Python as a substitute for the Write tool. If you need to change files, use the native Write tool directly with a narrow, surgical edit.
- No Python for file edits; use Write.
- Read can be used on files anywhere on the machine, not just inside the current repo, so prefer it for SmartRead-style inspection of sibling projects such as
~/projects/llm-code-sdk - Use
search,grep,glob, andlist_directoryfor discovery before falling back to shell exploration - Reserve shell commands primarily for builds, tests, git, repo-specific CLIs, and cases where the native tools cannot express the operation cleanly
When the system does not yet support true native parallel execution, simulate it deliberately:
- Decompose work into independent lanes, agents, or workstreams as if they were running in parallel.
- Keep a single reasoning thread that tracks all lanes, dependencies, conflicts, and merge points.
- Use the shared Board / Tasks state to record planned parallel work, claimed sections, and expected interactions.
- Reconcile the simulated parallel plan against actual file and task state after each step.
- When the runtime gains true parallel execution, the same decomposition should lift directly into real parallelism.
The goal is to get the design, coordination, and conflict handling right before turning on concurrency.
ALWAYS 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
This project uses bd (beads) as the backing store for task tracking. Prefer the native Tasks tool first; run bd prime to see full workflow context and commands when you need the CLI fallback.
bd ready # Find available work
bd show <id> # View issue details
bd update <id> --claim # Claim work
bd close <id> # Complete work- Prefer the native Tasks tool for task tracking whenever possible
- Use direct
bdcommands as a fallback when the native tool cannot perform the required action - Do NOT use markdown TODO lists for task tracking
- Run
bd primefor detailed command reference and session close protocol - Use
bd rememberfor persistent knowledge — do NOT use MEMORY.md files
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 bd dolt push 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