specweave 1.0.577 → 1.0.579

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 (94) hide show
  1. package/README.md +29 -0
  2. package/bin/specweave.js +1 -0
  3. package/dist/src/cli/commands/auto.d.ts +28 -0
  4. package/dist/src/cli/commands/auto.d.ts.map +1 -1
  5. package/dist/src/cli/commands/auto.js +73 -0
  6. package/dist/src/cli/commands/auto.js.map +1 -1
  7. package/dist/src/cli/commands/create-increment.d.ts +8 -0
  8. package/dist/src/cli/commands/create-increment.d.ts.map +1 -1
  9. package/dist/src/cli/commands/create-increment.js +2 -1
  10. package/dist/src/cli/commands/create-increment.js.map +1 -1
  11. package/dist/src/cli/dispatcher.d.ts +29 -0
  12. package/dist/src/cli/dispatcher.d.ts.map +1 -0
  13. package/dist/src/cli/dispatcher.js +53 -0
  14. package/dist/src/cli/dispatcher.js.map +1 -0
  15. package/dist/src/core/cache/static-context-loader.d.ts +39 -0
  16. package/dist/src/core/cache/static-context-loader.d.ts.map +1 -0
  17. package/dist/src/core/cache/static-context-loader.js +49 -0
  18. package/dist/src/core/cache/static-context-loader.js.map +1 -0
  19. package/dist/src/core/config/types.d.ts +61 -0
  20. package/dist/src/core/config/types.d.ts.map +1 -1
  21. package/dist/src/core/config/types.js +16 -0
  22. package/dist/src/core/config/types.js.map +1 -1
  23. package/dist/src/core/doctor/checkers/configuration-checker.d.ts +1 -0
  24. package/dist/src/core/doctor/checkers/configuration-checker.d.ts.map +1 -1
  25. package/dist/src/core/doctor/checkers/configuration-checker.js +50 -0
  26. package/dist/src/core/doctor/checkers/configuration-checker.js.map +1 -1
  27. package/dist/src/core/hooks/pretooluse-guard.d.ts +37 -0
  28. package/dist/src/core/hooks/pretooluse-guard.d.ts.map +1 -0
  29. package/dist/src/core/hooks/pretooluse-guard.js +64 -0
  30. package/dist/src/core/hooks/pretooluse-guard.js.map +1 -0
  31. package/dist/src/core/increment/template-creator.d.ts +7 -0
  32. package/dist/src/core/increment/template-creator.d.ts.map +1 -1
  33. package/dist/src/core/increment/template-creator.js +2 -1
  34. package/dist/src/core/increment/template-creator.js.map +1 -1
  35. package/dist/src/core/skills/skill-judge.d.ts +56 -0
  36. package/dist/src/core/skills/skill-judge.d.ts.map +1 -1
  37. package/dist/src/core/skills/skill-judge.js +95 -8
  38. package/dist/src/core/skills/skill-judge.js.map +1 -1
  39. package/dist/src/core/team-lead/template-loader.d.ts +19 -0
  40. package/dist/src/core/team-lead/template-loader.d.ts.map +1 -0
  41. package/dist/src/core/team-lead/template-loader.js +33 -0
  42. package/dist/src/core/team-lead/template-loader.js.map +1 -0
  43. package/dist/src/core/telemetry/cache-metrics.d.ts +38 -0
  44. package/dist/src/core/telemetry/cache-metrics.d.ts.map +1 -0
  45. package/dist/src/core/telemetry/cache-metrics.js +65 -0
  46. package/dist/src/core/telemetry/cache-metrics.js.map +1 -0
  47. package/dist/src/core/validators/resource-base.d.ts +29 -0
  48. package/dist/src/core/validators/resource-base.d.ts.map +1 -0
  49. package/dist/src/core/validators/resource-base.js +52 -0
  50. package/dist/src/core/validators/resource-base.js.map +1 -0
  51. package/package.json +1 -1
  52. package/plugins/specweave/.lint/skill-lint.test.ts +91 -0
  53. package/plugins/specweave/.lint/skill-lint.ts +51 -0
  54. package/plugins/specweave/marketplace.json +114 -0
  55. package/plugins/specweave/skills/ado-multi-project/SKILL.md +9 -1
  56. package/plugins/specweave/skills/ado-sync/SKILL.md +16 -1
  57. package/plugins/specweave/skills/analytics/SKILL.md +45 -0
  58. package/plugins/specweave/skills/architect/SKILL.md +5 -19
  59. package/plugins/specweave/skills/auto/SKILL.md +41 -10
  60. package/plugins/specweave/skills/brainstorm/SKILL.md +15 -15
  61. package/plugins/specweave/skills/close-all/SKILL.md +21 -51
  62. package/plugins/specweave/skills/code-reviewer/SKILL.md +114 -57
  63. package/plugins/specweave/skills/do/SKILL.md +14 -5
  64. package/plugins/specweave/skills/done/SKILL.md +36 -1
  65. package/plugins/specweave/skills/github-issue-standard/SKILL.md +8 -224
  66. package/plugins/specweave/skills/github-multi-project/SKILL.md +9 -1
  67. package/plugins/specweave/skills/github-sync/SKILL.md +16 -1
  68. package/plugins/specweave/skills/grill/SKILL.md +56 -9
  69. package/plugins/specweave/skills/help/SKILL.md +32 -4
  70. package/plugins/specweave/skills/increment/SKILL.md +41 -8
  71. package/plugins/specweave/skills/jira-sync/SKILL.md +16 -1
  72. package/plugins/specweave/skills/judge-llm/SKILL.md +46 -14
  73. package/plugins/specweave/skills/multi-project/SKILL.md +370 -0
  74. package/plugins/specweave/skills/plan/SKILL.md +16 -1
  75. package/plugins/specweave/skills/pm/SKILL.md +12 -47
  76. package/plugins/specweave/skills/tdd-cycle/SKILL.md +38 -0
  77. package/plugins/specweave/skills/tdd-green/SKILL.md +16 -1
  78. package/plugins/specweave/skills/tdd-red/SKILL.md +16 -1
  79. package/plugins/specweave/skills/tdd-refactor/SKILL.md +16 -1
  80. package/plugins/specweave/skills/team-build/SKILL.md +16 -462
  81. package/plugins/specweave/skills/team-lead/SKILL.md +59 -44
  82. package/plugins/specweave/skills/team-lead/agents/_protocol.md +88 -0
  83. package/plugins/specweave/skills/team-lead/agents/architect.md +27 -36
  84. package/plugins/specweave/skills/team-lead/agents/backend.md +26 -56
  85. package/plugins/specweave/skills/team-lead/agents/database.md +23 -51
  86. package/plugins/specweave/skills/team-lead/agents/frontend.md +27 -57
  87. package/plugins/specweave/skills/team-lead/agents/pm.md +7 -11
  88. package/plugins/specweave/skills/team-lead/agents/researcher.md +29 -55
  89. package/plugins/specweave/skills/team-lead/agents/reviewer-security.md +43 -59
  90. package/plugins/specweave/skills/team-lead/agents/security.md +22 -48
  91. package/plugins/specweave/skills/team-lead/agents/testing.md +26 -53
  92. package/plugins/specweave/skills/team-merge/SKILL.md +13 -10
  93. package/plugins/specweave/skills/team-lead/agents/reviewer-logic.md +0 -82
  94. package/plugins/specweave/skills/team-lead/agents/reviewer-performance.md +0 -83
