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.
Files changed (51) hide show
  1. package/README.md +37 -24
  2. package/dist/bin.mjs +410 -170
  3. package/dist/bin.mjs.map +1 -1
  4. package/dist/cli.mjs +202 -94
  5. package/dist/cli.mjs.map +1 -1
  6. package/dist/docs/README.md +37 -24
  7. package/dist/docs/SKILL.md +61 -18
  8. package/dist/docs/guidelines/cli-agent-skill-patterns.md +77 -4
  9. package/dist/docs/guidelines/error-handling-rules.md +66 -0
  10. package/dist/docs/guidelines/release-notes-guidelines.md +140 -0
  11. package/dist/docs/guidelines/typescript-yaml-handling-rules.md +195 -0
  12. package/dist/docs/install/claude-header.md +13 -6
  13. package/dist/docs/shortcuts/standard/agent-handoff.md +1 -0
  14. package/dist/docs/shortcuts/standard/checkout-third-party-repo.md +50 -0
  15. package/dist/docs/shortcuts/standard/{cleanup-all.md → code-cleanup-all.md} +3 -2
  16. package/dist/docs/shortcuts/standard/{cleanup-update-docstrings.md → code-cleanup-docstrings.md} +1 -0
  17. package/dist/docs/shortcuts/standard/{cleanup-remove-trivial-tests.md → code-cleanup-tests.md} +1 -0
  18. package/dist/docs/shortcuts/standard/{commit-code.md → code-review-and-commit.md} +1 -0
  19. package/dist/docs/shortcuts/standard/create-or-update-pr-simple.md +1 -0
  20. package/dist/docs/shortcuts/standard/create-or-update-pr-with-validation-plan.md +1 -0
  21. package/dist/docs/shortcuts/standard/implement-beads.md +1 -0
  22. package/dist/docs/shortcuts/standard/merge-upstream.md +1 -0
  23. package/dist/docs/shortcuts/standard/new-architecture-doc.md +1 -0
  24. package/dist/docs/shortcuts/standard/new-guideline.md +8 -0
  25. package/dist/docs/shortcuts/standard/new-plan-spec.md +1 -0
  26. package/dist/docs/shortcuts/standard/new-research-brief.md +1 -0
  27. package/dist/docs/shortcuts/standard/new-shortcut.md +27 -1
  28. package/dist/docs/shortcuts/standard/new-validation-plan.md +1 -0
  29. package/dist/docs/shortcuts/standard/plan-implementation-with-beads.md +1 -0
  30. package/dist/docs/shortcuts/standard/precommit-process.md +1 -0
  31. package/dist/docs/shortcuts/standard/review-code-python.md +1 -0
  32. package/dist/docs/shortcuts/standard/review-code-typescript.md +1 -0
  33. package/dist/docs/shortcuts/standard/review-code.md +1 -0
  34. package/dist/docs/shortcuts/standard/review-github-pr.md +1 -0
  35. package/dist/docs/shortcuts/standard/revise-all-architecture-docs.md +1 -0
  36. package/dist/docs/shortcuts/standard/revise-architecture-doc.md +1 -0
  37. package/dist/docs/shortcuts/standard/setup-github-cli.md +1 -0
  38. package/dist/docs/shortcuts/standard/sync-failure-recovery.md +6 -53
  39. package/dist/docs/shortcuts/standard/update-specs-status.md +1 -0
  40. package/dist/docs/shortcuts/standard/welcome-user.md +2 -1
  41. package/dist/docs/shortcuts/system/skill-brief.md +1 -1
  42. package/dist/docs/shortcuts/system/skill.md +48 -12
  43. package/dist/docs/skill-brief.md +1 -1
  44. package/dist/docs/tbd-design.md +13 -1
  45. package/dist/index.d.mts +20 -6
  46. package/dist/index.mjs +2 -2
  47. package/dist/{src-BfhjLZXE.mjs → src-DdSZ1dgK.mjs} +154 -22
  48. package/dist/src-DdSZ1dgK.mjs.map +1 -0
  49. package/dist/tbd +410 -170
  50. package/package.json +1 -1
  51. package/dist/src-BfhjLZXE.mjs.map +0 -1
@@ -1,7 +1,6 @@
1
1
  # tbd
2
2
 
3
- **Task management, spec-driven planning, and instant knowledge injection for AI coding
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-code`](packages/tbd/docs/shortcuts/standard/commit-code.md) |
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:** [17+ guideline docs](packages/tbd/docs/guidelines/) of coding rules
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
- [17+ guideline documents](packages/tbd/docs/guidelines/) covering real-world engineering
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—it appears in every bead ID, e.g. myapp-a1b2)
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
- | `new-research-brief` | Create a research document |
395
- | `new-architecture-doc` | Create an architecture document |
396
- | `new-validation-plan` | Create a test/validation plan |
397
- | `plan-implementation-with-beads` | Break a spec into implementation beads |
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 |
403
- | `precommit-process` | Pre-commit review and testing |
404
- | `commit-code` | Commit with pre-commit checks |
405
- | `create-or-update-pr-simple` | Basic PR creation |
406
- | `create-or-update-pr-with-validation-plan` | PR with a validation plan |
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
- 17+ guidelines covering TypeScript, Python, testing, TDD, and more.
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 17+ bundled guidelines, but you can add your own team’s docs from
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
@@ -1,12 +1,19 @@
1
1
  ---
2
2
  name: tbd
3
3
  description: >-
4
- Git-native issue tracking (beads), coding guidelines, and spec-driven planning for AI agents.
5
- Use for tracking issues with dependencies, creating and closing bugs, features, and tasks,
6
- planning specs for new features, implementing features from specs, code reviews, committing code,
7
- creating PRs, research briefs, and architecture docs. Invoke when user mentions: tbd, beads,
8
- issues, bugs, tasks, todo, tracking, specs, planning, implementation, validation, guidelines,
9
- shortcuts, templates, commit, PR workflows, code review, testing best practices, or monorepo patterns.
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. **Shortcuts**: Reusable instruction templates for common workflows.
24
- 4. **Guidelines**: Coding rules and best practices.
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 and should be short. For new project setup, ALWAYS ASK THE USER FOR THE PREFIX; do not guess it)
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
- | "Let's work on issues" | `tbd ready` |
65
- | "Build a TypeScript CLI" | `tbd guidelines typescript-cli-tool-rules` |
66
- | "Improve eslint/monorepo" | `tbd guidelines typescript-monorepo-patterns` |
67
- | "Add e2e/golden testing" | `tbd guidelines golden-testing-guidelines` |
68
- | "Review changes" (TS) | `tbd guidelines typescript-rules` |
69
- | "Review changes" (Python) | `tbd guidelines python-rules` |
70
- | "Plan a new feature" | `tbd shortcut new-plan-spec` |
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
- | "Commit this" | `tbd shortcut commit-code` |
74
- | "Create a PR" | `tbd shortcut create-or-update-pr-simple` |
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 trigger phrases reflecting user language
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-code
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-code` | Commit Code | How to run pre-commit checks and 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
+ ```