get-tbd 0.1.13 → 0.1.14
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 +37 -24
- package/dist/bin.mjs +410 -170
- package/dist/bin.mjs.map +1 -1
- package/dist/cli.mjs +202 -94
- package/dist/cli.mjs.map +1 -1
- package/dist/docs/README.md +37 -24
- package/dist/docs/SKILL.md +61 -18
- package/dist/docs/guidelines/cli-agent-skill-patterns.md +77 -4
- package/dist/docs/guidelines/error-handling-rules.md +66 -0
- package/dist/docs/guidelines/release-notes-guidelines.md +140 -0
- package/dist/docs/guidelines/typescript-yaml-handling-rules.md +195 -0
- package/dist/docs/install/claude-header.md +13 -6
- package/dist/docs/shortcuts/standard/agent-handoff.md +1 -0
- package/dist/docs/shortcuts/standard/checkout-third-party-repo.md +50 -0
- package/dist/docs/shortcuts/standard/{cleanup-all.md → code-cleanup-all.md} +3 -2
- package/dist/docs/shortcuts/standard/{cleanup-update-docstrings.md → code-cleanup-docstrings.md} +1 -0
- package/dist/docs/shortcuts/standard/{cleanup-remove-trivial-tests.md → code-cleanup-tests.md} +1 -0
- package/dist/docs/shortcuts/standard/{commit-code.md → code-review-and-commit.md} +1 -0
- package/dist/docs/shortcuts/standard/create-or-update-pr-simple.md +1 -0
- package/dist/docs/shortcuts/standard/create-or-update-pr-with-validation-plan.md +1 -0
- package/dist/docs/shortcuts/standard/implement-beads.md +1 -0
- package/dist/docs/shortcuts/standard/merge-upstream.md +1 -0
- package/dist/docs/shortcuts/standard/new-architecture-doc.md +1 -0
- package/dist/docs/shortcuts/standard/new-guideline.md +8 -0
- package/dist/docs/shortcuts/standard/new-plan-spec.md +1 -0
- package/dist/docs/shortcuts/standard/new-research-brief.md +1 -0
- package/dist/docs/shortcuts/standard/new-shortcut.md +27 -1
- package/dist/docs/shortcuts/standard/new-validation-plan.md +1 -0
- package/dist/docs/shortcuts/standard/plan-implementation-with-beads.md +1 -0
- package/dist/docs/shortcuts/standard/precommit-process.md +1 -0
- package/dist/docs/shortcuts/standard/review-code-python.md +1 -0
- package/dist/docs/shortcuts/standard/review-code-typescript.md +1 -0
- package/dist/docs/shortcuts/standard/review-code.md +1 -0
- package/dist/docs/shortcuts/standard/review-github-pr.md +1 -0
- package/dist/docs/shortcuts/standard/revise-all-architecture-docs.md +1 -0
- package/dist/docs/shortcuts/standard/revise-architecture-doc.md +1 -0
- package/dist/docs/shortcuts/standard/setup-github-cli.md +1 -0
- package/dist/docs/shortcuts/standard/sync-failure-recovery.md +6 -53
- package/dist/docs/shortcuts/standard/update-specs-status.md +1 -0
- package/dist/docs/shortcuts/standard/welcome-user.md +2 -1
- package/dist/docs/shortcuts/system/skill-brief.md +1 -1
- package/dist/docs/shortcuts/system/skill.md +48 -12
- package/dist/docs/skill-brief.md +1 -1
- package/dist/docs/tbd-design.md +13 -1
- package/dist/index.d.mts +20 -6
- package/dist/index.mjs +2 -2
- package/dist/{src-BfhjLZXE.mjs → src-DdSZ1dgK.mjs} +154 -22
- package/dist/src-DdSZ1dgK.mjs.map +1 -0
- package/dist/tbd +410 -170
- package/package.json +1 -1
- package/dist/src-BfhjLZXE.mjs.map +0 -1
package/dist/docs/README.md
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# tbd
|
|
2
2
|
|
|
3
|
-
**Task
|
|
4
|
-
agents.**
|
|
3
|
+
**Task tracking, spec-driven planning, and knowledge injection for AI coding agents.**
|
|
5
4
|
|
|
6
5
|
**tbd** (short for “To Be Done,” or “TypeScript beads” if you prefer) combines four
|
|
7
6
|
things that are each powerful on their own but work even better together:
|
|
@@ -138,7 +137,7 @@ status or context or knowledge and know what to do next:
|
|
|
138
137
|
| "Let's work on current beads" | Agent finds ready beads and starts working | `tbd ready` |
|
|
139
138
|
| "Review this code" | Agent performs comprehensive code review with all guidelines | [`tbd shortcut review-code`](packages/tbd/docs/shortcuts/standard/review-code.md) |
|
|
140
139
|
| "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
|
|
140
|
+
| "Use the shortcut to commit" | Agent runs full pre-commit checks, code review, and commits | [`tbd shortcut code-review-and-commit`](packages/tbd/docs/shortcuts/standard/code-review-and-commit.md) |
|
|
142
141
|
| "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
142
|
| "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
143
|
| "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) |
|
|
@@ -168,7 +167,7 @@ You just talk naturally.
|
|
|
168
167
|
[FAQ: How does `tbd` compare to Beads?](#how-does-tbd-compare-to-beads)).
|
|
169
168
|
- **Shortcuts:** Over a dozen reusable workflow documents—plan specs, code reviews,
|
|
170
169
|
commit processes, PR creation, research briefs, and more.
|
|
171
|
-
- **Guidelines:** [
|
|
170
|
+
- **Guidelines:** [20+ guideline docs](packages/tbd/docs/guidelines/) of coding rules
|
|
172
171
|
and best practices (see
|
|
173
172
|
[Built-in Engineering Knowledge](#built-in-engineering-knowledge)).
|
|
174
173
|
- **Templates:** Document templates for planning specs, research briefs, architecture
|
|
@@ -213,7 +212,7 @@ And yes, all the code *and* all the specs of `tbd` are agent written—see
|
|
|
213
212
|
## Built-in Engineering Knowledge
|
|
214
213
|
|
|
215
214
|
When you run `tbd setup`, your agent gets instant access to
|
|
216
|
-
[
|
|
215
|
+
[20+ guideline documents](packages/tbd/docs/guidelines/) covering real-world engineering
|
|
217
216
|
practices. These aren’t generic tips; they’re mostly my own detailed and sometimes
|
|
218
217
|
opinionated rules with concrete examples, built from months of heavy agentic coding.
|
|
219
218
|
|
|
@@ -237,6 +236,7 @@ opinionated rules with concrete examples, built from months of heavy agentic cod
|
|
|
237
236
|
| [typescript-rules](packages/tbd/docs/guidelines/typescript-rules.md) | Strict type safety, no `any`, type guards, null safety, async patterns |
|
|
238
237
|
| [typescript-monorepo-patterns](packages/tbd/docs/guidelines/typescript-monorepo-patterns.md) | pnpm workspaces, package setup, tsdown, Changesets, publint, dual ESM/CJS |
|
|
239
238
|
| [typescript-cli-tool-rules](packages/tbd/docs/guidelines/typescript-cli-tool-rules.md) | Commander.js patterns, picocolors, terminal formatting |
|
|
239
|
+
| [typescript-yaml-handling-rules](packages/tbd/docs/guidelines/typescript-yaml-handling-rules.md) | YAML parsing/serialization with the `yaml` package, Zod validation, consistent formatting |
|
|
240
240
|
| [python-rules](packages/tbd/docs/guidelines/python-rules.md) | Type hints, docstrings, exception handling, resource management |
|
|
241
241
|
| [python-cli-patterns](packages/tbd/docs/guidelines/python-cli-patterns.md) | Modern Python CLI stack: uv, Typer, Rich, Ruff, BasedPyright |
|
|
242
242
|
| [backward-compatibility-rules](packages/tbd/docs/guidelines/backward-compatibility-rules.md) | Compatibility across code, APIs, file formats, and database schemas |
|
|
@@ -267,7 +267,7 @@ npm install -g get-tbd@latest
|
|
|
267
267
|
### Setup
|
|
268
268
|
|
|
269
269
|
```bash
|
|
270
|
-
# Fresh project (--prefix is REQUIRED—
|
|
270
|
+
# Fresh project (--prefix is REQUIRED—2-8 alphabetic chars, e.g. myapp-a1b2)
|
|
271
271
|
tbd setup --auto --prefix=myapp
|
|
272
272
|
|
|
273
273
|
# Joining an existing tbd project (no prefix needed—reads existing config)
|
|
@@ -388,26 +388,39 @@ tbd template --add=<url> --name=<name>
|
|
|
388
388
|
|
|
389
389
|
**Available shortcuts:**
|
|
390
390
|
|
|
391
|
-
| Shortcut | Purpose |
|
|
392
|
-
| --- | --- |
|
|
393
|
-
| `new-plan-spec` | Create a feature planning spec |
|
|
394
|
-
| `
|
|
395
|
-
| `
|
|
396
|
-
| `new-validation-plan` | Create a test/validation plan |
|
|
397
|
-
| `
|
|
398
|
-
| `
|
|
399
|
-
| `
|
|
400
|
-
| `
|
|
401
|
-
| `
|
|
402
|
-
| `review-code
|
|
403
|
-
| `
|
|
404
|
-
| `
|
|
405
|
-
| `
|
|
406
|
-
| `
|
|
391
|
+
| Category | Shortcut | Purpose |
|
|
392
|
+
| --- | --- | --- |
|
|
393
|
+
| **Planning** | `new-plan-spec` | Create a feature planning spec |
|
|
394
|
+
| | `plan-implementation-with-beads` | Break a spec into implementation beads |
|
|
395
|
+
| | `implement-beads` | Implement beads from a spec |
|
|
396
|
+
| | `new-validation-plan` | Create a test/validation plan |
|
|
397
|
+
| | `update-specs-status` | Review active specs and sync with tbd issues |
|
|
398
|
+
| **Documentation** | `new-research-brief` | Create a research document |
|
|
399
|
+
| | `new-architecture-doc` | Create an architecture document |
|
|
400
|
+
| | `revise-architecture-doc` | Update an architecture doc to match current code |
|
|
401
|
+
| | `revise-all-architecture-docs` | Revise all current architecture documents |
|
|
402
|
+
| **Review** | `review-code` | Comprehensive code review (uncommitted, branch, or PR) |
|
|
403
|
+
| | `review-github-pr` | Review a GitHub PR with commenting and CI checks |
|
|
404
|
+
| | `review-code-typescript` | TypeScript-focused code review |
|
|
405
|
+
| | `review-code-python` | Python-focused code review |
|
|
406
|
+
| **Git** | `precommit-process` | Pre-commit review and testing |
|
|
407
|
+
| | `code-review-and-commit` | Commit with pre-commit checks |
|
|
408
|
+
| | `create-or-update-pr-simple` | Basic PR creation |
|
|
409
|
+
| | `create-or-update-pr-with-validation-plan` | PR with a validation plan |
|
|
410
|
+
| | `merge-upstream` | Merge origin/main with conflict resolution |
|
|
411
|
+
| **Cleanup** | `code-cleanup-all` | Full code cleanup (duplicates, dead code, quality) |
|
|
412
|
+
| | `code-cleanup-tests` | Remove trivial/low-value tests |
|
|
413
|
+
| | `code-cleanup-docstrings` | Add docstrings to major functions |
|
|
414
|
+
| **Session** | `agent-handoff` | Generate handoff prompt for another agent |
|
|
415
|
+
| | `welcome-user` | Welcome message after tbd installation |
|
|
416
|
+
| | `setup-github-cli` | Ensure GitHub CLI is installed and working |
|
|
417
|
+
| | `sync-failure-recovery` | Handle tbd sync failures |
|
|
418
|
+
| **Meta** | `new-guideline` | Create a new coding guideline for tbd |
|
|
419
|
+
| | `new-shortcut` | Create a new shortcut for tbd |
|
|
407
420
|
|
|
408
421
|
**Available guidelines:** See
|
|
409
422
|
[Built-in Engineering Knowledge](#built-in-engineering-knowledge) for the full list of
|
|
410
|
-
|
|
423
|
+
20+ guidelines covering TypeScript, Python, testing, TDD, and more.
|
|
411
424
|
|
|
412
425
|
**Available templates:**
|
|
413
426
|
|
|
@@ -564,7 +577,7 @@ $
|
|
|
564
577
|
|
|
565
578
|
### Can I add my own guidelines?
|
|
566
579
|
|
|
567
|
-
Yes. `tbd` comes with
|
|
580
|
+
Yes. `tbd` comes with 20+ bundled guidelines, but you can add your own team’s docs from
|
|
568
581
|
any URL:
|
|
569
582
|
|
|
570
583
|
```bash
|
package/dist/docs/SKILL.md
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: tbd
|
|
3
3
|
description: >-
|
|
4
|
-
Git-native issue tracking (beads), coding guidelines, and spec-driven
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
Git-native issue tracking (beads), coding guidelines, knowledge injection, and spec-driven
|
|
5
|
+
planning for AI agents. Drop-in replacement for bd/Beads with simpler architecture.
|
|
6
|
+
|
|
7
|
+
Use for: tracking issues/beads with dependencies, creating bugs/features/tasks, planning specs,
|
|
8
|
+
implementing features from specs, code reviews, committing code, creating PRs, loading coding
|
|
9
|
+
guidelines (TypeScript, Python, TDD, golden testing, Convex, monorepo patterns), code cleanup,
|
|
10
|
+
research briefs, architecture docs, agent handoffs, and checking out third-party library source code.
|
|
11
|
+
|
|
12
|
+
Invoke when user mentions: tbd, beads, bd, shortcuts, issues, bugs, tasks, features, epics, todo,
|
|
13
|
+
tracking, specs, planning, implementation, validation, guidelines, templates, commit, PR, pull request,
|
|
14
|
+
code review, testing, TDD, test-driven, golden testing, snapshot testing, TypeScript, Python, Convex,
|
|
15
|
+
monorepo, cleanup, dead code, refactor, handoff, research, architecture, labels, search, checkout library,
|
|
16
|
+
source code review, or any workflow shortcut.
|
|
10
17
|
allowed-tools: Bash(tbd:*), Read, Write
|
|
11
18
|
---
|
|
12
19
|
|
|
@@ -18,16 +25,19 @@ description: Full tbd workflow guide for agents
|
|
|
18
25
|
|
|
19
26
|
1. **Beads**: Git-native issue tracking (tasks, bugs, features).
|
|
20
27
|
Never lose work across sessions.
|
|
28
|
+
Drop-in replacement for `bd`.
|
|
21
29
|
2. **Spec-Driven Workflows**: Plan features → break into beads → implement
|
|
22
30
|
systematically.
|
|
23
|
-
3. **
|
|
24
|
-
|
|
31
|
+
3. **Knowledge Injection**: 17+ engineering guidelines (TypeScript, Python, TDD,
|
|
32
|
+
testing, Convex, monorepos) available on demand.
|
|
33
|
+
4. **Shortcuts**: Reusable instruction templates for common workflows (code review,
|
|
34
|
+
commits, PRs, cleanup, handoffs).
|
|
25
35
|
|
|
26
36
|
## Installation
|
|
27
37
|
|
|
28
38
|
```bash
|
|
29
39
|
npm install -g get-tbd@latest
|
|
30
|
-
tbd setup --auto --prefix=<name> # Fresh project (--prefix is REQUIRED
|
|
40
|
+
tbd setup --auto --prefix=<name> # Fresh project (--prefix is REQUIRED: 2-8 alphabetic chars recommended. ALWAYS ASK THE USER FOR THE PREFIX; do not guess it)
|
|
31
41
|
tbd setup --auto # Existing tbd project (prefix already set)
|
|
32
42
|
tbd setup --from-beads # Migration from .beads/ if `bd` has been used
|
|
33
43
|
```
|
|
@@ -60,20 +70,42 @@ or want help → run `tbd shortcut welcome-user`
|
|
|
60
70
|
|
|
61
71
|
| User Says | You (the Agent) Run |
|
|
62
72
|
| --- | --- |
|
|
73
|
+
| **Issues/Beads** | |
|
|
63
74
|
| "There's a bug where ..." | `tbd create "..." --type=bug` |
|
|
64
|
-
| "
|
|
65
|
-
| "
|
|
66
|
-
| "
|
|
67
|
-
| "
|
|
68
|
-
| "
|
|
69
|
-
| "
|
|
70
|
-
| "
|
|
75
|
+
| "Create a task/feature for ..." | `tbd create "..." --type=task` or `--type=feature` |
|
|
76
|
+
| "Let's work on issues/beads" | `tbd ready` |
|
|
77
|
+
| "Show me issue X" | `tbd show <id>` |
|
|
78
|
+
| "Close this issue" | `tbd close <id>` |
|
|
79
|
+
| "Search issues for X" | `tbd search "X"` |
|
|
80
|
+
| "Add label X to issue" | `tbd label add <id> <label>` |
|
|
81
|
+
| "What issues are stale?" | `tbd stale` |
|
|
82
|
+
| **Planning & Specs** | |
|
|
83
|
+
| "Plan a new feature" / "Create a spec" | `tbd shortcut new-plan-spec` |
|
|
71
84
|
| "Break spec into beads" | `tbd shortcut plan-implementation-with-beads` |
|
|
72
85
|
| "Implement these beads" | `tbd shortcut implement-beads` |
|
|
73
|
-
|
|
|
74
|
-
| "
|
|
86
|
+
| **Code Review & Commits** | |
|
|
87
|
+
| "Review this code" / "Code review" | `tbd shortcut review-code` |
|
|
88
|
+
| "Review this PR" | `tbd shortcut review-github-pr` |
|
|
89
|
+
| "Commit this" / "Use the commit shortcut" | `tbd shortcut code-review-and-commit` |
|
|
90
|
+
| "Create a PR" / "File a PR" | `tbd shortcut create-or-update-pr-simple` |
|
|
91
|
+
| "Merge main into my branch" | `tbd shortcut merge-upstream` |
|
|
92
|
+
| **Guidelines & Knowledge** | |
|
|
93
|
+
| "Use TypeScript best practices" | `tbd guidelines typescript-rules` |
|
|
94
|
+
| "Use Python best practices" | `tbd guidelines python-rules` |
|
|
95
|
+
| "Build a TypeScript CLI" | `tbd guidelines typescript-cli-tool-rules` |
|
|
96
|
+
| "Improve monorepo setup" | `tbd guidelines typescript-monorepo-patterns` |
|
|
97
|
+
| "Add golden/e2e testing" | `tbd guidelines golden-testing-guidelines` |
|
|
98
|
+
| "Use TDD" / "Test-driven development" | `tbd guidelines general-tdd-guidelines` |
|
|
99
|
+
| "Convex best practices" | `tbd guidelines convex-rules` |
|
|
100
|
+
| **Documentation** | |
|
|
75
101
|
| "Research this topic" | `tbd shortcut new-research-brief` |
|
|
76
102
|
| "Document architecture" | `tbd shortcut new-architecture-doc` |
|
|
103
|
+
| **Cleanup & Maintenance** | |
|
|
104
|
+
| "Clean up this code" / "Remove dead code" | `tbd shortcut code-cleanup-all` |
|
|
105
|
+
| "Fix repository problems" | `tbd doctor --fix` |
|
|
106
|
+
| **Sessions & Handoffs** | |
|
|
107
|
+
| "Hand off to another agent" | `tbd shortcut agent-handoff` |
|
|
108
|
+
| "Check out this library's source" | `tbd shortcut checkout-third-party-repo` |
|
|
77
109
|
| *(your choice whenever appropriate)* | `tbd list`, `tbd dep add`, `tbd close`, `tbd sync`, etc. |
|
|
78
110
|
|
|
79
111
|
## CRITICAL: Session Closing Protocol
|
|
@@ -127,6 +159,17 @@ or want help → run `tbd shortcut welcome-user`
|
|
|
127
159
|
| `tbd sync` | Sync with git remote (run at session end) |
|
|
128
160
|
| `tbd stats` | Project statistics |
|
|
129
161
|
| `tbd doctor` | Check for problems |
|
|
162
|
+
| `tbd doctor --fix` | Auto-fix repository problems |
|
|
163
|
+
|
|
164
|
+
### Labels & Search
|
|
165
|
+
|
|
166
|
+
| Command | Purpose |
|
|
167
|
+
| --- | --- |
|
|
168
|
+
| `tbd search <query>` | Search issues by text |
|
|
169
|
+
| `tbd label add <id> <label>` | Add label to issue |
|
|
170
|
+
| `tbd label remove <id> <label>` | Remove label from issue |
|
|
171
|
+
| `tbd label list` | List all labels in use |
|
|
172
|
+
| `tbd stale` | List issues not updated recently |
|
|
130
173
|
|
|
131
174
|
### Documentation
|
|
132
175
|
|
|
@@ -183,6 +183,15 @@ This minimizes token overhead while maintaining full capability.
|
|
|
183
183
|
Skill activation relies on **pure LLM reasoning**, not keyword matching or embeddings.
|
|
184
184
|
Description quality directly impacts activation reliability.
|
|
185
185
|
|
|
186
|
+
**Activation Reliability Data** (from real-world testing across 200+ prompts):
|
|
187
|
+
|
|
188
|
+
| Approach | Success Rate |
|
|
189
|
+
| --- | --- |
|
|
190
|
+
| No optimization / vague descriptions | ~20% |
|
|
191
|
+
| Optimized descriptions with "Use when..." | ~50% |
|
|
192
|
+
| Descriptions with concrete examples | 72-90% |
|
|
193
|
+
| Forced evaluation hooks | 80-84% |
|
|
194
|
+
|
|
186
195
|
**The Two-Part Rule**: Every description must answer:
|
|
187
196
|
|
|
188
197
|
1. **What does it do?** (capabilities)
|
|
@@ -206,9 +215,55 @@ description: >
|
|
|
206
215
|
**Writing Guidelines**:
|
|
207
216
|
|
|
208
217
|
- Use third person always ("Processes files" not “I can help you”)
|
|
209
|
-
- Include explicit
|
|
218
|
+
- Include explicit “Use when …” triggers with concrete scenarios
|
|
210
219
|
- Be specific with keywords users would naturally say
|
|
211
220
|
- State both capabilities AND activation conditions
|
|
221
|
+
- Front-load the most important trigger keywords in the first 50 characters
|
|
222
|
+
(descriptions may be truncated in large skill collections)
|
|
223
|
+
|
|
224
|
+
### 2.4 Description Length and Budget Constraints
|
|
225
|
+
|
|
226
|
+
Claude Code has a **cumulative character budget** for all skill descriptions combined.
|
|
227
|
+
Understanding these limits is critical for CLIs that install multiple skills.
|
|
228
|
+
|
|
229
|
+
**Hard Limits**:
|
|
230
|
+
|
|
231
|
+
| Constraint | Limit | Notes |
|
|
232
|
+
| --- | --- | --- |
|
|
233
|
+
| Individual description | 1,024 characters | Per-skill maximum |
|
|
234
|
+
| Skill name | 64 characters | Lowercase, numbers, hyphens only |
|
|
235
|
+
| SKILL.md body | ~500 lines | Soft limit; use supporting files for more |
|
|
236
|
+
| **Cumulative budget** | ~15,000-16,000 chars | For ALL skill descriptions combined |
|
|
237
|
+
|
|
238
|
+
**Per-Skill Overhead**: Each skill consumes ~109 characters of XML overhead (tags, name,
|
|
239
|
+
location) plus the description length.
|
|
240
|
+
|
|
241
|
+
**Truncation Behavior**: When the cumulative budget is exceeded, skills are hidden:
|
|
242
|
+
|
|
243
|
+
| Skills Installed | Skills Visible | Hidden |
|
|
244
|
+
| --- | --- | --- |
|
|
245
|
+
| 63 | 42 | 33% |
|
|
246
|
+
| 92 | 36 | 60% |
|
|
247
|
+
|
|
248
|
+
**No warning is shown** when skills are truncated.
|
|
249
|
+
Run `/context` to check for excluded skills.
|
|
250
|
+
|
|
251
|
+
**Description Length Guidelines by Collection Size**:
|
|
252
|
+
|
|
253
|
+
| Skill Collection Size | Recommended Description Length |
|
|
254
|
+
| --- | --- |
|
|
255
|
+
| < 40 skills | Up to 1,024 characters (full limit) |
|
|
256
|
+
| 40-60 skills | ≤150 characters |
|
|
257
|
+
| 60+ skills | ≤130 characters |
|
|
258
|
+
|
|
259
|
+
**Override**: Set `SLASH_COMMAND_TOOL_CHAR_BUDGET` environment variable to increase the
|
|
260
|
+
limit.
|
|
261
|
+
|
|
262
|
+
**Meta-Skill Pattern**: For CLIs with many resources (50+), use a single meta-skill that
|
|
263
|
+
exposes resources via CLI commands rather than individual skills.
|
|
264
|
+
This consumes only one description slot (~200 chars) instead of 50+ slots that would
|
|
265
|
+
exceed the budget. See
|
|
266
|
+
[Skills vs Meta-Skill Architecture Research](../../project/research/current/research-skills-vs-meta-skill-architecture.md).
|
|
212
267
|
|
|
213
268
|
* * *
|
|
214
269
|
|
|
@@ -351,7 +406,7 @@ resource name. This removes friction for agents.
|
|
|
351
406
|
|
|
352
407
|
```markdown
|
|
353
408
|
## Available Shortcuts
|
|
354
|
-
- commit
|
|
409
|
+
- code-review-and-commit
|
|
355
410
|
- create-or-update-pr-simple
|
|
356
411
|
- new-plan-spec
|
|
357
412
|
```
|
|
@@ -363,7 +418,7 @@ resource name. This removes friction for agents.
|
|
|
363
418
|
|
|
364
419
|
| Command | Purpose | Description |
|
|
365
420
|
|---------|---------|-------------|
|
|
366
|
-
| `mycli shortcut commit
|
|
421
|
+
| `mycli shortcut code-review-and-commit` | Commit Code | How to run pre-commit checks and commit |
|
|
367
422
|
| `mycli shortcut create-pr` | Create PR | How to create a pull request |
|
|
368
423
|
| `mycli shortcut new-plan-spec` | Plan Feature | How to create a planning specification |
|
|
369
424
|
```
|
|
@@ -642,6 +697,10 @@ Understanding when to use each is critical.
|
|
|
642
697
|
+ When to use it?
|
|
643
698
|
11. **Write in third person**: “Processes files” not “I can help you”
|
|
644
699
|
12. **Include explicit trigger phrases**: Match how users naturally describe needs
|
|
700
|
+
13. **Front-load keywords**: Put most important triggers in first 50 characters
|
|
701
|
+
14. **Respect cumulative budget**: All descriptions share a ~15K character limit
|
|
702
|
+
15. **Use meta-skill pattern for 50+ resources**: One skill + CLI beats 50 individual
|
|
703
|
+
skills
|
|
645
704
|
|
|
646
705
|
### Self-Documentation
|
|
647
706
|
|
|
@@ -715,7 +774,17 @@ Understanding when to use each is critical.
|
|
|
715
774
|
|
|
716
775
|
- [ ] Two-part description: capabilities + activation triggers
|
|
717
776
|
- [ ] Third-person language only
|
|
718
|
-
- [ ] Explicit trigger phrases matching user language
|
|
777
|
+
- [ ] Explicit “Use when …” trigger phrases matching user language
|
|
778
|
+
- [ ] Front-load important keywords in first 50 characters
|
|
779
|
+
- [ ] Description length appropriate for skill collection size (≤130 chars for 60+
|
|
780
|
+
skills)
|
|
781
|
+
|
|
782
|
+
**Budget Management** (for CLIs installing multiple skills)
|
|
783
|
+
|
|
784
|
+
- [ ] Calculate cumulative description size (descriptions + ~109 chars overhead each)
|
|
785
|
+
- [ ] Verify total stays under 15K character budget
|
|
786
|
+
- [ ] Use meta-skill pattern if resources exceed 50
|
|
787
|
+
- [ ] Run `/context` to verify skills aren’t being truncated
|
|
719
788
|
|
|
720
789
|
**Context Management**
|
|
721
790
|
|
|
@@ -776,6 +845,10 @@ Understanding when to use each is critical.
|
|
|
776
845
|
- Claude Code Skills Guide (Gist):
|
|
777
846
|
https://gist.github.com/mellanon/50816550ecb5f3b239aa77eef7b8ed8d
|
|
778
847
|
- Awesome Claude Skills: https://github.com/travisvn/awesome-claude-skills
|
|
848
|
+
- Skills Character Budget Research:
|
|
849
|
+
https://github.com/anthropics/claude-code/issues/11045
|
|
850
|
+
- Skill Activation Reliability Testing:
|
|
851
|
+
https://scottspence.com/posts/how-to-make-claude-code-skills-activate-reliably
|
|
779
852
|
|
|
780
853
|
### MCP Resources
|
|
781
854
|
|
|
@@ -446,6 +446,51 @@ catch (e) {
|
|
|
446
446
|
|
|
447
447
|
**Tip**: Use `Error.cause` (ES2022) to chain errors without losing the original.
|
|
448
448
|
|
|
449
|
+
### Anti-Pattern 9: Catch-and-Replace with Generic Error
|
|
450
|
+
|
|
451
|
+
**The pattern**: Catching an exception and throwing a new generic error that loses the
|
|
452
|
+
original message and stack trace.
|
|
453
|
+
|
|
454
|
+
```typescript
|
|
455
|
+
// ❌ BAD: Original error details lost
|
|
456
|
+
try {
|
|
457
|
+
dataCtx = await loadDataContext(tbdRoot);
|
|
458
|
+
issues = await listIssues(dataCtx.dataSyncDir);
|
|
459
|
+
} catch {
|
|
460
|
+
throw new CLIError('Failed to read issues');
|
|
461
|
+
}
|
|
462
|
+
// User sees: "Error: Failed to read issues"
|
|
463
|
+
// Actual error was: "Implicit keys need to be on a single line at line 1..."
|
|
464
|
+
// (YAML parse error due to merge conflict markers in file)
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
**Why it happens**: Developer wants to “clean up” the error message for users, assuming
|
|
468
|
+
the original error is too technical.
|
|
469
|
+
But this makes debugging impossible—the user can’t report the real problem, and even
|
|
470
|
+
`--debug` mode shows nothing useful.
|
|
471
|
+
|
|
472
|
+
**The fix**: Let errors propagate naturally, or include the original message.
|
|
473
|
+
|
|
474
|
+
```typescript
|
|
475
|
+
// ✅ GOOD: Let errors propagate (preferred for most cases)
|
|
476
|
+
const dataCtx = await loadDataContext(tbdRoot);
|
|
477
|
+
const issues = await listIssues(dataCtx.dataSyncDir);
|
|
478
|
+
// Errors propagate to central handler which shows message + stack in debug mode
|
|
479
|
+
|
|
480
|
+
// ✅ GOOD: If you must catch, preserve the original message
|
|
481
|
+
try {
|
|
482
|
+
dataCtx = await loadDataContext(tbdRoot);
|
|
483
|
+
} catch (error) {
|
|
484
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
485
|
+
throw new CLIError(`Failed to load data: ${message}`, { cause: error });
|
|
486
|
+
}
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
**Key insight**: The central error handler should add debug info (stack traces,
|
|
490
|
+
context).
|
|
491
|
+
Individual commands should not catch-and-replace unless adding genuinely useful
|
|
492
|
+
context.
|
|
493
|
+
|
|
449
494
|
## Error Messages
|
|
450
495
|
|
|
451
496
|
### Make Errors Actionable
|
|
@@ -495,3 +540,24 @@ When implementing any operation that can fail:
|
|
|
495
540
|
| Optimistic success | Search for success messages, trace back to verify guards |
|
|
496
541
|
| Catch-and-continue | Audit catch blocks that log but don't throw/return |
|
|
497
542
|
| Lost exception context | Grep for `new Error.*\.message` (wrapping without cause) |
|
|
543
|
+
| Catch-and-replace | Grep for `} catch {` followed by `throw new` (bare catch discards error) |
|
|
544
|
+
|
|
545
|
+
### Finding Catch-and-Replace Anti-Pattern
|
|
546
|
+
|
|
547
|
+
This command finds catch blocks that throw new errors without using the original:
|
|
548
|
+
|
|
549
|
+
```bash
|
|
550
|
+
# Find catch blocks that throw new errors without capturing the original
|
|
551
|
+
grep -rn -A2 "} catch {" --include="*.ts" | grep -B1 "throw new"
|
|
552
|
+
```
|
|
553
|
+
|
|
554
|
+
**What to look for**: Any `} catch {` (no error variable) followed by
|
|
555
|
+
`throw new SomeError`. This means the original error is discarded.
|
|
556
|
+
|
|
557
|
+
**Acceptable patterns**:
|
|
558
|
+
- `throw new NotFoundError('Entity', id)` - Transforming “not found” to semantic error
|
|
559
|
+
- `throw new NotInitializedError(...)` - Expected failure with clear guidance
|
|
560
|
+
|
|
561
|
+
**Problematic patterns**:
|
|
562
|
+
- `throw new CLIError('Failed to do X')` - Loses WHY it failed
|
|
563
|
+
- `throw new Error('Operation failed')` - Generic message hides root cause
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Release Notes Guidelines
|
|
3
|
+
description: Guidelines for writing clear, accurate release notes
|
|
4
|
+
---
|
|
5
|
+
# Release Notes Guidelines
|
|
6
|
+
|
|
7
|
+
Write release notes that are accurate, scannable, and useful to users deciding whether
|
|
8
|
+
to upgrade.
|
|
9
|
+
|
|
10
|
+
## Structure
|
|
11
|
+
|
|
12
|
+
Use these sections in order (omit empty sections):
|
|
13
|
+
|
|
14
|
+
```markdown
|
|
15
|
+
## What's Changed
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
- New capabilities users can now do
|
|
19
|
+
|
|
20
|
+
### Fixes
|
|
21
|
+
- Bug fixes and corrections
|
|
22
|
+
|
|
23
|
+
### Refactoring
|
|
24
|
+
- Internal improvements (only if user-visible impact)
|
|
25
|
+
|
|
26
|
+
### Documentation
|
|
27
|
+
- Doc improvements (only notable ones)
|
|
28
|
+
|
|
29
|
+
**Full commit history**: [link to compare]
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Core Principle: Describe the Delta
|
|
33
|
+
|
|
34
|
+
**Think in terms of two points in time:**
|
|
35
|
+
|
|
36
|
+
1. The state of the application at the previous release
|
|
37
|
+
2. The state of the application at this release
|
|
38
|
+
|
|
39
|
+
Release notes describe the **aggregate difference** between these two states.
|
|
40
|
+
Don’t recap individual commits or intermediate changes - describe what’s different now
|
|
41
|
+
compared to before.
|
|
42
|
+
|
|
43
|
+
**Example:** If a feature was added and then bug-fixed before release, don’t list the
|
|
44
|
+
bug fix separately.
|
|
45
|
+
Describe the feature as it now works (the complete, working version).
|
|
46
|
+
|
|
47
|
+
## Writing Principles
|
|
48
|
+
|
|
49
|
+
### 1. Consolidate Related Changes
|
|
50
|
+
|
|
51
|
+
Group sub-features, fixes, and improvements with their parent feature rather than
|
|
52
|
+
listing them separately.
|
|
53
|
+
If a bug fix is for a feature added in the same release, incorporate it into the feature
|
|
54
|
+
description.
|
|
55
|
+
|
|
56
|
+
**Bad:**
|
|
57
|
+
|
|
58
|
+
```markdown
|
|
59
|
+
### Features
|
|
60
|
+
- **Workspace sync**: New tbd save command
|
|
61
|
+
- **Workspace list**: Show saved workspaces
|
|
62
|
+
|
|
63
|
+
### Fixes
|
|
64
|
+
- **Workspace mappings**: Save now filters mappings correctly
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Good:**
|
|
68
|
+
|
|
69
|
+
```markdown
|
|
70
|
+
### Features
|
|
71
|
+
- **Workspace sync feature**: New commands for managing local workspace backups:
|
|
72
|
+
- `tbd save` to export issues (filters mappings correctly)
|
|
73
|
+
- `tbd workspace list` to show saved workspaces with counts
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 2. Write From the User’s Perspective
|
|
77
|
+
|
|
78
|
+
Describe capabilities users now have, not implementation details.
|
|
79
|
+
A user reading the notes should understand what they can do differently after upgrading.
|
|
80
|
+
|
|
81
|
+
### 3. Be Specific About Impact
|
|
82
|
+
|
|
83
|
+
Include the user-facing impact, not just the implementation detail.
|
|
84
|
+
|
|
85
|
+
**Bad:**
|
|
86
|
+
|
|
87
|
+
> Increased git maxBuffer
|
|
88
|
+
|
|
89
|
+
**Good:**
|
|
90
|
+
|
|
91
|
+
> Git maxBuffer overflow: Increased buffer from 1MB to 50MB to prevent sync failures on
|
|
92
|
+
> large repos
|
|
93
|
+
|
|
94
|
+
### 4. Use Consistent Formatting
|
|
95
|
+
|
|
96
|
+
- Bold the feature/fix name
|
|
97
|
+
- Use bullet points for sub-items
|
|
98
|
+
- Include command names in backticks
|
|
99
|
+
- Keep descriptions concise (1-2 lines)
|
|
100
|
+
|
|
101
|
+
### 5. Skip Internal-Only Changes
|
|
102
|
+
|
|
103
|
+
Don’t include:
|
|
104
|
+
|
|
105
|
+
- Test-only changes (unless they fix flaky tests users noticed)
|
|
106
|
+
- Pure refactoring with no user impact
|
|
107
|
+
- CI/tooling changes
|
|
108
|
+
- Minor doc typo fixes
|
|
109
|
+
|
|
110
|
+
## Review Checklist
|
|
111
|
+
|
|
112
|
+
Before finalizing release notes:
|
|
113
|
+
|
|
114
|
+
- [ ] Does each item describe the aggregate delta from the previous release?
|
|
115
|
+
- [ ] Are related changes (features + their fixes) consolidated under one heading?
|
|
116
|
+
- [ ] Would a user understand what’s different after upgrading?
|
|
117
|
+
- [ ] Are feature names/commands in consistent format?
|
|
118
|
+
- [ ] Are internal-only changes excluded?
|
|
119
|
+
|
|
120
|
+
## Example
|
|
121
|
+
|
|
122
|
+
```markdown
|
|
123
|
+
## What's Changed
|
|
124
|
+
|
|
125
|
+
### Features
|
|
126
|
+
|
|
127
|
+
- **Workspace sync feature**: New commands for managing local workspace backups:
|
|
128
|
+
- `tbd save` to export issues to workspace directories (supports `--updates-only`)
|
|
129
|
+
- `tbd workspace list` to show saved workspaces with issue counts
|
|
130
|
+
- `tbd import --workspace` to restore from workspace backups
|
|
131
|
+
- **Child bead ordering**: New `child_order` field allows explicit ordering of child
|
|
132
|
+
beads
|
|
133
|
+
|
|
134
|
+
### Fixes
|
|
135
|
+
|
|
136
|
+
- **Git maxBuffer overflow**: Increased buffer from 1MB to 50MB to prevent sync
|
|
137
|
+
failures on large repos
|
|
138
|
+
|
|
139
|
+
**Full commit history**: https://github.com/org/repo/compare/v0.1.12...v0.1.13
|
|
140
|
+
```
|