get-tbd 0.1.12 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +162 -185
- package/dist/bin.mjs +1738 -936
- package/dist/bin.mjs.map +1 -1
- package/dist/cli.mjs +3742 -3026
- package/dist/cli.mjs.map +1 -1
- package/dist/docs/README.md +162 -185
- package/dist/docs/guidelines/golden-testing-guidelines.md +161 -5
- package/dist/docs/guidelines/sync-troubleshooting.md +168 -0
- package/dist/docs/guidelines/typescript-rules.md +20 -2
- package/dist/docs/shortcuts/standard/cleanup-all.md +89 -0
- package/dist/docs/shortcuts/standard/cleanup-remove-trivial-tests.md +57 -0
- package/dist/docs/shortcuts/standard/cleanup-update-docstrings.md +76 -0
- package/dist/docs/shortcuts/standard/commit-code.md +20 -2
- package/dist/docs/shortcuts/standard/create-or-update-pr-simple.md +20 -9
- package/dist/docs/shortcuts/standard/create-or-update-pr-with-validation-plan.md +21 -9
- package/dist/docs/shortcuts/standard/merge-upstream.md +29 -0
- package/dist/docs/shortcuts/standard/new-validation-plan.md +73 -37
- package/dist/docs/shortcuts/standard/precommit-process.md +10 -37
- package/dist/docs/shortcuts/standard/review-code-python.md +16 -29
- package/dist/docs/shortcuts/standard/review-code-typescript.md +16 -28
- package/dist/docs/shortcuts/standard/review-code.md +108 -0
- package/dist/docs/shortcuts/standard/review-github-pr.md +69 -0
- package/dist/docs/shortcuts/standard/revise-all-architecture-docs.md +21 -0
- package/dist/docs/shortcuts/standard/revise-architecture-doc.md +29 -0
- package/dist/docs/shortcuts/standard/setup-github-cli.md +76 -0
- package/dist/docs/shortcuts/standard/sync-failure-recovery.md +87 -0
- package/dist/docs/shortcuts/standard/update-specs-status.md +26 -0
- package/dist/docs/tbd-design.md +210 -37
- package/dist/docs/tbd-docs.md +28 -0
- package/dist/index.d.mts +17 -0
- package/dist/index.mjs +1 -1
- package/dist/{src-Dm8ZhhIV.mjs → src-BfhjLZXE.mjs} +90 -4
- package/dist/src-BfhjLZXE.mjs.map +1 -0
- package/dist/tbd +1738 -936
- package/package.json +1 -1
- package/dist/src-Dm8ZhhIV.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
**Task management, spec-driven planning, and instant knowledge injection for AI coding
|
|
4
4
|
agents.**
|
|
5
5
|
|
|
6
|
-
**tbd** (short for “To Be Done,” or “TypeScript beads” if you prefer) combines
|
|
7
|
-
things that are each powerful on their own but
|
|
6
|
+
**tbd** (short for “To Be Done,” or “TypeScript beads” if you prefer) combines four
|
|
7
|
+
things that are each powerful on their own but work even better together:
|
|
8
8
|
|
|
9
9
|
1. **Task tracking (beads):** Agent-friendly, CLI-native issue tracking for bugs,
|
|
10
10
|
features, epics, and dependencies that persist across sessions in git.
|
|
@@ -12,51 +12,93 @@ things that are each powerful on their own but unreasonably effective together:
|
|
|
12
12
|
[Beads](https://github.com/steveyegge/beads) are fantastic and *unreasonably
|
|
13
13
|
effective* at scaling an agent’s capacity from ~5-10 ad-hoc tasks to hundreds of
|
|
14
14
|
structured beads.
|
|
15
|
-
2. **Spec-driven planning:** workflows for writing specs, breaking them
|
|
16
|
-
implementing systematically.
|
|
15
|
+
2. **Spec-driven planning:** Templates and workflows for writing specs, breaking them
|
|
16
|
+
into beads, and implementing systematically.
|
|
17
17
|
With a good spec and beads, you can leave an agent running overnight and come back to
|
|
18
18
|
solid code.
|
|
19
|
-
3. **
|
|
20
|
-
These are essentially “self-injected context” for an agent to get smarter
|
|
21
|
-
needs it.
|
|
19
|
+
3. **Knowledge injection:** Instant availability of in-depth engineering guidelines and
|
|
20
|
+
rules docs. These are essentially “self-injected context” for an agent to get smarter
|
|
21
|
+
when it needs it.
|
|
22
|
+
4. **Shortcuts:** Reusable instructions for common tasks like code review, PR creation,
|
|
23
|
+
and writing planning specs, architecture docs, and research briefs.
|
|
24
|
+
|
|
25
|
+
`tbd` comes pre-installed with in-depth guidelines docs on many topics, including
|
|
26
|
+
TypeScript and Python best practices and common agent pitfalls, red-green TDD, golden
|
|
27
|
+
testing, Convex, monorepo project setup, error handling practices, and backward
|
|
28
|
+
compatibility rules.
|
|
29
|
+
(But you can use your own guidelines if you prefer.)
|
|
30
|
+
|
|
31
|
+
I use `tbd` most frequently in Claude Code since it’s most powerful as a skill, but it
|
|
32
|
+
will work in Cursor, Codex, or any agent environment that can use the `tbd` CLI.
|
|
22
33
|
|
|
23
|
-
|
|
24
|
-
and Python best practices and common agent pitfalls, red-green TDD, golden testing,
|
|
25
|
-
Convex, monorepo project setup, error handling practices, and backward compatibility
|
|
26
|
-
rules. But you can use your own if you prefer.
|
|
34
|
+
## Quick Start
|
|
27
35
|
|
|
28
|
-
|
|
29
|
-
|
|
36
|
+
> [!TIP]
|
|
37
|
+
>
|
|
38
|
+
> If running on your own machine, install the `tbd` CLI yourself:
|
|
39
|
+
>
|
|
40
|
+
> **`npm install -g get-tbd@latest`**
|
|
41
|
+
>
|
|
42
|
+
> Then tell your agent:
|
|
43
|
+
>
|
|
44
|
+
> ***“run tbd for instructions to set up this project”***
|
|
45
|
+
>
|
|
46
|
+
> If running on a fresh cloud instance (like Claude Code Cloud), tell the agent:
|
|
47
|
+
>
|
|
48
|
+
> ***“install tbd (npm install -g get-tbd@latest) and run tbd for instructions to set up
|
|
49
|
+
> this project”***
|
|
30
50
|
|
|
31
|
-
|
|
51
|
+
That’s it. Running `tbd` with no arguments “primes” the agent with how to use `tbd` and
|
|
52
|
+
how to help you. It will then bootstraps a SKILL.md into your project by running
|
|
53
|
+
`tbd setup --auto` (which will add a `.tbd` directory and add itself to your `.claude`
|
|
54
|
+
skills and hooks). And then it will use shortcuts to welcome you and get you started.
|
|
55
|
+
|
|
56
|
+
You can then always ask questions like: “what can I do with tbd?”
|
|
32
57
|
|
|
33
|
-
|
|
34
|
-
It’s largely compatible with the original `bd` at the CLI level for core issue tracking
|
|
35
|
-
functionality.
|
|
58
|
+
## How Should You Use `tbd`?
|
|
36
59
|
|
|
37
|
-
|
|
38
|
-
|
|
60
|
+
### Drop-In `bd` Replacement
|
|
61
|
+
|
|
62
|
+
You can use `tbd` as a drop-in replacement for the original Beads (`bd`). It’s largely
|
|
63
|
+
compatible at the CLI level for core issue tracking functionality.
|
|
64
|
+
|
|
65
|
+
Despite the general power of the beads, there are quite a few
|
|
66
|
+
[practical frustrations](#how-does-tbd-compare-to-beads) with the original Beads
|
|
39
67
|
implementation—notably the daemon modifying files, merge conflicts, sync confusions
|
|
40
|
-
across branches and database, and SQLite not working
|
|
68
|
+
across branches and database, and SQLite not working on network drives, such as Claude
|
|
69
|
+
Code Cloud. After using `bd` for over a month, this became my greatest pain point.
|
|
70
|
+
I now use `tbd` for all my agent coding and its sync architecture works pretty well.
|
|
71
|
+
|
|
72
|
+
### Spec-Driven Coding and Review
|
|
73
|
+
|
|
74
|
+
What excites me now is that `tbd` is more than just task management.
|
|
41
75
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
76
|
+
These workflows arose from several months of
|
|
77
|
+
[heavy spec-driven agentic coding](https://github.com/jlevy/speculate/blob/main/about/lessons_in_spec_coding.md).
|
|
78
|
+
With better use of specs, what you build is far clearer and more maintainable.
|
|
79
|
+
In fact, I think of iterating on a spec as the hard part now.
|
|
80
|
+
Writing the code is often almost automatic, if a spec is good enough!
|
|
81
|
+
|
|
82
|
+
Basically 100% of the code I now write is agent-written, planned and tracked through
|
|
83
|
+
specs and beads and streamlined with shortcuts.
|
|
45
84
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
workflows with shortcuts**.
|
|
85
|
+
To help with this, `tbd` provides a way to **inject engineering rules and best
|
|
86
|
+
practices** and **streamline reproducible workflows with shortcuts**.
|
|
49
87
|
|
|
50
88
|
By combining task management, knowledge injection, and shortcuts, I find my agents ship
|
|
51
89
|
code with speed, quality, and discipline.
|
|
90
|
+
|
|
91
|
+
### Shortcuts for Common Tasks (Easy with Voice!)
|
|
92
|
+
|
|
93
|
+
Once you start doing things like the above workflows, it gets repetitive.
|
|
94
|
+
And I like to now use voice to give prompts.
|
|
95
|
+
So having “shortcut” docs that list common tasks is really helpful.
|
|
96
|
+
|
|
52
97
|
I can now ship entire large features just with voice prompts like “use the shortcut to
|
|
53
98
|
create a new plan spec that …” and “now use the shortcut to file a PR with a validation
|
|
54
99
|
plan.”
|
|
55
100
|
|
|
56
|
-
|
|
57
|
-
[heavy spec-driven agentic coding](https://github.com/jlevy/speculate/blob/main/about/lessons_in_spec_coding.md).
|
|
58
|
-
Basically 100% of the code I now write is agent-written, planned and tracked through
|
|
59
|
-
specs and beads and streamlined with shortcuts.
|
|
101
|
+
### What `tbd` Doesn’t Do (Yet)
|
|
60
102
|
|
|
61
103
|
`tbd` focuses on the *durable layer* of agent development: issue tracking, planning, and
|
|
62
104
|
knowledge that persist in git across sessions.
|
|
@@ -73,34 +115,15 @@ agents handling different aspects that I manage) is slower, because it forces yo
|
|
|
73
115
|
design, but it gives higher quality results.
|
|
74
116
|
|
|
75
117
|
> [!NOTE]
|
|
118
|
+
>
|
|
76
119
|
> We use *Beads* (capitalized) to refer to Steve Yegge’s original
|
|
77
120
|
> [`bd` tool](https://github.com/steveyegge/beads).
|
|
78
121
|
> Lowercase “beads” refers generically to the issues stored in `tbd` or `bd`.
|
|
79
122
|
|
|
80
|
-
##
|
|
81
|
-
|
|
82
|
-
> [!TIP]
|
|
83
|
-
>
|
|
84
|
-
> *Install `tbd` globally for convenience:*
|
|
85
|
-
>
|
|
86
|
-
> **`npm install -g get-tbd@latest`**
|
|
87
|
-
>
|
|
88
|
-
> Then tell your agent:
|
|
89
|
-
>
|
|
90
|
-
> ***“run tbd for instructions to set up this project”***
|
|
91
|
-
|
|
92
|
-
That’s it. Running `tbd` with no arguments gives your agent what it needs as well as
|
|
93
|
-
information on how to help you.
|
|
94
|
-
It will then bootstraps a SKILL.md into your project by running `tbd setup --auto`
|
|
95
|
-
(which will add a `.tbd` directory and add itself to your `.claude` skills and hooks).
|
|
96
|
-
And then it will use then use shortcuts to welcome you and get you started.
|
|
97
|
-
|
|
98
|
-
You can then always ask questions like: “what can I do with tbd?”
|
|
99
|
-
|
|
100
|
-
## How to Use tbd
|
|
123
|
+
## How to Use `tbd`
|
|
101
124
|
|
|
102
125
|
You talk to your agent in natural language.
|
|
103
|
-
The agent translates your requests into tbd commands.
|
|
126
|
+
The agent translates your requests into `tbd` commands.
|
|
104
127
|
|
|
105
128
|
The `tbd` CLI blends task tracking and context injection.
|
|
106
129
|
Some `tbd` commands do things, like create or update beads, and some help the agent get
|
|
@@ -108,19 +131,20 @@ status or context or knowledge and know what to do next:
|
|
|
108
131
|
|
|
109
132
|
| What you say | What happens | What runs |
|
|
110
133
|
| --- | --- | --- |
|
|
111
|
-
| "Let's plan a new feature that …" | Agent creates a spec from a template | `tbd shortcut new-plan-spec` |
|
|
112
|
-
| "Break this spec into beads" | Agent creates implementation beads from the spec | `tbd shortcut plan-implementation-with-beads` |
|
|
113
|
-
| "Implement these beads" | Agent works through beads systematically | `tbd shortcut implement-beads` |
|
|
134
|
+
| "Let's plan a new feature that …" | Agent creates a spec from a template | [`tbd shortcut new-plan-spec`](packages/tbd/docs/shortcuts/standard/new-plan-spec.md) |
|
|
135
|
+
| "Break this spec into beads" | Agent creates implementation beads from the spec | [`tbd shortcut plan-implementation-with-beads`](packages/tbd/docs/shortcuts/standard/plan-implementation-with-beads.md) |
|
|
136
|
+
| "Implement these beads" | Agent works through beads systematically | [`tbd shortcut implement-beads`](packages/tbd/docs/shortcuts/standard/implement-beads.md) |
|
|
114
137
|
| "Create a bead for the bug where …" | Agent creates and tracks a bead | `tbd create "..." --type=bug` |
|
|
115
138
|
| "Let's work on current beads" | Agent finds ready beads and starts working | `tbd ready` |
|
|
116
|
-
| "
|
|
117
|
-
| "
|
|
118
|
-
| "
|
|
119
|
-
| "
|
|
120
|
-
| "
|
|
121
|
-
| "How
|
|
122
|
-
| "
|
|
123
|
-
| "
|
|
139
|
+
| "Review this code" | Agent performs comprehensive code review with all guidelines | [`tbd shortcut review-code`](packages/tbd/docs/shortcuts/standard/review-code.md) |
|
|
140
|
+
| "Review this PR" | Agent reviews a GitHub pull request and can comment/fix | [`tbd shortcut review-github-pr`](packages/tbd/docs/shortcuts/standard/review-github-pr.md) |
|
|
141
|
+
| "Use the shortcut to commit" | Agent runs full pre-commit checks, code review, and commits | [`tbd shortcut commit-code`](packages/tbd/docs/shortcuts/standard/commit-code.md) |
|
|
142
|
+
| "Create a PR" | Agent creates or updates the pull request | [`tbd shortcut create-or-update-pr-simple`](packages/tbd/docs/shortcuts/standard/create-or-update-pr-simple.md) |
|
|
143
|
+
| "Let's create a research brief on …" | Agent creates a research document using a template | [`tbd shortcut new-research-brief`](packages/tbd/docs/shortcuts/standard/new-research-brief.md) |
|
|
144
|
+
| "How could we test this better?" | Agent loads TDD and testing guidelines | [`tbd guidelines general-tdd-guidelines`](packages/tbd/docs/guidelines/general-tdd-guidelines.md) |
|
|
145
|
+
| "How can we make this a well-designed TypeScript CLI?" | Agent loads TypeScript CLI guidelines | [`tbd guidelines typescript-cli-tool-rules`](packages/tbd/docs/guidelines/typescript-cli-tool-rules.md) |
|
|
146
|
+
| "Can you review if this TypeScript package setup follows best practices" | Agent loads monorepo patterns | [`tbd guidelines typescript-monorepo-patterns`](packages/tbd/docs/guidelines/typescript-monorepo-patterns.md) |
|
|
147
|
+
| "How can we do a better job of testing?" | Agent loads golden testing guidelines | [`tbd guidelines golden-testing-guidelines`](packages/tbd/docs/guidelines/golden-testing-guidelines.md) |
|
|
124
148
|
|
|
125
149
|
Under the hood, your agent runs these `tbd` commands automatically.
|
|
126
150
|
You just talk naturally.
|
|
@@ -133,7 +157,7 @@ You just talk naturally.
|
|
|
133
157
|
> (`tbd design`).
|
|
134
158
|
|
|
135
159
|
- **Git-native:** Beads live in your repo, synced to a separate, dedicated `tbd-sync`
|
|
136
|
-
branch. Your code history stays clean
|
|
160
|
+
branch. Your code history stays clean—no bead churn polluting your logs.
|
|
137
161
|
- **Agent friendly:** JSON output, non-interactive mode, simple commands that agents
|
|
138
162
|
understand. Installs itself as a skill in Claude Code.
|
|
139
163
|
- **Markdown + YAML frontmatter:** One file per bead, human-readable and editable.
|
|
@@ -141,8 +165,8 @@ You just talk naturally.
|
|
|
141
165
|
- **Beads alternative:** Largely compatible with `bd` at the CLI level, but with a
|
|
142
166
|
simpler architecture: no JSONL merge conflicts, no daemon modifying your working tree,
|
|
143
167
|
no SQLite file locking on network filesystems (see
|
|
144
|
-
[FAQ: How does tbd compare to Beads?](#how-does-tbd-compare-to-beads)).
|
|
145
|
-
- **Shortcuts:** Over a dozen reusable workflow documents
|
|
168
|
+
[FAQ: How does `tbd` compare to Beads?](#how-does-tbd-compare-to-beads)).
|
|
169
|
+
- **Shortcuts:** Over a dozen reusable workflow documents—plan specs, code reviews,
|
|
146
170
|
commit processes, PR creation, research briefs, and more.
|
|
147
171
|
- **Guidelines:** [17+ guideline docs](packages/tbd/docs/guidelines/) of coding rules
|
|
148
172
|
and best practices (see
|
|
@@ -150,19 +174,25 @@ You just talk naturally.
|
|
|
150
174
|
- **Templates:** Document templates for planning specs, research briefs, architecture
|
|
151
175
|
docs.
|
|
152
176
|
|
|
153
|
-
## Why?
|
|
177
|
+
## Why is This a Good Idea?
|
|
154
178
|
|
|
155
|
-
|
|
156
|
-
But
|
|
157
|
-
|
|
179
|
+
Engineers are still adjusting to how fast things are changing.
|
|
180
|
+
But the reality is that most of the time now, if you’re doing it right, *agents should
|
|
181
|
+
write 100% of your code*.
|
|
158
182
|
|
|
159
|
-
|
|
183
|
+
But anyone who’s coded a lot with agents knows they can be very bad or very good,
|
|
184
|
+
depending on the situation.
|
|
185
|
+
Without structure and knowledge, the results are often slop or have critical flaws or
|
|
186
|
+
they don’t scale to large projects.
|
|
160
187
|
They forget conventions between sessions, skip testing, and don’t follow your team’s
|
|
161
|
-
patterns.
|
|
162
|
-
doesn’t scale.
|
|
188
|
+
patterns.
|
|
163
189
|
|
|
164
|
-
|
|
165
|
-
|
|
190
|
+
The usual tactics like pasting rules into prompts is fragile and tiring.
|
|
191
|
+
And even adding all these rules to CLAUDE.md or AGENTS.md doesn’t scale.
|
|
192
|
+
|
|
193
|
+
Beads (git-native CLI-based issue tracking) is one element of the solution.
|
|
194
|
+
It solves the task management problem brilliantly.
|
|
195
|
+
If you’re not using beads already, you should be!
|
|
166
196
|
|
|
167
197
|
But task tracking alone doesn’t help with *planning* or *quality*. You still need a way
|
|
168
198
|
to think through what you’re building before you start, and a way to make sure the agent
|
|
@@ -177,17 +207,26 @@ sessions.
|
|
|
177
207
|
My current favorite workflows and guidelines are included by default, but you’re not
|
|
178
208
|
locked in. Add your own via `--add` or configure what’s available in `.tbd/config.yml`.
|
|
179
209
|
|
|
180
|
-
And yes, all the code *and* all the
|
|
210
|
+
And yes, all the code *and* all the specs of `tbd` are agent written—see
|
|
181
211
|
[the FAQ](#was-tbd-built-with-tbd).
|
|
182
212
|
|
|
183
213
|
## Built-in Engineering Knowledge
|
|
184
214
|
|
|
185
215
|
When you run `tbd setup`, your agent gets instant access to
|
|
186
216
|
[17+ guideline documents](packages/tbd/docs/guidelines/) covering real-world engineering
|
|
187
|
-
practices. These aren’t generic tips
|
|
188
|
-
examples, built from months of heavy agentic coding.
|
|
217
|
+
practices. These aren’t generic tips; they’re mostly my own detailed and sometimes
|
|
218
|
+
opinionated rules with concrete examples, built from months of heavy agentic coding.
|
|
189
219
|
|
|
190
|
-
|
|
220
|
+
> [!TIP]
|
|
221
|
+
>
|
|
222
|
+
> An example: I *strongly* believe there are much better ways to do testing
|
|
223
|
+
> proliferating hundreds of unit and integration tests.
|
|
224
|
+
> So (with help from some Opus 4.5 and GPT-5 Pro) I wrote a multi-page brief about
|
|
225
|
+
> “[golden testing](packages/tbd/docs/guidelines/golden-testing-guidelines.md)”
|
|
226
|
+
> techniques, which allow the LLM to do end-to-end testing of CLI or web app flows in a
|
|
227
|
+
> clean, token-friendly way.
|
|
228
|
+
> Now simply telling your agent “check the guidelines on golden testing” can make a huge
|
|
229
|
+
> difference, encouraging far more maintainable, deeper tests.
|
|
191
230
|
|
|
192
231
|
| Guideline | What it covers |
|
|
193
232
|
| --- | --- |
|
|
@@ -228,10 +267,10 @@ npm install -g get-tbd@latest
|
|
|
228
267
|
### Setup
|
|
229
268
|
|
|
230
269
|
```bash
|
|
231
|
-
# Fresh project (--prefix is REQUIRED
|
|
270
|
+
# Fresh project (--prefix is REQUIRED—it appears in every bead ID, e.g. myapp-a1b2)
|
|
232
271
|
tbd setup --auto --prefix=myapp
|
|
233
272
|
|
|
234
|
-
# Joining an existing tbd project (no prefix needed
|
|
273
|
+
# Joining an existing tbd project (no prefix needed—reads existing config)
|
|
235
274
|
tbd setup --auto
|
|
236
275
|
|
|
237
276
|
# Migrate from Beads (uses your existing beads prefix)
|
|
@@ -243,7 +282,7 @@ tbd setup --from-beads
|
|
|
243
282
|
|
|
244
283
|
### Team Setup
|
|
245
284
|
|
|
246
|
-
tbd is designed for teams where one person sets up the project and others join later.
|
|
285
|
+
`tbd` is designed for teams where one person sets up the project and others join later.
|
|
247
286
|
|
|
248
287
|
**First contributor:**
|
|
249
288
|
```bash
|
|
@@ -257,7 +296,7 @@ git push
|
|
|
257
296
|
```bash
|
|
258
297
|
git clone <repo>
|
|
259
298
|
npm install -g get-tbd@latest
|
|
260
|
-
tbd setup --auto # No --prefix needed
|
|
299
|
+
tbd setup --auto # No --prefix needed—reads existing config
|
|
261
300
|
```
|
|
262
301
|
|
|
263
302
|
### Claude Code Integration
|
|
@@ -265,8 +304,8 @@ tbd setup --auto # No --prefix needed — reads existing conf
|
|
|
265
304
|
`tbd setup --auto` configures SessionStart hooks that run at the beginning of each
|
|
266
305
|
Claude Code session:
|
|
267
306
|
|
|
268
|
-
- **`tbd prime
|
|
269
|
-
- **`ensure-gh-cli.sh
|
|
307
|
+
- **`tbd prime`**—injects workflow context so the agent knows how to use `tbd`
|
|
308
|
+
- **`ensure-gh-cli.sh`**—installs the GitHub CLI (`gh`) if not already available
|
|
270
309
|
|
|
271
310
|
**GitHub authentication:** For `gh` to work, set these environment variables before
|
|
272
311
|
starting your agent session:
|
|
@@ -294,7 +333,7 @@ tbd list --all
|
|
|
294
333
|
tbd setup beads --disable # Optionally disable beads after migration
|
|
295
334
|
```
|
|
296
335
|
|
|
297
|
-
Issue IDs are preserved: `proj-123` in beads becomes `proj-123` in tbd
|
|
336
|
+
Issue IDs are preserved: `proj-123` in beads becomes `proj-123` in `tbd`.
|
|
298
337
|
|
|
299
338
|
## Commands
|
|
300
339
|
|
|
@@ -326,18 +365,18 @@ tbd search "authentication" # Search beads
|
|
|
326
365
|
|
|
327
366
|
### Shortcuts, Guidelines, and Templates
|
|
328
367
|
|
|
329
|
-
tbd bundles three types of documentation your agent can invoke on demand:
|
|
368
|
+
`tbd` bundles three types of documentation your agent can invoke on demand:
|
|
330
369
|
|
|
331
370
|
```bash
|
|
332
|
-
# Shortcuts
|
|
371
|
+
# Shortcuts—workflow instructions
|
|
333
372
|
tbd shortcut --list # List all shortcuts
|
|
334
373
|
tbd shortcut new-plan-spec # Get the plan spec workflow
|
|
335
374
|
|
|
336
|
-
# Guidelines
|
|
375
|
+
# Guidelines—coding rules and best practices
|
|
337
376
|
tbd guidelines --list # List all guidelines
|
|
338
377
|
tbd guidelines typescript-rules # Get TypeScript rules
|
|
339
378
|
|
|
340
|
-
# Templates
|
|
379
|
+
# Templates—document scaffolds
|
|
341
380
|
tbd template --list # List all templates
|
|
342
381
|
tbd template plan-spec # Get a plan spec template
|
|
343
382
|
|
|
@@ -357,35 +396,18 @@ tbd template --add=<url> --name=<name>
|
|
|
357
396
|
| `new-validation-plan` | Create a test/validation plan |
|
|
358
397
|
| `plan-implementation-with-beads` | Break a spec into implementation beads |
|
|
359
398
|
| `implement-beads` | Implement beads from a spec |
|
|
399
|
+
| `review-code` | Comprehensive code review (uncommitted, branch, or PR) |
|
|
400
|
+
| `review-github-pr` | Review a GitHub PR with commenting and CI checks |
|
|
401
|
+
| `review-code-typescript` | TypeScript-focused code review |
|
|
402
|
+
| `review-code-python` | Python-focused code review |
|
|
360
403
|
| `precommit-process` | Pre-commit review and testing |
|
|
361
404
|
| `commit-code` | Commit with pre-commit checks |
|
|
362
|
-
| `review-code-typescript` | Code review for TypeScript |
|
|
363
|
-
| `review-code-python` | Code review for Python |
|
|
364
405
|
| `create-or-update-pr-simple` | Basic PR creation |
|
|
365
406
|
| `create-or-update-pr-with-validation-plan` | PR with a validation plan |
|
|
366
407
|
|
|
367
|
-
**Available guidelines
|
|
368
|
-
[Built-in Engineering Knowledge](#built-in-engineering-knowledge) for
|
|
369
|
-
|
|
370
|
-
| Guideline | Description |
|
|
371
|
-
| --- | --- |
|
|
372
|
-
| [`general-tdd-guidelines`](packages/tbd/docs/guidelines/general-tdd-guidelines.md) | TDD methodology |
|
|
373
|
-
| [`golden-testing-guidelines`](packages/tbd/docs/guidelines/golden-testing-guidelines.md) | Golden/snapshot testing |
|
|
374
|
-
| [`general-testing-rules`](packages/tbd/docs/guidelines/general-testing-rules.md) | General testing principles |
|
|
375
|
-
| [`typescript-code-coverage`](packages/tbd/docs/guidelines/typescript-code-coverage.md) | Code coverage with Vitest and v8 |
|
|
376
|
-
| [`typescript-rules`](packages/tbd/docs/guidelines/typescript-rules.md) | TypeScript coding rules |
|
|
377
|
-
| [`typescript-monorepo-patterns`](packages/tbd/docs/guidelines/typescript-monorepo-patterns.md) | pnpm workspaces, package setup, monorepo architecture |
|
|
378
|
-
| [`typescript-cli-tool-rules`](packages/tbd/docs/guidelines/typescript-cli-tool-rules.md) | CLI tools with Commander.js |
|
|
379
|
-
| [`python-rules`](packages/tbd/docs/guidelines/python-rules.md) | Python coding rules |
|
|
380
|
-
| [`python-cli-patterns`](packages/tbd/docs/guidelines/python-cli-patterns.md) | Python CLI architecture |
|
|
381
|
-
| [`backward-compatibility-rules`](packages/tbd/docs/guidelines/backward-compatibility-rules.md) | API and schema compatibility |
|
|
382
|
-
| [`general-coding-rules`](packages/tbd/docs/guidelines/general-coding-rules.md) | Constants, magic numbers, practices |
|
|
383
|
-
| [`general-comment-rules`](packages/tbd/docs/guidelines/general-comment-rules.md) | Comment best practices |
|
|
384
|
-
| [`general-style-rules`](packages/tbd/docs/guidelines/general-style-rules.md) | Auto-formatting and output formatting |
|
|
385
|
-
| [`general-eng-assistant-rules`](packages/tbd/docs/guidelines/general-eng-assistant-rules.md) | AI assistant objectivity and communication |
|
|
386
|
-
| [`commit-conventions`](packages/tbd/docs/guidelines/commit-conventions.md) | Conventional commits format |
|
|
387
|
-
| [`convex-rules`](packages/tbd/docs/guidelines/convex-rules.md) | Convex database patterns |
|
|
388
|
-
| [`convex-limits-best-practices`](packages/tbd/docs/guidelines/convex-limits-best-practices.md) | Convex platform limits and workarounds |
|
|
408
|
+
**Available guidelines:** See
|
|
409
|
+
[Built-in Engineering Knowledge](#built-in-engineering-knowledge) for the full list of
|
|
410
|
+
17+ guidelines covering TypeScript, Python, testing, TDD, and more.
|
|
389
411
|
|
|
390
412
|
**Available templates:**
|
|
391
413
|
|
|
@@ -436,59 +458,16 @@ tbd docs # Full CLI reference
|
|
|
436
458
|
```
|
|
437
459
|
|
|
438
460
|
Or read online:
|
|
439
|
-
- [CLI Reference](packages/tbd/docs/tbd-docs.md)
|
|
440
|
-
- [Design Doc](packages/tbd/docs/tbd-design.md)
|
|
441
|
-
|
|
442
|
-
## Team Workflows
|
|
443
|
-
|
|
444
|
-
tbd is designed for teams where one person sets up the project and others join later.
|
|
445
|
-
|
|
446
|
-
**First contributor (project setup):**
|
|
447
|
-
```bash
|
|
448
|
-
npm install -g get-tbd@latest
|
|
449
|
-
tbd setup --auto --prefix=myproject
|
|
450
|
-
git add .tbd/ .claude/ && git commit -m "Initialize tbd"
|
|
451
|
-
git push
|
|
452
|
-
```
|
|
453
|
-
|
|
454
|
-
**Joining contributors:**
|
|
455
|
-
```bash
|
|
456
|
-
git clone <repo> # .tbd/ directory comes with repo
|
|
457
|
-
npm install -g get-tbd@latest # If not already installed
|
|
458
|
-
tbd setup --auto # No --prefix needed! Reads existing config
|
|
459
|
-
```
|
|
460
|
-
|
|
461
|
-
The second contributor just runs `tbd setup --auto` — no need to know the project prefix
|
|
462
|
-
or any other configuration details.
|
|
463
|
-
|
|
464
|
-
**Updating tbd:** After upgrading tbd (`npm install -g get-tbd@latest`), run
|
|
465
|
-
`tbd setup --auto` to refresh local skill files with the latest shortcuts, guidelines,
|
|
466
|
-
and templates.
|
|
467
|
-
|
|
468
|
-
## Migration from Beads
|
|
469
|
-
|
|
470
|
-
```bash
|
|
471
|
-
# Auto-detects beads and migrates (uses existing beads prefix)
|
|
472
|
-
tbd setup --from-beads
|
|
473
|
-
|
|
474
|
-
# Verify
|
|
475
|
-
tbd stats
|
|
476
|
-
tbd list --all
|
|
477
|
-
|
|
478
|
-
# If you wish to disable beads after migration
|
|
479
|
-
tbd setup beads --disable
|
|
480
|
-
```
|
|
481
|
-
|
|
482
|
-
Issue IDs are preserved: `proj-123` in beads becomes `proj-123` in tbd.
|
|
483
|
-
The prefix from your beads configuration is automatically used.
|
|
461
|
+
- [CLI Reference](packages/tbd/docs/tbd-docs.md)—Complete command documentation
|
|
462
|
+
- [Design Doc](packages/tbd/docs/tbd-design.md)—Technical architecture
|
|
484
463
|
|
|
485
464
|
## How It Works
|
|
486
465
|
|
|
487
|
-
tbd keeps two things separate from your code:
|
|
466
|
+
`tbd` keeps two things separate from your code:
|
|
488
467
|
|
|
489
468
|
- **Beads** live on a dedicated `tbd-sync` branch.
|
|
490
469
|
One Markdown file per bead means parallel creation never conflicts.
|
|
491
|
-
`tbd sync` pushes changes
|
|
470
|
+
`tbd sync` pushes changes—no manual git operations needed.
|
|
492
471
|
- **Documents** (shortcuts, guidelines, templates) are cached locally in `.tbd/docs/`
|
|
493
472
|
during `tbd setup --auto`. Your agent reads them on demand via `tbd shortcut`,
|
|
494
473
|
`tbd guidelines`, and `tbd template`. Re-run `tbd setup --auto` anytime to refresh
|
|
@@ -496,37 +475,36 @@ tbd keeps two things separate from your code:
|
|
|
496
475
|
- **Everything is self-documented via the CLI.** Running `tbd` with no arguments gives
|
|
497
476
|
full orientation. `tbd setup --auto` writes a skill file (SKILL.md/AGENTS.md) that
|
|
498
477
|
teaches the agent all available commands, shortcuts, and guidelines.
|
|
499
|
-
This means agents can inject context
|
|
500
|
-
instructions
|
|
478
|
+
This means agents can inject context—specs, engineering guidelines, workflow
|
|
479
|
+
instructions—at any point in a session, not just at startup.
|
|
501
480
|
|
|
502
481
|
See the [design doc](packages/tbd/docs/tbd-design.md) for details.
|
|
503
482
|
|
|
504
483
|
## FAQ
|
|
505
484
|
|
|
506
|
-
### How does tbd compare to Beads?
|
|
485
|
+
### How does `tbd` compare to Beads?
|
|
507
486
|
|
|
508
|
-
tbd was inspired by [Beads](https://github.com/steveyegge/beads) by Steve Yegge, and
|
|
509
|
-
grateful for the idea
|
|
487
|
+
`tbd` was inspired by [Beads](https://github.com/steveyegge/beads) by Steve Yegge, and
|
|
488
|
+
I’m grateful for the idea—it genuinely changed how I work with agents.
|
|
510
489
|
If you’re not familiar with Beads, the core insight is that git-native issue tracking
|
|
511
490
|
raises an agent’s capacity for structured work from ~5-10 to-do items to hundreds of
|
|
512
491
|
beads.
|
|
513
492
|
|
|
514
|
-
tbd builds on that foundation with a simpler architecture: plain Markdown files
|
|
515
|
-
of JSONL, no daemon, no SQLite, no 4-way sync.
|
|
493
|
+
`tbd` builds on that foundation with a simpler architecture: plain Markdown files
|
|
494
|
+
instead of JSONL, no daemon, no SQLite, no 4-way sync.
|
|
516
495
|
This avoids the edge cases I ran into with network filesystems (Claude Code Cloud),
|
|
517
496
|
merge conflicts, and multi-agent workflows.
|
|
518
497
|
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
with IDs preserved.
|
|
498
|
+
If you already use Beads, `tbd setup --from-beads` migrates you to `tbd`. This imports
|
|
499
|
+
and sets up your `.tbd` directory and preserves the IDs of all issues.
|
|
522
500
|
|
|
523
|
-
**Scope:** tbd focuses on the *durable layer
|
|
501
|
+
**Scope:** `tbd` focuses on the *durable layer*—issue tracking, specs, and knowledge
|
|
524
502
|
that persist across sessions and live in git.
|
|
525
503
|
It does *not* aim to solve real-time multi-agent coordination, which is a separate
|
|
526
504
|
problem requiring sub-second messaging and atomic claims.
|
|
527
505
|
Tools like [Agent Mail](https://github.com/Dicklesworthstone/mcp_agent_mail) and
|
|
528
506
|
[Gas Town](https://github.com/steveyegge/gastown) address that space and are
|
|
529
|
-
complementary to tbd
|
|
507
|
+
complementary to `tbd`—you could layer real-time coordination on top of `tbd`'s durable
|
|
530
508
|
tracking. See the [design doc](packages/tbd/docs/tbd-design.md) for a detailed
|
|
531
509
|
comparison.
|
|
532
510
|
|
|
@@ -541,22 +519,22 @@ work into well-defined beads.
|
|
|
541
519
|
The agent then implements each bead with clear context about the bigger picture.
|
|
542
520
|
|
|
543
521
|
This matters because with a good spec broken into beads, you can leave an agent running
|
|
544
|
-
overnight and come back to code that’s well-structured and coherent
|
|
522
|
+
overnight and come back to code that’s well-structured and coherent—not a pile of
|
|
545
523
|
disconnected changes.
|
|
546
|
-
tbd bakes in shortcuts for the full cycle: writing specs, breaking them into beads,
|
|
524
|
+
`tbd` bakes in shortcuts for the full cycle: writing specs, breaking them into beads,
|
|
547
525
|
implementing, validating, and shipping.
|
|
548
526
|
|
|
549
|
-
### Was tbd built with tbd
|
|
527
|
+
### Was `tbd` built with `tbd`?
|
|
550
528
|
|
|
551
|
-
Of course! I
|
|
529
|
+
Of course! I bootstrapped with the original `bd`. It imported from `bd` and began
|
|
552
530
|
self-hosting its own tasks, then took over its own specs and reminds itself of its own
|
|
553
531
|
coding guidelines. Here’s what that looks like in practice:
|
|
554
532
|
|
|
555
|
-
**Specs:** tbd has dozens of active and completed plan specs, such as:
|
|
556
|
-
- `plan-2026-01-15-tbd-v1-implementation.md
|
|
557
|
-
- `plan-2026-01-20-streamlined-init-setup-design.md
|
|
558
|
-
- `plan-2026-01-26-configurable-doc-cache-sync.md
|
|
559
|
-
- `plan-2026-01-28-cli-add-docs-by-url.md
|
|
533
|
+
**Specs:** `tbd` has dozens of active and completed plan specs, such as:
|
|
534
|
+
- `plan-2026-01-15-tbd-v1-implementation.md`—The original v1 design
|
|
535
|
+
- `plan-2026-01-20-streamlined-init-setup-design.md`—Redesigning the setup flow
|
|
536
|
+
- `plan-2026-01-26-configurable-doc-cache-sync.md`—Making the doc system configurable
|
|
537
|
+
- `plan-2026-01-28-cli-add-docs-by-url.md`—Adding `--add` for external docs
|
|
560
538
|
|
|
561
539
|
**Beads:** Features are broken into beads and worked through systematically.
|
|
562
540
|
For example, the current list of open beads for this project looks like
|
|
@@ -586,9 +564,8 @@ $
|
|
|
586
564
|
|
|
587
565
|
### Can I add my own guidelines?
|
|
588
566
|
|
|
589
|
-
Yes.
|
|
590
|
-
|
|
591
|
-
URL:
|
|
567
|
+
Yes. `tbd` comes with 17+ bundled guidelines, but you can add your own team’s docs from
|
|
568
|
+
any URL:
|
|
592
569
|
|
|
593
570
|
```bash
|
|
594
571
|
tbd guidelines --add=<url> --name=my-team-rules
|