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.
- package/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js +7 -3
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/helpers/init/external-import.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/external-import.js +8 -5
- package/dist/src/cli/helpers/init/external-import.js.map +1 -1
- package/dist/src/cli/helpers/init/initial-increment-generator.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/initial-increment-generator.js +123 -35
- package/dist/src/cli/helpers/init/initial-increment-generator.js.map +1 -1
- package/dist/src/cli/helpers/init/language-selection.js +1 -1
- package/dist/src/cli/helpers/init/language-selection.js.map +1 -1
- package/dist/src/cli/helpers/init/next-steps.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/next-steps.js +16 -47
- package/dist/src/cli/helpers/init/next-steps.js.map +1 -1
- package/dist/src/cli/helpers/init/repository-setup.js +1 -1
- package/dist/src/cli/helpers/init/repository-setup.js.map +1 -1
- package/dist/src/core/repo-structure/prompt-consolidator.d.ts.map +1 -1
- package/dist/src/core/repo-structure/prompt-consolidator.js +6 -36
- package/dist/src/core/repo-structure/prompt-consolidator.js.map +1 -1
- package/dist/src/core/repo-structure/repo-initializer.d.ts.map +1 -1
- package/dist/src/core/repo-structure/repo-initializer.js +8 -0
- package/dist/src/core/repo-structure/repo-initializer.js.map +1 -1
- package/dist/src/core/sync/bidirectional-engine.d.ts.map +1 -1
- package/dist/src/core/sync/bidirectional-engine.js +3 -1
- package/dist/src/core/sync/bidirectional-engine.js.map +1 -1
- package/dist/src/importers/import-coordinator.d.ts.map +1 -1
- package/dist/src/importers/import-coordinator.js +17 -0
- package/dist/src/importers/import-coordinator.js.map +1 -1
- package/dist/src/init/repo/types.d.ts +1 -1
- package/dist/src/utils/multi-project-detector.d.ts +92 -0
- package/dist/src/utils/multi-project-detector.d.ts.map +1 -0
- package/dist/src/utils/multi-project-detector.js +369 -0
- package/dist/src/utils/multi-project-detector.js.map +1 -0
- package/package.json +1 -1
- package/plugins/specweave/agents/pm/AGENT.md +33 -12
- package/plugins/specweave/commands/specweave-import-external.md +1 -1
- package/plugins/specweave/commands/specweave.md +1 -1
- package/plugins/specweave/skills/increment-planner/SKILL.md +6 -13
- package/plugins/specweave/skills/spec-generator/SKILL.md +6 -11
- package/plugins/specweave-ado/commands/specweave-ado-sync.md +12 -12
- package/plugins/specweave-github/agents/github-manager/AGENT.md +5 -5
- package/plugins/specweave-github/commands/specweave-github-sync.md +12 -12
- package/plugins/specweave-github/commands/specweave-github-update-user-story.md +1 -1
- package/plugins/specweave-github/skills/github-sync/SKILL.md +4 -4
- package/plugins/specweave-jira/commands/specweave-jira-sync.md +11 -11
- package/plugins/specweave-jira/skills/specweave-jira-mapper/SKILL.md +2 -2
- 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`, `
|
|
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:
|
|
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
|
-
| **`
|
|
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
|
|
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
|
|
124
|
+
# Interactive two-way sync (default - both directions)
|
|
125
125
|
/specweave-github:sync 0004
|
|
126
126
|
|
|
127
|
-
# Use specific profile (still
|
|
127
|
+
# Use specific profile (still two-way by default)
|
|
128
128
|
/specweave-github:sync 0004 --profile specweave-dev
|
|
129
129
|
|
|
130
|
-
# Specify time range (
|
|
130
|
+
# Specify time range (two-way)
|
|
131
131
|
/specweave-github:sync 0004 --time-range 1M
|
|
132
132
|
|
|
133
|
-
# Full
|
|
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 (
|
|
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
|
-
🔄
|
|
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:
|
|
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
|
-
✅
|
|
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` -
|
|
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:
|
|
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 -
|
|
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**: **
|
|
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": "
|
|
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,
|
|
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.
|
|
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
|
|
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: `
|
|
34
|
+
**Default: `two-way`** (both directions - recommended)
|
|
35
35
|
|
|
36
|
-
- `--direction
|
|
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:
|
|
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
|
|
189
|
+
**Show two-way sync summary**:
|
|
190
190
|
```
|
|
191
|
-
✅
|
|
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
|
|
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
|
|
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
|
-
**
|
|
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: "
|
|
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:
|
|
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
|
-
|
|
13
|
-
|
|
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
|
-
|
|
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
|
-
|
|
22
|
-
|
|
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 |
|