specweave 0.28.20 → 0.28.24

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 (47) hide show
  1. package/dist/src/cli/commands/init.d.ts.map +1 -1
  2. package/dist/src/cli/commands/init.js +7 -3
  3. package/dist/src/cli/commands/init.js.map +1 -1
  4. package/dist/src/cli/helpers/init/external-import.d.ts.map +1 -1
  5. package/dist/src/cli/helpers/init/external-import.js +8 -5
  6. package/dist/src/cli/helpers/init/external-import.js.map +1 -1
  7. package/dist/src/cli/helpers/init/initial-increment-generator.d.ts.map +1 -1
  8. package/dist/src/cli/helpers/init/initial-increment-generator.js +123 -35
  9. package/dist/src/cli/helpers/init/initial-increment-generator.js.map +1 -1
  10. package/dist/src/cli/helpers/init/language-selection.js +1 -1
  11. package/dist/src/cli/helpers/init/language-selection.js.map +1 -1
  12. package/dist/src/cli/helpers/init/next-steps.d.ts.map +1 -1
  13. package/dist/src/cli/helpers/init/next-steps.js +16 -47
  14. package/dist/src/cli/helpers/init/next-steps.js.map +1 -1
  15. package/dist/src/cli/helpers/init/repository-setup.js +1 -1
  16. package/dist/src/cli/helpers/init/repository-setup.js.map +1 -1
  17. package/dist/src/core/repo-structure/prompt-consolidator.d.ts.map +1 -1
  18. package/dist/src/core/repo-structure/prompt-consolidator.js +6 -36
  19. package/dist/src/core/repo-structure/prompt-consolidator.js.map +1 -1
  20. package/dist/src/core/repo-structure/repo-initializer.d.ts.map +1 -1
  21. package/dist/src/core/repo-structure/repo-initializer.js +8 -0
  22. package/dist/src/core/repo-structure/repo-initializer.js.map +1 -1
  23. package/dist/src/core/sync/bidirectional-engine.d.ts.map +1 -1
  24. package/dist/src/core/sync/bidirectional-engine.js +3 -1
  25. package/dist/src/core/sync/bidirectional-engine.js.map +1 -1
  26. package/dist/src/importers/import-coordinator.d.ts.map +1 -1
  27. package/dist/src/importers/import-coordinator.js +17 -0
  28. package/dist/src/importers/import-coordinator.js.map +1 -1
  29. package/dist/src/init/repo/types.d.ts +1 -1
  30. package/dist/src/utils/multi-project-detector.d.ts +92 -0
  31. package/dist/src/utils/multi-project-detector.d.ts.map +1 -0
  32. package/dist/src/utils/multi-project-detector.js +369 -0
  33. package/dist/src/utils/multi-project-detector.js.map +1 -0
  34. package/package.json +1 -1
  35. package/plugins/specweave/agents/pm/AGENT.md +33 -12
  36. package/plugins/specweave/commands/specweave-import-external.md +1 -1
  37. package/plugins/specweave/commands/specweave.md +1 -1
  38. package/plugins/specweave/skills/increment-planner/SKILL.md +6 -13
  39. package/plugins/specweave/skills/spec-generator/SKILL.md +6 -11
  40. package/plugins/specweave-ado/commands/specweave-ado-sync.md +12 -12
  41. package/plugins/specweave-github/agents/github-manager/AGENT.md +5 -5
  42. package/plugins/specweave-github/commands/specweave-github-sync.md +12 -12
  43. package/plugins/specweave-github/commands/specweave-github-update-user-story.md +1 -1
  44. package/plugins/specweave-github/skills/github-sync/SKILL.md +4 -4
  45. package/plugins/specweave-jira/commands/specweave-jira-sync.md +11 -11
  46. package/plugins/specweave-jira/skills/specweave-jira-mapper/SKILL.md +2 -2
  47. package/plugins/specweave-release/commands/specweave-release-npm.md +187 -8
@@ -83,7 +83,7 @@ Synchronize the current state of a SpecWeave increment with its GitHub issue acr
83
83
  - `--comment`: Post progress comment (default)
