specweave 0.28.9 → 0.28.13

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 (58) hide show
  1. package/dist/src/cli/commands/init.d.ts.map +1 -1
  2. package/dist/src/cli/commands/init.js +35 -8
  3. package/dist/src/cli/commands/init.js.map +1 -1
  4. package/dist/src/cli/helpers/init/index.d.ts +2 -0
  5. package/dist/src/cli/helpers/init/index.d.ts.map +1 -1
  6. package/dist/src/cli/helpers/init/index.js +4 -0
  7. package/dist/src/cli/helpers/init/index.js.map +1 -1
  8. package/dist/src/cli/helpers/init/language-selection.d.ts +40 -0
  9. package/dist/src/cli/helpers/init/language-selection.d.ts.map +1 -0
  10. package/dist/src/cli/helpers/init/language-selection.js +281 -0
  11. package/dist/src/cli/helpers/init/language-selection.js.map +1 -0
  12. package/dist/src/cli/helpers/init/repository-setup.d.ts +2 -0
  13. package/dist/src/cli/helpers/init/repository-setup.d.ts.map +1 -1
  14. package/dist/src/cli/helpers/init/repository-setup.js +156 -12
  15. package/dist/src/cli/helpers/init/repository-setup.js.map +1 -1
  16. package/dist/src/cli/helpers/init/translation-config.d.ts +61 -0
  17. package/dist/src/cli/helpers/init/translation-config.d.ts.map +1 -0
  18. package/dist/src/cli/helpers/init/translation-config.js +437 -0
  19. package/dist/src/cli/helpers/init/translation-config.js.map +1 -0
  20. package/dist/src/cli/helpers/init/types.d.ts +33 -0
  21. package/dist/src/cli/helpers/init/types.d.ts.map +1 -1
  22. package/dist/src/core/config/types.d.ts +143 -0
  23. package/dist/src/core/config/types.d.ts.map +1 -1
  24. package/dist/src/core/config/types.js.map +1 -1
  25. package/dist/src/core/repo-structure/repo-id-generator.d.ts +24 -95
  26. package/dist/src/core/repo-structure/repo-id-generator.d.ts.map +1 -1
  27. package/dist/src/core/repo-structure/repo-id-generator.js +31 -223
  28. package/dist/src/core/repo-structure/repo-id-generator.js.map +1 -1
  29. package/dist/src/core/repo-structure/repo-structure-manager.d.ts.map +1 -1
  30. package/dist/src/core/repo-structure/repo-structure-manager.js +12 -46
  31. package/dist/src/core/repo-structure/repo-structure-manager.js.map +1 -1
  32. package/dist/src/sync/sync-coordinator.d.ts +5 -0
  33. package/dist/src/sync/sync-coordinator.d.ts.map +1 -1
  34. package/dist/src/sync/sync-coordinator.js +104 -6
  35. package/dist/src/sync/sync-coordinator.js.map +1 -1
  36. package/dist/src/utils/multi-repo-detector.d.ts +85 -0
  37. package/dist/src/utils/multi-repo-detector.d.ts.map +1 -0
  38. package/dist/src/utils/multi-repo-detector.js +264 -0
  39. package/dist/src/utils/multi-repo-detector.js.map +1 -0
  40. package/package.json +1 -1
  41. package/plugins/specweave/agents/pm/AGENT.md +178 -0
  42. package/plugins/specweave/agents/test-aware-planner/AGENT.md +54 -0
  43. package/plugins/specweave/commands/specweave-increment.md +30 -0
  44. package/plugins/specweave/commands/specweave-save.md +838 -0
  45. package/plugins/specweave/hooks/hooks.json +12 -0
  46. package/plugins/specweave/hooks/lib/update-status-line.sh +9 -1
  47. package/plugins/specweave/hooks/post-increment-completion.sh +4 -3
  48. package/plugins/specweave/hooks/post-increment-planning.sh +95 -51
  49. package/plugins/specweave/hooks/post-metadata-change.sh +18 -4
  50. package/plugins/specweave/hooks/pre-task-completion-edit.sh +355 -0
  51. package/plugins/specweave/lib/hooks/sync-living-docs.js +43 -0
  52. package/plugins/specweave/skills/increment-planner/SKILL.md +252 -2
  53. package/plugins/specweave/skills/spec-generator/SKILL.md +163 -0
  54. package/plugins/specweave/skills/umbrella-repo-detector/SKILL.md +286 -0
  55. package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +18 -0
  56. package/plugins/specweave-infrastructure/skills/hetzner-provisioner/README.md +1 -1
  57. package/plugins/specweave-release/commands/specweave-release-npm.md +14 -22
  58. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +27 -0
