Skip to content

Commit 03765f9

Browse files
chore: document task tracking workflow with beans
Amp-Thread-ID: https://ampcode.com/threads/T-019cf255-639d-746e-9a46-c88c06cabe75 Co-authored-by: Amp <amp@ampcode.com>
1 parent 09f1376 commit 03765f9

3 files changed

Lines changed: 81 additions & 11 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,4 @@ dist/
3434

3535
# Beans runtime
3636
beans.db
37+
.beans/

AGENTS.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,9 +259,54 @@ uv run ruff check src/ tests/
259259
The release workflow runs tests, publishes to PyPI, and updates the Homebrew formula.
260260
The package is `magic-beans` on PyPI, but the CLI is `beans` and the import is `import beans`.
261261

262+
## Task Tracking with Beans
263+
264+
This project uses beans itself for task tracking. Beans is the primary tool for managing
265+
work — use it to create, track, and close all tasks, bugs, and epics.
266+
267+
### Before starting work
268+
269+
```bash
270+
uv run beans ready # see what's unblocked
271+
uv run beans show <id> # read the full bean before starting
272+
```
273+
274+
### Self-contained beans
275+
276+
Every bean body must contain enough context for someone with no prior conversation to
277+
pick it up. Include: what needs to change, why, which files are involved, and what
278+
"done" looks like. Never rely on thread context or conversation history.
279+
280+
### Working on a task
281+
282+
```bash
283+
uv run beans claim <id> --actor <name> # claim before starting
284+
# ... do the work ...
285+
uv run beans close <id> # close when done
286+
```
287+
288+
### Creating beans
289+
290+
Use `--body` to describe the task fully. Use `--parent` for subtasks. Use `beans dep add`
291+
to express ordering constraints. Choose meaningful types (task, bug, epic).
292+
293+
```bash
294+
uv run beans create "Title" --body "Full description of what and why"
295+
uv run beans create "Subtask" --parent <epic-id>
296+
uv run beans dep add <blocker-id> <blocked-id>
297+
```
298+
299+
### Bean hygiene
300+
301+
- One bean per deliverable change
302+
- Close beans when done, don't leave them dangling
303+
- If a bean is no longer needed, close it with an update explaining why
304+
- If you discover new work while working on a bean, create a new bean for it
305+
262306
## Tools
263307

264308
- **uv** — package management, running, building
309+
- **beans** — task tracking (`uv run beans ready`, `uv run beans list`)
265310
- **pytest** — testing with coverage (`--cov=beans`)
266311
- **ruff** — linting (line-length=120, select E,F,I,N,UP,RUF)
267312
- **git-cliff** — changelog generation from conventional commits

src/beans/templates/AGENTS.md

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,48 @@
11
# Beans — Agent Integration
22

3-
This project uses [beans](https://github.com/henriquebastos/beans) for issue tracking.
3+
This project uses [beans](https://github.com/henriquebastos/beans) for task tracking.
4+
Beans is the primary tool for managing work — always use it to create, track, and
5+
close tasks. Do not track work outside of beans.
46

5-
## Workflow
7+
## Before Starting Work
68

7-
Before starting work, check for available tasks:
9+
```bash
10+
beans ready # see what's unblocked
11+
beans show <id> # read the full bean before starting
12+
beans claim <id> --actor <name> # claim it
13+
```
14+
15+
## Self-Contained Beans
16+
17+
Every bean body must contain enough context for someone with no prior conversation to
18+
pick it up. Include: what needs to change, why, which files are involved, and what
19+
"done" looks like. Never rely on thread context or conversation history.
820

921
```bash
10-
beans ready
22+
beans create "Title" --body "Full description of what needs to happen and why"
1123
```
1224

13-
Claim a task before working on it:
25+
## Working on a Task
1426

1527
```bash
16-
beans claim <bean-id> --actor <your-name>
28+
beans claim <id> --actor <name> # claim before starting
29+
# ... do the work ...
30+
beans close <id> # close when done
1731
```
1832

19-
When done, close the task:
33+
If you discover new work while working on a bean, create a new bean for it:
2034

2135
```bash
22-
beans close <bean-id>
36+
beans create "New task discovered" --body "Description" --parent <epic-id>
37+
beans dep add <blocker-id> <blocked-id>
2338
```
2439

40+
## Bean Hygiene
41+
42+
- One bean per deliverable change
43+
- Close beans when done, don't leave them dangling
44+
- If a bean is no longer needed, close it with an update explaining why
45+
2546
## Commands Reference
2647

2748
| Command | Description |
@@ -32,7 +53,10 @@ beans close <bean-id>
3253
| `beans create <title>` | Create a new bean |
3354
| `beans update <id>` | Update bean fields |
3455
| `beans close <id>` | Close a bean |
35-
| `beans claim <id>` | Claim a bean |
36-
| `beans release <id>` | Release a bean |
37-
| `beans dep add <from> <to>` | Add dependency |
56+
| `beans claim <id> --actor <name>` | Claim a bean |
57+
| `beans release <id> --actor <name>` | Release a bean |
58+
| `beans dep add <from> <to>` | Add dependency (from blocks to) |
3859
| `beans dep remove <from> <to>` | Remove dependency |
60+
| `beans schema` | Show JSON schemas for all models |
61+
62+
Use `--json` on any command for structured output. Use `--body` on create/update for descriptions.

0 commit comments

Comments
 (0)