Loading...
Loading...
GainForest beads (`bd`) planning workflow. Activates on ALL user work requests — task planning, epic management, claiming work, closing tasks with commit links, handling blockers. Use before writing any code.
npx skill4agent add gainforest/agent-skills gainforest-beadsbdbd onboardbd primebdbd versionnpm install -g @beads/bdbd init --quiet
bd syncbd list --type epic --jsonbd create "Epic: <goal>" -t epic -p <priority> --assignee <user-github-handle> --jsonbd create "<detailed task description>" -t task -p <priority> --parent <epic-id> --assignee <user-github-handle> --jsonbd dep add <blocked-task> <blocking-task>bd sync
git add .beads/ && git commit -m "beads: plan tasks for <epic-id>" && git pushbd ready --jsonbd update <task-id> --claim
bd syncgit add <files>
git commit -m "<what you did> (<task-id>)"bd close <task-id> --reason "Completed: <commit-hash>"bd sync
git add .beads/ && git commit -m "beads: close <task-id>" && git pushbd update <task-id> --status deferred --notes "Blocked: <what went wrong and why>"
bd sync
git add .beads/ && git commit -m "beads: defer <task-id> — <reason>" && git push| # | Rule | Why |
|---|---|---|
| 1 | Sync first, always | Stale graphs cause duplicate work and conflicts |
| 2 | Plan before code | Unplanned work is invisible to the team |
| 3 | User's handle on every bead | The user owns the work, not the agent |
| 4 | Tasks must survive memory loss | A fresh agent should execute any task from its description alone |
| 5 | Reason about dependencies | Wrong deps block work; missing deps cause integration failures |
| 6 | Claim before working | Prevents two agents from doing the same task |
| 7 | Commit code, then close bead, then next task | The commit is proof; the close is bookkeeping; never skip or reorder |
| 8 | Link the commit on close | |
| 9 | Git-commit | This is how the team sees what's happening |
| 10 | Blockers stop work | Defer and escalate; don't silently work around problems |
bd init --quiet
bd sync
bd list --status open --status in_progress --json # what exists?
bd ready --json # what's unblocked?
bd show <id> --json # read a task's full contextin_progressFix the auth bug
Fix OAuth callback race condition in. When two callbacks arrive within 100ms, the second overwrites the first session in Supabase. Add a mutex or check-and-set pattern on theapp/api/oauth/callback/route.tstable. Acceptance: concurrent callback test passes. Depends on bd-a3f8.1 (session store refactor) because the fix requires the newatproto_oauth_sessionmethod.upsert