@@ -46,6 +46,12 @@ description: Generates comprehensive specifications (spec.md, plan.md, tasks.md
46
46
  ### Target Audience
47
47
 
48
48
  ## User Stories & Acceptance Criteria
49
+
50
+ <!--
51
+ ⚠️ MULTI-PROJECT MODE: If umbrella.enabled=true in config.json,
52
+ user stories MUST be project-scoped! See section below.
53
+ -->
54
+
49
55
  ### US-001: [Title]
50
56
  **As a** [user type]
51
57
  **I want** [goal]
@@ -348,15 +354,172 @@ spec_generator:
348
354
 
349
355
  ---
350
356
 
357
+ ## 🔀 Multi-Project User Story Generation (v0.29.0+)
358
+
359
+ **CRITICAL**: When umbrella/multi-project mode is detected, user stories MUST be generated per-project!
360
+
361
+ ### Detection (MANDATORY FIRST STEP)
362
+
363
+ **Before generating spec.md, ALWAYS check for multi-project mode:**
364
+
365
+ ```bash
366
+ # 1. Check config.json for umbrella mode
367
+ cat .specweave/config.json | jq '.umbrella.enabled'
368
+
369
+ # 2. Check for childRepos configuration
370
+ cat .specweave/config.json | jq '.umbrella.childRepos[]'
371
+
372
+ # 3. Check for project folders in specs/
373
+ ls -la .specweave/docs/internal/specs/
374
+ ```
375
+
376
+ **If ANY of these conditions are TRUE → Multi-project mode ACTIVE:**
377
+ - `umbrella.enabled: true` in config.json
378
+ - `umbrella.childRepos` has entries
379
+ - Multiple project folders exist in `specs/` (e.g., `sw-app-fe/`, `sw-app-be/`, `sw-app-shared/`)
380
+ - User prompt mentions: "3 repos", "frontend repo", "backend API", "shared library"
381
+
382
+ ### Project-Scoped User Story Format (MANDATORY in Multi-Project Mode)
383
+
384
+ **❌ WRONG (Single-Project Format - DO NOT USE in multi-project!):**
385
+ ```markdown
386
+ ## User Stories
387
+
388
+ ### US-001: Thumbnail Upload
389
+ As a content creator, I want to upload thumbnails...
390
+
391
+ ### US-002: CTR Prediction API
392
+ As a system, I want to predict click-through rates...
393
+ ```
394
+
395
+ **✅ CORRECT (Multi-Project Format - ALWAYS USE when umbrella detected!):**
396
+ ```markdown
397
+ ## User Stories by Project
398
+
399
+ ### Frontend (sw-thumbnail-ab-fe)
400
+
401
+ #### US-FE-001: Thumbnail Upload & Comparison (P1)
402
+ **Related Repo**: sw-thumbnail-ab-fe
403
+ **As a** content creator
404
+ **I want** to upload multiple thumbnail variants and compare them side-by-side
405
+ **So that** I can visually evaluate my options before testing
406
+
407
+ **Acceptance Criteria**:
408
+ - [ ] **AC-FE-US1-01**: User can drag-and-drop up to 5 thumbnail images (JPG, PNG, WebP)
409
+ - [ ] **AC-FE-US1-02**: Images are validated for YouTube specs (1280x720 min, <2MB)
410
+ - [ ] **AC-FE-US1-03**: Side-by-side comparison view displays all variants
411
+
412
+ ---
413
+
414
+ ### Backend (sw-thumbnail-ab-be)
415
+
416
+ #### US-BE-001: Thumbnail Analysis API (P1)
417
+ **Related Repo**: sw-thumbnail-ab-be
418
+ **As a** frontend application
419
+ **I want** to call POST /predict-ctr endpoint
420
+ **So that** I can get AI-powered click-through rate predictions
421
+
422
+ **Acceptance Criteria**:
423
+ - [ ] **AC-BE-US1-01**: POST /predict-ctr endpoint accepts thumbnail image
424
+ - [ ] **AC-BE-US1-02**: ML model analyzes: face detection, text readability, color psychology
425
+
426
+ ---
427
+
428
+ ### Shared Library (sw-thumbnail-ab-shared)
429
+
430
+ #### US-SHARED-001: Common Types & Validators (P1)
431
+ **Related Repo**: sw-thumbnail-ab-shared
432
+ **As a** developer in FE or BE repos
433
+ **I want** shared TypeScript types and validators
434
+ **So that** API contracts are consistent across projects
435
+
436
+ **Acceptance Criteria**:
437
+ - [ ] **AC-SHARED-US1-01**: ThumbnailMetadata type exported
438
+ - [ ] **AC-SHARED-US1-02**: Validation schemas for image specs
439
+ ```
440
+
441
+ ### Project Classification Rules
442
+
443
+ When analyzing user descriptions, classify each user story by keywords:
444
+
445
+ | Keywords | Project | Prefix |
446
+ |----------|---------|--------|
447
+ | UI, component, page, form, view, drag-drop, theme, builder, menu display | Frontend | FE |
448
+ | API, endpoint, CRUD, webhook, analytics, database, service, ML model | Backend | BE |
449
+ | types, schemas, validators, utilities, localization, common | Shared | SHARED |
450
+ | iOS, Android, mobile app, push notification | Mobile | MOBILE |
451
+ | Terraform, K8s, Docker, CI/CD, deployment | Infrastructure | INFRA |
452
+
453
+ ### AC-ID Format by Project
454
+
455
+ ```
456
+ AC-{PROJECT}-US{story}-{number}
457
+
458
+ Examples:
459
+ - AC-FE-US1-01 (Frontend, User Story 1, AC #1)
460
+ - AC-BE-US1-01 (Backend, User Story 1, AC #1)
461
+ - AC-SHARED-US1-01 (Shared, User Story 1, AC #1)
462
+ - AC-MOBILE-US1-01 (Mobile, User Story 1, AC #1)
463
+ ```
464
+
465
+ ### tasks.md Must Reference Project-Scoped User Stories
466
+
467
+ ```markdown
468
+ ### T-001: Create Thumbnail Upload Component
469
+ **User Story**: US-FE-001 ← MUST reference project-scoped ID!
470
+ **Satisfies ACs**: AC-FE-US1-01, AC-FE-US1-02
471
+ **Status**: [ ] Not Started
472
+
473
+ ### T-004: Database Schema & Migrations
474
+ **User Story**: US-BE-001, US-BE-002 ← Backend stories only!
475
+ **Satisfies ACs**: AC-BE-US1-01, AC-BE-US2-01
476
+ **Status**: [ ] Not Started
477
+ ```
478
+
479
+ ### Workflow Summary
480
+
481
+ ```
482
+ 1. DETECT multi-project mode (check config.json, folder structure)
483
+
484
+ 2. If multi-project → Group user stories by project (FE/BE/SHARED/MOBILE/INFRA)
485
+
486
+ 3. Generate prefixed user stories: US-FE-001, US-BE-001, US-SHARED-001
487
+
488
+ 4. Generate prefixed ACs: AC-FE-US1-01, AC-BE-US1-01
489
+
490
+ 5. Generate tasks referencing correct project user stories
491
+
492
+ 6. Each project folder gets its own filtered spec
493
+ ```
494
+
495
+ ### Why This Matters
496
+
497
+ Without project-scoped stories:
498
+ - ❌ All issues created in ONE repo (wrong!)
499
+ - ❌ No clarity which team owns what
500
+ - ❌ Tasks reference wrong user stories
501
+ - ❌ GitHub sync broken across repos
502
+
503
+ With project-scoped stories:
504
+ - ✅ Each repo gets only its user stories
505
+ - ✅ Clear ownership per team/repo
506
+ - ✅ GitHub issues in correct repo
507
+ - ✅ Clean separation of concerns
508
+
509
+ ---
510
+
351
511
  ## Related Skills
352
512
 
353
513
  - **Planning workflow**: Guides increment planning (uses Spec Generator internally)
354
514
  - **Context loading**: Loads relevant context for specification generation
355
515
  - **Quality validation**: Validates generated specifications for completeness
516
+ - **multi-project-spec-mapper**: Splits specs into project-specific files
517
+ - **umbrella-repo-detector**: Detects multi-repo architecture
356
518
 
357
519
  ---
358
520
 
359
521
  ## Version History
360
522
 
523
+ - **v2.0.0** (0.29.0): Added multi-project user story generation support
361
524
  - **v1.0.0** (0.8.0): Initial release with flexible template system
362
525
  - Based on: Flexible Spec Generator (V2) - context-aware, non-rigid templates
@@ -0,0 +1,286 @@
1
+ ---
2
+ name: umbrella-repo-detector
3
+ description: Detects multi-repo architecture from user prompts and guides setup. Activates for: multiple repos, 3 repos, frontend repo, backend repo, shared library repo, monorepo services, microservices, separate repos, FE/BE/Shared, multi-repo architecture, independent repos.
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 `/specweave:save` to commit and push changes across all repos at once:
261
+
262
+ ```bash
263
+ # Save all repos with same commit message
264
+ /specweave:save "feat: Add user authentication"
265
+
266
+ # Preview what would happen
267
+ /specweave:save --dry-run
268
+
269
+ # Save specific repos only
270
+ /specweave:save "fix: Bug fixes" --repos frontend,backend
271
+ ```
272
+
273
+ **Features:**
274
+ - Auto-detects repos with changes
275
+ - Sets up remotes if missing (prompts for URL or uses umbrella config)
276
+ - Commits with same message to all repos
277
+ - Pushes to origin
278
+ - Skips repos with no changes
279
+
280
+ ## Important Notes
281
+
282
+ 1. **Each repo is independent** - Own `.specweave/`, own increments, own external tool sync
283
+ 2. **Parent repo is optional** - Can have umbrella config or just independent repos
284
+ 3. **User stories MUST have project prefix** - Never generate generic `US-001` in multi-repo mode
285
+ 4. **Cross-project stories get special handling** - Tagged and linked across repos
286
+ 5. **Use `/specweave:save`** - Single command to save changes across all repos
@@ -1114,3 +1114,21 @@
1114
1114
  [Tue Nov 25 02:03:38 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
1115
1115
  [Tue Nov 25 02:03:39 EST 2025] [GitHub] 🔗 GitHub sync hook fired
1116
1116
  [Tue Nov 25 02:03:39 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
1117
+ [Tue Nov 25 03:33:47 EST 2025] [GitHub] 🔗 GitHub sync hook fired
1118
+ [Tue Nov 25 03:33:47 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
1119
+ [Tue Nov 25 03:33:47 EST 2025] [GitHub] 🔗 GitHub sync hook fired
1120
+ [Tue Nov 25 03:33:47 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
1121
+ [Tue Nov 25 03:33:47 EST 2025] [GitHub] 🔗 GitHub sync hook fired
1122
+ [Tue Nov 25 03:33:47 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
1123
+ [Tue Nov 25 03:36:17 EST 2025] [GitHub] 🔗 GitHub sync hook fired
1124
+ [Tue Nov 25 03:36:17 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
1125
+ [Tue Nov 25 03:36:17 EST 2025] [GitHub] 🔗 GitHub sync hook fired
1126
+ [Tue Nov 25 03:36:17 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
1127
+ [Tue Nov 25 03:36:18 EST 2025] [GitHub] 🔗 GitHub sync hook fired
1128
+ [Tue Nov 25 03:36:18 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
1129
+ [Tue Nov 25 04:01:54 EST 2025] [GitHub] 🔗 GitHub sync hook fired
1130
+ [Tue Nov 25 04:01:54 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
1131
+ [Tue Nov 25 04:01:54 EST 2025] [GitHub] 🔗 GitHub sync hook fired
1132
+ [Tue Nov 25 04:01:54 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
1133
+ [Tue Nov 25 04:01:54 EST 2025] [GitHub] 🔗 GitHub sync hook fired
1134
+ [Tue Nov 25 04:01:54 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
@@ -1,6 +1,6 @@
1
1
  **Name:** hetzner-provisioner
2
2
  **Type:** Infrastructure / DevOps
3
- **Model:** Claude Sonnet 4 (balanced for IaC generation)
3
+ **Model:** Claude Sonnet 4.5 (balanced for IaC generation)
4
4
  **Status:** Planned
5
5
 
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: specweave-release:npm
3
- description: Bump patch version, create git tag, and trigger npm publish via GitHub Actions. Automates the complete release workflow with pre-flight checks, version bumping, tag creation, and GitHub Actions triggering. Use --only flag for direct npm publish (skips git push and GitHub Actions).
3
+ description: Bump patch version, create git tag, and trigger npm publish via GitHub Actions. Automates the complete release workflow with pre-flight checks, version bumping, tag creation, and GitHub Actions triggering. Use --only flag for quick local release (bumps version, builds, publishes to npm directly - NO git push, NO pipeline).
4
4
  ---
5
5
 
6
6
  # /specweave-release:npm - NPM Release Automation
@@ -9,8 +9,8 @@ You are the NPM Release Assistant. Your job is to automate the patch version rel
9
9
 
10
10
  ## Command Modes
11
11
 
12
- **Default mode** (no flags): Push to GitHub → GitHub Actions publishes to npm
13
- **Direct mode** (`--only`): Publish directly to npm (skip GitHub push/Actions)
12
+ **Default mode** (no flags): Bump → Push to GitHub → GitHub Actions publishes to npm
13
+ **Direct mode** (`--only`): Bump → Build → Publish to npm directly (NO git push, NO pipeline)
14
14
 
15
15
  ## Detecting Mode
16
16
 
@@ -186,16 +186,7 @@ npm publish
186
186
  - Publishes to npm registry immediately
187
187
  - No GitHub Actions involvement
188
188
 
189
- ### 6. Push Git Changes (Optional but Recommended)
190
-
191
- ```bash
192
- # Push the version bump commit and tag to GitHub
193
- git push origin develop --follow-tags
194
- ```
195
-
196
- **Note**: This syncs GitHub with npm but does NOT trigger publish workflow (already published).
197
-
198
- ### 7. Report Results (Direct Mode)
189
+ ### 6. Report Results (Direct Mode)
199
190
 
200
191
  Show the user:
201
192
  ```markdown
@@ -203,36 +194,37 @@ Show the user:
203
194
 
204
195
  📦 **Version**: vX.Y.Z
205
196
  🔗 **NPM**: https://www.npmjs.com/package/specweave
206
- 🏷️ **Git Tag**: vX.Y.Z (created locally)
197
+ 🏷️ **Git Tag**: vX.Y.Z (local only)
207
198
 
208
199
  **What happened**:
209
- - ✅ Version bumped and committed
200
+ - ✅ Version bumped and committed locally
210
201
  - ✅ Git tag created locally
211
202
  - ✅ Package built (npm run rebuild)
212
203
  - ✅ Published to npm directly
213
- - Git changes pushed to GitHub
204
+ - ⏸️ Git NOT pushed (use `git push origin develop --follow-tags` later if needed)
214
205
 
215
206
  **Verify**:
216
207
  - Check npm: https://www.npmjs.com/package/specweave
217
208
  - Verify version: `npm view specweave version`
218
209
  - Install globally: `npm install -g specweave@X.Y.Z`
219
210
 
220
- **Note**: Published via direct push (bypassed GitHub Actions)
211
+ **Note**: Local release only. Push to GitHub manually when ready:
212
+ `git push origin develop --follow-tags`
221
213
  ```
222
214
 
223
215
  ## Direct Mode Safety Rules
224
216
 
225
217
  - ✅ ALWAYS rebuild before publishing (`npm run rebuild`)
226
- - ✅ ALWAYS push git changes after successful publish
227
- - ✅ Use `--only` for emergency releases or local testing
218
+ - ✅ Use `--only` for emergency/quick releases or local testing
228
219
  - ✅ Default mode (GitHub Actions) is preferred for regular releases
229
220
  - ✅ Direct mode gives immediate feedback (no CI wait time)
221
+ - ⚠️ Remember to push git changes later to sync GitHub
230
222
 
231
223
  ## Success Criteria (Direct Mode)
232
224
 
233
225
  ✅ Version bumped in package.json
234
- ✅ Git commit created
235
- ✅ Git tag created
226
+ ✅ Git commit created locally
227
+ ✅ Git tag created locally
236
228
  ✅ Package rebuilt
237
229
  ✅ Published to npm directly
238
- Git changes pushed to GitHub (optional but recommended)
230
+ ⏸️ Git NOT pushed (manual sync later)
@@ -1033,3 +1033,30 @@
1033
1033
  [2025-11-25 02:03:39] 🎯 Post-Increment-Completion Hook Triggered
1034
1034
  [2025-11-25 02:03:39] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
1035
1035
  [2025-11-25 02:03:39] Run: npm run build
1036
+ [2025-11-25 03:33:47] 🎯 Post-Increment-Completion Hook Triggered
1037
+ [2025-11-25 03:33:47] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
1038
+ [2025-11-25 03:33:47] Run: npm run build
1039
+ [2025-11-25 03:33:47] 🎯 Post-Increment-Completion Hook Triggered
1040
+ [2025-11-25 03:33:47] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
1041
+ [2025-11-25 03:33:47] Run: npm run build
1042
+ [2025-11-25 03:33:47] 🎯 Post-Increment-Completion Hook Triggered
1043
+ [2025-11-25 03:33:47] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
1044
+ [2025-11-25 03:33:47] Run: npm run build
1045
+ [2025-11-25 03:36:17] 🎯 Post-Increment-Completion Hook Triggered
1046
+ [2025-11-25 03:36:17] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
1047
+ [2025-11-25 03:36:17] Run: npm run build
1048
+ [2025-11-25 03:36:18] 🎯 Post-Increment-Completion Hook Triggered
1049
+ [2025-11-25 03:36:18] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
1050
+ [2025-11-25 03:36:18] Run: npm run build
1051
+ [2025-11-25 03:36:18] 🎯 Post-Increment-Completion Hook Triggered
1052
+ [2025-11-25 03:36:18] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
1053
+ [2025-11-25 03:36:18] Run: npm run build
1054
+ [2025-11-25 04:01:54] 🎯 Post-Increment-Completion Hook Triggered
1055
+ [2025-11-25 04:01:54] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
1056
+ [2025-11-25 04:01:54] Run: npm run build
1057
+ [2025-11-25 04:01:54] 🎯 Post-Increment-Completion Hook Triggered
1058
+ [2025-11-25 04:01:54] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
1059
+ [2025-11-25 04:01:54] Run: npm run build
1060
+ [2025-11-25 04:01:54] 🎯 Post-Increment-Completion Hook Triggered
1061
+ [2025-11-25 04:01:54] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
1062
+ [2025-11-25 04:01:54] Run: npm run build