aiwg 2026.6.4 → 2026.6.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aiwg",
3
- "version": "2026.6.4",
3
+ "version": "2026.6.5",
4
4
  "description": "Deployment tool and support utility for AI context. Copies agents, skills, commands, rules, and behaviors into the paths each AI platform reads (Claude Code, Codex, Copilot, Cursor, Warp, OpenClaw, and 6 more) so one source of truth works across 10 platforms. Optional utilities for persistent artifact memory, background orchestration, autonomous loops, and artifact indexing.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -28,13 +28,15 @@
28
28
  # 1. Verifies <version> matches the CalVer YYYY.M.PATCH shape (no leading zeros)
29
29
  # 2. Verifies package.json version matches <version>
30
30
  # 3. Verifies .claude-plugin/marketplace.json metadata.version matches (PUW-038 lockstep)
31
- # 4. Verifies CHANGELOG.md has an entry for [<version>]
32
- # 5. Verifies docs/releases/v<version>-announcement.md exists
33
- # 6. Verifies the AIWG release-signing key is available locally
34
- # 7. Verifies the release-signing key is published in .gitea/keys/maintainers.asc
35
- # 8. Creates the signed tag with `git tag -s -u <release-key-fingerprint>`
36
- # 9. Verifies the tag's signature locally before any push (`git tag -v`)
37
- # 10. Reports next-step push commands; does NOT push automatically
31
+ # 4. Verifies apps/cockpit/package.json version matches (@aiwg/cockpit lockstep)
32
+ # 5. Verifies package-lock.json version matches (CI check:versions / npm ci gate)
33
+ # 6. Verifies CHANGELOG.md has an entry for [<version>]
34
+ # 7. Verifies docs/releases/v<version>-announcement.md exists
35
+ # 8. Verifies the AIWG release-signing key is available locally
36
+ # 9. Verifies the release-signing key is published in .gitea/keys/maintainers.asc
37
+ # 10. Creates the signed tag with `git tag -s -u <release-key-fingerprint>`
38
+ # 11. Verifies the tag's signature locally before any push (`git tag -v`)
39
+ # 12. Reports next-step push commands; does NOT push automatically
38
40
  #
39
41
  # The push step is intentionally left to the operator so this script can
40
42
  # also be run as a sanity check before a release ceremony.
@@ -102,7 +104,7 @@ FAIL: '$VERSION' does not match CalVer 'YYYY.M.PATCH'.
102
104
  EOF
103
105
  exit 1
104
106
  fi
105
- echo " [1/11] CalVer shape OK: $VERSION"
107
+ echo " [1/12] CalVer shape OK: $VERSION"
106
108
 
107
109
  # ---------------------------------------------------------------------------
108
110
  # 2. package.json lockstep
@@ -116,7 +118,7 @@ FAIL: package.json version is '$PKG_VERSION', expected '$VERSION'.
116
118
  EOF
117
119
  exit 1
118
120
  fi
119
- echo " [2/11] package.json lockstep OK"
121
+ echo " [2/12] package.json lockstep OK"
120
122
 
121
123
  # ---------------------------------------------------------------------------
122
124
  # 3. .claude-plugin/marketplace.json metadata.version lockstep (PUW-038 #1139)
@@ -130,7 +132,7 @@ FAIL: .claude-plugin/marketplace.json metadata.version is '$MP_VERSION',
130
132
  EOF
131
133
  exit 1
132
134
  fi
133
- echo " [3/11] marketplace.json lockstep OK"
135
+ echo " [3/12] marketplace.json lockstep OK"
134
136
 
135
137
  # ---------------------------------------------------------------------------
136
138
  # 4. @aiwg/cockpit package lockstep
@@ -144,10 +146,27 @@ FAIL: apps/cockpit/package.json version is '$COCKPIT_VERSION',
144
146
  EOF
145
147
  exit 1
146
148
  fi
147
- echo " [4/11] @aiwg/cockpit package lockstep OK"
149
+ echo " [4/12] @aiwg/cockpit package lockstep OK"
148
150
 
149
151
  # ---------------------------------------------------------------------------
150
- # 5. CHANGELOG.md entry exists
152
+ # 5. package-lock.json lockstep
153
+ # CI's `check:versions` / `npm ci` reject a lockfile whose version drifts
154
+ # from package.json, which fails the build gate and blocks npm publish.
155
+ # Catch it here instead of after the tag is already pushed.
156
+ # ---------------------------------------------------------------------------
157
+ LOCK_VERSION=$(node -e "console.log(JSON.parse(require('fs').readFileSync('package-lock.json','utf8')).version)")
158
+ if [ "$LOCK_VERSION" != "$VERSION" ]; then
159
+ cat <<EOF >&2
160
+ FAIL: package-lock.json version is '$LOCK_VERSION', expected '$VERSION'.
161
+ Run: npm install --package-lock-only
162
+ (then commit package-lock.json) so CI's check:versions / npm ci pass.
163
+ EOF
164
+ exit 1
165
+ fi
166
+ echo " [5/12] package-lock.json lockstep OK"
167
+
168
+ # ---------------------------------------------------------------------------
169
+ # 6. CHANGELOG.md entry exists
151
170
  # ---------------------------------------------------------------------------