84
84
  - `--labels`: Update issue labels based on status
85
85
  - `--force`: Force sync even if up-to-date
86
- - `--direction`: Sync direction (`to-github`, `from-github`, `bidirectional` - **default: bidirectional**)
86
+ - `--direction`: Sync direction (`to-github`, `from-github`, `two-way` - **default: two-way**)
87
87
  - `--all`: Sync all active increments
88
88
 
89
89
  ### Safety Options
@@ -92,17 +92,17 @@ Synchronize the current state of a SpecWeave increment with its GitHub issue acr
92
92
 
93
93
  ## Sync Direction
94
94
 
95
- **Default: Bidirectional** (two-way sync)
95
+ **Default: Two-way** (both directions)
96
96
 
97
97
  SpecWeave syncs changes in **both directions** by default:
98
98
 
99
99
  | Direction | What It Does | Use When |
100
100
  |-----------|-------------|----------|
101
- | **`bidirectional`** (default) | SpecWeave ↔ GitHub<br>• Pull changes FROM GitHub (status, labels, comments)<br>• Push changes TO GitHub (tasks, progress, metadata) | **Always** (recommended for keeping both systems in sync) |
101
+ | **`two-way`** (default) | SpecWeave ↔ GitHub<br>• Pull changes FROM GitHub (status, labels, comments)<br>• Push changes TO GitHub (tasks, progress, metadata) | **Always** (recommended for keeping both systems in sync) |
102
102
  | `to-github` | SpecWeave → GitHub only<br>• Push increment progress to GitHub<br>• Don't pull GitHub changes back | Read-only GitHub usage, or when GitHub is downstream |
103
103
  | `from-github` | GitHub → SpecWeave only<br>• Pull GitHub issue updates<br>• Don't push SpecWeave changes | Importing GitHub issues, or when SpecWeave is downstream |
104
104
 
105
- **Why Bidirectional?**
105
+ **Why Two-way?**
106
106
  - ✅ Keep both systems synchronized automatically
107
107
  - ✅ GitHub status changes update SpecWeave (closed issue → completed increment)
108
108
  - ✅ SpecWeave task completion updates GitHub (task done → checklist updated)
@@ -121,16 +121,16 @@ SpecWeave syncs changes in **both directions** by default:
121
121
  ## Examples
122
122
 
123
123
  ```bash
124
- # Interactive bidirectional sync (default - two-way)
124
+ # Interactive two-way sync (default - both directions)
125
125
  /specweave-github:sync 0004
126
126
 
127
- # Use specific profile (still bidirectional by default)
127
+ # Use specific profile (still two-way by default)
128
128
  /specweave-github:sync 0004 --profile specweave-dev
129
129
 
130
- # Specify time range (bidirectional)
130
+ # Specify time range (two-way)
131
131
  /specweave-github:sync 0004 --time-range 1M
132
132
 
133
- # Full bidirectional sync with all options
133
+ # Full two-way sync with all options
134
134
  /specweave-github:sync 0004 --profile main --time-range 1M --tasks --labels
135
135
 
136
136
  # One-way sync examples (override default)
@@ -140,7 +140,7 @@ SpecWeave syncs changes in **both directions** by default:
140
140
  # Dry run to preview changes
141
141
  /specweave-github:sync 0004 --dry-run
142
142
 
143
- # Force sync all increments (bidirectional)
143
+ # Force sync all increments (two-way)
144
144
  /specweave-github:sync --all --force
145
145
  ```
146
146
 
@@ -240,12 +240,12 @@ Continue with sync? [Y/n]:
240
240
  If confirmed, sync proceeds with progress updates:
241
241
 
