@bradygaster/squad-cli 0.9.1 → 0.9.2-insider.6
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/README.md +329 -329
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +10 -10
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/config.d.ts +12 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +157 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/consult.d.ts.map +1 -1
- package/dist/cli/commands/consult.js +9 -4
- package/dist/cli/commands/consult.js.map +1 -1
- package/dist/cli/commands/copilot.d.ts.map +1 -1
- package/dist/cli/commands/copilot.js +8 -7
- package/dist/cli/commands/copilot.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +50 -17
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/economy.d.ts.map +1 -1
- package/dist/cli/commands/economy.js +3 -2
- package/dist/cli/commands/economy.js.map +1 -1
- package/dist/cli/commands/export.d.ts.map +1 -1
- package/dist/cli/commands/export.js +22 -16
- package/dist/cli/commands/export.js.map +1 -1
- package/dist/cli/commands/extract.d.ts.map +1 -1
- package/dist/cli/commands/extract.js +14 -10
- package/dist/cli/commands/extract.js.map +1 -1
- package/dist/cli/commands/import.d.ts.map +1 -1
- package/dist/cli/commands/import.js +21 -18
- package/dist/cli/commands/import.js.map +1 -1
- package/dist/cli/commands/init-remote.d.ts.map +1 -1
- package/dist/cli/commands/init-remote.js +7 -6
- package/dist/cli/commands/init-remote.js.map +1 -1
- package/dist/cli/commands/link.d.ts.map +1 -1
- package/dist/cli/commands/link.js +11 -10
- package/dist/cli/commands/link.js.map +1 -1
- package/dist/cli/commands/migrate.d.ts.map +1 -1
- package/dist/cli/commands/migrate.js +19 -18
- package/dist/cli/commands/migrate.js.map +1 -1
- package/dist/cli/commands/personal.d.ts.map +1 -1
- package/dist/cli/commands/personal.js +57 -65
- package/dist/cli/commands/personal.js.map +1 -1
- package/dist/cli/commands/plugin.d.ts.map +1 -1
- package/dist/cli/commands/plugin.js +8 -7
- package/dist/cli/commands/plugin.js.map +1 -1
- package/dist/cli/commands/rc.d.ts.map +1 -1
- package/dist/cli/commands/rc.js +19 -12
- package/dist/cli/commands/rc.js.map +1 -1
- package/dist/cli/commands/schedule.d.ts.map +1 -1
- package/dist/cli/commands/schedule.js +6 -5
- package/dist/cli/commands/schedule.js.map +1 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +18 -11
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/streams.d.ts.map +1 -1
- package/dist/cli/commands/streams.js +3 -2
- package/dist/cli/commands/streams.js.map +1 -1
- package/dist/cli/commands/upstream.d.ts.map +1 -1
- package/dist/cli/commands/upstream.js +23 -19
- package/dist/cli/commands/upstream.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/board.d.ts +22 -0
- package/dist/cli/commands/watch/capabilities/board.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/board.js +121 -0
- package/dist/cli/commands/watch/capabilities/board.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/budget-check.d.ts +29 -0
- package/dist/cli/commands/watch/capabilities/budget-check.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/budget-check.js +38 -0
- package/dist/cli/commands/watch/capabilities/budget-check.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/circuit-breaker.d.ts +52 -0
- package/dist/cli/commands/watch/capabilities/circuit-breaker.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/circuit-breaker.js +152 -0
- package/dist/cli/commands/watch/capabilities/circuit-breaker.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/decision-hygiene.d.ts +14 -0
- package/dist/cli/commands/watch/capabilities/decision-hygiene.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/decision-hygiene.js +72 -0
- package/dist/cli/commands/watch/capabilities/decision-hygiene.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/execute.d.ts +33 -0
- package/dist/cli/commands/watch/capabilities/execute.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/execute.js +156 -0
- package/dist/cli/commands/watch/capabilities/execute.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/health-check.d.ts +29 -0
- package/dist/cli/commands/watch/capabilities/health-check.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/health-check.js +139 -0
- package/dist/cli/commands/watch/capabilities/health-check.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/heartbeat.d.ts +48 -0
- package/dist/cli/commands/watch/capabilities/heartbeat.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/heartbeat.js +115 -0
- package/dist/cli/commands/watch/capabilities/heartbeat.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/index.d.ts +9 -0
- package/dist/cli/commands/watch/capabilities/index.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/index.js +40 -0
- package/dist/cli/commands/watch/capabilities/index.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/lockfile.d.ts +30 -0
- package/dist/cli/commands/watch/capabilities/lockfile.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/lockfile.js +100 -0
- package/dist/cli/commands/watch/capabilities/lockfile.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/machine-capabilities.d.ts +30 -0
- package/dist/cli/commands/watch/capabilities/machine-capabilities.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/machine-capabilities.js +103 -0
- package/dist/cli/commands/watch/capabilities/machine-capabilities.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/monitor-email.d.ts +14 -0
- package/dist/cli/commands/watch/capabilities/monitor-email.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/monitor-email.js +54 -0
- package/dist/cli/commands/watch/capabilities/monitor-email.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/monitor-teams.d.ts +14 -0
- package/dist/cli/commands/watch/capabilities/monitor-teams.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/monitor-teams.js +55 -0
- package/dist/cli/commands/watch/capabilities/monitor-teams.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/post-failure.d.ts +19 -0
- package/dist/cli/commands/watch/capabilities/post-failure.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/post-failure.js +58 -0
- package/dist/cli/commands/watch/capabilities/post-failure.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/priority.d.ts +59 -0
- package/dist/cli/commands/watch/capabilities/priority.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/priority.js +101 -0
- package/dist/cli/commands/watch/capabilities/priority.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/rate-pool.d.ts +67 -0
- package/dist/cli/commands/watch/capabilities/rate-pool.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/rate-pool.js +187 -0
- package/dist/cli/commands/watch/capabilities/rate-pool.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/retro.d.ts +14 -0
- package/dist/cli/commands/watch/capabilities/retro.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/retro.js +81 -0
- package/dist/cli/commands/watch/capabilities/retro.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/self-pull.d.ts +14 -0
- package/dist/cli/commands/watch/capabilities/self-pull.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/self-pull.js +33 -0
- package/dist/cli/commands/watch/capabilities/self-pull.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/stale-reclaim.d.ts +23 -0
- package/dist/cli/commands/watch/capabilities/stale-reclaim.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/stale-reclaim.js +87 -0
- package/dist/cli/commands/watch/capabilities/stale-reclaim.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/two-pass.d.ts +14 -0
- package/dist/cli/commands/watch/capabilities/two-pass.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/two-pass.js +66 -0
- package/dist/cli/commands/watch/capabilities/two-pass.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/wave-dispatch.d.ts +14 -0
- package/dist/cli/commands/watch/capabilities/wave-dispatch.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/wave-dispatch.js +117 -0
- package/dist/cli/commands/watch/capabilities/wave-dispatch.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/webhook-alerts.d.ts +29 -0
- package/dist/cli/commands/watch/capabilities/webhook-alerts.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/webhook-alerts.js +114 -0
- package/dist/cli/commands/watch/capabilities/webhook-alerts.js.map +1 -0
- package/dist/cli/commands/watch/config.d.ts +40 -0
- package/dist/cli/commands/watch/config.d.ts.map +1 -0
- package/dist/cli/commands/watch/config.js +129 -0
- package/dist/cli/commands/watch/config.js.map +1 -0
- package/dist/cli/commands/watch/index.d.ts +109 -0
- package/dist/cli/commands/watch/index.d.ts.map +1 -0
- package/dist/cli/commands/watch/index.js +757 -0
- package/dist/cli/commands/watch/index.js.map +1 -0
- package/dist/cli/commands/watch/registry.d.ts +19 -0
- package/dist/cli/commands/watch/registry.d.ts.map +1 -0
- package/dist/cli/commands/watch/registry.js +28 -0
- package/dist/cli/commands/watch/registry.js.map +1 -0
- package/dist/cli/commands/watch/types.d.ts +57 -0
- package/dist/cli/commands/watch/types.d.ts.map +1 -0
- package/dist/cli/commands/watch/types.js +8 -0
- package/dist/cli/commands/watch/types.js.map +1 -0
- package/dist/cli/core/cast.d.ts.map +1 -1
- package/dist/cli/core/cast.js +15 -19
- package/dist/cli/core/cast.js.map +1 -1
- package/dist/cli/core/detect-squad-dir.d.ts.map +1 -1
- package/dist/cli/core/detect-squad-dir.js +12 -10
- package/dist/cli/core/detect-squad-dir.js.map +1 -1
- package/dist/cli/core/email-scrub.d.ts.map +1 -1
- package/dist/cli/core/email-scrub.js +12 -11
- package/dist/cli/core/email-scrub.js.map +1 -1
- package/dist/cli/core/gh-cli.d.ts +13 -0
- package/dist/cli/core/gh-cli.d.ts.map +1 -1
- package/dist/cli/core/gh-cli.js +24 -0
- package/dist/cli/core/gh-cli.js.map +1 -1
- package/dist/cli/core/init.d.ts +2 -0
- package/dist/cli/core/init.d.ts.map +1 -1
- package/dist/cli/core/init.js +22 -5
- package/dist/cli/core/init.js.map +1 -1
- package/dist/cli/core/migrate-directory.d.ts.map +1 -1
- package/dist/cli/core/migrate-directory.js +14 -13
- package/dist/cli/core/migrate-directory.js.map +1 -1
- package/dist/cli/core/migrations.d.ts.map +1 -1
- package/dist/cli/core/migrations.js +22 -8
- package/dist/cli/core/migrations.js.map +1 -1
- package/dist/cli/core/nap.d.ts.map +1 -1
- package/dist/cli/core/nap.js +116 -49
- package/dist/cli/core/nap.js.map +1 -1
- package/dist/cli/core/project-type.d.ts.map +1 -1
- package/dist/cli/core/project-type.js +11 -10
- package/dist/cli/core/project-type.js.map +1 -1
- package/dist/cli/core/team-md.d.ts.map +1 -1
- package/dist/cli/core/team-md.js +43 -38
- package/dist/cli/core/team-md.js.map +1 -1
- package/dist/cli/core/templates.d.ts.map +1 -1
- package/dist/cli/core/templates.js +4 -3
- package/dist/cli/core/templates.js.map +1 -1
- package/dist/cli/core/upgrade.d.ts.map +1 -1
- package/dist/cli/core/upgrade.js +68 -55
- package/dist/cli/core/upgrade.js.map +1 -1
- package/dist/cli/core/version.d.ts.map +1 -1
- package/dist/cli/core/version.js +8 -7
- package/dist/cli/core/version.js.map +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/self-update.d.ts.map +1 -1
- package/dist/cli/self-update.js +7 -4
- package/dist/cli/self-update.js.map +1 -1
- package/dist/cli/shell/agent-name-parser.d.ts +16 -0
- package/dist/cli/shell/agent-name-parser.d.ts.map +1 -0
- package/dist/cli/shell/agent-name-parser.js +54 -0
- package/dist/cli/shell/agent-name-parser.js.map +1 -0
- package/dist/cli/shell/commands.d.ts.map +1 -1
- package/dist/cli/shell/commands.js +4 -3
- package/dist/cli/shell/commands.js.map +1 -1
- package/dist/cli/shell/coordinator.d.ts +4 -1
- package/dist/cli/shell/coordinator.d.ts.map +1 -1
- package/dist/cli/shell/coordinator.js +29 -26
- package/dist/cli/shell/coordinator.js.map +1 -1
- package/dist/cli/shell/index.d.ts.map +1 -1
- package/dist/cli/shell/index.js +33 -35
- package/dist/cli/shell/index.js.map +1 -1
- package/dist/cli/shell/lifecycle.d.ts +13 -2
- package/dist/cli/shell/lifecycle.d.ts.map +1 -1
- package/dist/cli/shell/lifecycle.js +26 -13
- package/dist/cli/shell/lifecycle.js.map +1 -1
- package/dist/cli/shell/session-store.d.ts.map +1 -1
- package/dist/cli/shell/session-store.js +16 -12
- package/dist/cli/shell/session-store.js.map +1 -1
- package/dist/cli/shell/spawn.d.ts +4 -1
- package/dist/cli/shell/spawn.d.ts.map +1 -1
- package/dist/cli/shell/spawn.js +28 -10
- package/dist/cli/shell/spawn.js.map +1 -1
- package/dist/cli-entry.js +136 -12
- package/dist/cli-entry.js.map +1 -1
- package/package.json +8 -4
- package/scripts/patch-esm-imports.mjs +105 -105
- package/scripts/patch-ink-rendering.mjs +115 -115
- package/templates/casting/Futurama.json +9 -9
- package/templates/casting-history.json +4 -4
- package/templates/casting-policy.json +37 -37
- package/templates/casting-reference.md +104 -104
- package/templates/casting-registry.json +3 -3
- package/templates/ceremonies.md +41 -41
- package/templates/charter.md +53 -53
- package/templates/constraint-tracking.md +38 -38
- package/templates/cooperative-rate-limiting.md +229 -229
- package/templates/copilot-instructions.md +46 -46
- package/templates/history.md +10 -10
- package/templates/identity/now.md +9 -9
- package/templates/identity/wisdom.md +15 -15
- package/templates/issue-lifecycle.md +412 -412
- package/templates/keda-scaler.md +164 -164
- package/templates/machine-capabilities.md +74 -74
- package/templates/mcp-config.md +90 -90
- package/templates/multi-agent-format.md +28 -28
- package/templates/orchestration-log.md +27 -27
- package/templates/plugin-marketplace.md +49 -49
- package/templates/ralph-circuit-breaker.md +313 -313
- package/templates/raw-agent-output.md +37 -37
- package/templates/roster.md +60 -60
- package/templates/routing.md +39 -39
- package/templates/run-output.md +50 -50
- package/templates/scribe-charter.md +123 -119
- package/templates/skill.md +24 -24
- package/templates/skills/agent-collaboration/SKILL.md +42 -42
- package/templates/skills/agent-conduct/SKILL.md +24 -24
- package/templates/skills/architectural-proposals/SKILL.md +151 -151
- package/templates/skills/ci-validation-gates/SKILL.md +84 -84
- package/templates/skills/cli-wiring/SKILL.md +47 -47
- package/templates/skills/client-compatibility/SKILL.md +89 -89
- package/templates/skills/cross-machine-coordination/SKILL.md +434 -0
- package/templates/skills/cross-squad/SKILL.md +114 -114
- package/templates/skills/distributed-mesh/SKILL.md +287 -287
- package/templates/skills/distributed-mesh/mesh.json.example +30 -30
- package/templates/skills/distributed-mesh/sync-mesh.ps1 +111 -111
- package/templates/skills/distributed-mesh/sync-mesh.sh +104 -104
- package/templates/skills/docs-standards/SKILL.md +71 -71
- package/templates/skills/economy-mode/SKILL.md +114 -114
- package/templates/skills/error-recovery/SKILL.md +99 -0
- package/templates/skills/external-comms/SKILL.md +329 -329
- package/templates/skills/gh-auth-isolation/SKILL.md +183 -183
- package/templates/skills/git-workflow/SKILL.md +204 -204
- package/templates/skills/github-multi-account/SKILL.md +95 -95
- package/templates/skills/history-hygiene/SKILL.md +36 -36
- package/templates/skills/humanizer/SKILL.md +105 -105
- package/templates/skills/init-mode/SKILL.md +102 -102
- package/templates/skills/iterative-retrieval/SKILL.md +165 -0
- package/templates/skills/model-selection/SKILL.md +117 -117
- package/templates/skills/nap/SKILL.md +24 -24
- package/templates/skills/notification-routing/SKILL.md +105 -0
- package/templates/skills/personal-squad/SKILL.md +57 -57
- package/templates/skills/pr-screenshots/SKILL.md +149 -0
- package/templates/skills/ralph-two-pass-scan/SKILL.md +35 -0
- package/templates/skills/reflect/SKILL.md +229 -0
- package/templates/skills/release-process/SKILL.md +131 -423
- package/templates/skills/reskill/SKILL.md +92 -92
- package/templates/skills/retro-enforcement/SKILL.md +148 -0
- package/templates/skills/reviewer-protocol/SKILL.md +79 -79
- package/templates/skills/secret-handling/SKILL.md +200 -200
- package/templates/skills/session-recovery/SKILL.md +155 -155
- package/templates/skills/squad-conventions/SKILL.md +69 -69
- package/templates/skills/test-discipline/SKILL.md +37 -37
- package/templates/skills/tiered-memory/SKILL.md +234 -0
- package/templates/skills/windows-compatibility/SKILL.md +98 -74
- package/templates/{squad.agent.md → squad.agent.md.template} +1316 -1287
- package/templates/workflows/squad-ci.yml +24 -24
- package/templates/workflows/squad-docs.yml +54 -54
- package/templates/workflows/squad-heartbeat.yml +0 -4
- package/templates/workflows/squad-insider-release.yml +61 -61
- package/templates/workflows/squad-issue-assign.yml +161 -161
- package/templates/workflows/squad-label-enforce.yml +181 -181
- package/templates/workflows/squad-preview.yml +55 -55
- package/templates/workflows/squad-promote.yml +120 -120
- package/templates/workflows/squad-release.yml +77 -77
- package/templates/workflows/squad-triage.yml +260 -260
- package/templates/workflows/sync-squad-labels.yml +169 -169
- package/dist/cli/commands/watch.d.ts +0 -18
- package/dist/cli/commands/watch.d.ts.map +0 -1
- package/dist/cli/commands/watch.js +0 -306
- package/dist/cli/commands/watch.js.map +0 -1
|
@@ -1,423 +1,131 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
**
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
4.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
#
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
git tag -a "v$VERSION" -m "Release v$VERSION"
|
|
133
|
-
|
|
134
|
-
# Push commit and tag
|
|
135
|
-
git push origin main
|
|
136
|
-
git push origin "v$VERSION"
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
**Checkpoint:** Tag created and pushed. Verify with `git tag -l "v$VERSION"`.
|
|
140
|
-
|
|
141
|
-
### Step 3: Create GitHub Release
|
|
142
|
-
|
|
143
|
-
**CRITICAL:** Release must be **published**, NOT draft. Draft releases don't trigger `publish.yml` workflow.
|
|
144
|
-
|
|
145
|
-
```bash
|
|
146
|
-
# Create GitHub Release (NOT draft)
|
|
147
|
-
gh release create "v$VERSION" \
|
|
148
|
-
--title "v$VERSION" \
|
|
149
|
-
--notes "Release notes go here" \
|
|
150
|
-
--latest
|
|
151
|
-
|
|
152
|
-
# Verify release is PUBLISHED (not draft)
|
|
153
|
-
gh release view "v$VERSION"
|
|
154
|
-
# Output should NOT contain "(draft)"
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
**If output contains `(draft)`:** STOP. Delete the release and recreate without `--draft` flag.
|
|
158
|
-
|
|
159
|
-
```bash
|
|
160
|
-
# If you accidentally created a draft, fix it:
|
|
161
|
-
gh release edit "v$VERSION" --draft=false
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
**Checkpoint:** Release is published (NOT draft). The `release: published` event fired and triggered `publish.yml`.
|
|
165
|
-
|
|
166
|
-
### Step 4: Monitor Workflow
|
|
167
|
-
|
|
168
|
-
The `publish.yml` workflow should start automatically within 10 seconds of release creation.
|
|
169
|
-
|
|
170
|
-
```bash
|
|
171
|
-
# Watch workflow runs
|
|
172
|
-
gh run list --workflow=publish.yml --limit 1
|
|
173
|
-
|
|
174
|
-
# Get detailed status
|
|
175
|
-
gh run view --log
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
**Expected flow:**
|
|
179
|
-
1. `publish-sdk` job runs → publishes `@bradygaster/squad-sdk`
|
|
180
|
-
2. Verify step runs with retry loop (up to 5 attempts, 15s interval) to confirm SDK on npm registry
|
|
181
|
-
3. `publish-cli` job runs → publishes `@bradygaster/squad-cli`
|
|
182
|
-
4. Verify step runs with retry loop to confirm CLI on npm registry
|
|
183
|
-
|
|
184
|
-
**If workflow fails:** Check the logs. Common issues:
|
|
185
|
-
- EOTP error = wrong NPM_TOKEN type (use Automation token)
|
|
186
|
-
- Verify step timeout = npm propagation delay (retry loop should handle this, but propagation can take up to 2 minutes in rare cases)
|
|
187
|
-
- Version mismatch = package.json version doesn't match tag
|
|
188
|
-
|
|
189
|
-
**Checkpoint:** Both jobs succeeded. Workflow shows green checkmarks.
|
|
190
|
-
|
|
191
|
-
### Step 5: Verify npm Publication
|
|
192
|
-
|
|
193
|
-
Manually verify both packages are on npm with correct `latest` dist-tag.
|
|
194
|
-
|
|
195
|
-
```bash
|
|
196
|
-
# Check SDK
|
|
197
|
-
npm view @bradygaster/squad-sdk version
|
|
198
|
-
# Output: 0.8.22
|
|
199
|
-
|
|
200
|
-
npm dist-tag ls @bradygaster/squad-sdk
|
|
201
|
-
# Output should show: latest: 0.8.22
|
|
202
|
-
|
|
203
|
-
# Check CLI
|
|
204
|
-
npm view @bradygaster/squad-cli version
|
|
205
|
-
# Output: 0.8.22
|
|
206
|
-
|
|
207
|
-
npm dist-tag ls @bradygaster/squad-cli
|
|
208
|
-
# Output should show: latest: 0.8.22
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
**If versions don't match:** Something went wrong. Check workflow logs. DO NOT proceed with GitHub Release announcement until npm is correct.
|
|
212
|
-
|
|
213
|
-
**Checkpoint:** Both packages show correct version. `latest` dist-tags point to the new version.
|
|
214
|
-
|
|
215
|
-
### Step 6: Test Installation
|
|
216
|
-
|
|
217
|
-
Verify packages can be installed from npm (real-world smoke test).
|
|
218
|
-
|
|
219
|
-
```bash
|
|
220
|
-
# Create temp directory
|
|
221
|
-
mkdir /tmp/squad-release-test && cd /tmp/squad-release-test
|
|
222
|
-
|
|
223
|
-
# Test SDK installation
|
|
224
|
-
npm init -y
|
|
225
|
-
npm install @bradygaster/squad-sdk
|
|
226
|
-
node -p "require('@bradygaster/squad-sdk/package.json').version"
|
|
227
|
-
# Output: 0.8.22
|
|
228
|
-
|
|
229
|
-
# Test CLI installation
|
|
230
|
-
npm install -g @bradygaster/squad-cli
|
|
231
|
-
squad --version
|
|
232
|
-
# Output: 0.8.22
|
|
233
|
-
|
|
234
|
-
# Cleanup
|
|
235
|
-
cd -
|
|
236
|
-
rm -rf /tmp/squad-release-test
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
**If installation fails:** npm registry issue or package metadata corruption. DO NOT announce release until this works.
|
|
240
|
-
|
|
241
|
-
**Checkpoint:** Both packages install cleanly. Versions match.
|
|
242
|
-
|
|
243
|
-
### Step 7: Sync dev to Next Preview
|
|
244
|
-
|
|
245
|
-
After main release, sync dev to the next preview version.
|
|
246
|
-
|
|
247
|
-
```bash
|
|
248
|
-
# Checkout dev
|
|
249
|
-
git checkout dev
|
|
250
|
-
git pull origin dev
|
|
251
|
-
|
|
252
|
-
# Bump to next preview version (e.g., 0.8.23-preview.1)
|
|
253
|
-
NEXT_VERSION="0.8.23-preview.1"
|
|
254
|
-
|
|
255
|
-
# Validate semver
|
|
256
|
-
node -p "require('semver').valid('$NEXT_VERSION')"
|
|
257
|
-
# Must output the version string, NOT null
|
|
258
|
-
|
|
259
|
-
# Update all 3 package.json files
|
|
260
|
-
npm version $NEXT_VERSION --workspaces --include-workspace-root --no-git-tag-version
|
|
261
|
-
|
|
262
|
-
# Commit
|
|
263
|
-
git add package.json packages/squad-sdk/package.json packages/squad-cli/package.json
|
|
264
|
-
git commit -m "chore: bump dev to $NEXT_VERSION
|
|
265
|
-
|
|
266
|
-
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>"
|
|
267
|
-
|
|
268
|
-
# Push
|
|
269
|
-
git push origin dev
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
**Checkpoint:** dev branch now shows next preview version. Future dev builds will publish to `@preview` dist-tag.
|
|
273
|
-
|
|
274
|
-
---
|
|
275
|
-
|
|
276
|
-
## Manual Publish (Fallback)
|
|
277
|
-
|
|
278
|
-
If `publish.yml` workflow fails or needs to be bypassed, use `workflow_dispatch` to manually trigger publish.
|
|
279
|
-
|
|
280
|
-
```bash
|
|
281
|
-
# Trigger manual publish
|
|
282
|
-
gh workflow run publish.yml -f version="0.8.22"
|
|
283
|
-
|
|
284
|
-
# Monitor the run
|
|
285
|
-
gh run watch
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
**Rule:** Only use this if automated publish failed. Always investigate why automation failed and fix it for next release.
|
|
289
|
-
|
|
290
|
-
---
|
|
291
|
-
|
|
292
|
-
## Rollback Procedure
|
|
293
|
-
|
|
294
|
-
If a release is broken and needs to be rolled back:
|
|
295
|
-
|
|
296
|
-
### 1. Unpublish from npm (Nuclear Option)
|
|
297
|
-
|
|
298
|
-
**WARNING:** npm unpublish is time-limited (24 hours) and leaves the version slot burned. Only use if version is critically broken.
|
|
299
|
-
|
|
300
|
-
```bash
|
|
301
|
-
# Unpublish (requires npm owner privileges)
|
|
302
|
-
npm unpublish @bradygaster/squad-sdk@0.8.22
|
|
303
|
-
npm unpublish @bradygaster/squad-cli@0.8.22
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
### 2. Deprecate on npm (Preferred)
|
|
307
|
-
|
|
308
|
-
**Preferred approach:** Mark version as deprecated, publish a hotfix.
|
|
309
|
-
|
|
310
|
-
```bash
|
|
311
|
-
# Deprecate broken version
|
|
312
|
-
npm deprecate @bradygaster/squad-sdk@0.8.22 "Broken release, use 0.8.22.1 instead"
|
|
313
|
-
npm deprecate @bradygaster/squad-cli@0.8.22 "Broken release, use 0.8.22.1 instead"
|
|
314
|
-
|
|
315
|
-
# Publish hotfix version
|
|
316
|
-
# (Follow this runbook with version 0.8.22.1)
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
### 3. Delete GitHub Release and Tag
|
|
320
|
-
|
|
321
|
-
```bash
|
|
322
|
-
# Delete GitHub Release
|
|
323
|
-
gh release delete "v0.8.22" --yes
|
|
324
|
-
|
|
325
|
-
# Delete tag locally and remotely
|
|
326
|
-
git tag -d "v0.8.22"
|
|
327
|
-
git push origin --delete "v0.8.22"
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
### 4. Revert Commit on main
|
|
331
|
-
|
|
332
|
-
```bash
|
|
333
|
-
# Revert version bump commit
|
|
334
|
-
git checkout main
|
|
335
|
-
git revert HEAD
|
|
336
|
-
git push origin main
|
|
337
|
-
```
|
|
338
|
-
|
|
339
|
-
**Checkpoint:** Tag and release deleted. main branch reverted. npm packages deprecated or unpublished.
|
|
340
|
-
|
|
341
|
-
---
|
|
342
|
-
|
|
343
|
-
## Common Failure Modes
|
|
344
|
-
|
|
345
|
-
### EOTP Error (npm OTP Required)
|
|
346
|
-
|
|
347
|
-
**Symptom:** Workflow fails with `EOTP` error.
|
|
348
|
-
**Root cause:** NPM_TOKEN is a User token with 2FA enabled. CI can't provide OTP.
|
|
349
|
-
**Fix:** Replace NPM_TOKEN with an Automation token (no 2FA). See "NPM_TOKEN Verification" above.
|
|
350
|
-
|
|
351
|
-
### Verify Step 404 (npm Propagation Delay)
|
|
352
|
-
|
|
353
|
-
**Symptom:** Verify step fails with 404 even though publish succeeded.
|
|
354
|
-
**Root cause:** npm registry propagation delay (5-30 seconds).
|
|
355
|
-
**Fix:** Verify step now has retry loop (5 attempts, 15s interval). Should auto-resolve. If not, wait 2 minutes and re-run workflow.
|
|
356
|
-
|
|
357
|
-
### Version Mismatch (package.json ≠ tag)
|
|
358
|
-
|
|
359
|
-
**Symptom:** Verify step fails with "Package version (X) does not match target version (Y)".
|
|
360
|
-
**Root cause:** package.json version doesn't match the tag version.
|
|
361
|
-
**Fix:** Ensure all 3 package.json files were updated in Step 1. Re-run `npm version` if needed.
|
|
362
|
-
|
|
363
|
-
### 4-Part Version Mangled by npm
|
|
364
|
-
|
|
365
|
-
**Symptom:** Published version on npm doesn't match package.json (e.g., 0.8.21.4 became 0.8.2-1.4).
|
|
366
|
-
**Root cause:** 4-part versions are NOT valid semver. npm's parser misinterprets them.
|
|
367
|
-
**Fix:** NEVER use 4-part versions. Only 3-part (0.8.22) or prerelease (0.8.23-preview.1). Run `semver.valid()` before ANY commit.
|
|
368
|
-
|
|
369
|
-
### Draft Release Didn't Trigger Workflow
|
|
370
|
-
|
|
371
|
-
**Symptom:** Release created but `publish.yml` never ran.
|
|
372
|
-
**Root cause:** Release was created as a draft. Draft releases don't emit `release: published` event.
|
|
373
|
-
**Fix:** Edit release and change to published: `gh release edit "v$VERSION" --draft=false`. Workflow should trigger immediately.
|
|
374
|
-
|
|
375
|
-
---
|
|
376
|
-
|
|
377
|
-
## Validation Checklist
|
|
378
|
-
|
|
379
|
-
Before starting ANY release, confirm:
|
|
380
|
-
|
|
381
|
-
- [ ] Version is valid semver: `node -p "require('semver').valid('VERSION')"` returns the version string (NOT null)
|
|
382
|
-
- [ ] NPM_TOKEN is an Automation token (no 2FA): `npm token list` shows `read-write` without OTP requirement
|
|
383
|
-
- [ ] Branch is clean: `git status` shows "nothing to commit, working tree clean"
|
|
384
|
-
- [ ] Tag doesn't exist: `git tag -l "vVERSION"` returns empty
|
|
385
|
-
- [ ] `SKIP_BUILD_BUMP=1` is set: `echo $SKIP_BUILD_BUMP` returns `1`
|
|
386
|
-
|
|
387
|
-
Before creating GitHub Release:
|
|
388
|
-
|
|
389
|
-
- [ ] All 3 package.json files have matching versions: `grep '"version"' package.json packages/*/package.json`
|
|
390
|
-
- [ ] Commit is pushed: `git log origin/main..main` returns empty
|
|
391
|
-
- [ ] Tag is pushed: `git ls-remote --tags origin vVERSION` returns the tag SHA
|
|
392
|
-
|
|
393
|
-
After GitHub Release:
|
|
394
|
-
|
|
395
|
-
- [ ] Release is published (NOT draft): `gh release view "vVERSION"` output doesn't contain "(draft)"
|
|
396
|
-
- [ ] Workflow is running: `gh run list --workflow=publish.yml --limit 1` shows "in_progress"
|
|
397
|
-
|
|
398
|
-
After workflow completes:
|
|
399
|
-
|
|
400
|
-
- [ ] Both jobs succeeded: Workflow shows green checkmarks
|
|
401
|
-
- [ ] SDK on npm: `npm view @bradygaster/squad-sdk version` returns correct version
|
|
402
|
-
- [ ] CLI on npm: `npm view @bradygaster/squad-cli version` returns correct version
|
|
403
|
-
- [ ] `latest` tags correct: `npm dist-tag ls @bradygaster/squad-sdk` shows `latest: VERSION`
|
|
404
|
-
- [ ] Packages install: `npm install @bradygaster/squad-cli` succeeds
|
|
405
|
-
|
|
406
|
-
After dev sync:
|
|
407
|
-
|
|
408
|
-
- [ ] dev branch has next preview version: `git show dev:package.json | grep version` shows next preview
|
|
409
|
-
|
|
410
|
-
---
|
|
411
|
-
|
|
412
|
-
## Post-Mortem Reference
|
|
413
|
-
|
|
414
|
-
This skill was created after the v0.8.22 release disaster. Full retrospective: `.squad/decisions/inbox/keaton-v0822-retrospective.md`
|
|
415
|
-
|
|
416
|
-
**Key learnings:**
|
|
417
|
-
1. No release without a runbook = improvisation = disaster
|
|
418
|
-
2. Semver validation is mandatory — 4-part versions break npm
|
|
419
|
-
3. NPM_TOKEN type matters — User tokens with 2FA fail in CI
|
|
420
|
-
4. Draft releases are a footgun — they don't trigger automation
|
|
421
|
-
5. Retry logic is essential — npm propagation takes time
|
|
422
|
-
|
|
423
|
-
**Never again.**
|
|
1
|
+
# Release Process
|
|
2
|
+
|
|
3
|
+
> Earned knowledge from the v0.9.0→v0.9.1 incident. Every agent involved in releases MUST read this before starting release work.
|
|
4
|
+
|
|
5
|
+
## SCOPE
|
|
6
|
+
|
|
7
|
+
✅ THIS SKILL PRODUCES:
|
|
8
|
+
- Pre-release validation checks that prevent broken publishes
|
|
9
|
+
- Correct npm publish commands (never workspace-scoped)
|
|
10
|
+
- Fallback procedures when CI workflows fail
|
|
11
|
+
- Post-publish verification steps
|
|
12
|
+
|
|
13
|
+
❌ THIS SKILL DOES NOT PRODUCE:
|
|
14
|
+
- Feature implementation or test code
|
|
15
|
+
- Architecture decisions
|
|
16
|
+
- Documentation content
|
|
17
|
+
|
|
18
|
+
## Confidence: high
|
|
19
|
+
|
|
20
|
+
Established through the v0.9.1 incident (8-hour recovery). Every rule below is battle-tested.
|
|
21
|
+
|
|
22
|
+
## Context
|
|
23
|
+
|
|
24
|
+
Squad publishes two npm packages: `@bradygaster/squad-sdk` and `@bradygaster/squad-cli`. The release pipeline flows: dev → preview → main → GitHub Release → npm publish. Brady (project owner) triggers releases — the coordinator does NOT.
|
|
25
|
+
|
|
26
|
+
## Rules (Non-Negotiable)
|
|
27
|
+
|
|
28
|
+
### 1. Coordinator Does NOT Publish
|
|
29
|
+
|
|
30
|
+
The coordinator routes work and manages agents. It does NOT run `npm publish`, trigger release workflows, or make release decisions. Brady owns the release trigger. If an agent or the coordinator is asked to publish, escalate to Brady.
|
|
31
|
+
|
|
32
|
+
### 2. Pre-Publish Dependency Validation
|
|
33
|
+
|
|
34
|
+
Before ANY release is tagged, scan every `packages/*/package.json` for:
|
|
35
|
+
- `file:` references (workspace leak — the v0.9.0 root cause)
|
|
36
|
+
- `link:` references
|
|
37
|
+
- Absolute paths in dependency values
|
|
38
|
+
- Non-semver version strings
|
|
39
|
+
|
|
40
|
+
**Command:**
|
|
41
|
+
```bash
|
|
42
|
+
grep -r '"file:\|"link:\|"/' packages/*/package.json
|
|
43
|
+
```
|
|
44
|
+
If anything matches, STOP. Do not proceed. Fix the reference first.
|
|
45
|
+
|
|
46
|
+
### 3. Never Use `npm -w` for Publishing
|
|
47
|
+
|
|
48
|
+
`npm -w packages/squad-sdk publish` hangs silently when 2FA is enabled. Always `cd` into the package directory:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
cd packages/squad-sdk && npm publish --access public
|
|
52
|
+
cd packages/squad-cli && npm publish --access public
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 4. Fallback Protocol
|
|
56
|
+
|
|
57
|
+
If `workflow_dispatch` or the publish workflow fails:
|
|
58
|
+
1. Try once more (ONE retry, not four)
|
|
59
|
+
2. If it fails again → local publish immediately
|
|
60
|
+
3. Do NOT attempt GitHub UI file operations to fix workflow indexing
|
|
61
|
+
4. GitHub has a ~15min workflow cache TTL after file renames/deletes — waiting helps, retrying doesn't
|
|
62
|
+
|
|
63
|
+
### 5. Post-Publish Smoke Test
|
|
64
|
+
|
|
65
|
+
After every publish, verify in a clean shell:
|
|
66
|
+
```bash
|
|
67
|
+
npm install -g @bradygaster/squad-cli@latest
|
|
68
|
+
squad --version # should match published version
|
|
69
|
+
squad doctor # should pass in a test repo
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
If the smoke test fails, rollback immediately.
|
|
73
|
+
|
|
74
|
+
### 6. npm Token Must Be Automation Type
|
|
75
|
+
|
|
76
|
+
NPM_TOKEN in CI must be an Automation token (not a user token with 2FA prompts). User tokens with `auth-and-writes` 2FA cause silent hangs in non-interactive environments.
|
|
77
|
+
|
|
78
|
+
### 7. No Draft GitHub Releases
|
|
79
|
+
|
|
80
|
+
Never create draft GitHub Releases. The `release: published` event only fires when a release is published — drafts don't trigger the npm publish workflow.
|
|
81
|
+
|
|
82
|
+
### 8. Version Format
|
|
83
|
+
|
|
84
|
+
Semantic versioning only: `MAJOR.MINOR.PATCH` (e.g., `0.9.1`). Four-part versions like `0.8.21.4` are NOT valid semver and will break npm publish.
|
|
85
|
+
|
|
86
|
+
### 9. SKIP_BUILD_BUMP=1 in CI
|
|
87
|
+
|
|
88
|
+
Set this environment variable in all CI build steps to prevent the build script from mutating versions during CI runs.
|
|
89
|
+
|
|
90
|
+
## Release Checklist (Quick Reference)
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
□ All tests passing on dev
|
|
94
|
+
□ No file:/link: references in packages/*/package.json
|
|
95
|
+
□ CHANGELOG.md updated
|
|
96
|
+
□ Version bumps committed (node -e script)
|
|
97
|
+
□ npm auth verified (Automation token)
|
|
98
|
+
□ No draft GitHub Releases pending
|
|
99
|
+
□ Local build + test: npm run build && npx vitest run
|
|
100
|
+
□ Push dev → CI green
|
|
101
|
+
□ Promote dev → preview (squad-promote workflow)
|
|
102
|
+
□ Preview CI green (squad-preview validates)
|
|
103
|
+
□ Promote preview → main
|
|
104
|
+
□ squad-release auto-creates GitHub Release
|
|
105
|
+
□ squad-npm-publish auto-triggers
|
|
106
|
+
□ Monitor publish workflow
|
|
107
|
+
□ Post-publish smoke test
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Known Gotchas
|
|
111
|
+
|
|
112
|
+
| Gotcha | Impact | Mitigation |
|
|
113
|
+
|--------|--------|------------|
|
|
114
|
+
| npm workspaces rewrite `"*"` → `"file:../path"` | Broken global installs | Preflight scan in CI (squad-npm-publish.yml) |
|
|
115
|
+
| GitHub Actions workflow cache (~15min TTL) | 422 on workflow_dispatch after file renames | Wait 15min or use local publish fallback |
|
|
116
|
+
| `npm -w publish` hangs with 2FA | Silent hang, no error | Never use `-w` for publish |
|
|
117
|
+
| Draft GitHub Releases | npm publish workflow doesn't trigger | Never create drafts |
|
|
118
|
+
| User npm tokens with 2FA | EOTP errors in CI | Use Automation token type |
|
|
119
|
+
|
|
120
|
+
## CI Gate: Workspace Publish Policy
|
|
121
|
+
|
|
122
|
+
The `publish-policy` job in `squad-ci.yml` scans all workflow files for bare `npm publish` commands that are missing `-w`/`--workspace` flags. Any workflow that attempts a non-workspace-scoped publish will fail CI. This prevents accidental root-level publishes that would push the wrong `package.json` to npm.
|
|
123
|
+
|
|
124
|
+
See `.github/workflows/squad-ci.yml` → `publish-policy` job for implementation details.
|
|
125
|
+
|
|
126
|
+
## Related
|
|
127
|
+
|
|
128
|
+
- Issues: #556–#564 (release:next)
|
|
129
|
+
- Retro: `.squad/decisions/inbox/surgeon-v091-retrospective.md`
|
|
130
|
+
- CI audit: `.squad/decisions/inbox/booster-ci-audit.md`
|
|
131
|
+
- Playbook: `PUBLISH-README.md` (repo root)
|