@@ -0,0 +1,114 @@
1
+ {
2
+ "$schema": "https://spec-weave.com/schemas/skill-marketplace.v1.json",
3
+ "plugin": "sw",
4
+ "version": "1.1.0",
5
+ "description": "Skill-level marketplace catalog for the specweave plugin. Lists deprecation state, replacement pointers, and alias routing for each skill.",
6
+ "skills": [
7
+ {
8
+ "name": "sw:github-sync",
9
+ "path": "skills/github-sync/SKILL.md",
10
+ "deprecated": true,
11
+ "deprecatedIn": "1.1.0",
12
+ "removalScheduledIn": "1.3.0",
13
+ "replacement": "sw-github:sync-spec",
14
+ "migrationWarning": "sw:github-sync is deprecated. Use sw-github:sync-spec for push/pull operations. Scheduled for removal in v1.3.0."
15
+ },
16
+ {
17
+ "name": "sw:jira-sync",
18
+ "path": "skills/jira-sync/SKILL.md",
19
+ "deprecated": true,
20
+ "deprecatedIn": "1.1.0",
21
+ "removalScheduledIn": "1.3.0",
22
+ "replacement": "sw-jira:push / sw-jira:pull",
23
+ "migrationWarning": "sw:jira-sync is deprecated. Use sw-jira:push (content) or sw-jira:pull (status) instead. Scheduled for removal in v1.3.0."
24
+ },
25
+ {
26
+ "name": "sw:ado-sync",
27
+ "path": "skills/ado-sync/SKILL.md",
28
+ "deprecated": true,
29
+ "deprecatedIn": "1.1.0",
30
+ "removalScheduledIn": "1.3.0",
31
+ "replacement": "sw-ado:push / sw-ado:pull",
32
+ "migrationWarning": "sw:ado-sync is deprecated. Use sw-ado:push (content) or sw-ado:pull (status) instead. Scheduled for removal in v1.3.0."
33
+ },
34
+ {
35
+ "name": "sw:tdd-red",
36
+ "path": "skills/tdd-red/SKILL.md",
37
+ "deprecated": true,
38
+ "deprecatedIn": "1.1.0",
39
+ "removalScheduledIn": "1.3.0",
40
+ "replacement": "sw:tdd-cycle --phase red",
41
+ "alias": {
42
+ "from": "/sw:tdd-red",
43
+ "to": "/sw:tdd-cycle --phase red",
44
+ "migrationWarning": "sw:tdd-red is deprecated. Use sw:tdd-cycle --phase red instead."
45
+ },
46
+ "migrationWarning": "sw:tdd-red is deprecated. Use sw:tdd-cycle --phase red instead. Scheduled for removal in v1.3.0."
47
+ },
48
+ {
49
+ "name": "sw:tdd-green",
50
+ "path": "skills/tdd-green/SKILL.md",
51
+ "deprecated": true,
52
+ "deprecatedIn": "1.1.0",
53
+ "removalScheduledIn": "1.3.0",
54
+ "replacement": "sw:tdd-cycle --phase green",
55
+ "alias": {
56
+ "from": "/sw:tdd-green",
57
+ "to": "/sw:tdd-cycle --phase green",
58
+ "migrationWarning": "sw:tdd-green is deprecated. Use sw:tdd-cycle --phase green instead."
59
+ },
60
+ "migrationWarning": "sw:tdd-green is deprecated. Use sw:tdd-cycle --phase green instead. Scheduled for removal in v1.3.0."
61
+ },
62
+ {
63
+ "name": "sw:tdd-refactor",
64
+ "path": "skills/tdd-refactor/SKILL.md",
65
+ "deprecated": true,
66
+ "deprecatedIn": "1.1.0",
67
+ "removalScheduledIn": "1.3.0",
68
+ "replacement": "sw:tdd-cycle --phase refactor",
69
+ "alias": {
70
+ "from": "/sw:tdd-refactor",
71
+ "to": "/sw:tdd-cycle --phase refactor",
72
+ "migrationWarning": "sw:tdd-refactor is deprecated. Use sw:tdd-cycle --phase refactor instead."
73
+ },
74
+ "migrationWarning": "sw:tdd-refactor is deprecated. Use sw:tdd-cycle --phase refactor instead. Scheduled for removal in v1.3.0."
75
+ },
76
+ {
77
+ "name": "sw:github-issue-standard",
78
+ "path": "skills/github-issue-standard/SKILL.md",
79
+ "deprecated": true,
80
+ "deprecatedIn": "1.1.0",
81
+ "removalScheduledIn": "1.3.0",
82
+ "replacement": ".specweave/docs/internal/specs/github-issue-standard.md",
83
+ "migrationWarning": "sw:github-issue-standard was a documentation standard, not an executable skill. Content moved to .specweave/docs/internal/specs/github-issue-standard.md. For GitHub sync, use sw-github:push. Scheduled for removal in v1.3.0."
84
+ },
85
+ {
86
+ "name": "sw/github-multi-project",
87
+ "path": "skills/github-multi-project/SKILL.md",
88
+ "deprecated": true,
89
+ "deprecatedIn": "1.2.0",
90
+ "removalScheduledIn": "1.3.0",
91
+ "replacement": "sw/multi-project --tool github",
92
+ "alias": {
93
+ "from": "sw/github-multi-project",
94
+ "to": "sw/multi-project --tool github",
95
+ "migrationWarning": "sw/github-multi-project is deprecated. Use sw/multi-project --tool github instead."
96
+ },
97
+ "migrationWarning": "sw/github-multi-project is deprecated. Use sw/multi-project --tool github instead. Scheduled for removal in v1.3.0."
98
+ },
99
+ {
100
+ "name": "sw/ado-multi-project",
101
+ "path": "skills/ado-multi-project/SKILL.md",
102
+ "deprecated": true,
103
+ "deprecatedIn": "1.2.0",
104
+ "removalScheduledIn": "1.3.0",
105
+ "replacement": "sw/multi-project --tool ado",
106
+ "alias": {
107
+ "from": "sw/ado-multi-project",
108
+ "to": "sw/multi-project --tool ado",
109
+ "migrationWarning": "sw/ado-multi-project is deprecated. Use sw/multi-project --tool ado instead."
110
+ },
111
+ "migrationWarning": "sw/ado-multi-project is deprecated. Use sw/multi-project --tool ado instead. Scheduled for removal in v1.3.0."
112
+ }
113
+ ]
114
+ }
@@ -1,11 +1,19 @@
1
1
  ---
