specweave 1.0.261 → 1.0.262

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 (123) hide show
  1. package/.claude-plugin/README.md +0 -2
  2. package/CLAUDE.md +27 -27
  3. package/bin/specweave.js +14 -85
  4. package/dist/dashboard/assets/index-Cv1XUAKk.css +1 -0
  5. package/dist/dashboard/assets/index-DHOztQSu.js +11 -0
  6. package/dist/dashboard/index.html +2 -2
  7. package/dist/src/adapters/README.md +1 -1
  8. package/dist/src/adapters/agents-md-generator.js +1 -1
  9. package/dist/src/adapters/agents-md-generator.js.map +1 -1
  10. package/dist/src/adapters/claude/README.md +8 -8
  11. package/dist/src/adapters/claude/adapter.js +2 -2
  12. package/dist/src/adapters/claude-md-generator.js +2 -2
  13. package/dist/src/adapters/claude-md-generator.js.map +1 -1
  14. package/dist/src/adapters/cursor/README.md +7 -7
  15. package/dist/src/adapters/generic/README.md +2 -2
  16. package/dist/src/cli/commands/create-increment.d.ts +1 -1
  17. package/dist/src/cli/commands/create-increment.js +1 -1
  18. package/dist/src/cli/commands/update.d.ts.map +1 -1
  19. package/dist/src/cli/commands/update.js +64 -1
  20. package/dist/src/cli/commands/update.js.map +1 -1
  21. package/dist/src/cli/helpers/init/api-docs-config.js +7 -7
  22. package/dist/src/cli/helpers/init/api-docs-config.js.map +1 -1
  23. package/dist/src/core/config/types.d.ts +18 -0
  24. package/dist/src/core/config/types.d.ts.map +1 -1
  25. package/dist/src/core/config/types.js +4 -0
  26. package/dist/src/core/config/types.js.map +1 -1
  27. package/dist/src/core/external-tools/external-items-display.d.ts.map +1 -1
  28. package/dist/src/core/external-tools/external-items-display.js +1 -11
  29. package/dist/src/core/external-tools/external-items-display.js.map +1 -1
  30. package/dist/src/core/increment/increment-archiver.js +1 -1
  31. package/dist/src/core/increment/increment-archiver.js.map +1 -1
  32. package/dist/src/core/increment/metadata-manager.js +2 -2
  33. package/dist/src/core/increment/metadata-manager.js.map +1 -1
  34. package/dist/src/core/increment/template-creator.d.ts +1 -1
  35. package/dist/src/core/increment/template-creator.js +4 -4
  36. package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts +2 -2
  37. package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts.map +1 -1
  38. package/dist/src/core/lazy-loading/llm-plugin-detector.js +15 -5
  39. package/dist/src/core/lazy-loading/llm-plugin-detector.js.map +1 -1
  40. package/dist/src/core/living-docs/feature-consistency-validator.js +1 -1
  41. package/dist/src/core/living-docs/feature-consistency-validator.js.map +1 -1
  42. package/dist/src/core/living-docs/scaffolding/scaffold.js +3 -3
  43. package/dist/src/core/notifications/command-integration.d.ts.map +1 -1
  44. package/dist/src/core/notifications/command-integration.js +0 -1
  45. package/dist/src/core/notifications/command-integration.js.map +1 -1
  46. package/dist/src/core/reflection/reflect-handler.js +2 -2
  47. package/dist/src/core/reflection/reflect-handler.js.map +1 -1
  48. package/dist/src/core/validators/ac-presence-validator.d.ts +1 -1
  49. package/dist/src/core/validators/ac-presence-validator.js +3 -3
  50. package/dist/src/core/validators/ac-presence-validator.js.map +1 -1
  51. package/dist/src/dashboard/server/command-runner.d.ts.map +1 -1
  52. package/dist/src/dashboard/server/command-runner.js +2 -2
  53. package/dist/src/dashboard/server/command-runner.js.map +1 -1
  54. package/dist/src/dashboard/server/dashboard-server.d.ts.map +1 -1
  55. package/dist/src/dashboard/server/dashboard-server.js +20 -9
  56. package/dist/src/dashboard/server/dashboard-server.js.map +1 -1
  57. package/dist/src/utils/agents-md-compiler.js +1 -1
  58. package/dist/src/utils/agents-md-compiler.js.map +1 -1
  59. package/dist/src/utils/find-project-root.d.ts +5 -4
  60. package/dist/src/utils/find-project-root.d.ts.map +1 -1
  61. package/dist/src/utils/find-project-root.js +8 -10
  62. package/dist/src/utils/find-project-root.js.map +1 -1
  63. package/dist/src/utils/generate-skills-index.js +3 -3
  64. package/dist/src/utils/notification-constants.js +1 -1
  65. package/dist/src/utils/notification-constants.js.map +1 -1
  66. package/package.json +1 -1
  67. package/plugins/FINAL-AUDIT-RECOMMENDATIONS.md +3 -3
  68. package/plugins/specweave/PLUGIN.md +0 -22
  69. package/plugins/specweave/commands/analytics.md +1 -1
  70. package/plugins/specweave/commands/discrepancies.md +0 -1
  71. package/plugins/specweave/commands/living-docs.md +0 -1
  72. package/plugins/specweave/commands/reconcile.md +1 -1
  73. package/plugins/specweave/hooks/hooks.json +10 -0
  74. package/plugins/specweave/hooks/pre-compact.sh +39 -0
  75. package/plugins/specweave/hooks/stop-sync.sh +23 -1
  76. package/plugins/specweave/hooks/universal/fail-fast-wrapper.sh +4 -0
  77. package/plugins/specweave/hooks/user-prompt-submit.sh +193 -59
  78. package/plugins/specweave/hooks/v2/dispatchers/session-start.sh +7 -0
  79. package/plugins/specweave/hooks/v2/guards/spec-template-enforcement-guard.sh +1 -1
  80. package/plugins/specweave/hooks/v2/handlers/ac-sync-dispatcher.sh +25 -6
  81. package/plugins/specweave/hooks/v2/handlers/universal-auto-create-dispatcher.sh +21 -3
  82. package/plugins/specweave/hooks/v2/lib/check-provider-enabled.sh +52 -0
  83. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js +2 -2
  84. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js.map +1 -1
  85. package/plugins/specweave/skills/do/SKILL.md +1 -1
  86. package/plugins/specweave/skills/done/SKILL.md +1 -1
  87. package/plugins/specweave/skills/framework/SKILL.md +4 -4
  88. package/plugins/specweave/skills/increment/SKILL.md +192 -25
  89. package/plugins/specweave/skills/next/SKILL.md +36 -630
  90. package/plugins/specweave/skills/pm/phases/00-deep-interview.md +2 -2
  91. package/plugins/specweave/skills/progress-sync/SKILL.md +7 -25
  92. package/plugins/specweave/skills/spec-generator/SKILL.md +44 -626
  93. package/plugins/specweave/skills/tdd-green/SKILL.md +10 -798
  94. package/plugins/specweave/skills/tdd-red/SKILL.md +8 -136
  95. package/plugins/specweave/skills/tdd-refactor/SKILL.md +15 -147
  96. package/plugins/specweave-github/hooks/github-auto-create-handler.sh +23 -5
  97. package/src/templates/AGENTS.md.template +11 -11
  98. package/src/templates/CLAUDE.md.template +1 -1
  99. package/dist/dashboard/assets/index-CDl14O5G.css +0 -1
  100. package/dist/dashboard/assets/index-CmqBqnWd.js +0 -11
  101. package/plugins/specweave/commands/api-docs.md +0 -672
  102. package/plugins/specweave/commands/check-hooks.md +0 -241
  103. package/plugins/specweave/commands/embed-acs.md +0 -445
  104. package/plugins/specweave/commands/external.md +0 -145
  105. package/plugins/specweave/commands/import-docs.md +0 -212
  106. package/plugins/specweave/commands/migrate-config.md +0 -104
  107. package/plugins/specweave/commands/notifications.md +0 -94
  108. package/plugins/specweave/commands/plugin-validator.md +0 -429
  109. package/plugins/specweave/commands/revert-wip-limit.md +0 -82
  110. package/plugins/specweave/commands/sync-acs.md +0 -342
  111. package/plugins/specweave/commands/sync-specs.md +0 -339
  112. package/plugins/specweave/commands/sync-tasks.md +0 -255
  113. package/plugins/specweave/commands/update-scope.md +0 -351
  114. package/plugins/specweave/commands/validate-features.md +0 -207
  115. package/plugins/specweave/skills/archive-increments/SKILL.md +0 -209
  116. package/plugins/specweave/skills/code-review/SKILL.md +0 -598
  117. package/plugins/specweave/skills/increment-planner/SKILL.md +0 -238
  118. package/plugins/specweave/skills/increment-work-router/SKILL.md +0 -562
  119. package/plugins/specweave/skills/multi-project-spec-mapper/SKILL.md +0 -423
  120. package/plugins/specweave/skills/pm-closure-validation/SKILL.md +0 -542
  121. package/plugins/specweave/skills/smart-reopen-detector/SKILL.md +0 -245
  122. package/plugins/specweave/skills/tdd-orchestrator/SKILL.md +0 -228
  123. package/plugins/specweave/skills/umbrella-repo-detector/SKILL.md +0 -301
