|
| 1 | +# Developer Workflow Quick Reference |
| 2 | + |
| 3 | +Personal workflow guide for Chris Edwards - how to use beads + Jira + Claude Code effectively. |
| 4 | + |
| 5 | +## Starting New Work |
| 6 | + |
| 7 | +### 1. Check for Ready Work |
| 8 | +```bash |
| 9 | +bd ready |
| 10 | +``` |
| 11 | + |
| 12 | +### 2. Create or Pick a Bead |
| 13 | + |
| 14 | +**For Jira-tracked work:** |
| 15 | +- Create Jira ticket first in AIML project |
| 16 | +- Create bead with Jira ID in title and external_ref: |
| 17 | + ```bash |
| 18 | + bd create "AIML-XXX: Description" -t task -p 1 --external-ref AIML-XXX |
| 19 | + ``` |
| 20 | + |
| 21 | +**For discovered work during implementation:** |
| 22 | +- Create child bead linked to parent: |
| 23 | + ```bash |
| 24 | + bd create "Fix bug found in feature X" -t bug -p 1 --deps discovered-from:mcp-parent-id |
| 25 | + ``` |
| 26 | + |
| 27 | +### 3. Start Work with Claude Code |
| 28 | + |
| 29 | +Tell Claude to start work on the bead: |
| 30 | +``` |
| 31 | +Start work on bead mcp-XXX |
| 32 | +``` |
| 33 | + |
| 34 | +Claude will: |
| 35 | +- Ask which branch to base off (for stacked PRs) |
| 36 | +- Create feature branch (if Jira-linked): `AIML-XXX-description` |
| 37 | +- Update bead status to `in_progress` |
| 38 | +- Update Jira status to "In Progress" and assign to you |
| 39 | +- Present a textual plan and ask you to discuss |
| 40 | +- Wait for you to say "generate a plan" before proceeding |
| 41 | + |
| 42 | +**Important**: Discuss the approach BEFORE telling Claude to generate a full plan. |
| 43 | + |
| 44 | +## During Development |
| 45 | + |
| 46 | +### Working with Claude Code |
| 47 | + |
| 48 | +**Tell Claude what to do:** |
| 49 | +- "Implement the changes we discussed" |
| 50 | +- "Write tests for the new feature" |
| 51 | +- "Run the full test suite" |
| 52 | + |
| 53 | +**Claude follows your workflow automatically:** |
| 54 | +- Writes tests for all code changes |
| 55 | +- Runs `mvn test` and `mvn verify` |
| 56 | +- Builds artifacts when needed (`mvn clean package`) |
| 57 | +- Records branch name in bead |
| 58 | + |
| 59 | +### Managing Related Work |
| 60 | + |
| 61 | +**Creating child beads:** |
| 62 | +- When Claude suggests new work, it will ask if it should be a child bead |
| 63 | +- Child beads share the same branch as parent |
| 64 | +- Use for: bug fixes found during implementation, follow-up tasks, subtasks |
| 65 | + |
| 66 | +**Check dependencies:** |
| 67 | +```bash |
| 68 | +bd show mcp-XXX |
| 69 | +``` |
| 70 | + |
| 71 | +## Moving to Review |
| 72 | + |
| 73 | +When ready for review, tell Claude: |
| 74 | +``` |
| 75 | +Move to review |
| 76 | +``` |
| 77 | + |
| 78 | +Claude will: |
| 79 | +1. Apply `in-review` label to all beads on the branch |
| 80 | +2. Push branch to remote |
| 81 | +3. Create or update PR with comprehensive description by researching: |
| 82 | + - All beads worked on in this branch |
| 83 | + - All commits and diffs |
| 84 | + - Related voice notes for context |
| 85 | + - Jira ticket details |
| 86 | +4. Write PR description with why/what/how and step-by-step walkthrough |
| 87 | + |
| 88 | +**Review the PR description** before marking ready - Claude makes it easy for reviewers. |
| 89 | + |
| 90 | +## Long Sessions: Landing the Plane |
| 91 | + |
| 92 | +When context is running low or you need to pause, tell Claude: |
| 93 | +``` |
| 94 | +Let's land the plane |
| 95 | +``` |
| 96 | + |
| 97 | +Claude will: |
| 98 | +1. Create child beads for any remaining work |
| 99 | +2. Update current bead with complete status and context |
| 100 | +3. Commit all WIP with descriptive message |
| 101 | +4. Generate continuation prompt for next session |
| 102 | + |
| 103 | +Copy the continuation prompt to resume work in a fresh session. |
| 104 | + |
| 105 | +## Closing Work |
| 106 | + |
| 107 | +**Never close beads yourself during development.** Tell Claude when you're ready: |
| 108 | +``` |
| 109 | +Close bead mcp-XXX |
| 110 | +``` |
| 111 | + |
| 112 | +Claude will: |
| 113 | +- Ask for confirmation |
| 114 | +- Check for open child beads (can't close parent with open children) |
| 115 | +- Only close after you explicitly confirm |
| 116 | + |
| 117 | +**Typical lifecycle:** |
| 118 | +1. `open` → Start work → `in_progress` |
| 119 | +2. `in_progress` → Move to review → `in_progress` + `in-review` label |
| 120 | +3. `in_progress` + `in-review` → PR merged → Ask Claude to close → `closed` |
| 121 | + |
| 122 | +## Stacked PRs Workflow |
| 123 | + |
| 124 | +When working on multiple related changes: |
| 125 | + |
| 126 | +1. **First PR**: Branch from `main`, implement, create PR |
| 127 | +2. **Second PR**: Tell Claude to base new branch off first PR branch |
| 128 | +3. **Continue stacking**: Each new branch comes off the previous one |
| 129 | + |
| 130 | +Claude will ask which branch to base off and show recent branches. |
| 131 | + |
| 132 | +## Quick Commands Reference |
| 133 | + |
| 134 | +### Beads |
| 135 | +```bash |
| 136 | +bd ready # Show unblocked work |
| 137 | +bd list --status in_progress # Your current work |
| 138 | +bd show mcp-XXX # Show bead details |
| 139 | +bd update mcp-XXX --priority 0 # Bump priority |
| 140 | +bd dep add mcp-child mcp-parent # Add dependency |
| 141 | +``` |
| 142 | + |
| 143 | +### Git |
| 144 | +```bash |
| 145 | +git log --oneline -10 # Recent commits |
| 146 | +git diff main...HEAD # All changes in branch |
| 147 | +gh pr view # View current PR |
| 148 | +gh pr checks # Check CI status |
| 149 | +``` |
| 150 | + |
| 151 | +### Maven |
| 152 | +```bash |
| 153 | +mvn test -q # Run unit tests (quiet) |
| 154 | +mvn verify -q # Run integration tests |
| 155 | +mvn clean package # Build JAR |
| 156 | +``` |
| 157 | + |
| 158 | +### Log Work |
| 159 | +```bash |
| 160 | +/log-work # Log work to voice notes |
| 161 | +``` |
| 162 | + |
| 163 | +## Tips |
| 164 | + |
| 165 | +- **Always discuss the plan** with Claude before implementation |
| 166 | +- **Let Claude manage workflow state** (bead status, Jira status, branches) |
| 167 | +- **Use stacked PRs** for dependent changes to keep PRs small |
| 168 | +- **Land the plane** when context runs low - don't fight it |
| 169 | +- **Voice notes are your friend** - Claude uses them for PR descriptions |
| 170 | +- **Test everything** - Claude won't move to review without passing tests |
| 171 | + |
| 172 | +## Common Scenarios |
| 173 | + |
| 174 | +### "I found a bug while implementing" |
| 175 | +Tell Claude: "Create a child bead for this bug" |
| 176 | +Claude will ask if it should be a child and create it. |
| 177 | + |
| 178 | +### "This is taking too long" |
| 179 | +Tell Claude: "Let's land the plane" |
| 180 | +Resume in next session with the continuation prompt. |
| 181 | + |
| 182 | +### "I need to work on something urgent" |
| 183 | +Commit current work, switch branches. Return to original work by: |
| 184 | +``` |
| 185 | +Continue work on bead mcp-XXX |
| 186 | +``` |
| 187 | + |
| 188 | +### "PR got approved and merged" |
| 189 | +Tell Claude: "Close bead mcp-XXX" (for all beads in that branch) |
| 190 | + |
| 191 | +### "I need to update the PR description" |
| 192 | +Tell Claude: "Update the PR description with latest changes" |
| 193 | +Claude will research and regenerate. |
| 194 | + |
| 195 | +## Files to Know |
| 196 | + |
| 197 | +- `CLAUDE.md` - Instructions for Claude Code (AI workflow) |
| 198 | +- `AGENTS.md` - General beads usage patterns |
| 199 | +- `WORKFLOW.md` - This file (your reference) |
| 200 | +- `.beads/issues.jsonl` - Bead database (auto-synced with git) |
| 201 | +- `voice-notes/YYYY-MM-DD.md` - Daily work log |
| 202 | + |
| 203 | +## Remember |
| 204 | + |
| 205 | +**You focus on the work. Claude manages the workflow.** |
0 commit comments