2
- description: Organize specs and tasks across multiple Azure DevOps projects with intelligent content-based mapping. Use when working with project-per-team, area-path-based, or team-based ADO architectures. Handles cross-project coordination and folder structure organization.
2
+ description: "[DEPRECATED] Use `sw:multi-project --tool ado` instead. Organizes specs and tasks across multiple Azure DevOps projects. This skill will be removed in SpecWeave v1.3.0."
3
3
  user-invokable: false
4
4
  allowed-tools: Read, Write, Edit, Glob
5
5
  ---
6
6
 
7
7
  # Azure DevOps Multi-Project Skill
8
8
 
9
+ ## Migration
10
+
11
+ > Deprecated. Use: `sw:multi-project --tool ado`
12
+
13
+ This skill has been consolidated into the unified `sw:multi-project` skill. Replace any invocation of `sw:ado-multi-project` with `sw:multi-project --tool ado`. The flag-based skill supports GitHub, Azure DevOps, and Jira under a single interface. See `plugins/specweave/skills/multi-project/SKILL.md`.
14
+
15
+ Scheduled for removal in SpecWeave v1.3.0.
16
+
9
17
  **Purpose**: Organize specs and increments across multiple Azure DevOps projects with intelligent mapping and folder organization.
10
18
 
11
19
  ## What This Skill Does