242
242
  ```
243
- 🔄 Bidirectional sync for increment 0004...
243
+ 🔄 Two-way sync for increment 0004...
244
244
 
245
245
  ✓ Profile loaded: specweave-dev
246
246
  ✓ GitHub repository: anton-abyzov/specweave
247
247
  ✓ Rate limit check: PASSED (4,850/5,000 remaining)
248
- ✓ Sync direction: bidirectional (two-way)
248
+ ✓ Sync direction: Two-way (push & pull)
249
249
 
250
250
  Fetching increment state...
251
251
  ✓ Increment loaded: 0004-plugin-architecture
@@ -277,7 +277,7 @@ Syncing FROM GitHub...
277
277
 
278
278
  Rate limit after sync: 4,570/5,000 (91% available)
279
279
 
280
- Bidirectional Sync Complete!
280
+ Two-way Sync Complete!
281
281
 
282
282
  SpecWeave ↔ GitHub synchronized
283
283
  • Pushed: 3 task updates, progress comment
@@ -111,7 +111,7 @@ Progress: 3/6 tasks complete (50%)
111
111
  **Related Commands**:
112
112
  - `/specweave-github:sync-epic FS-031` - Sync entire epic (all user stories)
113
113
  - `/specweave-github:create-issue 0031` - Create issue for increment
114
- - `/specweave-github:sync 0031` - Bidirectional sync for increment
114
+ - `/specweave-github:sync 0031` - Two-way sync for increment
115
115
 
116
116
  ---
117
117
 
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: github-sync
3
- description: Bidirectional synchronization between SpecWeave specs and GitHub Projects (two-way sync by default). Activates ONLY when user asks questions about GitHub integration or needs help configuring GitHub sync. Does NOT activate for slash commands. For syncing, use /specweave-github:sync-spec command instead.
3
+ description: Two-way synchronization between SpecWeave specs and GitHub Projects (push & pull by default). Activates ONLY when user asks questions about GitHub integration or needs help configuring GitHub sync. Does NOT activate for slash commands. For syncing, use /specweave-github:sync-spec command instead.
4
4
  ---
5
5
 
6
- # GitHub Sync - Bidirectional Spec ↔ Project Synchronization
6
+ # GitHub Sync - Two-way Spec ↔ Project Synchronization
7
7
 
8
8
  **Purpose**: Seamlessly synchronize SpecWeave specs with GitHub Projects for team visibility and project management.
9
9
 
10
- **Default Behavior**: **Bidirectional (two-way) sync** - Changes in either system are automatically synchronized
10
+ **Default Behavior**: **Two-way sync** (push & pull) - Changes in either system are automatically synchronized
11
11
 
12
12
  **⚠️ IMPORTANT**: This skill provides HELP and GUIDANCE about GitHub sync. For actual syncing, users should use the `/specweave-github:sync-spec` command directly. This skill should NOT auto-activate when the command is being invoked.
13
13
 
@@ -203,7 +203,7 @@ Configure GitHub sync in `.specweave/config.json`:
203
203
  "specweave-github": {
204
204
  "repo": "owner/repo",
205
205
  "autoSyncSpecs": true,
206
- "syncDirection": "bidirectional",
206
+ "syncDirection": "two-way",
207
207
  "defaultLabels": ["specweave", "spec"],
208
208
  "syncFrequency": "on-change"
209
209
  }
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: specweave-jira:sync
3
- description: Sync SpecWeave increments with JIRA epics/stories. Supports import, export, bidirectional sync, and granular item operations
3
+ description: Sync SpecWeave increments with JIRA epics/stories. Supports import, export, two-way sync, and granular item operations
4
4
  ---
5
5
 
6
6
  # Sync Jira Command
@@ -11,10 +11,10 @@ You are a Jira synchronization expert. Help the user sync between Jira and SpecW
11
11
 
12
12
  ### Epic-Level Operations
13
13
 
14
- **1. Bidirectional Sync (Default - Recommended)**
14
+ **1. Two-way Sync (Default - Recommended)**
15
15
  ```
16
16
  /specweave-jira:sync 0003 # Two-way sync (default)
