specweave 3.1.12 → 3.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/.claude-plugin/marketplace.json +2 -2
- package/README.md +7 -7
- package/bin/specweave.js +3 -3
- package/dist/src/cli/commands/create-increment.d.ts +2 -5
- package/dist/src/cli/commands/create-increment.d.ts.map +1 -1
- package/dist/src/cli/commands/create-increment.js +4 -2
- package/dist/src/cli/commands/create-increment.js.map +1 -1
- package/dist/src/cli/commands/project.d.ts.map +1 -1
- package/dist/src/cli/commands/project.js +2 -1
- package/dist/src/cli/commands/project.js.map +1 -1
- package/dist/src/cli/commands/skills.d.ts +2 -2
- package/dist/src/cli/commands/skills.d.ts.map +1 -1
- package/dist/src/cli/commands/skills.js +17 -9
- package/dist/src/cli/commands/skills.js.map +1 -1
- package/dist/src/cli/helpers/init/instruction-file-merger.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/instruction-file-merger.js +19 -0
- package/dist/src/cli/helpers/init/instruction-file-merger.js.map +1 -1
- package/dist/src/core/doctor/checkers/instruction-files-checker.d.ts.map +1 -1
- package/dist/src/core/doctor/checkers/instruction-files-checker.js +19 -2
- package/dist/src/core/doctor/checkers/instruction-files-checker.js.map +1 -1
- package/dist/src/core/increment/template-creator.d.ts +8 -16
- package/dist/src/core/increment/template-creator.d.ts.map +1 -1
- package/dist/src/core/increment/template-creator.js +10 -32
- package/dist/src/core/increment/template-creator.js.map +1 -1
- package/dist/src/core/qa/types.d.ts +0 -50
- package/dist/src/core/qa/types.d.ts.map +1 -1
- package/dist/src/core/rubric/rubric-generator.d.ts.map +1 -1
- package/dist/src/core/rubric/rubric-generator.js +7 -5
- package/dist/src/core/rubric/rubric-generator.js.map +1 -1
- package/dist/src/core/skills/catalog.d.ts +1 -1
- package/dist/src/core/skills/catalog.d.ts.map +1 -1
- package/dist/src/core/skills/catalog.js +0 -2
- package/dist/src/core/skills/catalog.js.map +1 -1
- package/dist/src/core/skills/project-skills.d.ts +0 -10
- package/dist/src/core/skills/project-skills.d.ts.map +1 -1
- package/dist/src/core/skills/project-skills.js +6 -2
- package/dist/src/core/skills/project-skills.js.map +1 -1
- package/package.json +1 -1
- package/plugins/PLUGINS-INDEX.md +3 -3
- package/plugins/specweave/.claude-plugin/plugin.json +2 -2
- package/plugins/specweave/PLUGIN.md +7 -4
- package/plugins/specweave/agents/sw-closer.md +27 -16
- package/plugins/specweave/defaults/rubric-defaults.md +7 -5
- package/plugins/specweave/marketplace.json +7 -8
- package/plugins/specweave/skills/auto/SKILL.md +2 -1
- package/plugins/specweave/skills/auto/agents/openai.yaml +1 -1
- package/plugins/specweave/skills/do/SKILL.md +3 -2
- package/plugins/specweave/skills/do/agents/openai.yaml +3 -0
- package/plugins/specweave/skills/done/SKILL.md +7 -2
- package/plugins/specweave/skills/done/agents/openai.yaml +3 -0
- package/plugins/specweave/{skills-optional → skills}/grill-me/SKILL.md +5 -4
- package/plugins/specweave/skills/grill-me/agents/openai.yaml +3 -0
- package/plugins/specweave/skills/handoff/SKILL.md +8 -4
- package/plugins/specweave/skills/handoff/agents/openai.yaml +3 -0
- package/plugins/specweave/skills/increment/SKILL.md +3 -3
- package/plugins/specweave/skills/increment/agents/openai.yaml +3 -0
- package/plugins/specweave/skills/review/SKILL.md +8 -4
- package/plugins/specweave/skills/review/agents/openai.yaml +3 -0
- package/plugins/specweave/skills-catalog.json +15 -7
- package/plugins/specweave/skills-optional/glossary/SKILL.md +2 -1
- package/plugins/specweave/skills-optional/glossary/agents/openai.yaml +3 -0
- package/plugins/specweave/skills-optional/jev/SKILL.md +7 -4
- package/plugins/specweave/skills-optional/jev/agents/openai.yaml +3 -0
- package/plugins/specweave/skills-optional/project/SKILL.md +2 -1
- package/plugins/specweave/skills-optional/project/agents/openai.yaml +3 -0
- package/plugins/specweave/skills-optional/sync/SKILL.md +2 -1
- package/plugins/specweave/skills-optional/sync/agents/openai.yaml +3 -0
- package/src/templates/AGENTS.md.template +2 -18
- /package/plugins/specweave/{skills-optional → skills}/grill-me/references/credits.md +0 -0
package/plugins/PLUGINS-INDEX.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SpecWeave plugins index
|
|
2
2
|
|
|
3
|
-
**Plugins**: 1 (`sw`) · **Skills**:
|
|
3
|
+
**Plugins**: 1 (`sw`) · **Skills**: 7 core + 4 optional · **Commands**: 0 · **Hooks**: 2 default
|
|
4
4
|
|
|
5
5
|
The 1.x `commands/` namespace is gone: anything deterministic is a `specweave`
|
|
6
6
|
CLI subcommand, and the model-judgement procedures are the skills below.
|
|
@@ -21,7 +21,7 @@ CLI subcommand, and the model-judgement procedures are the skills below.
|
|
|
21
21
|
| "Hand off" / "pick up" / "out of tokens" | `sw:handoff` |
|
|
22
22
|
| "Push to GitHub" / "import issues" (optional) | `sw:sync` |
|
|
23
23
|
| "Run until done" | `sw:auto` |
|
|
24
|
-
| "Grill me" / "interview me"
|
|
24
|
+
| "Grill me" / "interview me" | `sw:grill-me` |
|
|
25
25
|
| "Glossary" / "what does Order mean here" (optional) | `sw:glossary` |
|
|
26
26
|
| "Project brief" / "what is this project about" (optional) | `sw:project` |
|
|
27
27
|
| "Jev" / "system one" / a decision whose answers can all be enumerated first (optional) | `sw:jev` |
|
|
@@ -37,7 +37,7 @@ project's `.claude/settings.json`. `--no-guard-bash` removes all three.
|
|
|
37
37
|
|
|
38
38
|
## Optional skills
|
|
39
39
|
|
|
40
|
-
`
|
|
40
|
+
`glossary`, `sync`, `project` and `jev` ship in
|
|
41
41
|
`plugins/specweave/skills-optional/` and install per project when enabled or detected:
|
|
42
42
|
`specweave skills` lists them, `specweave skills enable <name>` turns one on.
|
|
43
43
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sw",
|
|
3
|
-
"description": "Portable intent and verified progress across coding tools.
|
|
4
|
-
"version": "3.1.
|
|
3
|
+
"description": "Portable intent and verified progress across coding tools. Seven core workflow skills (grill-me among them) plus opt-in glossary, sync, project and jev, two default lifecycle hooks, and a deterministic CLI and live local dashboard.",
|
|
4
|
+
"version": "3.1.14",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "SpecWeave Team",
|
|
7
7
|
"url": "https://spec-weave.com"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SpecWeave plugin (`sw`)
|
|
2
2
|
|
|
3
|
-
The Claude Code surface for SpecWeave: **
|
|
3
|
+
The Claude Code surface for SpecWeave: **7 core skills, 4 optional skills, 2 default hooks,
|
|
4
4
|
1 closer agent**.
|
|
5
5
|
The skills are generated from `skills/sw-<name>/` at the repository root (the one source
|
|
6
6
|
every tool shares); edit them there, never here.
|
|
@@ -9,11 +9,12 @@ procedure needs model judgement. There is no `commands/` namespace in 2.0.
|
|
|
9
9
|
|
|
10
10
|
## Skills
|
|
11
11
|
|
|
12
|
-
Core, loaded by the plugin:
|
|
12
|
+
Core, loaded by the plugin. Run one as `/sw:<name>` in Claude Code or `$sw:<name>` in Codex:
|
|
13
13
|
|
|
14
14
|
| Skill | What it does |
|
|
15
15
|
|---|---|
|
|
16
16
|
| `sw:increment` | Settle the user's decisions, then plan one `spec.md` (Problem, Scope, ACs, Approach, Decisions, Tasks) |
|
|
17
|
+
| `sw:grill-me` | Interview the user in rounds until every decision is settled; `sw:increment` runs it for every new increment when `planning.deepInterview` is `deep` |
|
|
17
18
|
| `sw:do` | Work the increment task by task through the ledger, alone, unattended or in parallel lanes |
|
|
18
19
|
| `sw:auto` | User-invoked entry to sw:do's unattended mode, driven by the Stop hook |
|
|
19
20
|
| `sw:done` | Close it: ledger check → `specweave verify` → review → `specweave complete` |
|
|
@@ -26,13 +27,15 @@ detects it:
|
|
|
26
27
|
|
|
27
28
|
| Skill | What it does | Detected by |
|
|
28
29
|
|---|---|---|
|
|
29
|
-
| `sw:grill-me` | Interview the user in rounds until every decision is settled | `planning.deepInterview: deep` |
|
|
30
30
|
| `sw:glossary` | GLOSSARY.md: each domain term across business, data, code and UI | `GLOSSARY.md` |
|
|
31
31
|
| `sw:sync` | GitHub / Jira / ADO: push, pull, status, setup | a configured tracker |
|
|
32
32
|
| `sw:project` | Shared goal, memory, work items and briefs across tools | `.specweave/project/hub.json` |
|
|
33
33
|
| `sw:jev` | Delegate closed-set decisions to Jev (TypeSafe System One) | `jev.enabled` |
|
|
34
34
|
|
|
35
|
-
`skills-catalog.json` is the list (generated from `skills/catalog.json`).
|
|
35
|
+
`skills-catalog.json` is the list (generated from `skills/catalog.json`). Each skill folder
|
|
36
|
+
also carries `agents/openai.yaml`, the Codex UI metadata (display name "SpecWeave Do" and so
|
|
37
|
+
on); `auto` sets `policy.allow_implicit_invocation: false` there, the Codex twin of its
|
|
38
|
+
`disable-model-invocation: true`.
|
|
36
39
|
|
|
37
40
|
## Hooks
|
|
38
41
|
|
|
@@ -14,19 +14,30 @@ purpose: the session that wrote the code should not be the one judging it.
|
|
|
14
14
|
|
|
15
15
|
Your prompt contains the increment id (and optionally its path).
|
|
16
16
|
|
|
17
|
-
##
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
4. `
|
|
25
|
-
|
|
26
|
-
5.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
17
|
+
## Overrides to the preloaded sw:done
|
|
18
|
+
|
|
19
|
+
Follow sw:done with these changes, and nothing else:
|
|
20
|
+
|
|
21
|
+
1. Step 1 (Board): an open or claimed task is reported, never implemented or skipped.
|
|
22
|
+
2. Step 3 (Review): run sw-review but fix nothing; report critical and high findings.
|
|
23
|
+
3. Skip step 4 (Docs) and step 6 (Ship); the caller owns both.
|
|
24
|
+
4. `metadata.json` status `planned`: the increment was never activated. Report it and
|
|
25
|
+
stop instead of forcing a transition.
|
|
26
|
+
5. Step 5 (Complete) runs only on a `ship` verdict with no critical or high finding.
|
|
27
|
+
On `fix first`, or any critical or high finding, skip it: `completed:false`, and
|
|
28
|
+
list the findings under `blockers` so the caller fixes them and completes.
|
|
29
|
+
|
|
30
|
+
Never mark tasks done, write code or edit `metadata.json` by hand.
|
|
31
|
+
|
|
32
|
+
## Return
|
|
33
|
+
|
|
34
|
+
Reply with this JSON only, so the caller can check it against the files:
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{"increment":"0042","verify":{"ok":true,"path":"reports/verify.json"},
|
|
38
|
+
"review":{"verdict":"fix first","path":"reports/review.md","critical_high":[{"severity":"high","file":"src/a.ts","line":88,"summary":"..."}]},
|
|
39
|
+
"completed":false,"blockers":["review: high src/a.ts:88"],"deferred":[],"commits":["abc1234"]}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
`review.verdict` is `"skipped"` when no review ran; `blockers` names open tasks, a red
|
|
43
|
+
verify, a `planned` status or review findings that held back completion.
|
|
@@ -30,22 +30,24 @@ status: defaults
|
|
|
30
30
|
|
|
31
31
|
## Code Quality
|
|
32
32
|
|
|
33
|
-
### R-D02: No critical or high code review findings [
|
|
33
|
+
### R-D02: No critical or high code review findings [advisory]
|
|
34
34
|
- **Source**: project-default
|
|
35
35
|
- **Evaluator**: sw:review
|
|
36
|
-
- **Verify**: review.
|
|
36
|
+
- **Verify**: newest reports/review*.md verdict and its critical/high findings (what closure-gate.ts reads)
|
|
37
37
|
- **Threshold**: critical === 0 AND high === 0
|
|
38
|
+
- **Note**: `specweave complete` only reports this as a notice; `reports/verify.json` is the one blocking gate
|
|
38
39
|
- **Result**: [ ] PENDING
|
|
39
40
|
|
|
40
41
|
---
|
|
41
42
|
|
|
42
43
|
## Independent Evaluation
|
|
43
44
|
|
|
44
|
-
### R-D03: Review verdict is ship [
|
|
45
|
+
### R-D03: Review verdict is ship [advisory]
|
|
45
46
|
- **Source**: project-default
|
|
46
47
|
- **Evaluator**: sw:review
|
|
47
|
-
- **Verify**: review.
|
|
48
|
-
- **Threshold**:
|
|
48
|
+
- **Verify**: newest reports/review*.md verdict line (parseVerdict in closure-gate.ts)
|
|
49
|
+
- **Threshold**: verdict is not "fix first"
|
|
50
|
+
- **Note**: `specweave complete` only reports this as a notice; `reports/verify.json` is the one blocking gate
|
|
49
51
|
- **Result**: [ ] PENDING
|
|
50
52
|
|
|
51
53
|
### R-D04: Independent reviewer was a fresh context [advisory]
|
|
@@ -9,6 +9,12 @@
|
|
|
9
9
|
"description": "Settle the user's critical decisions, then plan a unit of work: one spec.md with Problem, Scope, numbered ACs, Approach, Decisions and Tasks. Replaces brainstorm.",
|
|
10
10
|
"deprecated": false
|
|
11
11
|
},
|
|
12
|
+
{
|
|
13
|
+
"name": "sw:grill-me",
|
|
14
|
+
"path": "skills/grill-me/SKILL.md",
|
|
15
|
+
"description": "Interview the user in rounds until every decision in a plan is settled; records Decisions in spec.md.",
|
|
16
|
+
"deprecated": false
|
|
17
|
+
},
|
|
12
18
|
{
|
|
13
19
|
"name": "sw:do",
|
|
14
20
|
"path": "skills/do/SKILL.md",
|
|
@@ -39,13 +45,7 @@
|
|
|
39
45
|
"description": "\"Hand off\" in one tool, \"pick up\" in any other tool, account or machine: specweave handoff and specweave pickup.",
|
|
40
46
|
"deprecated": false
|
|
41
47
|
},
|
|
42
|
-
|
|
43
|
-
"name": "sw:grill-me",
|
|
44
|
-
"path": "skills-optional/grill-me/SKILL.md",
|
|
45
|
-
"description": "Interview the user in rounds until every decision in a plan is settled; records Decisions in spec.md.",
|
|
46
|
-
"deprecated": false,
|
|
47
|
-
"optional": true
|
|
48
|
-
},
|
|
48
|
+
|
|
49
49
|
{
|
|
50
50
|
"name": "sw:glossary",
|
|
51
51
|
"path": "skills-optional/glossary/SKILL.md",
|
|
@@ -78,7 +78,6 @@
|
|
|
78
78
|
"optionalSkills": {
|
|
79
79
|
"note": "Shipped in plugins/specweave/skills-optional/, not loaded by the plugin. A project turns one on with: specweave skills enable <name>",
|
|
80
80
|
"names": [
|
|
81
|
-
"grill-me",
|
|
82
81
|
"glossary",
|
|
83
82
|
"sync",
|
|
84
83
|
"project",
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
description: Run a SpecWeave increment unattended until every task is done, then verify and close - the Unattended section of sw-do. Use for "auto mode", "run until done".
|
|
3
3
|
argument-hint: "[increment-ids...] [--dry-run|--reset]"
|
|
4
4
|
disable-model-invocation: true
|
|
5
|
-
|
|
5
|
+
metadata:
|
|
6
|
+
version: "3.1.0"
|
|
6
7
|
---
|
|
7
8
|
<!-- Generated from skills/sw-auto/SKILL.md by scripts/build/generate-skills.mjs. Edit the source, then npm run build. -->
|
|
8
9
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Work a SpecWeave increment task by task - claim, implement inside its Files, test, commit, done with evidence - alone, unattended or in lanes, then close. Use for "implement", "
|
|
2
|
+
description: Work a SpecWeave increment task by task - claim, implement inside its Files, test, commit, done with evidence - alone, unattended or in lanes, then close. Use for "implement", "next task".
|
|
3
3
|
argument-hint: "[increment-id] [--auto] [--lanes]"
|
|
4
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
version: "3.1.0"
|
|
5
6
|
---
|
|
6
7
|
<!-- Generated from skills/sw-do/SKILL.md by scripts/build/generate-skills.mjs. Edit the source, then npm run build. -->
|
|
7
8
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Close a SpecWeave increment - every task done or skipped, specweave verify green, a fresh-context review, then specweave complete. Use for "close it", "we are done", "finish up".
|
|
3
3
|
argument-hint: "[increment-id] [--reason \"...\"]"
|
|
4
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
version: "3.1.0"
|
|
5
6
|
---
|
|
6
7
|
<!-- Generated from skills/sw-done/SKILL.md by scripts/build/generate-skills.mjs. Edit the source, then npm run build. -->
|
|
7
8
|
|
|
@@ -23,7 +24,11 @@ Closing is verify, review, complete. The one hard gate is a passing
|
|
|
23
24
|
`review.crossModel` on, also `specweave review`: another model family reviews the
|
|
24
25
|
diff (exit 3 means fix first). If the project has a `GLOSSARY.md`, run
|
|
25
26
|
`specweave glossary check` and rename new code that uses an avoided word. Fix
|
|
26
|
-
critical and high findings, then verify again.
|
|
27
|
+
critical and high findings, then verify again. In a bloated context, spawn the
|
|
28
|
+
`sw-closer` agent as the fresh-context option; it returns JSON, fixes nothing and
|
|
29
|
+
completes only on a clean `ship` review, so re-read `reports/verify.json` and the
|
|
30
|
+
review report yourself rather than trusting its summary, fix any critical or high
|
|
31
|
+
finding here, then complete.
|
|
27
32
|
4. **Docs.** If commands, config or user-facing behaviour changed, update README,
|
|
28
33
|
CHANGELOG and the `## Commands` table in AGENTS.md in the same branch.
|
|
29
34
|
5. **Complete.** `specweave complete 0042`. It refuses without a passing verify unless
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Interview the user relentlessly, in rounds, until every decision in a plan is settled; facts are your job, decisions are theirs. Use for "grill me", "interview me", "stress-test this plan".
|
|
3
3
|
argument-hint: "[topic or increment-id]"
|
|
4
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
version: "1.0.0"
|
|
5
6
|
---
|
|
6
7
|
<!-- Generated from skills/sw-grill-me/SKILL.md by scripts/build/generate-skills.mjs. Edit the source, then npm run build. -->
|
|
7
8
|
|
|
@@ -86,9 +87,9 @@ while `### Open` has entries.
|
|
|
86
87
|
|
|
87
88
|
## Configuration
|
|
88
89
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
Every project has this skill. `planning.deepInterview: deep` in `.specweave/config.json`
|
|
91
|
+
makes sw-increment run it for every new increment; `critical` (the default) keeps
|
|
92
|
+
sw-increment to at most 5 questions.
|
|
92
93
|
|
|
93
94
|
## Manual path (no CLI)
|
|
94
95
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Hand work to another tool, account or machine and pick it up there, in two words. Use when the user says "hand off", "hand off all", "out of tokens", "switching accounts"
|
|
2
|
+
description: Hand work to another tool, account or machine and pick it up there, in two words. Use when the user says "hand off", "hand off all", "out of tokens", "switching accounts" or "pick up".
|
|
3
3
|
argument-hint: "[--reason \"...\"] [--next \"...\"]"
|
|
4
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
version: "3.0.0"
|
|
5
6
|
---
|
|
6
7
|
<!-- Generated from skills/sw-handoff/SKILL.md by scripts/build/generate-skills.mjs. Edit the source, then npm run build. -->
|
|
7
8
|
|
|
@@ -80,14 +81,17 @@ hooks and the last usage reading.
|
|
|
80
81
|
|
|
81
82
|
Claude Code also warns the model itself near and at the 5-hour limit, with a note that
|
|
82
83
|
starts "[Usage limit approaching" or "[Usage limit reached". "Approaching" is a
|
|
83
|
-
heads-up: mention it in one line and keep working. "Reached" is the handoff moment
|
|
84
|
+
heads-up: mention it in one line and keep working. "Reached" is the handoff moment
|
|
85
|
+
unless auto-handoff is in checkpoint mode (`--mode checkpoint` / `--checkpoint-only`) or
|
|
86
|
+
you are inside SpecWithCode; then mention it in one line and keep working. Otherwise
|
|
84
87
|
finish the current edit, run `specweave handoff --reason "usage limit"` (one command; it
|
|
85
88
|
needs no summary from you) and stop.
|
|
86
89
|
|
|
87
90
|
Between handoffs every hook also saves a local checkpoint under
|
|
88
91
|
`~/.specweave/checkpoints/` (no model, network, push or claim change; `pickup` does
|
|
89
92
|
not apply it). `auto-handoff on --checkpoint-only` keeps only those checkpoints, for
|
|
90
|
-
plans where credits or a proxy keep working past the limit
|
|
93
|
+
plans where credits or a proxy keep working past the limit, and never hands off on a
|
|
94
|
+
usage note. Inside SpecWithCode
|
|
91
95
|
(`SPECWEAVE_STUDIO_THREAD_ID` is set) do not hand off on a usage note: SpecWithCode switches
|
|
92
96
|
the thread to another provider between turns, and a handoff would release its claims.
|
|
93
97
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Plan work as a SpecWeave increment - one spec.md with Problem, Scope, numbered ACs, Approach and Tasks - before writing code. Use for "plan a feature", "new increment", "let's build X".
|
|
3
3
|
argument-hint: "\"<title>\" [--supersedes NNNN]"
|
|
4
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
version: "3.1.0"
|
|
5
6
|
---
|
|
6
7
|
<!-- Generated from skills/sw-increment/SKILL.md by scripts/build/generate-skills.mjs. Edit the source, then npm run build. -->
|
|
7
8
|
|
|
@@ -19,8 +20,7 @@ and one PR.
|
|
|
19
20
|
ACs and tasks to its spec.md instead of opening another.
|
|
20
21
|
- Read the code the change touches before writing Approach. If `GLOSSARY.md` exists,
|
|
21
22
|
write the spec in its terms.
|
|
22
|
-
- Unsure what to build at all, or the user says "grill me": run sw-grill-me first
|
|
23
|
-
(`specweave skills enable grill-me` installs it).
|
|
23
|
+
- Unsure what to build at all, or the user says "grill me": run sw-grill-me first.
|
|
24
24
|
|
|
25
25
|
## Decide
|
|
26
26
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Adversarial review of an increment before it ships, by a fresh context or another model family; every finding cites path:line and is re-verified. Use for "review", "qa", "critique this".
|
|
3
3
|
argument-hint: "[increment-id] [--full]"
|
|
4
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
version: "3.1.0"
|
|
5
6
|
---
|
|
6
7
|
<!-- Generated from skills/sw-review/SKILL.md by scripts/build/generate-skills.mjs. Edit the source, then npm run build. -->
|
|
7
8
|
|
|
@@ -35,9 +36,12 @@ This is also the quality check: its verdict says whether the increment is ready.
|
|
|
35
36
|
restate the implementation) →
|
|
36
37
|
portability (bash-only commands, `\` paths, BOMs, `>>` in PowerShell).
|
|
37
38
|
`--full`: run the three lenses correctness, security and spec compliance separately
|
|
38
|
-
(in parallel if your tool has subagents)
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
(in parallel if your tool has subagents). Each lens returns only a JSON list of
|
|
40
|
+
`{"severity","file","line","summary","verified"}`; merge by deduping on (file,line),
|
|
41
|
+
then re-open every line yourself before it goes in the report.
|
|
42
|
+
4. **Report** in the shape below; `specweave complete` reads its verdict line. Optional
|
|
43
|
+
machine form, `reports/review.json`, nothing gates on it:
|
|
44
|
+
`{"ok":false,"findings":[{"severity":"high","file":"src/a.ts","line":88,"summary":"...","verified":true}]}`.
|
|
41
45
|
5. **Hand back.** Each critical or high finding becomes a task in spec.md
|
|
42
46
|
(`### T-09 Fix empty evidence` + `- AC: AC-02 | Files: ... | Test: ...`) for sw-do, or
|
|
43
47
|
is fixed and re-tested now. Then verify again and close with sw-done.
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$comment": "The one list of SpecWeave skills. Core skills ship in the sw plugin and in every project. Optional skills install into a project only when listed under skills.enabled in .specweave/config.json, or when their detect rule matches and they are not under skills.disabled. Retired skills are removed from projects on update. scripts/build/generate-skills.mjs copies this file to plugins/specweave/skills-catalog.json.",
|
|
3
|
-
"core": [
|
|
3
|
+
"core": [
|
|
4
|
+
"increment",
|
|
5
|
+
"grill-me",
|
|
6
|
+
"do",
|
|
7
|
+
"auto",
|
|
8
|
+
"done",
|
|
9
|
+
"review",
|
|
10
|
+
"handoff"
|
|
11
|
+
],
|
|
4
12
|
"optional": [
|
|
5
|
-
{
|
|
6
|
-
"name": "grill-me",
|
|
7
|
-
"summary": "Interview you in rounds until every decision in a plan is settled",
|
|
8
|
-
"detect": "deep-interview"
|
|
9
|
-
},
|
|
10
13
|
{
|
|
11
14
|
"name": "glossary",
|
|
12
15
|
"summary": "Build GLOSSARY.md: each domain term across business, data, code and UI",
|
|
@@ -28,5 +31,10 @@
|
|
|
28
31
|
"detect": "jev"
|
|
29
32
|
}
|
|
30
33
|
],
|
|
31
|
-
"retired": [
|
|
34
|
+
"retired": [
|
|
35
|
+
"qa",
|
|
36
|
+
"task",
|
|
37
|
+
"brainstorm",
|
|
38
|
+
"team"
|
|
39
|
+
]
|
|
32
40
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Build the shared language - interview the user term by term and write GLOSSARY.md with what each term means in the business, the data, the code and the UI. Use for "glossary", "ubiquitous language".
|
|
3
3
|
argument-hint: "[term...] [--check]"
|
|
4
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
version: "1.0.0"
|
|
5
6
|
---
|
|
6
7
|
<!-- Generated from skills/sw-glossary/SKILL.md by scripts/build/generate-skills.mjs. Edit the source, then npm run build. -->
|
|
7
8
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Use Jev or optional OpenAI Decisions for bounded routing, shell-command risk, text screening and failure triage. Use for "jev", "system one", or "classify this".
|
|
3
3
|
argument-hint: "[doctor|setup|ask|route|task|guard|screen|failure|browse|usage]"
|
|
4
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
version: "3.0.1"
|
|
5
6
|
---
|
|
6
7
|
<!-- Generated from skills/sw-jev/SKILL.md by scripts/build/generate-skills.mjs. Edit the source, then npm run build. -->
|
|
7
8
|
|
|
@@ -90,8 +91,10 @@ curl -sS https://openrouter.ai/api/v1/systemone -H "Content-Type: application/js
|
|
|
90
91
|
ledger task) · `guard "<command>"` · `screen <file>` · `failure <file>` · `ask --state @s.json --questions @q.json`
|
|
91
92
|
· `browse --goal "<goal>" --url "<url>"` (headless, allow-listed domains only, never types text Jev chose, skips
|
|
92
93
|
pay/delete/sign-out controls unless `--allow-sensitive`) · `usage`. Each is `specweave jev <action>`; `--json` for
|
|
93
|
-
machines.
|
|
94
|
-
(`--no-guard-bash` removes
|
|
94
|
+
machines. `specweave jev setup --guard-bash` writes the config flag, the `.specweave/state/jev-guard.enabled` marker
|
|
95
|
+
and a project `PreToolUse` hook (`--no-guard-bash` removes all three); in other tools call `jev guard` yourself.
|
|
96
|
+
Never send Jev code, prose, counting, date maths, another model's free text or a question whose answers you cannot
|
|
97
|
+
enumerate; below `jev.thresholds.route` treat the answer as no answer.
|
|
95
98
|
|
|
96
99
|
## Guard a shell command
|
|
97
100
|
|
|
@@ -108,7 +111,7 @@ arms: `destructive_remote` at confidence ≥ `guardDeny` (0.85); destructiveness
|
|
|
108
111
|
scope; `local_irreversible` at confidence ≥ `guardDeny` *and* destructiveness ≥ `guardWarn` (0.5); or
|
|
109
112
|
p(`local_irreversible`) + p(`destructive_remote`) ≥ `guardDeny` with destructiveness ≥ `guardWarn`. **Warn** when
|
|
110
113
|
destructiveness ≥ `guardWarn` or the scope is `shared_or_remote`, `local_irreversible` or `destructive_remote` (a
|
|
111
|
-
low-confidence remote reading never falls to allow). A denied command is the user's to approve.
|
|
114
|
+
low-confidence remote reading never falls to allow). A denied command is the user's to approve: stop and ask; do not reword it, wrap it or edit config around it.
|
|
112
115
|
|
|
113
116
|
## Screen pulled text, triage a red run
|
|
114
117
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Keep a project's goal, decisions, work items, artifacts and briefs portable across AI tools and accounts. Use for project coordination, "project brief", "what is this project about".
|
|
3
3
|
argument-hint: "[show|init|set|brief|work-add|artifact-add|routine-add]"
|
|
4
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
version: "3.0.0"
|
|
5
6
|
---
|
|
6
7
|
<!-- Generated from skills/sw-project/SKILL.md by scripts/build/generate-skills.mjs. Edit the source, then npm run build. -->
|
|
7
8
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Sync SpecWeave increments with GitHub, Jira or Azure DevOps - push progress, pull or import issues, check token and health, run setup. Use for "sync", "push to GitHub", "import issues".
|
|
3
3
|
argument-hint: "push|pull|status|setup [increment-id]"
|
|
4
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
version: "3.0.0"
|
|
5
6
|
---
|
|
6
7
|
<!-- Generated from skills/sw-sync/SKILL.md by scripts/build/generate-skills.mjs. Edit the source, then npm run build. -->
|
|
7
8
|
|
|
@@ -13,7 +13,7 @@ SpecWeave increments live in `.specweave/increments/NNNN-slug/spec.md`: Problem,
|
|
|
13
13
|
4. When the last task is done or skipped, without asking: `specweave verify`, a fresh-context review (subagent or new session) for anything that ships, `specweave complete NNNN`. PR-shipped work needs `task done` first.
|
|
14
14
|
5. Stopping with tasks left, or switching tools: `specweave handoff --reason "<why>"`.
|
|
15
15
|
|
|
16
|
-
**Handoff.** When the user says "hand off", "out of tokens" or "switching accounts", or "[Usage limit reached" appears (
|
|
16
|
+
**Handoff.** When the user says "hand off", "out of tokens" or "switching accounts", or "[Usage limit reached" appears (not in SpecWithCode or auto-handoff checkpoint mode), run `specweave handoff --reason "<why>"`; tell them to say "pick up" in the other tool. Other usage notes mean keep working; say so. When the user says "pick up", run `specweave pickup`; continue through step 4, passing any given id/title. Take the newest handoff if several; say which.
|
|
17
17
|
|
|
18
18
|
Tasks in spec.md: `### T-01 Title`, then `- AC: AC-01 | Files: src/a.ts, tests/e2e/a.test.ts | Test: npm test -- e2e/a`. ACs derive from done tasks. Notes: `specweave note "<text>"`. Skills: `.agents/skills/sw-*` and `.claude/skills/sw-*`; other tools: `npx vskill install anton-abyzov/specweave/sw-do`.
|
|
19
19
|
<!-- /SECTION -->
|
|
@@ -49,23 +49,7 @@ Umbrella project: nested repos live under `repositories/<org>/<repo>/`; commit i
|
|
|
49
49
|
<!-- SECTION:jev when="jev" -->
|
|
50
50
|
## Jev (System One) — closed-set decisions
|
|
51
51
|
|
|
52
|
-
Jev
|
|
53
|
-
|
|
54
|
-
| Moment | Command |
|
|
55
|
-
|---|---|
|
|
56
|
-
| Before choosing a skill or a subagent model tier | `specweave jev route "<prompt>"` |
|
|
57
|
-
| Picking the tier for one task already in the ledger | `specweave jev task T-NN` — a suggestion you act on; nothing re-routes models behind you |
|
|
58
|
-
| Before an unattended risky shell command | `specweave jev guard "<command>"` — exit 0 allow, 2 warn, 3 deny |
|
|
59
|
-
| Pulled issue / PR / web text, a red test run | `specweave jev screen <file>` · `specweave jev failure <file>` |
|
|
60
|
-
| Any other closed set of your own | `specweave jev ask --state @state.json --questions @q.json` |
|
|
61
|
-
| Mechanical browser navigation (headless only) | `specweave jev browse --goal "<goal>" --url "<url>"` |
|
|
62
|
-
| Is it configured here, what has it cost | `specweave jev doctor` · `specweave jev usage` |
|
|
63
|
-
|
|
64
|
-
Exit 4 means Jev is unavailable — continue without it. Never send Jev code, prose, compaction, counting or date maths, another model's free-text output, or a question whose answers you cannot enumerate. Below `jev.thresholds.route` treat the answer as no answer.
|
|
65
|
-
|
|
66
|
-
Every call sends its state — prompt text, task titles and ACs, the shell command, test-output tails, screened text, page text and element names — to the configured provider under the user's own key; secret-shaped values are masked heuristically first, best-effort only.
|
|
67
|
-
|
|
68
|
-
The Bash guard is per project (`specweave jev setup --guard-bash` writes the config flag, the `.specweave/state/jev-guard.enabled` marker and a project-level `PreToolUse` hook; `--no-guard-bash` removes all three). A regex prefilter skips Jev for `npm test`, `npm run build|test|lint`, `pnpm/yarn test`, `cargo test`, `go test` and plain read commands, so project-defined scripts are trusted by the guard. A denied command is the user's to approve — stop and ask; do not reword it, wrap it or edit config around it.
|
|
52
|
+
Before an unattended risky shell command, run `specweave jev guard "<command>"`: exit 0 allow, 2 warn, 3 deny. Exit 4 means Jev is unavailable; continue without it. A denied command is the user's to approve: stop and ask, never reword or wrap it. Route, task, screen, failure, ask and browse, what each call sends to the provider, and the guard hook and prefilter are in the sw-jev skill.
|
|
69
53
|
<!-- /SECTION -->
|
|
70
54
|
|
|
71
55
|
## Commands
|
|
File without changes
|