@@ -1,6 +1,21 @@
1
1
  ---
2
- description: Help and guidance for Azure DevOps synchronization with SpecWeave increments. Use when asking how to set up ADO sync, configure credentials, or troubleshoot integration issues. For actual syncing, use sw-ado:sync command.
2
+ description: "[DEPRECATED] Help and guidance for Azure DevOps synchronization with SpecWeave increments. Use when asking how to set up ADO sync, configure credentials, or troubleshoot integration issues. For actual syncing, use sw-ado:push or sw-ado:pull command."
3
3
  user-invokable: false
4
+ deprecated: true
5
+ ---
6
+
7
+ > ⚠️ DEPRECATED: Use `sw-ado:push` / `sw-ado:pull` instead. This skill will be removed in v1.3.0.
8
+
9
+ ## Migration
10
+
11
+ This skill has been deprecated as part of the Opus 4.7 framework alignment (increment 0669).
12
+
13
+ - **Use instead**: `sw-ado:push` (content SpecWeave→ADO) and `sw-ado:pull` (status ADO→SpecWeave)
14
+ - **Removal**: Scheduled for v1.3.0 (2 minor releases after v1.1.0)
15
+ - **Why**: Consolidated sync logic moved to the `sw-ado:*` command family.
16
+
17
+ For the migration policy, see `.specweave/docs/internal/specs/skill-deprecation-policy.md`.
18
+
4
19
  ---
5
20
 
6
21
  # Azure DevOps Sync Skill
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: sw/analytics
3
+ description: "Analytics and metrics for SpecWeave usage — token consumption, cache efficiency, agent spawn counts."
4
+ allowed-tools: Read, Bash
5
+ ---
6
+
7
+ ## Tool-Use Rationale
8
+
9
+ - **Read**: Load metrics snapshots, increment history, and config to compute analytics.
10
+ - **Bash**: Run `specweave metrics` CLI commands to gather live telemetry data.
11
+
12
+ ## Usage
13
+
14
+ ```
15
+ sw:analytics [--cache-stats] [--spawn-count] [--token-usage]
16
+ ```
17
+
18
+ ## --cache-stats
19
+
20
+ Displays prompt cache hit rates per skill for the current session.
21
+
22
+ **Output format**:
23
+ ```
24
+ Cache Statistics (current session)
25
+ ───────────────────────────────────
26
+ sw/grill hit rate: 78% (1,240 tokens from cache)
27
+ sw/judge-llm hit rate: 65% (980 tokens from cache)
28
+ sw/code-reviewer hit rate: 82% (1,560 tokens from cache)
29
+ ───────────────────────────────────
30
+ Overall: hit rate: 75%
31
+ ```
32
+
33
+ **Requirements**:
34
+ - Cache must be enabled (`cache.staticContextFiles` non-empty in config)
35
+ - Minimum 2 invocations per skill for meaningful hit rate
36
+
37
+ **Enable persistent metrics**: Set `analytics.cacheMetrics.enabled: true` in `.specweave/config.json`.
38
+
39
+ ## --spawn-count
40
+
41
+ Reports agent spawn counts per team session. Use to verify that Opus 4.7 fan-out reduction is working (target: ≤ 50% of pre-1.1.0 baseline).
42
+
43
+ ## --token-usage
44
+
45
+ Reports total token consumption per skill across the session.
@@ -6,26 +6,12 @@ model: opus
6
6
 