17
- /specweave-jira:sync 0003 --direction bidirectional # Explicit
17
+ /specweave-jira:sync 0003 --direction two-way # Explicit
18
18
  ```
19
19
 
20
20
  **2. Import Jira Epic as SpecWeave Increment**
@@ -31,9 +31,9 @@ You are a Jira synchronization expert. Help the user sync between Jira and SpecW
31
31
 
32
32
  ### Sync Direction Options
33
33
 
34
- **Default: `bidirectional`** (two-way sync - recommended)
34
+ **Default: `two-way`** (both directions - recommended)
35
35
 
36
- - `--direction bidirectional`: SpecWeave ↔ Jira (default)
36
+ - `--direction two-way`: SpecWeave ↔ Jira (default)
37
37
  - Pull changes FROM Jira (status, priority, comments)
38
38
  - Push changes TO Jira (tasks, progress, metadata)
39
39
 
@@ -175,7 +175,7 @@ When the user runs this command:
175
175
  | Task | SCRUM-7 | Setup provider |
176
176
  ```
177
177
 
178
- ### Example 5: Bidirectional Sync (Default)
178
+ ### Example 5: Two-way Sync (Default)
179
179
  **User**: `/specweave-jira:sync 0003`
180
180
  **You**:
181
181
  - Read increment 0003
@@ -186,9 +186,9 @@ When the user runs this command:
186
186
  - FROM Jira: Status changes, priority updates, comments
187
187
  - FROM SpecWeave: Task completion, progress updates
188
188
 
189
- **Show bidirectional sync summary**:
189
+ **Show two-way sync summary**:
190
190
  ```
191
- Bidirectional Sync Complete: 0003 ↔ Jira
191
+ Two-way Sync Complete: 0003 ↔ Jira
192
192
 
193
193
  FROM Jira:
194
194
  • SCRUM-1: Status changed to In Progress
@@ -204,7 +204,7 @@ Conflicts: None
204
204
  **Handle conflicts if any**:
205
205
  - Show both versions (Jira vs SpecWeave)
206
206
  - Ask user which to keep or how to merge
207
- - Apply resolution bidirectionally
207
+ - Apply resolution in both directions
208
208
 
209
209
  ### Example 6: Status Overview
210
210
  **User**: `/specweave-jira:sync status`
@@ -229,12 +229,12 @@ Conflicts: None
229
229
 
230
230
  ## Related Commands
231
231
 
232
- - `/specweave-github:sync` - Sync to GitHub issues (also bidirectional by default)
232
+ - `/specweave-github:sync` - Sync to GitHub issues (also two-way by default)
233
233
  - `/specweave:increment` - Create new increment
234
234
  - `/specweave:validate` - Validate increment quality
235
235
 
236
236
  ---
237
237
 
238
- **Bidirectional by Default**: All sync operations are two-way unless you explicitly specify `--direction to-jira` or `--direction from-jira`. This keeps both systems synchronized automatically.
238
+ **Two-way by Default**: All sync operations are two-way unless you explicitly specify `--direction to-jira` or `--direction from-jira`. This keeps both systems synchronized automatically.
239
239
 
240
240
  **Granular Control**: Unlike simple epic import/export, this command supports cherry-picking individual stories, bugs, and tasks for maximum flexibility.
@@ -328,7 +328,7 @@ JIRA Epic: PROJ-123
328
328
  ```yaml
329
329
  jira:
330
330
  last_sync: "2025-10-26T16:30:00Z"
331
- sync_direction: "bidirectional"
331
+ sync_direction: "two-way"
332
332
  conflicts_resolved: 2
333
333
  ```
334
334
 
@@ -336,7 +336,7 @@ JIRA Epic: PROJ-123
336
336
  ```
337
337
  ✅ Synced with JIRA!
338
338
 
339
- Direction: Bidirectional
339
+ Direction: Two-way
340
340
  Changes Applied:
341
341
  - SpecWeave → JIRA: 3 updates
342
342
  - JIRA → SpecWeave: 5 updates
@@ -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 quick local release (bumps version, builds, publishes to npm directly - NO git push, NO pipeline).
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). Add --push to --only for complete local release with git sync.
4
4
  ---
5
5
 
6
6
  # /specweave-release:npm - NPM Release Automation