152
171
  if ! grep -q "^## \[${VERSION}\]" CHANGELOG.md; then
153
172
  cat <<EOF >&2
@@ -156,10 +175,10 @@ FAIL: CHANGELOG.md does not contain '## [${VERSION}]'.
156
175
  EOF
157
176
  exit 1
158
177
  fi
159
- echo " [5/11] CHANGELOG.md entry OK"
178
+ echo " [6/12] CHANGELOG.md entry OK"
160
179
 
161
180
  # ---------------------------------------------------------------------------
162
- # 6. Release announcement file exists
181
+ # 7. Release announcement file exists
163
182
  # ---------------------------------------------------------------------------
164
183
  ANNOUNCEMENT="docs/releases/v${VERSION}-announcement.md"
165
184
  if [ ! -f "$ANNOUNCEMENT" ]; then
@@ -170,10 +189,10 @@ FAIL: $ANNOUNCEMENT does not exist.
170
189
  EOF
171
190
  exit 1
172
191
  fi
173
- echo " [6/11] Announcement file OK"
192
+ echo " [7/12] Announcement file OK"
174
193
 
175
194
  # ---------------------------------------------------------------------------
176
- # 7. Release-signing key available locally
195
+ # 8. Release-signing key available locally
177
196
  # ---------------------------------------------------------------------------
178
197
  if ! gpg --list-secret-keys "$RELEASE_KEY_FINGERPRINT" >/dev/null 2>&1; then
179
198
  cat <<EOF >&2
@@ -189,10 +208,10 @@ FAIL: Release-signing key $RELEASE_KEY_FINGERPRINT not found in local
189
208
  EOF
190
209
  exit 1
191
210
  fi
192
- echo " [7/11] Release-signing key present locally"
211
+ echo " [8/12] Release-signing key present locally"
193
212
 
194
213
  # ---------------------------------------------------------------------------
195
- # 8. Release-signing key published in maintainers.asc
214
+ # 9. Release-signing key published in maintainers.asc
196
215
  # ---------------------------------------------------------------------------
197
216
  # Extract fingerprints from the committed keyring and check ours is among
198
217
  # them. We use `gpg --show-keys --with-colons` so the output is parseable
@@ -209,10 +228,10 @@ FAIL: Release-signing key $RELEASE_KEY_FINGERPRINT is NOT published in
209
228
  EOF
210
229
  exit 1
211
230
  fi
212
- echo " [8/11] Release-signing key published in maintainers.asc"
231
+ echo " [9/12] Release-signing key published in maintainers.asc"
213
232
 
214
233
  # ---------------------------------------------------------------------------
215
- # 9. Create signed tag with explicit release key (-u override)
234
+ # 10. Create signed tag with explicit release key (-u override)
216
235
  # ---------------------------------------------------------------------------
217
236
  if [ -z "$TAG_MESSAGE" ]; then
218
237
  TODAY=$(date -u '+%Y-%m-%d')
@@ -233,10 +252,10 @@ EOF
233
252
  fi
234
253
 
235
254
  git tag -s -u "$RELEASE_KEY_FINGERPRINT" "$TAG" -m "$TAG_MESSAGE"
236
- echo " [9/11] Signed tag '$TAG' created with release key"
255
+ echo " [10/12] Signed tag '$TAG' created with release key"
237
256
 
238
257
  # ---------------------------------------------------------------------------
239
- # 10. Local verify (mirror of the CI gate logic)
258
+ # 11. Local verify (mirror of the CI gate logic)
240
259
  # ---------------------------------------------------------------------------
241
260
  if ! git tag -v "$TAG" >/dev/null 2>&1; then
242
261
  cat <<EOF >&2
@@ -248,14 +267,14 @@ EOF
248
267
  git tag -d "$TAG" >/dev/null 2>&1 || true
249
268
  exit 1
250
269
  fi
251
- echo " [10/11] Local 'git tag -v' verification passed"
270
+ echo " [11/12] Local 'git tag -v' verification passed"
252
271
 
253
272
  # ---------------------------------------------------------------------------
254
- # 11. Report next steps; do NOT auto-push
273
+ # 12. Report next steps; do NOT auto-push
255
274
  # ---------------------------------------------------------------------------
256
275
  cat <<EOF
257
276
 
258
- [11/11] Ready to push. The push step is left manual on purpose —
277
+ [12/12] Ready to push. The push step is left manual on purpose —
259
278
  inspect the tag once more with 'git tag -v $TAG' if you want, then:
260
279
 
261
280
  git push origin main --tags