7
7
  # Architect
8
8
 
9
- ## STEP 0: Register Skill Chain Marker (MANDATORY - DO THIS FIRST)
9
+ ## Tool-Use Rationale
10
10
 
11
- **Before any other work**, register your invocation so the skill-chain-enforcement-guard allows plan.md writes.
12
-
13
- Extract the increment ID from your args (e.g., "Design architecture for increment 0323-feature-name ...").
14
- Then write the marker file:
15
-
16
- ```bash
17
- mkdir -p .specweave/state
18
- STATE_FILE=".specweave/state/skill-chain-XXXX-name.json"
19
- if [ -f "$STATE_FILE" ]; then
20
- jq '.architect_invoked=true | .architect_invoked_at="'$(date -Iseconds)'"' "$STATE_FILE" > "${STATE_FILE}.tmp" && mv "${STATE_FILE}.tmp" "$STATE_FILE"
21
- else
22
- echo '{"architect_invoked":true,"architect_invoked_at":"'$(date -Iseconds)'"}' > "$STATE_FILE"
23
- fi
24
- ```
25
-
26
- Replace `XXXX-name` with the actual increment ID. **This unblocks the guard for plan.md writes.**
27
-
28
- **If you skip this step, your Write to plan.md will be BLOCKED by the PreToolUse guard.**
11
+ - **Read**: Load the increment's `spec.md`, existing ADRs under `.specweave/docs/internal/architecture/adr/`, and any living-docs referenced by the spec.
12
+ - **Glob**: Discover repo layout, existing services, and interface files that inform component boundaries.
13
+ - **Grep**: Locate existing types, APIs, and data models so the plan builds on reality instead of reinventing.
14
+ - **Write**: Produce `plan.md` and new ADR files where design decisions warrant a record.
29
15
 
30
16
  ## Project Overrides
31
17
 
@@ -28,7 +28,7 @@ sw:auto [INCREMENT_IDS...] [OPTIONS]
28
28
  | Option | Description | Default |
29
29
  |--------|-------------|---------|
30
30
  | `--max-turns N` | Max hook invocations before hard stop | 20 |
31
- | `--simple` | Minimal context mode | false |
31
+ | `--simple-compat` | **Deprecated**. Equivalent to the legacy `--simple` flag. Emits a deprecation warning and will be removed in v1.3.0. | false |
32
32
  | `--dry-run` | Preview without starting | false |
33
33
  | `--all-backlog` | Process all backlog items | false |
34
34
  | `--skip-gates G1,G2` | Pre-approve specific gates | None |
@@ -43,17 +43,48 @@ sw:auto [INCREMENT_IDS...] [OPTIONS]
43
43
  | `--cov <n>` | Code coverage threshold (%) | 80 |
44
44
  | `--cmd "<command>"` | Custom command must pass | None |
45
45
 
46
- ## Simple Mode (`--simple`)
46
+ ## Context-Adaptive Execution (default)
47
47
 
48
- When `simple: true` is set in the session marker, reduce context consumption per iteration:
48
+ `sw:auto` no longer exposes `--simple` as a primary execution path. Every session uses context-adaptive execution:
49
49
 
50
- 1. **Skip spec re-reads** — Do NOT re-read `spec.md` on each task iteration. Read it once at session start, then rely on `tasks.md` alone for task-by-task execution.
51
- 2. **Minimal task context** Read only the current task's section from `tasks.md`, not the entire file. Use line offsets if the file is long.
52
- 3. **No sub-skill loading** Do NOT invoke domain skills (frontend:architect, testing:qa, etc.) during auto execution. Execute tasks directly using code tools.
53
- 4. **Shorter status output** — Skip banners and progress tables between tasks. Just implement, test, mark complete, move on.
54
- 5. **No complexity re-check** — Skip Step 1.5a (team-lead routing check) since the caller already decided the execution mode.
50
+ - On large specs (>40KB), `sw:auto` **automatically reduces context re-reads internally** — no manual `--simple` flag needed. Specs are read once at session start; subsequent iterations rely on `tasks.md` plus diffs.
51
+ - On smaller specs, spec re-reads stay enabled for maximum coherence.
52
+ - Sub-skill loading is decided per-task based on domain signals, not by a global flag.
55
53
 
