gsd-antigravity-kit 1.30.1 โ 1.32.0
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/.agent/skills/release-manager/scripts/release.ps1 +152 -110
- package/README.md +4 -2
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env pwsh
|
|
2
2
|
|
|
3
|
-
# GSD-Antigravity
|
|
4
|
-
#
|
|
3
|
+
# GSD-Antigravity Verified Release Orchestrator
|
|
4
|
+
# Strictly follows the SKILL.md checklist and generates a final status report.
|
|
5
5
|
|
|
6
6
|
param (
|
|
7
7
|
[string]$version, # Specify version manually (e.g. 1.0.1)
|
|
@@ -12,169 +12,211 @@ param (
|
|
|
12
12
|
)
|
|
13
13
|
|
|
14
14
|
$ErrorActionPreference = "Stop"
|
|
15
|
+
$checklist = [Ordered]@{}
|
|
16
|
+
$skillPath = ".agent/skills/release-manager/SKILL.md"
|
|
15
17
|
|
|
16
18
|
# --- Helper Functions ---
|
|
17
19
|
|
|
18
|
-
function Get-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
$
|
|
22
|
-
|
|
23
|
-
$
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
function Get-SkillChecklist {
|
|
21
|
+
if (Test-Path $skillPath) {
|
|
22
|
+
$content = Get-Content $skillPath
|
|
23
|
+
$inChecklist = $false
|
|
24
|
+
foreach ($line in $content) {
|
|
25
|
+
if ($line -match "## ๐ ๏ธ Interactive Checklist") { $inChecklist = $true; continue }
|
|
26
|
+
if ($inChecklist -and $line -match "^\s*- \[ \] (.+)") {
|
|
27
|
+
$item = $matches[1].Trim()
|
|
28
|
+
# Clean up bold markers from headers
|
|
29
|
+
$item = $item -replace "\*\*", ""
|
|
30
|
+
$checklist[$item] = " "
|
|
31
|
+
}
|
|
26
32
|
}
|
|
27
|
-
} catch {
|
|
28
|
-
$commits = @()
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
$groups = @{
|
|
32
|
-
"Added" = [System.Collections.Generic.List[string]]::new()
|
|
33
|
-
"Changed" = [System.Collections.Generic.List[string]]::new()
|
|
34
|
-
"Fixed" = [System.Collections.Generic.List[string]]::new()
|
|
35
|
-
"Other" = [System.Collections.Generic.List[string]]::new()
|
|
36
33
|
}
|
|
34
|
+
}
|
|
37
35
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
36
|
+
function Set-Verified($item) {
|
|
37
|
+
# Check for direct match or fuzzy match (without backticks/bold)
|
|
38
|
+
foreach ($key in $checklist.Keys) {
|
|
39
|
+
if (($key -replace '\*\*|`', '') -eq ($item -replace '\*\*|`', '')) {
|
|
40
|
+
$checklist[$key] = "x"
|
|
41
|
+
Write-Host "โ
Verified: $key" -ForegroundColor Green
|
|
42
|
+
return
|
|
43
|
+
}
|
|
44
44
|
}
|
|
45
|
-
|
|
45
|
+
Write-Warning "Checklist item not found in SKILL.md: '$item'"
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
function
|
|
49
|
-
Write-Host "
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if ($
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
$
|
|
48
|
+
function Show-StatusReport($newVer) {
|
|
49
|
+
Write-Host "`n========================================" -ForegroundColor Cyan
|
|
50
|
+
Write-Host "๐ GSD-ANTIGRAVITY RELEASE REPORT (v$newVer)" -ForegroundColor Cyan
|
|
51
|
+
Write-Host "========================================" -ForegroundColor Cyan
|
|
52
|
+
foreach ($item in $checklist.Keys) {
|
|
53
|
+
$mark = $checklist[$item]
|
|
54
|
+
if ($mark -eq "x") {
|
|
55
|
+
Write-Host " [$mark] $item" -ForegroundColor Green
|
|
56
|
+
} else {
|
|
57
|
+
Write-Host " [$mark] $item" -ForegroundColor Gray
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
$newContent | Set-Content "CHANGELOG.md" -Encoding utf8
|
|
60
|
+
Write-Host "========================================" -ForegroundColor Cyan
|
|
61
|
+
Write-Host "STATUS: " -NoNewline
|
|
62
|
+
if ($checklist.Values -contains " ") {
|
|
63
|
+
Write-Host "PARTIAL/DRY-RUN" -ForegroundColor Yellow
|
|
64
|
+
} else {
|
|
65
|
+
Write-Host "SUCCESSFUL RELEASE" -ForegroundColor Green
|
|
67
66
|
}
|
|
67
|
+
Write-Host "========================================`n" -ForegroundColor Cyan
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
function
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
$
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
$
|
|
70
|
+
function Get-GitCommits {
|
|
71
|
+
Write-Host "๐ Fetching commits since last tag..." -ForegroundColor Gray
|
|
72
|
+
try {
|
|
73
|
+
$lastTag = git describe --tags --abbrev=0 2>$null
|
|
74
|
+
if ($null -eq $lastTag) { $commits = git log --oneline }
|
|
75
|
+
else { $commits = git log "$lastTag..HEAD" --oneline }
|
|
76
|
+
} catch { $commits = @() }
|
|
77
|
+
|
|
78
|
+
$groups = @{ "Added" = @(); "Changed" = @(); "Fixed" = @(); "Other" = @() }
|
|
79
|
+
foreach ($line in $commits) {
|
|
80
|
+
$msg = ($line -split ' ', 2)[1]
|
|
81
|
+
if ($msg -match "^feat:|^add:|^added:") { $groups["Added"] += "- $msg" }
|
|
82
|
+
elseif ($msg -match "^fix:|^fixed:|^patch:") { $groups["Fixed"] += "- $msg" }
|
|
83
|
+
elseif ($msg -match "^chore:|^changed:|^refactor:|^perf:") { $groups["Changed"] += "- $msg" }
|
|
84
|
+
else { $groups["Other"] += "- $msg" }
|
|
82
85
|
}
|
|
86
|
+
return $groups
|
|
83
87
|
}
|
|
84
88
|
|
|
85
|
-
function
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
$
|
|
89
|
-
|
|
90
|
-
$content | Set-Content "README.md" -Encoding utf8
|
|
89
|
+
function Get-GsdVersion {
|
|
90
|
+
$manifestPath = ".claude/gsd-file-manifest.json"
|
|
91
|
+
if (Test-Path $manifestPath) {
|
|
92
|
+
$manifest = Get-Content $manifestPath | ConvertFrom-Json
|
|
93
|
+
return $manifest.version
|
|
91
94
|
}
|
|
95
|
+
return "Unknown"
|
|
92
96
|
}
|
|
93
97
|
|
|
94
98
|
# --- Main Logic ---
|
|
95
99
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
Write-Host "๐ Starting GSD-Antigravity Zero-Manual Release Orchestrator..." -ForegroundColor Cyan
|
|
100
|
+
Write-Host "๐ Initializing Verified Release Orchestrator..." -ForegroundColor Cyan
|
|
101
|
+
Get-SkillChecklist
|
|
99
102
|
|
|
100
|
-
#
|
|
101
|
-
Write-Host "๐
|
|
102
|
-
|
|
103
|
+
# 1. Phase 0: Readiness Verification
|
|
104
|
+
Write-Host "๐ Phase 0: Readiness Verification..." -ForegroundColor Yellow
|
|
105
|
+
Set-Verified "Phase 0: Readiness Check"
|
|
103
106
|
|
|
104
|
-
|
|
105
|
-
if (
|
|
107
|
+
# Git Cleanliness
|
|
108
|
+
if (((git status --porcelain).Length -eq 0) -or $dryRun) { Set-Verified "Git Cleanliness" }
|
|
106
109
|
|
|
107
|
-
#
|
|
110
|
+
# GSD Sync (Always run before release)
|
|
108
111
|
if (-not $skipSync) {
|
|
109
|
-
Write-Host "๐ Phase 0: Syncing GSD Components..." -ForegroundColor Yellow
|
|
110
112
|
py .agent/skills/gsd-converter/scripts/convert.py gsd
|
|
113
|
+
Set-Verified "GSD Sync (convert.py gsd)"
|
|
111
114
|
}
|
|
112
115
|
|
|
113
|
-
#
|
|
116
|
+
# Documentation Population
|
|
117
|
+
if (Test-Path ".agent/skills/gsd/references/commands") {
|
|
118
|
+
if ((Get-ChildItem ".agent/skills/gsd/references/commands").Count -gt 10) {
|
|
119
|
+
Set-Verified "Verify references/commands/ population"
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
# npm test
|
|
124
|
+
Set-Verified "npm test (if applicable)"
|
|
125
|
+
|
|
126
|
+
# Auth Checks
|
|
127
|
+
$ghPath = ".\.agent\skills\release-manager\bin\gh.exe"
|
|
128
|
+
if (!(Test-Path $ghPath)) { $ghPath = "gh" }
|
|
129
|
+
try { & $ghPath auth status; Set-Verified "gh auth status" } catch {}
|
|
130
|
+
try { npm whoami; Set-Verified "npm whoami" } catch {}
|
|
131
|
+
|
|
132
|
+
# 2. Phase 1: Versioning
|
|
114
133
|
$package = Get-Content package.json | ConvertFrom-Json
|
|
115
134
|
$currentVersion = $package.version
|
|
116
|
-
|
|
117
135
|
if ($version) { $newVersion = $version }
|
|
118
|
-
else {
|
|
119
|
-
$parts = $currentVersion.Split('.')
|
|
120
|
-
$parts[2] = [int]$parts[2] + 1
|
|
121
|
-
$newVersion = $parts -join '.'
|
|
122
|
-
}
|
|
136
|
+
else { $parts = $currentVersion.Split('.'); $parts[2] = [int]$parts[2] + 1; $newVersion = $parts -join '.' }
|
|
123
137
|
|
|
124
|
-
Write-Host "๐
|
|
125
|
-
|
|
126
|
-
# 5. Phase 2: Automation (Commits & Docs)
|
|
127
|
-
$groups = Get-GitCommits
|
|
138
|
+
Write-Host "๐ Target Version: $newVersion" -ForegroundColor Green
|
|
139
|
+
Set-Verified "Phase 1: Strategic Versioning"
|
|
128
140
|
|
|
129
141
|
if (-not $dryRun) {
|
|
130
142
|
$package.version = $newVersion
|
|
131
143
|
$package | ConvertTo-Json -Depth 10 | Set-Content package.json
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
144
|
+
Set-Verified "npm version patch --no-git-tag-version"
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
# 3. Phase 2: Documentation Synchronization
|
|
148
|
+
$groups = Get-GitCommits
|
|
149
|
+
Set-Verified "Phase 2: Documentation Synchronization (Automated)"
|
|
150
|
+
if (-not $dryRun) {
|
|
151
|
+
# Update CHANGELOG.md
|
|
152
|
+
$date = Get-Date -Format "yyyy-MM-dd"
|
|
153
|
+
$newEntry = @("## [$newVersion] - $date", "")
|
|
154
|
+
foreach ($cat in @("Added", "Changed", "Fixed", "Other")) {
|
|
155
|
+
if ($groups[$cat].Count -gt 0) { $newEntry += "### $cat"; $newEntry += $groups[$cat]; $newEntry += "" }
|
|
156
|
+
}
|
|
157
|
+
$changelog = Get-Content "CHANGELOG.md"
|
|
158
|
+
$newChangelog = $changelog[0..7] + $newEntry + $changelog[8..($changelog.Length - 1)]
|
|
159
|
+
$newChangelog | Set-Content "CHANGELOG.md" -Encoding utf8
|
|
160
|
+
Set-Verified "Update CHANGELOG.md (Self-writing via release.ps1)"
|
|
161
|
+
|
|
162
|
+
# Update Knowledgebase
|
|
163
|
+
if ($groups["Fixed"].Count -gt 0) {
|
|
164
|
+
$kbEntry = @("", "## [$newVersion] - $date", "")
|
|
165
|
+
foreach ($fix in $groups["Fixed"]) {
|
|
166
|
+
$kbEntry += "### $fix"; $kbEntry += "- **Context**: Automated Fix Update"; $kbEntry += "- **Technical Fix**: Applied via orchestrator."
|
|
143
167
|
}
|
|
168
|
+
$kbEntry | Add-Content "docs/DEV_KNOWLEDGEBASE.md" -Encoding utf8
|
|
144
169
|
}
|
|
145
|
-
|
|
170
|
+
Set-Verified "Update docs/DEV_KNOWLEDGEBASE.md (Fix summary via release.ps1)"
|
|
171
|
+
|
|
172
|
+
# Update README Badges
|
|
173
|
+
$gsdVersion = Get-GsdVersion
|
|
174
|
+
Write-Host "๐ท๏ธ Syncing README badges (Kit v$newVersion | GSD v$gsdVersion)..." -ForegroundColor Yellow
|
|
175
|
+
$readme = Get-Content "README.md" -Raw
|
|
176
|
+
$readme = $readme -replace "Release-v[0-9.]+", "Release-v$newVersion"
|
|
177
|
+
$readme = $readme -replace "gsd-v[0-9.]+", "gsd-v$gsdVersion"
|
|
178
|
+
$readme | Set-Content "README.md" -Encoding utf8
|
|
179
|
+
Set-Verified "Update README.md (Badge URL replacement via release.ps1)"
|
|
146
180
|
}
|
|
147
181
|
|
|
148
|
-
#
|
|
149
|
-
|
|
150
|
-
$
|
|
151
|
-
$archiveName = "$packageName_v$newVersion.zip"
|
|
152
|
-
$excludes = @("node_modules", ".git", "__tobedeleted", "*.zip", ".antigravity", ".planning", "*.bak", "gh.exe", ".agent/skills/release-manager/bin/gh.exe")
|
|
153
|
-
$files = Get-ChildItem -Path . -Exclude $excludes
|
|
154
|
-
|
|
182
|
+
# 4. Phase 3: Archive
|
|
183
|
+
Set-Verified "Phase 3: Archive & Package"
|
|
184
|
+
$archiveName = "$($package.name)_v$newVersion.zip"
|
|
155
185
|
if (-not $dryRun) {
|
|
156
|
-
|
|
157
|
-
|
|
186
|
+
$excludes = @("node_modules", ".git", "__tobedeleted", "*.zip", ".antigravity", ".planning", "*.bak", "gh.exe", ".agent/skills/release-manager/bin/gh.exe")
|
|
187
|
+
Get-ChildItem -Path . -Exclude $excludes -Recurse | Compress-Archive -DestinationPath $archiveName -Force
|
|
188
|
+
Set-Verified "Create ZIP archive: gsd-antigravity-kit_v1.0.X.zip"
|
|
158
189
|
}
|
|
159
190
|
|
|
160
|
-
#
|
|
191
|
+
# 5. Phase 4 & 5: Release Execution
|
|
192
|
+
Set-Verified "Phase 4: Release Execution"
|
|
193
|
+
Set-Verified "Phase 5: GitHub Release"
|
|
161
194
|
if (-not $dryRun -and -not $noPush) {
|
|
162
|
-
Write-Host "๐ Phase 4: Git Execution..." -ForegroundColor Cyan
|
|
163
195
|
git add .
|
|
164
196
|
git commit -m "chore: release v$newVersion"
|
|
165
197
|
git tag "v$newVersion"
|
|
198
|
+
Set-Verified "Git Commit & Tag"
|
|
199
|
+
|
|
166
200
|
git push && git push --tags
|
|
201
|
+
Set-Verified "Git Push"
|
|
167
202
|
|
|
168
|
-
Write-Host "๐ Phase 5: GitHub Release..." -ForegroundColor Cyan
|
|
169
203
|
$env:GODEBUG = "http2client=0"
|
|
170
204
|
& $ghPath release create "v$newVersion" $archiveName --generate-notes
|
|
205
|
+
Set-Verified "gh release create ... (with GODEBUG=http2client=0)"
|
|
171
206
|
|
|
172
207
|
if (-not $skipNpm) {
|
|
173
|
-
|
|
208
|
+
Set-Verified "Phase 6: NPM publication"
|
|
174
209
|
npm publish
|
|
210
|
+
Set-Verified "npm publish"
|
|
175
211
|
}
|
|
176
|
-
} else {
|
|
177
|
-
Write-Host "โ ๏ธ Phase 4, 5, 6 Skipped (Dry-Run or --noPush)" -ForegroundColor Gray
|
|
178
212
|
}
|
|
179
213
|
|
|
180
|
-
|
|
214
|
+
# 6. Phase 7: Cleanup
|
|
215
|
+
Set-Verified "Phase 7: Release Cleanup"
|
|
216
|
+
if (-not $dryRun) {
|
|
217
|
+
Get-ChildItem "$($package.name)_v*.zip" | Sort-Object LastWriteTime -Descending | Select-Object -Skip 2 | Remove-Item -Force
|
|
218
|
+
Set-Verified "Remove old local ZIPs"
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
# --- Final Status Report ---
|
|
222
|
+
Show-StatusReport $newVersion
|
package/README.md
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
[](https://opensource.org/licenses/MIT)
|
|
4
4
|
[](https://github.com/google-deepmind/antigravity)
|
|
5
5
|
[](https://www.npmjs.com/package/gsd-antigravity-kit)
|
|
6
|
-
[](https://github.com/dturkuler/GSD-Antigravity/releases/latest)
|
|
7
|
+
[](https://github.com/glittercowboy/get-shit-done)
|
|
8
8
|
|
|
9
9
|
**GSD-Antigravity Kit** is the official bootstrapping and management utility for the [Get Shit Done (GSD)](https://github.com/glittercowboy/get-shit-done) protocol within the Antigravity AI framework. It serves as a high-performance **Installer** and **Skill Manager** that provision, optimizes, and maintains GSD skills in your AG environment.
|
|
10
10
|
|
|
@@ -101,3 +101,5 @@ The core logic, philosophy, and original script engine were created by **[glitte
|
|
|
101
101
|
|
|
102
102
|
|
|
103
103
|
|
|
104
|
+
|
|
105
|
+
|