@@ -9,17 +9,30 @@ 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): Bump Push to GitHub → GitHub Actions publishes to npm
13
- **Direct mode** (`--only`): Bump → Build → Publish to npm directly (NO git push, NO pipeline)
12
+ | Command | Flow | Use Case |
13
+ |---------|------|----------|
14
+ | `/specweave-release:npm` | Bump → Push → **CI publishes** | Standard release (CI handles npm) |
15
+ | `/specweave-release:npm --only` | Bump → Build → **Publish locally** → NO push | Quick local release, push later |
16
+ | `/specweave-release:npm --only --push` | Bump → Build → **Publish locally** → Push | Complete local release + git sync |
14
17
 
15
18
  ## Detecting Mode
16
19
 
17
- First, check if the user provided `--only` flag:
18
- - Look at the command invocation (e.g., `/specweave-release:npm --only`)
19
- - Check conversation context for `--only` parameter
20
+ Check flags in the command invocation:
20
21
 
21
- **If `--only` flag detected**: Use DIRECT MODE (skip to section "Direct Mode Workflow")
22
- **If no flag**: Use DEFAULT MODE (continue with steps below)
22
+ ```
23
+ --only → Direct publish to npm (bypass CI)
24
+ --only --push → Direct publish + push to git after
25
+ (no flags) → Default: push to git, CI publishes
26
+ ```
27
+
28
+ **Flag Detection Order:**
29
+ 1. Check for `--only` flag
30
+ 2. If `--only` present, check for `--push` flag
31
+ 3. Route to appropriate workflow section
32
+
33
+ **If `--only --push`**: Use DIRECT MODE WITH PUSH (section "Direct Mode + Push Workflow")
34
+ **If `--only` only**: Use DIRECT MODE (section "Direct Mode Workflow")
35
+ **If no flags**: Use DEFAULT MODE (continue with steps below)
23
36
 
24
37
  ## Your Task
25
38
 
@@ -228,3 +241,169 @@ Show the user:
228
241
  ✅ Package rebuilt
229
242
  ✅ Published to npm directly
230
243
  ⏸️ Git NOT pushed (manual sync later)