56
- **When to use**: Primarily for sub-agents in team-lead mode where the team-lead has already loaded specs, assigned tasks, and the agent just needs to execute. Also useful for simple increments with <10 tasks.
54
+ ## Legacy `--simple-compat` (deprecated)
55
+
56
+ The legacy `--simple` minimal-context mode is retained for one minor release as `--simple-compat`.
57
+
58
+ - Emits a deprecation warning on invocation.
59
+ - Will be removed in v1.3.0.
60
+ - Equivalent behaviour (for compatibility with external runbooks):
61
+ 1. Skip spec re-reads — read `spec.md` once at session start, rely on `tasks.md` alone afterward.
62
+ 2. Minimal task context — read only the current task's section from `tasks.md`.
63
+ 3. No sub-skill loading — execute tasks directly using code tools.
64
+ 4. Shorter status output — skip banners and progress tables between tasks.
65
+ 5. No complexity re-check — skip Step 1.5a (team-lead routing check).
66
+
67
+ New callers should rely on the context-adaptive default above instead.
68
+
69
+ ## Tool-Use Rationale
70
+
71
+ - **Read**: Load `.specweave/config.json`, `metadata.json`, `spec.md`, and `tasks.md` to drive the auto loop.
72
+ - **Write/Edit**: Update `auto-mode.json` session marker and flip task/AC status as work completes.
73
+ - **Glob**: Locate active/planned increments and test files during gate evaluation.
74
+ - **Bash**: Run the configured quality gates (tests, build, lint, types, custom commands).
75
+
76
+ ## Native Auto Mode
77
+
78
+ Claude Code ships with a built-in auto mode, toggled with **Shift+Tab**. That native mode runs the agent autonomously without any SpecWeave-specific orchestration.
79
+
80
+ **When to use `sw:auto` vs native auto**:
81
+
82
+ - Use **`sw:auto`** when you need increment-aware gates: spec validation, AC tracking, rubric evaluation, task-level test enforcement, or external sync to GitHub/Jira/ADO.
83
+ - Use **Claude Code native auto (Shift+Tab)** for general-purpose autonomous execution without increment tracking — e.g. quick refactors, research loops, exploration.
84
+
85
+ **One-time advisory**: When invoked in Claude Code, `sw:auto` prints a one-time advisory pointing to Shift+Tab for users who may not need increment gates. The advisory is suppressed after the first acknowledgement.
86
+
87
+ **Opt-out for power users**: Pass `--force-sw-auto` to suppress the advisory permanently.
57
88
 
58
89
  ## Core Loop
59
90
 
