tracerkit 1.4.2 → 1.4.4
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
CHANGED
|
@@ -8,15 +8,15 @@
|
|
|
8
8
|
[](https://www.npmjs.com/package/tracerkit)
|
|
9
9
|
[](https://opensource.org/licenses/MIT)
|
|
10
10
|
|
|
11
|
-
Replace ad-hoc AI prompts with a repeatable three-step spec process
|
|
11
|
+
Replace ad-hoc AI prompts with a repeatable three-step spec process: from idea to verified, archived code.
|
|
12
12
|
|
|
13
|
-
**Zero runtime dependencies
|
|
13
|
+
**Zero runtime dependencies.** Pure Markdown skills, no build step.
|
|
14
14
|
|
|
15
15
|
</div>
|
|
16
16
|
|
|
17
17
|
## Why TracerKit?
|
|
18
18
|
|
|
19
|
-
AI coding without specs means vague prompts and lost context between sessions. Most planning tools produce horizontal task lists
|
|
19
|
+
AI coding without specs means vague prompts and lost context between sessions. Most planning tools produce horizontal task lists. Nothing works until everything is done.
|
|
20
20
|
|
|
21
21
|
TracerKit uses **tracer-bullet vertical slices** instead: each phase cuts through every layer (schema → service → API → UI → tests), so every phase is demoable on its own. Integration problems surface early, context stays focused, and AI assistants get small, well-scoped phases instead of sprawling layers.
|
|
22
22
|
|
|
@@ -30,15 +30,25 @@ The term comes from [The Pragmatic Programmer](https://pragprog.com/titles/tpp20
|
|
|
30
30
|
npx tracerkit init
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
Skills are installed globally to `~/.claude/skills
|
|
33
|
+
Skills are installed globally to `~/.claude/skills/`, available in every project. No per-project setup needed.
|
|
34
34
|
|
|
35
35
|
### 2. Use the workflow
|
|
36
36
|
|
|
37
|
-
```bash
|
|
38
|
-
/tk:prd add dark mode support # define the feature
|
|
39
|
-
/tk:plan dark-mode-support # break into vertical slices
|
|
40
|
-
/tk:verify dark-mode-support # verify and archive
|
|
41
37
|
```
|
|
38
|
+
You: /tk:prd add dark mode support
|
|
39
|
+
AI: ✓ Written .tracerkit/prds/dark-mode-support.md
|
|
40
|
+
|
|
41
|
+
You: /tk:plan dark-mode-support
|
|
42
|
+
AI: ✓ Phase 1 — CSS variables + ThemeProvider
|
|
43
|
+
✓ Phase 2 — Toggle component + localStorage
|
|
44
|
+
✓ Written .tracerkit/plans/dark-mode-support.md
|
|
45
|
+
|
|
46
|
+
You: /tk:verify dark-mode-support
|
|
47
|
+
AI: ✓ All done-when conditions met
|
|
48
|
+
✅ PASS — archived to .tracerkit/archives/dark-mode-support/
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
See [Examples](docs/examples.md) for full walkthroughs.
|
|
42
52
|
|
|
43
53
|
<details>
|
|
44
54
|
<summary>Per-project usage</summary>
|
|
@@ -59,224 +69,41 @@ npx tracerkit uninstall . # remove project-scoped skills
|
|
|
59
69
|
|
|
60
70
|
The three-step workflow that takes a feature from idea to verified archive.
|
|
61
71
|
|
|
62
|
-
#### `/tk:prd <idea
|
|
72
|
+
#### `/tk:prd <idea>`: Write a PRD
|
|
63
73
|
|
|
64
74
|
Interactive interview to define a feature. Explores the codebase, asks scoping questions one at a time, designs deep modules, and writes a structured PRD.
|
|
65
75
|
|
|
66
76
|
**Output:** `.tracerkit/prds/<slug>.md`
|
|
67
77
|
|
|
68
|
-
#### `/tk:plan <slug
|
|
78
|
+
#### `/tk:plan <slug>`: Create an implementation plan
|
|
69
79
|
|
|
70
|
-
Reads a PRD and breaks it into phased **tracer-bullet vertical slices
|
|
80
|
+
Reads a PRD and breaks it into phased **tracer-bullet vertical slices**. Each phase is a thin but complete path through every layer (schema, service, API, UI, tests), demoable on its own.
|
|
71
81
|
|
|
72
82
|
**Output:** `.tracerkit/plans/<slug>.md`
|
|
73
83
|
|
|
74
|
-
#### `/tk:verify <slug
|
|
84
|
+
#### `/tk:verify <slug>`: Verify and archive
|
|
75
85
|
|
|
76
|
-
Read-only review that compares the codebase against the plan's done-when conditions. Runs tests, checks user stories, and stamps a
|
|
86
|
+
Read-only review that compares the codebase against the plan's done-when conditions. Runs tests, checks user stories, and stamps a **✅ PASS** or **🚧 NEEDS_WORK** verdict. On ✅ PASS, automatically archives the PRD and plan to `.tracerkit/archives/<slug>/`.
|
|
77
87
|
|
|
78
|
-
**Output:** Verdict block in `.tracerkit/plans/<slug>.md
|
|
88
|
+
**Output:** Verdict block in `.tracerkit/plans/<slug>.md`. On ✅ PASS: `.tracerkit/archives/<slug>/prd.md` + `.tracerkit/archives/<slug>/plan.md`
|
|
79
89
|
|
|
80
90
|
### Helper skills
|
|
81
91
|
|
|
82
|
-
Useful but optional
|
|
83
|
-
|
|
84
|
-
#### `/tk:status` — Workflow dashboard
|
|
85
|
-
|
|
86
|
-
Scans `.tracerkit/prds/` and prints a table of all features grouped by status (`in_progress`, `created`, `done`), with age, latest verdict, and blocker/suggestion counts. Read-only — no files are modified.
|
|
87
|
-
|
|
88
|
-
## Examples
|
|
92
|
+
Useful but optional. This category will grow over time.
|
|
89
93
|
|
|
90
|
-
|
|
91
|
-
<summary>New feature from scratch</summary>
|
|
92
|
-
|
|
93
|
-
```
|
|
94
|
-
You: /tk:prd add dark mode support
|
|
95
|
-
AI: Starting PRD interview...
|
|
96
|
-
? What problem does this solve for users?
|
|
97
|
-
? Should it detect system preference or manual toggle only?
|
|
98
|
-
? Which components need theming?
|
|
99
|
-
...
|
|
100
|
-
✓ Written .tracerkit/prds/dark-mode-support.md
|
|
94
|
+
#### `/tk:status`: Workflow dashboard
|
|
101
95
|
|
|
102
|
-
|
|
103
|
-
AI: Reading PRD...
|
|
104
|
-
✓ Phase 1 — CSS variables + ThemeProvider (schema → context → tests)
|
|
105
|
-
✓ Phase 2 — Toggle component + localStorage (UI → persistence → tests)
|
|
106
|
-
✓ Phase 3 — System preference detection (media query → sync → tests)
|
|
107
|
-
Written .tracerkit/plans/dark-mode-support.md
|
|
96
|
+
Scans `.tracerkit/prds/` and prints a table of all features grouped by status (`in_progress`, `created`, `done`), with age, latest verdict, and blocker/suggestion counts. Read-only. No files are modified.
|
|
108
97
|
|
|
109
|
-
|
|
98
|
+
## Docs
|
|
110
99
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
</details>
|
|
119
|
-
|
|
120
|
-
<details>
|
|
121
|
-
<summary>Iterating on an accepted PRD</summary>
|
|
122
|
-
|
|
123
|
-
```
|
|
124
|
-
You: /tk:prd update dark mode to detect system preference
|
|
125
|
-
AI: Found existing .tracerkit/prds/dark-mode-support.md
|
|
126
|
-
? Start fresh or revise the existing PRD?
|
|
127
|
-
...
|
|
128
|
-
✓ Updated .tracerkit/prds/dark-mode-support.md
|
|
129
|
-
|
|
130
|
-
You: /tk:plan dark-mode-support
|
|
131
|
-
AI: Reading updated PRD...
|
|
132
|
-
✓ Regenerated .tracerkit/plans/dark-mode-support.md with new scope
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
</details>
|
|
136
|
-
|
|
137
|
-
<details>
|
|
138
|
-
<summary>Verify → fix → re-verify loop</summary>
|
|
139
|
-
|
|
140
|
-
```
|
|
141
|
-
You: /tk:verify dark-mode-support
|
|
142
|
-
AI: Verifying against plan...
|
|
143
|
-
✗ Missing toggle persistence in localStorage
|
|
144
|
-
✗ 2 failing tests in ThemeProvider.test.ts
|
|
145
|
-
NEEDS_WORK — 2 blockers found
|
|
146
|
-
|
|
147
|
-
You: # fix the blockers...
|
|
148
|
-
|
|
149
|
-
You: /tk:verify dark-mode-support
|
|
150
|
-
AI: Verifying against plan...
|
|
151
|
-
✓ All done-when conditions met
|
|
152
|
-
✓ Tests passing
|
|
153
|
-
PASS — archived to .tracerkit/archives/dark-mode-support/
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
</details>
|
|
157
|
-
|
|
158
|
-
<details>
|
|
159
|
-
<summary>Check workflow status</summary>
|
|
160
|
-
|
|
161
|
-
```
|
|
162
|
-
You: /tk:status
|
|
163
|
-
AI: Feature Status Dashboard
|
|
164
|
-
┌──────────────────────┬─────────────┬─────┐
|
|
165
|
-
│ Feature │ Status │ Age │
|
|
166
|
-
├──────────────────────┼─────────────┼─────┤
|
|
167
|
-
│ dark-mode-support │ in_progress │ 3d │
|
|
168
|
-
│ api-rate-limiting │ created │ 1d │
|
|
169
|
-
│ user-avatars │ done │ 7d │
|
|
170
|
-
└──────────────────────┴─────────────┴─────┘
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
</details>
|
|
174
|
-
|
|
175
|
-
## CLI Reference
|
|
176
|
-
|
|
177
|
-
| Command | Description |
|
|
178
|
-
| -------------------------- | ---------------------------------------------- |
|
|
179
|
-
| `tracerkit init` | Install skills to `~/.claude/skills/` |
|
|
180
|
-
| `tracerkit init <path>` | Install skills to a specific project directory |
|
|
181
|
-
| `tracerkit update` | Refresh to latest version, skip modified files |
|
|
182
|
-
| `tracerkit update --force` | Replace modified files with latest versions |
|
|
183
|
-
| `tracerkit uninstall` | Remove TracerKit skills, keep user artifacts |
|
|
184
|
-
| `tracerkit --version` | Print version |
|
|
185
|
-
| `tracerkit --help` | Show help message |
|
|
186
|
-
|
|
187
|
-
All commands default to the home directory. Pass a path to target a specific project.
|
|
188
|
-
|
|
189
|
-
## Configuration
|
|
190
|
-
|
|
191
|
-
Artifacts are stored under `.tracerkit/` by default. To customize paths, create `.tracerkit/config.json`:
|
|
192
|
-
|
|
193
|
-
```json
|
|
194
|
-
{
|
|
195
|
-
"paths": {
|
|
196
|
-
"prds": ".tracerkit/prds",
|
|
197
|
-
"plans": ".tracerkit/plans",
|
|
198
|
-
"archives": ".tracerkit/archives"
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
Any missing key falls back to its default. The file is optional — without it, all defaults apply. After changing config, run `tracerkit update` to regenerate skills with the new paths.
|
|
204
|
-
|
|
205
|
-
## Metadata Lifecycle
|
|
206
|
-
|
|
207
|
-
Each PRD carries YAML frontmatter that tracks its position in the workflow. The skills update it automatically — you never need to edit it by hand.
|
|
208
|
-
|
|
209
|
-
**Fields:**
|
|
210
|
-
|
|
211
|
-
- `created` — ISO 8601 UTC timestamp, set when the PRD is written
|
|
212
|
-
- `status` — `created` | `in_progress` | `done`
|
|
213
|
-
- `completed` — ISO 8601 UTC timestamp, set when verification passes
|
|
214
|
-
|
|
215
|
-
**How it changes:**
|
|
216
|
-
|
|
217
|
-
| Stage | Skill | Frontmatter |
|
|
218
|
-
| -------- | ------------------- | ---------------------------------------------------- |
|
|
219
|
-
| Defined | `/tk:prd` | `created: 2025-06-15T14:30:00Z`<br>`status: created` |
|
|
220
|
-
| Planning | `/tk:plan` | `status: in_progress` |
|
|
221
|
-
| Verified | `/tk:verify` (PASS) | `status: done`<br>`completed: 2025-06-20T09:00:00Z` |
|
|
222
|
-
|
|
223
|
-
<details>
|
|
224
|
-
<summary>Example frontmatter at each stage</summary>
|
|
225
|
-
|
|
226
|
-
After `/tk:prd`:
|
|
227
|
-
|
|
228
|
-
```yaml
|
|
229
|
-
---
|
|
230
|
-
created: 2025-06-15T14:30:00Z
|
|
231
|
-
status: created
|
|
232
|
-
---
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
After `/tk:plan`:
|
|
236
|
-
|
|
237
|
-
```yaml
|
|
238
|
-
---
|
|
239
|
-
created: 2025-06-15T14:30:00Z
|
|
240
|
-
status: in_progress
|
|
241
|
-
---
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
After `/tk:verify` (PASS):
|
|
245
|
-
|
|
246
|
-
```yaml
|
|
247
|
-
---
|
|
248
|
-
created: 2025-06-15T14:30:00Z
|
|
249
|
-
status: done
|
|
250
|
-
completed: 2025-06-20T09:00:00Z
|
|
251
|
-
---
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
</details>
|
|
255
|
-
|
|
256
|
-
## Compared to
|
|
257
|
-
|
|
258
|
-
**vs. [Spec Kit](https://github.com/github/spec-kit)** (GitHub) — Thorough but heavyweight. 5 phases, Python setup, rigid phase gates. TracerKit is 3 phases, zero deps, automated verification.
|
|
259
|
-
|
|
260
|
-
**vs. [Kiro](https://kiro.dev/)** (AWS) — Powerful but locked to a dedicated IDE. TracerKit works inside Claude Code with pure Markdown skills.
|
|
261
|
-
|
|
262
|
-
**vs. [OpenSpec](https://github.com/Fission-AI/OpenSpec)** — Similar philosophy, broader tool support. TracerKit trades breadth (Claude Code only) for depth — native skill discovery, subagents for verification, and fewer artifacts.
|
|
263
|
-
|
|
264
|
-
**vs. nothing** — AI coding without specs means vague prompts and lost context between sessions. TracerKit adds structure without ceremony.
|
|
265
|
-
|
|
266
|
-
<details>
|
|
267
|
-
<summary>Full comparison table</summary>
|
|
268
|
-
|
|
269
|
-
| | Spec Kit | Kiro | OpenSpec | TracerKit |
|
|
270
|
-
| ---------------- | ---------------- | -------------------------- | ----------------------- | ---------------------------------- |
|
|
271
|
-
| **What it is** | CLI + extensions | Agentic IDE (VS Code fork) | Slash-command framework | Claude Code skills (pure Markdown) |
|
|
272
|
-
| **Setup** | Python + uv | Dedicated IDE | npm + init | `npx tracerkit init` |
|
|
273
|
-
| **Phases** | 5 | 3 | 3 | 3 (prd, plan, verify) |
|
|
274
|
-
| **Artifacts** | 4 files | 3+ files | 4+ files | 2 files (PRD, plan) |
|
|
275
|
-
| **Verification** | Manual gates | Diff approval | Manual | Automated PASS/NEEDS_WORK |
|
|
276
|
-
| **Tool lock-in** | Any AI assistant | Kiro IDE only | Any AI assistant | Claude Code only |
|
|
277
|
-
| **Runtime deps** | Python + uv | Proprietary IDE | None | None |
|
|
278
|
-
|
|
279
|
-
</details>
|
|
100
|
+
| Document | Description |
|
|
101
|
+
| ------------------------------------------------ | --------------------------------------------------- |
|
|
102
|
+
| [Examples](docs/examples.md) | End-to-end usage walkthroughs |
|
|
103
|
+
| [CLI Reference](docs/cli-reference.md) | All CLI commands and flags |
|
|
104
|
+
| [Configuration](docs/configuration.md) | Custom artifact paths via `config.json` |
|
|
105
|
+
| [Metadata Lifecycle](docs/metadata-lifecycle.md) | YAML frontmatter states and transitions |
|
|
106
|
+
| [Compared to](docs/compared-to.md) | How TracerKit differs from Spec Kit, Kiro, OpenSpec |
|
|
280
107
|
|
|
281
108
|
## Contributing
|
|
282
109
|
|
|
@@ -291,6 +118,10 @@ completed: 2025-06-20T09:00:00Z
|
|
|
291
118
|
|
|
292
119
|
For support, please [open a GitHub issue](https://github.com/helderberto/tracerkit/issues). We welcome bug reports, feature requests, and questions.
|
|
293
120
|
|
|
121
|
+
## Acknowledgments
|
|
122
|
+
|
|
123
|
+
This project was born out of [Claude Code for Real Engineers](https://www.aihero.dev/cohorts/claude-code-for-real-engineers-2026-04), a cohort by [Matt Pocock](https://github.com/mattpocock). The hands-on approach to building real things with Claude Code sparked the idea for TracerKit. If you're serious about AI-assisted engineering, I can't recommend Matt's cohorts and content highly enough.
|
|
124
|
+
|
|
294
125
|
## License
|
|
295
126
|
|
|
296
127
|
[MIT License](LICENSE) © [helderberto](https://helderberto.com)
|
package/package.json
CHANGED
|
@@ -24,7 +24,7 @@ For each file `{{paths.prds}}/<slug>.md`:
|
|
|
24
24
|
|
|
25
25
|
For each slug, check if `{{paths.plans}}/<slug>.md` exists. If it does, find the last `## Verdict` block and extract:
|
|
26
26
|
|
|
27
|
-
- **Result**: PASS or NEEDS_WORK
|
|
27
|
+
- **Result**: ✅ PASS or 🚧 NEEDS_WORK
|
|
28
28
|
- **BLOCKERS**: count
|
|
29
29
|
- **SUGGESTIONS**: count
|
|
30
30
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Compare implementation against plan, emit BLOCKERS/SUGGESTIONS and a PASS or NEEDS_WORK verdict. Auto-archives on PASS. Use after implementing a plan.
|
|
2
|
+
description: Compare implementation against plan, emit BLOCKERS/SUGGESTIONS and a ✅ PASS or 🚧 NEEDS_WORK verdict. Auto-archives on ✅ PASS. Use after implementing a plan.
|
|
3
3
|
argument-hint: '[slug]'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Verify Implementation
|
|
7
7
|
|
|
8
|
-
Compare current implementation against a plan, stamp a verdict, and archive on PASS.
|
|
8
|
+
Compare current implementation against a plan, stamp a verdict, and archive on ✅ PASS.
|
|
9
9
|
|
|
10
10
|
## Pre-loaded context
|
|
11
11
|
|
|
@@ -38,13 +38,13 @@ Use a **read-only subagent** (no file writes, no edits) to:
|
|
|
38
38
|
|
|
39
39
|
Collect findings into two categories:
|
|
40
40
|
|
|
41
|
-
- **BLOCKERS** — done-when conditions not met, missing functionality, failing tests, broken contracts. These prevent a PASS.
|
|
42
|
-
- **SUGGESTIONS** — improvements, minor gaps, style issues. These do not prevent a PASS.
|
|
41
|
+
- **BLOCKERS** — done-when conditions not met, missing functionality, failing tests, broken contracts. These prevent a ✅ PASS.
|
|
42
|
+
- **SUGGESTIONS** — improvements, minor gaps, style issues. These do not prevent a ✅ PASS.
|
|
43
43
|
|
|
44
44
|
### 4. Determine verdict
|
|
45
45
|
|
|
46
|
-
-
|
|
47
|
-
-
|
|
46
|
+
- **✅ PASS** — zero BLOCKERS
|
|
47
|
+
- **🚧 NEEDS_WORK** — one or more BLOCKERS
|
|
48
48
|
|
|
49
49
|
### 5. Report to user
|
|
50
50
|
|
|
@@ -53,7 +53,7 @@ Print the verdict report:
|
|
|
53
53
|
```
|
|
54
54
|
## Verification: <slug>
|
|
55
55
|
|
|
56
|
-
### Verdict: PASS | NEEDS_WORK
|
|
56
|
+
### Verdict: ✅ PASS | 🚧 NEEDS_WORK
|
|
57
57
|
|
|
58
58
|
### BLOCKERS
|
|
59
59
|
- (list or "None")
|
|
@@ -71,7 +71,7 @@ Append a verdict block at the bottom of `{{paths.plans}}/<slug>.md`:
|
|
|
71
71
|
|
|
72
72
|
## Verdict
|
|
73
73
|
|
|
74
|
-
- **Result**: PASS | NEEDS_WORK
|
|
74
|
+
- **Result**: ✅ PASS | 🚧 NEEDS_WORK
|
|
75
75
|
- **Date**: YYYY-MM-DD
|
|
76
76
|
- **BLOCKERS**: (count)
|
|
77
77
|
- **SUGGESTIONS**: (count)
|
|
@@ -79,9 +79,9 @@ Append a verdict block at the bottom of `{{paths.plans}}/<slug>.md`:
|
|
|
79
79
|
|
|
80
80
|
If a previous verdict block exists, replace it with the new one.
|
|
81
81
|
|
|
82
|
-
### 7. On PASS — update PRD status and archive
|
|
82
|
+
### 7. On ✅ PASS — update PRD status and archive
|
|
83
83
|
|
|
84
|
-
If the verdict is
|
|
84
|
+
If the verdict is **✅ PASS**:
|
|
85
85
|
|
|
86
86
|
**First**, update the YAML frontmatter in `{{paths.prds}}/<slug>.md`:
|
|
87
87
|
|
|
@@ -110,17 +110,17 @@ If the verdict is **PASS**:
|
|
|
110
110
|
|
|
111
111
|
If `{{paths.archives}}/<slug>/` already exists, warn and ask whether to overwrite.
|
|
112
112
|
|
|
113
|
-
### 8. On NEEDS_WORK
|
|
113
|
+
### 8. On 🚧 NEEDS_WORK
|
|
114
114
|
|
|
115
115
|
Tell the user: fix the listed blockers, then re-run `/tk:verify <slug>`.
|
|
116
116
|
|
|
117
117
|
## Rules
|
|
118
118
|
|
|
119
119
|
- The review subagent must be **read-only** — it must not create, edit, or delete any files
|
|
120
|
-
- The only file writes this skill makes are: the verdict block in the plan, and the archive move on PASS
|
|
120
|
+
- The only file writes this skill makes are: the verdict block in the plan, and the archive move on ✅ PASS
|
|
121
121
|
- Never modify the source PRD (except moving it to archive)
|
|
122
122
|
- Never modify implementation code — only observe and report
|
|
123
|
-
- If the PRD file is missing but the plan has a PASS verdict, warn but proceed with archiving the plan only
|
|
123
|
+
- If the PRD file is missing but the plan has a ✅ PASS verdict, warn but proceed with archiving the plan only
|
|
124
124
|
|
|
125
125
|
## Error Handling
|
|
126
126
|
|