@@ -1,301 +0,0 @@
1
- ---
2
- description: Detects multi-repo architecture patterns (frontend/backend/shared) from user prompts and guides umbrella setup. Use when working with multiple repositories, microservices architecture, or projects with separate FE/BE/Shared libraries. Helps configure SpecWeave for multi-repo coordination.
3
- user-invocable: false
4
- ---
5
-
6
- # Umbrella Multi-Repo Architecture Detector
7
-
8
- ## When This Skill Activates
9
-
10
- Activates when user describes:
11
- - Multiple repos: "3 repos", "frontend repo", "backend repo", "shared library"
12
- - Architecture patterns: "monorepo with services", "microservices", "multi-repo"
13
- - Explicit splits: "FE/BE/Shared", "frontend/backend/common"
14
- - GitHub URLs for multiple repositories
15
-
16
- ## My Role
17
-
18
- When I detect a multi-repo architecture in the user's prompt:
19
-
20
- 1. **Acknowledge the architecture** with detected repos
21
- 2. **Explain project-scoped user stories** (US-FE-*, US-BE-*, US-SHARED-*)
22
- 3. **Guide the init flow** for proper setup
23
- 4. **Route to PM agent** with multi-repo context
24
-
25
- ## Detection Patterns
26
-
27
- | Pattern | Example | Detected As |
28
- |---------|---------|-------------|
29
- | Repo count | "3 repos", "multiple repos" | Multi-repo intent |
30
- | Frontend repo | "Frontend repo", "UI repo", "web app" | Type: frontend, Prefix: FE |
31
- | Backend repo | "Backend API repo", "server", "API" | Type: backend, Prefix: BE |
32
- | Shared repo | "Shared library", "common types" | Type: shared, Prefix: SHARED |
33
- | Mobile repo | "Mobile app", "iOS/Android" | Type: mobile, Prefix: MOBILE |
34
- | Infra repo | "Infrastructure", "Terraform" | Type: infrastructure, Prefix: INFRA |
35
-
36
- ## Project-Scoped User Stories
37
-
38
- When user describes multi-repo, user stories MUST be prefixed:
39
-
40
- ```markdown
41
- ## Instead of (generic):
42
- US-001: User Registration
43
- US-002: Registration API
44
- US-003: Validation Schema
45
-
46
- ## Generate (project-scoped):
47
- US-FE-001: User Registration Form
48
- - Related repo: frontend
49
- - Keywords: form, UI, validation display
50
-
51
- US-BE-001: Registration API Endpoint
52
- - Related repo: backend
53
- - Keywords: API, endpoint, database
54
-
55
- US-SHARED-001: Registration Validation Schema
56
- - Related repo: shared
57
- - Keywords: validator, schema, types
58
- ```
59
-
60
- ## Cross-Cutting User Stories
61
-
62
- For features that span multiple repos, use cross-project tagging:
63
-
64
- ```markdown
65
- US-AUTH-001: OAuth Integration
66
- - Tags: ["cross-project", "frontend", "backend"]
67
- - Creates linked issues in: FE repo, BE repo
68
- - Child stories:
69
- - US-FE-002: OAuth Login Button (frontend)
70
- - US-BE-002: OAuth Token Validation (backend)
71
- ```
72
-
73
- ## Setup Flow Guidance
74
-
75
- When multi-repo detected, guide user through options:
76
-
77
- ### Option 1: Clone from GitHub (Recommended)
78
- ```
79
- You have existing repos? Let's clone them:
80
- 1. Provide GitHub URLs (comma-separated or one per line)
81
- 2. Each repo gets its own .specweave/ configuration
82
- 3. Each repo syncs to its own GitHub issues
83
- ```
84
-
85
- ### Option 2: Create New Repos
86
- ```
87
- Creating fresh repos:
88
- 1. I'll create repos on GitHub for you
89
- 2. Each gets initialized with .specweave/
90
- 3. External tool sync configured per repo
91
- ```
92
-
93
- ### Option 3: Initialize Local Folders
94
- ```
95
- Have local folders already?
96
- 1. Point me to each folder
97
- 2. I'll initialize .specweave/ in each
98
- 3. Configure external tools per repo
99
- ```
100
-
101
- ## Umbrella Repo Structure
102
-
103
- ```
104
- umbrella-project/ # Optional parent repo
105
- ├── .specweave/
106
- │ ├── config.json # umbrella config with childRepos[]
107
- │ └── docs/ # High-level PRD, roadmap only
108
-
109
- ├── my-app-fe/ # Frontend repo (cloned/created)
110
- │ └── .specweave/
111
- │ ├── config.json # sync → my-app-fe GitHub issues
112
- │ └── increments/
113
- │ └── 0001-feature/
114
- │ └── spec.md # Only US-FE-* stories
115
-
116
- ├── my-app-be/ # Backend repo (cloned/created)
117
- │ └── .specweave/
118
- │ └── ... # sync → my-app-be GitHub issues
119
-
120
- └── my-app-shared/ # Shared repo (cloned/created)
121
- └── .specweave/
122
- └── ... # sync → my-app-shared GitHub issues
123
- ```
124
-
125
- ## Project ID Strategy
126
-
127
- **CRITICAL**: The `id` field MUST match your canonical source name - no arbitrary abbreviations!
128
-
129
- | Scenario | ID Source | Example |
130
- |----------|-----------|---------|
131
- | **1:1 Repo Mapping** | Exact repo name | `sw-qr-menu-fe` |
132
- | **JIRA Project** | Project key (lowercase) | `WEBAPP` → `webapp` |
133
- | **ADO Project** | Project name (kebab-case) | `Frontend Team` → `frontend-team` |
134
- | **Area Path** | Last segment (kebab-case) | `Product\Web` → `web` |
135
-
136
- ```
137
- ✅ CORRECT: id matches repo name
138
- id: "sw-qr-menu-fe"
139
- path: "./sw-qr-menu-fe"
140
- githubUrl: "https://github.com/user/sw-qr-menu-fe"
141
-
142
- ❌ WRONG: arbitrary abbreviation
143
- id: "fe" ← What if you have 2 frontend repos?
144
- path: "./sw-qr-menu-fe"
145
- ```
146
-
147
- **Note**: The `prefix` (for user stories like `US-FE-001`) can be short even if `id` is long:
148
- - `id: "sw-qr-menu-fe"` (full repo name)
149
- - `prefix: "FE"` (short, for user story IDs)
150
-
151
- ## Config Example
152
-
153
- **Parent umbrella config** (`.specweave/config.json`):
154
- ```json
155
- {
156
- "umbrella": {
157
- "enabled": true,
158
- "childRepos": [
159
- {
160
- "id": "sw-qr-menu-fe",
161
- "path": "./sw-qr-menu-fe",
162
- "prefix": "FE",
163
- "githubUrl": "https://github.com/myorg/sw-qr-menu-fe"
164
- },
165
- {
166
- "id": "sw-qr-menu-be",
167
- "path": "./sw-qr-menu-be",
168
- "prefix": "BE",
169
- "githubUrl": "https://github.com/myorg/sw-qr-menu-be"
170
- },
171
- {
172
- "id": "sw-qr-menu-shared",
173
- "path": "./sw-qr-menu-shared",
174
- "prefix": "SHARED",
175
- "githubUrl": "https://github.com/myorg/sw-qr-menu-shared"
176
- }
177
- ]
178
- }
179
- }
180
- ```
181
-
182
- **JIRA-based project** (when JIRA is source of truth):
183
- ```json
184
- {
185
- "umbrella": {
186
- "enabled": true,
187
- "childRepos": [
188
- {
189
- "id": "webapp",
190
- "path": "./frontend",
191
- "prefix": "WEBAPP",
192
- "jiraProject": "WEBAPP",
193
- "githubUrl": "https://github.com/myorg/frontend"
194
- }
195
- ]
196
- }
197
- }
198
- ```
199
-
200
- **Child repo config** (`sw-qr-menu-fe/.specweave/config.json`):
201
- ```json
202
- {
203
- "project": {
204
- "name": "QR Menu Frontend",
205
- "prefix": "FE"
206
- },
207
- "sync": {
208
- "activeProfile": "github",
209
- "profiles": {
210
- "github": {
211
- "provider": "github",
212
- "config": {
213
- "owner": "myorg",
214
- "repo": "sw-qr-menu-fe"
215
- }
216
- }
217
- }
218
- }
219
- }
220
- ```
221
-
222
- ## Response Template
223
-
224
- When I detect multi-repo intent, respond:
225
-
226
- ```
227
- I detected a **multi-repo architecture** in your description:
228
-
229
- **Detected Repos:**
230
- - Frontend (prefix: FE) - [matched keywords]
231
- - Backend (prefix: BE) - [matched keywords]
232
- - Shared (prefix: SHARED) - [matched keywords]
233
-
234
- **User Story Format:**
235
- User stories will be project-scoped:
236
- - `US-FE-001`: Frontend stories
237
- - `US-BE-001`: Backend stories
238
- - `US-SHARED-001`: Shared library stories
239
-
240
- **Setup Options:**
241
- 1. **Clone from GitHub** - Provide URLs, I'll clone and initialize each
242
- 2. **Create new repos** - I'll create on GitHub and initialize
243
- 3. **Initialize local folders** - Point to existing folders
244
-
245
- Which would you like to do?
246
- ```
247
-
248
- ## Keywords for Story Routing
249
-
250
- | Keywords | Routes To | Prefix |
251
- |----------|-----------|--------|
252
- | UI, component, page, form, view, theme, drag-drop, builder | Frontend | FE |
253
- | API, endpoint, CRUD, webhook, notification, analytics | Backend | BE |
254
- | schema, validator, types, utilities, localization | Shared | SHARED |
255
- | iOS, Android, mobile, push notification | Mobile | MOBILE |
256
- | Terraform, K8s, Docker, CI/CD | Infrastructure | INFRA |
257
-
258
- ## Saving Changes Across Repos
259
-
260
- Use `/sw:save` to commit and push changes across all repos at once:
261
-
262
- ```bash
263
- # Save all repos with same commit message
264
- /sw:save "feat: Add user authentication"
265
-
266
- # Preview what would happen
267
- /sw:save --dry-run
268
-
269
- # Save specific repos only
270
- /sw:save "fix: Bug fixes" --repos frontend,backend
271
- ```
272
-
273
- **Features:**
274
- - **Auto-discovers nested repos** - Scans `repositories/`, `packages/`, `services/`, `apps/`, `libs/` for `.git` directories (up to 4 levels deep)
275
- - Auto-detects repos with changes
276
- - Sets up remotes if missing (prompts for URL or uses umbrella config)
277
- - Commits with same message to all repos
278
- - Pushes to origin
279
- - Skips repos with no changes
280
-
281
- **Auto-Discovery (No Config Required):**
282
- Even without umbrella config, `/sw:save` automatically finds all nested repos:
283
- ```
284
- my-project/
285
- ├── repositories/
286
- │ ├── frontend/.git # ← Auto-discovered
287
- │ ├── backend/.git # ← Auto-discovered
288
- │ └── shared/.git # ← Auto-discovered
289
- └── .git # ← Parent repo included
290
- ```
291
- All 4 repos will be committed and pushed with a single `/sw:save` command!
292
-
293
- ## Important Notes
294
-
295
- 1. **Each repo is independent** - Own `.specweave/`, own increments, own external tool sync
296
- 2. **Parent repo is optional** - Can have umbrella config or just independent repos
297
- 3. **User stories MUST have project prefix** - Never generate generic `US-001` in multi-repo mode
298
- 4. **Cross-project stories get special handling** - Tagged and linked across repos
299
- 5. **Use `/sw:save`** - Single command to save changes across all repos
300
-
301
-