tracerkit 1.0.1 → 1.1.0
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 +66 -3
- package/dist/bin.js +1 -1
- package/dist/index.js +1 -1
- package/dist/{uninstall-BWCq5Ivr.js → uninstall-B9BzyN-s.js} +2 -1
- package/package.json +1 -1
- package/templates/.claude/skills/tk:plan/SKILL.md +6 -1
- package/templates/.claude/skills/tk:prd/SKILL.md +5 -1
- package/templates/.claude/skills/tk:status/SKILL.md +64 -0
- package/templates/.claude/skills/tk:verify/SKILL.md +11 -3
package/README.md
CHANGED
|
@@ -58,24 +58,87 @@ npx tracerkit uninstall .
|
|
|
58
58
|
|
|
59
59
|
## Skills
|
|
60
60
|
|
|
61
|
-
###
|
|
61
|
+
### Core skills
|
|
62
|
+
|
|
63
|
+
The three-step workflow that takes a feature from idea to verified archive.
|
|
64
|
+
|
|
65
|
+
#### `/tk:prd <idea>` — Write a PRD
|
|
62
66
|
|
|
63
67
|
Interactive interview to define a feature. Explores the codebase, asks scoping questions one at a time, designs deep modules, and writes a structured PRD.
|
|
64
68
|
|
|
65
69
|
**Output:** `prds/<slug>.md`
|
|
66
70
|
|
|
67
|
-
|
|
71
|
+
#### `/tk:plan <slug>` — Create an implementation plan
|
|
68
72
|
|
|
69
73
|
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.
|
|
70
74
|
|
|
71
75
|
**Output:** `plans/<slug>.md`
|
|
72
76
|
|
|
73
|
-
|
|
77
|
+
#### `/tk:verify <slug>` — Verify and archive
|
|
74
78
|
|
|
75
79
|
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 `archive/<slug>/`.
|
|
76
80
|
|
|
77
81
|
**Output:** Verdict block in `plans/<slug>.md` — on PASS: `archive/<slug>/prd.md` + `archive/<slug>/plan.md`
|
|
78
82
|
|
|
83
|
+
### Helper skills
|
|
84
|
+
|
|
85
|
+
Useful but optional — this category will grow over time.
|
|
86
|
+
|
|
87
|
+
#### `/tk:status` — Workflow dashboard
|
|
88
|
+
|
|
89
|
+
Scans `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.
|
|
90
|
+
|
|
91
|
+
## Metadata Lifecycle
|
|
92
|
+
|
|
93
|
+
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.
|
|
94
|
+
|
|
95
|
+
**Fields:**
|
|
96
|
+
|
|
97
|
+
- `created` — ISO 8601 UTC timestamp, set when the PRD is written
|
|
98
|
+
- `status` — `created` | `in_progress` | `done`
|
|
99
|
+
- `completed` — ISO 8601 UTC timestamp, set when verification passes
|
|
100
|
+
|
|
101
|
+
**How it changes:**
|
|
102
|
+
|
|
103
|
+
| Stage | Skill | Frontmatter |
|
|
104
|
+
| -------- | ------------------- | ---------------------------------------------------- |
|
|
105
|
+
| Defined | `/tk:prd` | `created: 2025-06-15T14:30:00Z`<br>`status: created` |
|
|
106
|
+
| Planning | `/tk:plan` | `status: in_progress` |
|
|
107
|
+
| Verified | `/tk:verify` (PASS) | `status: done`<br>`completed: 2025-06-20T09:00:00Z` |
|
|
108
|
+
|
|
109
|
+
<details>
|
|
110
|
+
<summary>Example frontmatter at each stage</summary>
|
|
111
|
+
|
|
112
|
+
After `/tk:prd`:
|
|
113
|
+
|
|
114
|
+
```yaml
|
|
115
|
+
---
|
|
116
|
+
created: 2025-06-15T14:30:00Z
|
|
117
|
+
status: created
|
|
118
|
+
---
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
After `/tk:plan`:
|
|
122
|
+
|
|
123
|
+
```yaml
|
|
124
|
+
---
|
|
125
|
+
created: 2025-06-15T14:30:00Z
|
|
126
|
+
status: in_progress
|
|
127
|
+
---
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
After `/tk:verify` (PASS):
|
|
131
|
+
|
|
132
|
+
```yaml
|
|
133
|
+
---
|
|
134
|
+
created: 2025-06-15T14:30:00Z
|
|
135
|
+
status: done
|
|
136
|
+
completed: 2025-06-20T09:00:00Z
|
|
137
|
+
---
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
</details>
|
|
141
|
+
|
|
79
142
|
## Why TracerKit?
|
|
80
143
|
|
|
81
144
|
Most planning tools produce horizontal task lists — nothing works until everything is done. 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.
|
package/dist/bin.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as e, n as t, r as n, t as r } from "./uninstall-
|
|
1
|
+
import { i as e, n as t, r as n, t as r } from "./uninstall-B9BzyN-s.js";
|
|
2
2
|
export { e as SKILL_NAMES, n as init, r as uninstall, t as update };
|
package/package.json
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Turn a PRD into a multi-phase implementation plan using tracer-bullet vertical slices, saved to plans/. Use after /tk:prd.
|
|
3
3
|
argument-hint: '[slug]'
|
|
4
|
-
disable-model-invocation: true
|
|
5
4
|
---
|
|
6
5
|
|
|
7
6
|
# PRD to Plan
|
|
@@ -26,6 +25,12 @@ Read `prds/<slug>.md`. If it does not exist, list available PRDs and ask.
|
|
|
26
25
|
|
|
27
26
|
If `plans/<slug>.md` already exists, tell the user and ask whether to overwrite or pick a new name.
|
|
28
27
|
|
|
28
|
+
### 1b. Update PRD status
|
|
29
|
+
|
|
30
|
+
Update the YAML frontmatter in `prds/<slug>.md` to `status: in_progress`. Change only the `status` field — do not touch any other frontmatter fields or the markdown content below the closing `---`.
|
|
31
|
+
|
|
32
|
+
If the PRD has no frontmatter, skip this step silently.
|
|
33
|
+
|
|
29
34
|
### 2. Explore the codebase
|
|
30
35
|
|
|
31
36
|
Understand current architecture, existing patterns, and integration points.
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Create a PRD through user interview, codebase exploration, and module design, saved to prds/. Use when starting a new feature or change.
|
|
3
3
|
argument-hint: <idea>
|
|
4
|
-
disable-model-invocation: true
|
|
5
4
|
---
|
|
6
5
|
|
|
7
6
|
# PRD Writing
|
|
@@ -55,6 +54,11 @@ Present modules to user. Confirm which need tests.
|
|
|
55
54
|
Save to `prds/<slug>.md` (create `prds/` if missing).
|
|
56
55
|
|
|
57
56
|
```markdown
|
|
57
|
+
---
|
|
58
|
+
created: <current UTC timestamp, ISO 8601, e.g. 2025-06-15T14:30:00Z>
|
|
59
|
+
status: created
|
|
60
|
+
---
|
|
61
|
+
|
|
58
62
|
# Feature Name
|
|
59
63
|
|
|
60
64
|
## Problem Statement
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Show a dashboard of all features and their workflow status. Use any time to check progress.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Workflow Dashboard
|
|
6
|
+
|
|
7
|
+
Scan all PRDs and display a status overview of every feature in the workflow.
|
|
8
|
+
|
|
9
|
+
## Workflow
|
|
10
|
+
|
|
11
|
+
### 1. Scan PRDs
|
|
12
|
+
|
|
13
|
+
List all `.md` files in `prds/`. If the directory is missing or empty, print "No features found — run `/tk:prd` to start one." and stop.
|
|
14
|
+
|
|
15
|
+
### 2. Parse each PRD
|
|
16
|
+
|
|
17
|
+
For each file `prds/<slug>.md`:
|
|
18
|
+
|
|
19
|
+
1. Read YAML frontmatter (between opening and closing `---` delimiters)
|
|
20
|
+
2. Extract fields: `created`, `status`, `completed`
|
|
21
|
+
3. If no frontmatter exists, treat as `status: unknown` with no age
|
|
22
|
+
|
|
23
|
+
### 3. Read verdict data
|
|
24
|
+
|
|
25
|
+
For each slug, check if `plans/<slug>.md` exists. If it does, find the last `## Verdict` block and extract:
|
|
26
|
+
|
|
27
|
+
- **Result**: PASS or NEEDS_WORK
|
|
28
|
+
- **BLOCKERS**: count
|
|
29
|
+
- **SUGGESTIONS**: count
|
|
30
|
+
|
|
31
|
+
If no plan or no verdict block exists, leave verdict columns blank.
|
|
32
|
+
|
|
33
|
+
### 4. Print the table
|
|
34
|
+
|
|
35
|
+
Group features by status in this order: `in_progress`, `created`, `done`, `unknown`.
|
|
36
|
+
|
|
37
|
+
Within each group, sort by `created` date (oldest first). Features without a `created` date sort last.
|
|
38
|
+
|
|
39
|
+
Print a markdown table:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
## Workflow Dashboard
|
|
43
|
+
|
|
44
|
+
| Feature | Status | Age | Verdict | Blockers | Suggestions |
|
|
45
|
+
|---------|--------|-----|---------|----------|-------------|
|
|
46
|
+
| <slug> | ... | ... | ... | ... | ... |
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Column definitions:
|
|
50
|
+
|
|
51
|
+
- **Feature**: the slug (filename without `.md`)
|
|
52
|
+
- **Status**: `created`, `in_progress`, `done`, or `unknown`
|
|
53
|
+
- **Age**: human-readable duration since `created` (e.g. "3d", "2w", "1mo") — blank if no `created`
|
|
54
|
+
- **Verdict**: latest verdict result or blank
|
|
55
|
+
- **Blockers**: blocker count from latest verdict or blank
|
|
56
|
+
- **Suggestions**: suggestion count from latest verdict or blank
|
|
57
|
+
|
|
58
|
+
After the table, print a one-line summary: `N features: X in progress, Y created, Z done`.
|
|
59
|
+
|
|
60
|
+
## Rules
|
|
61
|
+
|
|
62
|
+
- Read-only — this skill must not create, edit, or delete any files
|
|
63
|
+
- Graceful degradation for missing frontmatter, missing plans, or missing verdicts
|
|
64
|
+
- No arguments accepted — always scans all PRDs
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
---
|
|
2
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
|
-
disable-model-invocation: true
|
|
5
4
|
---
|
|
6
5
|
|
|
7
6
|
# Verify Implementation
|
|
@@ -80,9 +79,18 @@ Append a verdict block at the bottom of `plans/<slug>.md`:
|
|
|
80
79
|
|
|
81
80
|
If a previous verdict block exists, replace it with the new one.
|
|
82
81
|
|
|
83
|
-
### 7. On PASS — archive
|
|
82
|
+
### 7. On PASS — update PRD status and archive
|
|
84
83
|
|
|
85
|
-
If the verdict is **PASS
|
|
84
|
+
If the verdict is **PASS**:
|
|
85
|
+
|
|
86
|
+
**First**, update the YAML frontmatter in `prds/<slug>.md`:
|
|
87
|
+
|
|
88
|
+
- Set `status: done`
|
|
89
|
+
- Add `completed: <current UTC timestamp, ISO 8601, e.g. 2025-06-15T14:30:00Z>`
|
|
90
|
+
- Do not touch any other frontmatter fields or the markdown content below the closing `---`
|
|
91
|
+
- If the PRD has no frontmatter, skip frontmatter update silently
|
|
92
|
+
|
|
93
|
+
**Then**, automatically archive:
|
|
86
94
|
|
|
87
95
|
1. Create `archive/<slug>/` directory (and `archive/` if missing)
|
|
88
96
|
2. Move `prds/<slug>.md` → `archive/<slug>/prd.md`
|