@@ -103,7 +134,7 @@ If `pr-based`: create/checkout feature branch before starting work (same logic a
103
134
  ```
104
135
 
105
136
  Map flags to session marker fields:
106
- - `--simple` -> set `"simple": true`
137
+ - `--simple-compat` -> set `"simple": true` (deprecated — emits warning, removed in v1.3.0)
107
138
  - `--tests` -> `{ "type": "tests_pass", "required": true }`
108
139
  - `--build` -> `{ "type": "build_succeeds", "required": true }`
109
140
  - `--e2e` -> `{ "type": "tests_pass", "description": "E2E tests", "required": true }`
@@ -141,7 +141,7 @@ Override defaults: `sw:brainstorm "topic" --criteria "perf,cost,complexity,risk"
141
141
 
142
142
  ## Phase 1: Frame
143
143
 
144
- **Token budget: 400 tokens max.**
144
+ **Token budget: ~1200 tokens max** (raised 3× in SpecWeave 1.1.0; override via `quality.tokenBudgets.frame`).
145
145
 
146
146
  ### 1a. Restate the Problem
147
147
 
@@ -181,7 +181,7 @@ Update state: `"phase": "evaluate"`.
181
181
 
182
182
  ## Phase 2: Diverge
183
183
 
184
- **Token budget: 600 tokens per approach (max 3600 for 6 approaches).**
184
+ **Token budget: ~1800 tokens per approach** (max ~10800 for 6 approaches; raised 3× in SpecWeave 1.1.0; override via `quality.tokenBudgets.diverge`).
185
185
 
186
186
  ### 2a. Lens Selection
187
187
 
@@ -247,7 +247,7 @@ Update state: `"phase": "evaluate"`, populate `"approaches"` array.
247
247
 
248
248
  ## Phase 3: Evaluate
249
249
 
250
- **Token budget: 500 tokens max.**
250
+ **Token budget: ~1500 tokens max** (raised 3× in SpecWeave 1.1.0; override via `quality.tokenBudgets.evaluate`).
251
251
 
252
252
  ### 3a. Comparison Matrix
253
253
 
@@ -295,7 +295,7 @@ Update state: `"selectedApproach": { ... }`.
295
295
 
296
296
  ## Phase 4: Deepen (Deep Mode Only)
297
297
 
298
- **Token budget: 500 tokens max.**
298
+ **Token budget: ~1500 tokens max** (raised 3× in SpecWeave 1.1.0; override via `quality.tokenBudgets.deepen`).
299
299
 
300
300
  This phase only runs when `--depth deep`.
301
301
 
@@ -335,7 +335,7 @@ Update state: `"phase": "output"`.
335
335
 
336
336
  ## Phase 5: Output
337
337
 
338
- **Token budget: 400 tokens max.**
338
+ **Token budget: ~1200 tokens max** (raised 3× in SpecWeave 1.1.0; override via `quality.tokenBudgets.output`).
339
339
 
340
340
  ### 5a. Save Brainstorm Document
341
341
 
@@ -507,19 +507,19 @@ Save to `.specweave/docs/brainstorms/YYYY-MM-DD-{topic-slug}.md`. Structure:
507
507
 
508
508
  ## Token Budgets (Guidelines)
509
509
 
510
- These are targets, not hard limits. Prefer conciseness, but expand when the problem demands it.
510
+ These are targets, not hard limits. Prefer conciseness, but expand when the problem demands it. Override via `quality.tokenBudgets` in `.specweave/config.json`. Budgets were raised 3× in SpecWeave 1.1.0 to take advantage of Opus 4.7's long-horizon coherence — smaller caps forced premature summarization and missed approach trade-offs.
511
511
 
512
512
  | Phase | Target | Hard Max | Notes |
513
513
  |-------|--------|----------|-------|
514
- | Frame | ~400 tokens | 800 | Problem + 5W1H + questions |
515
- | Diverge (per approach) | ~600 tokens | 1000 | Name + summary + steps + trade-offs |
516
- | Diverge (total) | ~3600 tokens | 6000 | 6 approaches max |
517
- | Evaluate | ~500 tokens | 800 | Matrix + recommendation |
518
- | Deepen | ~500 tokens | 1000 | Ladder + analogies + assumptions + pre-mortem |
519
- | Output | ~400 tokens | 600 | Summary + handoff |
520
- | **Quick total** | ~1300 | ~2600 | Frame + 3 approaches + Evaluate |
521
- | **Standard total** | ~3500 | ~5200 | Frame + Diverge + Evaluate + Output |
522
- | **Deep total** | ~5400 | ~9200 | All 5 phases |
514
+ | Frame | ~1200 tokens | 2400 | Problem + 5W1H + questions |
515
+ | Diverge (per approach) | ~1800 tokens | 3000 | Name + summary + steps + trade-offs |
516
+ | Diverge (total) | ~10800 tokens | 18000 | 6 approaches max |
517
+ | Evaluate | ~1500 tokens | 2400 | Matrix + recommendation |
518
+ | Deepen | ~1500 tokens | 3000 | Ladder + analogies + assumptions + pre-mortem |
519
+ | Output | ~1200 tokens | 1800 | Summary + handoff |
520
+ | **Quick total** | ~3900 | ~7800 | Frame + 3 approaches + Evaluate |
521
+ | **Standard total** | ~10500 | ~15600 | Frame + Diverge + Evaluate + Output |
522
+ | **Deep total** | ~16200 | ~27600 | All 5 phases |
523
523
 
524
524
  **When to exceed targets**: Complex problems with many stakeholders, deeply technical domains requiring precise terminology, or when the user explicitly asks for more detail.
525
525
 
@@ -1,80 +1,50 @@
1
1
  ---
2
2
  name: close-all
3
- description: Batch-close all increments at 100% completion. Discovers "ready for review" and "active" increments with all tasks done, then closes each via sw-closer subagent (Claude Code) or sw:done (non-cloud). Use when saying "close all", "close stuck increments", "batch close".
3
+ description: Batch-close all complete increments by delegating each one to `sw:done`. Discovers active/ready-for-review increments with zero pending tasks, then iterates and calls `sw:done` per increment. Use when saying "close all", "close stuck increments", or "batch close".
4
4
  argument-hint: "[--dry-run]"
5
5
  ---
6
6
 
7
7
  # Batch Close All Complete Increments
8
8
 
9
- Close all increments that are at 100% task completion but have not been formally closed via `sw:done`.
9
+ Closes all active increments that have reached 100% task completion by delegating each one to `sw:done`. This skill is a thin batch-discovery loop; all actual closure logic (gates, reports, sync) lives in `sw:done`.
10
10
 
11
11
  ## Step 1: Discover Closeable Increments
12
12
 
13
13
  ```bash
14
- echo "=== Scanning for closeable increments ==="
15
- for meta in $(find .specweave/increments -maxdepth 2 -name "metadata.json" 2>/dev/null | sort); do
14
+ for meta in $(find .specweave/increments -maxdepth 2 -name "metadata.json" | sort); do
16
15
  st=$(jq -r '.status' "$meta" 2>/dev/null)
17
- # Only consider active/in-progress/ready_for_review
18
16
  [ "$st" != "active" ] && [ "$st" != "in-progress" ] && [ "$st" != "ready_for_review" ] && continue
19
- d=$(dirname "$meta")
20
- id=$(basename "$d")
21
- # Check for pending tasks
22
- tasks_file="$d/tasks.md"
23
- [ ! -f "$tasks_file" ] && continue
24
- pending=$(grep -c '\[ \]' "$tasks_file" 2>/dev/null || echo "0")
25
- total=$(grep -c '\[x\]' "$tasks_file" 2>/dev/null || echo "0")
26
- if [ "$pending" -eq 0 ] && [ "$total" -gt 0 ]; then
27
- echo "CLOSEABLE: $id (status: $st, tasks: $total/$total)"
17
+ d=$(dirname "$meta"); id=$(basename "$d"); tasks="$d/tasks.md"
18
+ [ ! -f "$tasks" ] && continue
19
+ pending=$(grep -c '\[ \]' "$tasks" 2>/dev/null || echo 0)
20
+ done_count=$(grep -c '\[x\]' "$tasks" 2>/dev/null || echo 0)
21
+ if [ "$pending" -eq 0 ] && [ "$done_count" -gt 0 ]; then
22
+ echo "CLOSEABLE: $id"
28
23
  fi
29
24
  done
30
25
  ```
31
26
 
32
- If no closeable increments found, report "No increments ready for closure" and stop.
27
+ If no closeable increments are found, report "No increments ready for closure" and stop.
33
28
 
34
- ## Step 2: Check for --dry-run
29
+ ## Step 2: Dry-run
35
30
 
36
- If the user passed `--dry-run`, print the list of closeable increments and stop. Do not close anything.
31
+ If the user passed `--dry-run`, print the discovered list and stop without closing anything.
37
32
 
38
- ## Step 3: Close Each Increment
33
+ ## Step 3: Delegate each to `sw:done`
39
34
 
40
- ### Step 3a: Claude Code (Agent tool available — preferred)
41
-
42
- For each closeable increment, spawn an `sw-closer` subagent in a fresh context:
43
-
44
- ```typescript
45
- Agent({
46
- subagent_type: "sw:sw-closer",
47
- prompt: "Close increment <ID>. Increment path: .specweave/increments/<ID>/",
48
- description: "Close increment <ID>"
49
- })
50
- ```
51
-
52
- **Close sequentially** (one at a time) to respect dependency order and avoid race conditions.
53
-
54
- Wait for each sw-closer to return before spawning the next. If a closer fails, log the failure and continue to the next increment.
55
-
56
- ### Step 3b: Non-cloud fallback (no Agent tool)
57
-
58
- For each closeable increment, invoke closure directly:
35
+ Iterate the discovered list sequentially. For each `<ID>`:
59
36
 
60
37
  ```
61
- Skill({ skill: "sw:done", args: "<increment-id>" })
38
+ Skill({ skill: "sw:done", args: "<ID>" })
62
39
  ```
63
40
 
64
- Non-cloud tools have fresh context per skill invocation, so inline closure works without overflow.
41
+ `sw:done` owns the actual closure workflow: code-review, simplify, grill, judge-llm, PM validation, external sync, and final status transition. Close sequentially to respect dependency order; if `sw:done` fails for an increment, log the failure and continue with the next.
65
42
 
66
43
  ## Step 4: Summary
67
44
 
68
- Print a summary table of results:
45
+ Print a final summary with CLOSED / FAILED counts per increment. Failures are not retried here — the user re-runs `sw:done <ID>` individually once blockers are resolved.
69
46
 
70
- ```
71
- BATCH CLOSURE SUMMARY
72
- ═══════════════════════════════════════════
73
- ID Status Reason
74
- ────────────────────────────── ──────── ──────
75
- 0593-fix-refresh-plugins CLOSED All gates passed
76
- 0589-cli-complete-improvements FAILED Gate 1: grill BLOCKER found
77
- 0587-fix-github-sync-dedup CLOSED All gates passed
78
- ═══════════════════════════════════════════
79
- Closed: 2 | Failed: 1 | Total: 3
80
- ```
47
+ ## Notes
48
+
49
+ - All gate logic lives in `sw:done`. This skill MUST NOT duplicate closure behaviour.
50
+ - Parallel closure is intentionally not supported — race conditions on shared living docs are a real hazard.