244
+
245
+ ---
246
+
247
+ ## DIRECT MODE + PUSH WORKFLOW (--only --push flags)
248
+
249
+ Use this workflow when BOTH `--only` AND `--push` flags are detected. This is the **complete local release** - publishes to npm directly AND pushes to git.
250
+
251
+ **Use case**: You want full control - publish immediately, then sync git. No CI involvement in npm publish.
252
+
253
+ ### 1. Pre-flight Checks
254
+
255
+ ```bash
256
+ # Verify we're on develop branch
257
+ git rev-parse --abbrev-ref HEAD
258
+
259
+ # Check for uncommitted changes
260
+ git status --porcelain
261
+
262
+ # Verify current version
263
+ node -p "require('./package.json').version"
264
+ ```
265
+
266
+ **STOP if**:
267
+ - Not on `develop` branch (ask user to switch)
268
+
269
+ **If uncommitted changes exist → AUTO-COMMIT FIRST (Step 1b)**
270
+
271
+ ### 1b. Auto-Commit Uncommitted Changes (if any)
272
+
273
+ When `--only --push` is used, uncommitted changes should be committed automatically before version bump.
274
+
275
+ **Algorithm to generate commit message:**
276
+
277
+ 1. Run `git status --porcelain` and categorize files:
278
+ - `src/**` → code changes
279
+ - `*.md`, `docs/` → documentation
280
+ - `.specweave/docs/internal/**` → internal docs
281
+ - `plugins/**` → plugin changes
282
+ - `tests/**`, `*.test.ts` → test changes
283
+ - `package*.json`, `*.config.*` → config/deps
284
+
285
+ 2. Determine primary category (most files) and action (add/update/remove):
286
+ - New files (`??`, `A`) → "add"
287
+ - Modified (`M`) → "update"
288
+ - Deleted (`D`) → "remove"
289
+
290
+ 3. Generate concise message: `type: action description`
291
+
292
+ **Examples:**
293
+ - Many ADR renames + docs moves → `chore: reorganize internal docs structure`
294
+ - Plugin command updates → `feat(release): add --push flag to npm release`
295
+ - Mixed code + docs → `chore: update code and documentation`
296
+
297
+ **Execute auto-commit:**
298
+ ```bash
299
+ git add -A
300
+ git commit -m "[generated message]"
301
+ ```
302
+
303
+ Then continue with version bump.
304
+
305
+ ### 2. Bump Patch Version
306
+
307
+ ```bash
308
+ # This creates commit + tag automatically
309
+ npm version patch -m "chore: bump version to %s"
310
+ ```
311
+
312
+ ### 3. Extract New Version
313
+
314
+ ```bash
315
+ # Get the new version
316
+ node -p "require('./package.json').version"
317
+ ```
318
+
319
+ ### 4. Build Package
320
+
321
+ ```bash
322
+ # Build the package before publishing
323
+ npm run rebuild
324
+ ```
325
+
326
+ **Critical**: Must rebuild to ensure dist/ is up-to-date before publishing.
327
+
328
+ ### 5. Publish to NPM Directly
329
+
330
+ ```bash
331
+ # Publish directly to npm (bypasses GitHub Actions)
332
+ npm publish
333
+ ```
334
+
335
+ ### 6. Push to Git (NEW!)
336
+
337
+ ```bash
338
+ # Push commit and tag to sync with remote
339
+ git push origin develop --follow-tags
340
+ ```
341
+
342
+ **What this does**:
343
+ - Syncs your version bump commit to GitHub
344
+ - Pushes the version tag (vX.Y.Z)
345
+ - Does NOT trigger CI npm publish (already published!)
346
+
347
+ ### 7. Report Results (Direct Mode + Push)
348
+
349
+ Show the user:
350
+ ```markdown
351
+ ✅ **Complete local release!**
352
+
353
+ 📦 **Version**: vX.Y.Z
354
+ 🔗 **NPM**: https://www.npmjs.com/package/specweave
355
+ 🏷️ **Git Tag**: https://github.com/anton-abyzov/specweave/releases/tag/vX.Y.Z
356
+
357
+ **What happened**:
358
+ - ✅ Version bumped and committed
359
+ - ✅ Git tag created
360
+ - ✅ Package built (npm run rebuild)
361
+ - ✅ Published to npm directly
362
+ - ✅ Pushed to GitHub (commit + tag)
363
+
364
+ **Verify**:
365
+ - NPM: https://www.npmjs.com/package/specweave
366
+ - Version: `npm view specweave version`
367
+ - GitHub: Check releases page
368
+
369
+ **Note**: This was a direct publish. GitHub Actions will NOT republish
370
+ (the tag already exists, CI skips existing versions).
371
+ ```
372
+
373
+ ## Direct Mode + Push Safety Rules
374
+
375
+ - ✅ ALWAYS rebuild before publishing
376
+ - ✅ Publishes FIRST, then pushes (ensures npm has the version)
377
+ - ✅ If push fails, npm already has the release (safe state)
378
+ - ✅ CI will skip publishing for this version (tag already exists)
379
+ - ⚠️ Use when you need immediate npm availability + git sync
380
+
381
+ ## Success Criteria (Direct Mode + Push)
382
+
383
+ ✅ Version bumped in package.json
384
+ ✅ Git commit created
385
+ ✅ Git tag created
386
+ ✅ Package rebuilt
387
+ ✅ Published to npm directly
388
+ ✅ Pushed to GitHub (commit + tag synced)
389
+
390
+ ---
391
+
392
+ ## Quick Reference
393
+
394
+ ```bash
395
+ # Standard release (CI handles npm publish)
396
+ /specweave-release:npm
397
+
398
+ # Quick local publish, sync git later
399
+ /specweave-release:npm --only
400
+
401
+ # Complete local release (publish + push)
402
+ /specweave-release:npm --only --push
403
+ ```
404
+
405
+ | Scenario | Command | NPM Published By | Git Pushed |
406
+ |----------|---------|------------------|------------|
407
+ | Normal release | (no flags) | GitHub Actions | ✅ Yes |
408
+ | Quick local, push later | `--only` | You (local) | ❌ No |
409
+ | Complete local release | `--only --push` | You (local) | ✅ Yes |