@benjaminthomas/spec-driven-dev 1.13.0 → 1.13.1
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 +3 -3
- package/bin/cli.mjs +17 -10
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/skills/spec-investigate/SKILL.md +3 -1
package/README.md
CHANGED
|
@@ -741,7 +741,7 @@ skips that step rather than failing.
|
|
|
741
741
|
| Skill | Stage | SKILL.md lines | Words | Supporting files |
|
|
742
742
|
|---|---|---:|---:|---:|
|
|
743
743
|
| `spec-setup` | 0 · configure | 210 | 2,201 | 3 |
|
|
744
|
-
| `spec-investigate` | 1 · understand |
|
|
744
|
+
| `spec-investigate` | 1 · understand | 387 | 3,367 | 1 |
|
|
745
745
|
| `spec-create` | 2 · plan | 198 | 1,782 | 6 |
|
|
746
746
|
| `spec-implement` | 3 · build | 327 | 2,753 | 3 |
|
|
747
747
|
| `spec-verify` | 4 · prove | 163 | 1,557 | 1 |
|
|
@@ -749,7 +749,7 @@ skips that step rather than failing.
|
|
|
749
749
|
| `spec-checkpoint` | 6 · commit | 140 | 1,144 | 0 |
|
|
750
750
|
| `spec-ship` | 7 · PR | 230 | 1,388 | 0 |
|
|
751
751
|
| `generative-seo` | standalone | 255 | 2,209 | 7 |
|
|
752
|
-
| **Total** | | **2,
|
|
752
|
+
| **Total** | | **2,047** | **17,695** | **22** |
|
|
753
753
|
|
|
754
754
|
- **8** skills: **1** setup + **6** workflow stages + **1** standalone
|
|
755
755
|
- **4** tools supported natively (Claude Code, Codex CLI, Cursor, Antigravity), plus an MCP fallback
|
|
@@ -802,7 +802,7 @@ plugin/evals/ `claude plugin eval` cases
|
|
|
802
802
|
1. Increase `version` in both `package.json` and `plugin/.claude-plugin/plugin.json` (the check fails if
|
|
803
803
|
they differ).
|
|
804
804
|
2. Add a `CHANGELOG.md` entry, then commit and push.
|
|
805
|
-
3. Tag the release and push the tag: `git tag v1.13.
|
|
805
|
+
3. Tag the release and push the tag: `git tag v1.13.1 && git push origin v1.13.1`.
|
|
806
806
|
4. Watch the **publish** run in the repo's Actions tab. When it's green, the new version is on
|
|
807
807
|
npm. Claude Code plugin users get it from the marketplace once the commit is on `main`.
|
|
808
808
|
|
package/bin/cli.mjs
CHANGED
|
@@ -167,17 +167,24 @@ async function install() {
|
|
|
167
167
|
// happen in the AI tool. Claude Code and Codex can be opened with the request already typed in.
|
|
168
168
|
const LAUNCHERS = [["claude", "Claude Code"], ["codex", "Codex"]];
|
|
169
169
|
async function handOver(tools, onlySetup) {
|
|
170
|
+
// The folder says where the AI tool opens; "project" says what gets set up (it can span several repos).
|
|
170
171
|
const name = path.basename(gitTop(DIR));
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
(
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
172
|
+
const what = "It first asks how your project is organised: one repo, a monorepo, or several repos that change together.";
|
|
173
|
+
const next = `Next: in ${name}, open your AI tool and say "run spec-setup".\n${what}
|
|
174
|
+
Then it asks about your tracker, branches and sharing, and looks through the code.
|
|
175
|
+
Start a new session if your tool doesn't recognise it yet.`;
|
|
176
|
+
step(onlySetup ? 1 : 2, "Set up your project in your AI tool", ink.magenta);
|
|
177
|
+
if (onlySetup) {
|
|
178
|
+
console.log(`Setup happens in your AI tool now, so it can read the code and you can change any answer as you go.\n${next}\nFor scripts and CI: spec-driven-dev setup --yes [--layout=… --repos=… --share=…]`);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const launcher = LAUNCHERS.find(([bin]) => tools.includes(bin) && onPath(bin));
|
|
182
|
+
if (!launcher || !process.stdin.isTTY || YES) { console.log(`Skills installed.\n${next}`); return; }
|
|
183
|
+
// The question carries the explanation, so there's no paragraph to read twice.
|
|
184
|
+
if (!(await askConfirm(`Open ${launcher[1]} in ${name} to set up your project? ${what} (A few minutes, on your ${launcher[1]} plan.)`, true))) {
|
|
185
|
+
console.log(next);
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
181
188
|
const { spawnSync } = await import("node:child_process");
|
|
182
189
|
spawnSync(launcher[0], ["run spec-setup"], { cwd: DIR, stdio: "inherit" });
|
|
183
190
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@benjaminthomas/spec-driven-dev",
|
|
3
|
-
"version": "1.13.
|
|
3
|
+
"version": "1.13.1",
|
|
4
4
|
"description": "Spec-driven AI development workflow (investigate → spec → implement → verify → review → ship) as Agent Skills for Claude Code, Cursor, Codex CLI and Antigravity.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ticket-to-pr",
|
|
3
|
-
"version": "1.13.
|
|
3
|
+
"version": "1.13.1",
|
|
4
4
|
"description": "Parallel-batch spec-driven feature workflow (spec-setup, spec-investigate, spec-create, spec-implement, spec-verify, spec-review, spec-checkpoint, spec-ship) plus a portable SEO/GEO operations skill (generative-seo) for any codebase.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Benjamin Thomas",
|
|
@@ -84,12 +84,14 @@ Use it only when `.spec-driven.yml` has `risk.enabled: on`, or has no `risk:` bl
|
|
|
84
84
|
file, compute scores, or mention risk. That keeps on/off comparisons (`spec-driven-dev risk-eval`)
|
|
85
85
|
clean.
|
|
86
86
|
|
|
87
|
-
1.
|
|
87
|
+
1. **Required, not optional:** once you know the change surface, and before writing the report, look up its files: `spec-driven-dev risk --files=a,b` (or
|
|
88
88
|
`npx -y @benjaminthomas/spec-driven-dev risk --files=…`), or find them in `risk.md`. Without the
|
|
89
89
|
CLI, approximate a file's history with `git log --since="2 years ago" --format=%s -- <file>`.
|
|
90
90
|
2. For each **high** or **critical** file in the surface, look harder: read its last ~10 commit
|
|
91
91
|
subjects and the diffs of its last 1–2 fix commits, and check its dependents. Write what keeps
|
|
92
92
|
breaking there in the report's **Risk Hotspots** section.
|
|
93
|
+
The report's **Risk Hotspots** section must exist when risk is on: list the high/critical files,
|
|
94
|
+
or write "none of the touched files are high or critical (checked)" so a reader knows it was done.
|
|
93
95
|
3. A score is a reason to look harder, never evidence. Hotspot findings still need their
|
|
94
96
|
VERIFIED / INFERRED labels.
|
|
95
97
|
4. **New files** (added in the last 90 days with fewer than 3 commits, or not committed yet) show as tier `new`: too little
|