antigravity-ai-kit 3.5.0 → 3.5.2
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/CheatSheet.md +1 -1
- package/.agent/checklists/pre-commit.md +1 -1
- package/.agent/checklists/session-end.md +1 -1
- package/.agent/checklists/session-start.md +1 -1
- package/.agent/checklists/task-complete.md +1 -1
- package/.agent/commands/help.md +1 -1
- package/.agent/engine/identity.json +2 -2
- package/.agent/manifest.json +361 -87
- package/.agent/session-context.md +69 -80
- package/.agent/skills/app-builder/SKILL.md +1 -1
- package/.agent/skills/deployment-procedures/SKILL.md +2 -2
- package/.agent/skills/i18n-localization/SKILL.md +1 -1
- package/.agent/skills/mobile-design/SKILL.md +2 -2
- package/.agent/skills/webapp-testing/SKILL.md +1 -1
- package/README.md +1 -1
- package/bin/ag-kit.js +76 -16
- package/lib/updater.js +26 -9
- package/package.json +54 -54
package/.agent/CheatSheet.md
CHANGED
package/.agent/commands/help.md
CHANGED
|
@@ -24,7 +24,7 @@ Your complete guide to the Antigravity AI Kit. Type `/help` for a quick overview
|
|
|
24
24
|
|
|
25
25
|
## Quick Overview
|
|
26
26
|
|
|
27
|
-
**Antigravity AI Kit v3.5.
|
|
27
|
+
**Antigravity AI Kit v3.5.2** — Trust-Grade AI Development Framework
|
|
28
28
|
|
|
29
29
|
| Category | Count | Description |
|
|
30
30
|
|:---------|:------|:------------|
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
"name": "emredursun",
|
|
6
6
|
"email": "info.emredursun@gmail.com",
|
|
7
7
|
"role": "owner",
|
|
8
|
-
"registeredAt": "2026-03-
|
|
9
|
-
"lastActiveAt": "2026-03-
|
|
8
|
+
"registeredAt": "2026-03-16T17:02:45.476Z",
|
|
9
|
+
"lastActiveAt": "2026-03-16T17:02:45.476Z"
|
|
10
10
|
}
|
|
11
11
|
],
|
|
12
12
|
"activeId": "9c1dbf58766b"
|
package/.agent/manifest.json
CHANGED
|
@@ -1,32 +1,108 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"kitVersion": "3.5.
|
|
4
|
-
"lastAuditedAt":
|
|
3
|
+
"kitVersion": "3.5.2",
|
|
4
|
+
"lastAuditedAt": null,
|
|
5
5
|
"description": "Antigravity AI Kit — Trust-Grade AI Development Framework",
|
|
6
6
|
"repository": "https://github.com/besync-labs/antigravity-ai-kit",
|
|
7
7
|
"capabilities": {
|
|
8
8
|
"agents": {
|
|
9
9
|
"count": 19,
|
|
10
10
|
"items": [
|
|
11
|
-
{
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
{
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
{
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
{
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
11
|
+
{
|
|
12
|
+
"name": "architect",
|
|
13
|
+
"file": "agents/architect.md",
|
|
14
|
+
"domain": "System design, DDD, Hexagonal"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"name": "backend-specialist",
|
|
18
|
+
"file": "agents/backend-specialist.md",
|
|
19
|
+
"domain": "Node.js, NestJS, API design"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "build-error-resolver",
|
|
23
|
+
"file": "agents/build-error-resolver.md",
|
|
24
|
+
"domain": "Rapid build fixes"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "code-reviewer",
|
|
28
|
+
"file": "agents/code-reviewer.md",
|
|
29
|
+
"domain": "Quality + security review"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "database-architect",
|
|
33
|
+
"file": "agents/database-architect.md",
|
|
34
|
+
"domain": "Schema, queries, optimization"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"name": "devops-engineer",
|
|
38
|
+
"file": "agents/devops-engineer.md",
|
|
39
|
+
"domain": "CI/CD, Docker, deployment"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"name": "doc-updater",
|
|
43
|
+
"file": "agents/doc-updater.md",
|
|
44
|
+
"domain": "Documentation sync"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"name": "e2e-runner",
|
|
48
|
+
"file": "agents/e2e-runner.md",
|
|
49
|
+
"domain": "End-to-end testing"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"name": "explorer-agent",
|
|
53
|
+
"file": "agents/explorer-agent.md",
|
|
54
|
+
"domain": "Codebase discovery"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"name": "frontend-specialist",
|
|
58
|
+
"file": "agents/frontend-specialist.md",
|
|
59
|
+
"domain": "React, Next.js, UI architecture"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "knowledge-agent",
|
|
63
|
+
"file": "agents/knowledge-agent.md",
|
|
64
|
+
"domain": "RAG retrieval"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"name": "mobile-developer",
|
|
68
|
+
"file": "agents/mobile-developer.md",
|
|
69
|
+
"domain": "React Native, Expo"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "performance-optimizer",
|
|
73
|
+
"file": "agents/performance-optimizer.md",
|
|
74
|
+
"domain": "Core Web Vitals"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"name": "planner",
|
|
78
|
+
"file": "agents/planner.md",
|
|
79
|
+
"domain": "Task breakdown, Socratic analysis"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"name": "refactor-cleaner",
|
|
83
|
+
"file": "agents/refactor-cleaner.md",
|
|
84
|
+
"domain": "Dead code cleanup"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"name": "reliability-engineer",
|
|
88
|
+
"file": "agents/reliability-engineer.md",
|
|
89
|
+
"domain": "SRE, production readiness"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"name": "security-reviewer",
|
|
93
|
+
"file": "agents/security-reviewer.md",
|
|
94
|
+
"domain": "Vulnerability analysis"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"name": "sprint-orchestrator",
|
|
98
|
+
"file": "agents/sprint-orchestrator.md",
|
|
99
|
+
"domain": "Sprint planning, velocity"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"name": "tdd-guide",
|
|
103
|
+
"file": "agents/tdd-guide.md",
|
|
104
|
+
"domain": "Test-first enforcement"
|
|
105
|
+
}
|
|
30
106
|
]
|
|
31
107
|
},
|
|
32
108
|
"commands": {
|
|
@@ -36,92 +112,290 @@
|
|
|
36
112
|
"skills": {
|
|
37
113
|
"count": 32,
|
|
38
114
|
"items": [
|
|
39
|
-
{
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
{
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
{
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
{
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
{
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
{
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
{
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
{
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
115
|
+
{
|
|
116
|
+
"name": "api-patterns",
|
|
117
|
+
"directory": "skills/api-patterns/"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"name": "app-builder",
|
|
121
|
+
"directory": "skills/app-builder/"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"name": "architecture",
|
|
125
|
+
"directory": "skills/architecture/"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"name": "behavioral-modes",
|
|
129
|
+
"directory": "skills/behavioral-modes/"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"name": "brainstorming",
|
|
133
|
+
"directory": "skills/brainstorming/"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"name": "clean-code",
|
|
137
|
+
"directory": "skills/clean-code/"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"name": "context-budget",
|
|
141
|
+
"directory": "skills/context-budget/"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"name": "continuous-learning",
|
|
145
|
+
"directory": "skills/continuous-learning/"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"name": "database-design",
|
|
149
|
+
"directory": "skills/database-design/"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"name": "debugging-strategies",
|
|
153
|
+
"directory": "skills/debugging-strategies/"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"name": "deployment-procedures",
|
|
157
|
+
"directory": "skills/deployment-procedures/"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"name": "docker-patterns",
|
|
161
|
+
"directory": "skills/docker-patterns/"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"name": "eval-harness",
|
|
165
|
+
"directory": "skills/eval-harness/"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"name": "frontend-patterns",
|
|
169
|
+
"directory": "skills/frontend-patterns/"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"name": "git-workflow",
|
|
173
|
+
"directory": "skills/git-workflow/"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"name": "intelligent-routing",
|
|
177
|
+
"directory": "skills/intelligent-routing/"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"name": "i18n-localization",
|
|
181
|
+
"directory": "skills/i18n-localization/"
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"name": "mcp-integration",
|
|
185
|
+
"directory": "skills/mcp-integration/"
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"name": "mobile-design",
|
|
189
|
+
"directory": "skills/mobile-design/"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"name": "nodejs-patterns",
|
|
193
|
+
"directory": "skills/nodejs-patterns/"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"name": "parallel-agents",
|
|
197
|
+
"directory": "skills/parallel-agents/"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"name": "performance-profiling",
|
|
201
|
+
"directory": "skills/performance-profiling/"
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"name": "plan-validation",
|
|
205
|
+
"directory": "skills/plan-validation/"
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"name": "plan-writing",
|
|
209
|
+
"directory": "skills/plan-writing/"
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"name": "security-practices",
|
|
213
|
+
"directory": "skills/security-practices/"
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"name": "strategic-compact",
|
|
217
|
+
"directory": "skills/strategic-compact/"
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"name": "testing-patterns",
|
|
221
|
+
"directory": "skills/testing-patterns/"
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"name": "typescript-expert",
|
|
225
|
+
"directory": "skills/typescript-expert/"
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"name": "ui-ux-pro-max",
|
|
229
|
+
"directory": "skills/ui-ux-pro-max/"
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"name": "verification-loop",
|
|
233
|
+
"directory": "skills/verification-loop/"
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"name": "webapp-testing",
|
|
237
|
+
"directory": "skills/webapp-testing/"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"name": "shell-conventions",
|
|
241
|
+
"directory": "skills/shell-conventions/"
|
|
242
|
+
}
|
|
71
243
|
]
|
|
72
244
|
},
|
|
73
245
|
"workflows": {
|
|
74
246
|
"count": 14,
|
|
75
247
|
"items": [
|
|
76
|
-
{
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
{
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
{
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
{
|
|
89
|
-
|
|
248
|
+
{
|
|
249
|
+
"name": "brainstorm",
|
|
250
|
+
"file": "workflows/brainstorm.md"
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
"name": "create",
|
|
254
|
+
"file": "workflows/create.md"
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"name": "debug",
|
|
258
|
+
"file": "workflows/debug.md"
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"name": "deploy",
|
|
262
|
+
"file": "workflows/deploy.md"
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"name": "enhance",
|
|
266
|
+
"file": "workflows/enhance.md"
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"name": "orchestrate",
|
|
270
|
+
"file": "workflows/orchestrate.md"
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"name": "plan",
|
|
274
|
+
"file": "workflows/plan.md"
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"name": "preview",
|
|
278
|
+
"file": "workflows/preview.md"
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
"name": "quality-gate",
|
|
282
|
+
"file": "workflows/quality-gate.md"
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
"name": "retrospective",
|
|
286
|
+
"file": "workflows/retrospective.md"
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
"name": "review",
|
|
290
|
+
"file": "workflows/review.md"
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"name": "status",
|
|
294
|
+
"file": "workflows/status.md"
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"name": "test",
|
|
298
|
+
"file": "workflows/test.md"
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
"name": "ui-ux-pro-max",
|
|
302
|
+
"file": "workflows/ui-ux-pro-max.md"
|
|
303
|
+
}
|
|
90
304
|
]
|
|
91
305
|
},
|
|
92
306
|
"rules": {
|
|
93
307
|
"count": 8,
|
|
94
308
|
"items": [
|
|
95
|
-
{
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
{
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
309
|
+
{
|
|
310
|
+
"name": "architecture",
|
|
311
|
+
"file": "rules/architecture.md"
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
"name": "coding-style",
|
|
315
|
+
"file": "rules/coding-style.md"
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"name": "documentation",
|
|
319
|
+
"file": "rules/documentation.md"
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
"name": "git-workflow",
|
|
323
|
+
"file": "rules/git-workflow.md"
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
"name": "quality-gate",
|
|
327
|
+
"file": "rules/quality-gate.md"
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"name": "security",
|
|
331
|
+
"file": "rules/security.md"
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"name": "sprint-tracking",
|
|
335
|
+
"file": "rules/sprint-tracking.md"
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
"name": "testing",
|
|
339
|
+
"file": "rules/testing.md"
|
|
340
|
+
}
|
|
103
341
|
]
|
|
104
342
|
},
|
|
105
343
|
"checklists": {
|
|
106
344
|
"count": 4,
|
|
107
345
|
"items": [
|
|
108
|
-
{
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
346
|
+
{
|
|
347
|
+
"name": "pre-commit",
|
|
348
|
+
"file": "checklists/pre-commit.md"
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"name": "session-start",
|
|
352
|
+
"file": "checklists/session-start.md"
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"name": "session-end",
|
|
356
|
+
"file": "checklists/session-end.md"
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
"name": "task-complete",
|
|
360
|
+
"file": "checklists/task-complete.md"
|
|
361
|
+
}
|
|
112
362
|
]
|
|
113
363
|
},
|
|
114
364
|
"hooks": {
|
|
115
365
|
"count": 8,
|
|
116
366
|
"items": [
|
|
117
|
-
{
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
{
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
367
|
+
{
|
|
368
|
+
"name": "session-start",
|
|
369
|
+
"event": "session-start"
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
"name": "session-end",
|
|
373
|
+
"event": "session-end"
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
"name": "pre-commit",
|
|
377
|
+
"event": "pre-commit"
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
"name": "secret-detection",
|
|
381
|
+
"event": "secret-detection"
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
"name": "phase-transition",
|
|
385
|
+
"event": "phase-transition"
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
"name": "sprint-checkpoint",
|
|
389
|
+
"event": "sprint-checkpoint"
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
"name": "plan-complete",
|
|
393
|
+
"event": "plan-complete"
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
"name": "task-complete",
|
|
397
|
+
"event": "task-complete"
|
|
398
|
+
}
|
|
125
399
|
]
|
|
126
400
|
}
|
|
127
401
|
}
|
|
@@ -1,80 +1,69 @@
|
|
|
1
|
-
# AI Session Context
|
|
2
|
-
|
|
3
|
-
> **Purpose**: Quick context loading for AI agents to resume work efficiently
|
|
4
|
-
> **Auto-Updated**: End of each session
|
|
5
|
-
> **Last Updated**:
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Last Session Summary
|
|
10
|
-
|
|
11
|
-
**Date**:
|
|
12
|
-
**Duration**:
|
|
13
|
-
**Focus Area**:
|
|
14
|
-
|
|
15
|
-
### What Was Done
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
-
|
|
70
|
-
- NPM package published as `@emredursun/antigravity-ai-kit`
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## Handoff Notes
|
|
75
|
-
|
|
76
|
-
If another session will continue this work:
|
|
77
|
-
|
|
78
|
-
- **Next Priority**: Port BeSync-specific skills and commands to AI Kit
|
|
79
|
-
- **Blockers**: None
|
|
80
|
-
- **Context Files**: `docs/skills/index.md`, `.agent/skills/`, `.agent/commands/`
|
|
1
|
+
# AI Session Context
|
|
2
|
+
|
|
3
|
+
> **Purpose**: Quick context loading for AI agents to resume work efficiently
|
|
4
|
+
> **Auto-Updated**: End of each session
|
|
5
|
+
> **Last Updated**: —
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Last Session Summary
|
|
10
|
+
|
|
11
|
+
**Date**: —
|
|
12
|
+
**Duration**: —
|
|
13
|
+
**Focus Area**: —
|
|
14
|
+
|
|
15
|
+
### What Was Done
|
|
16
|
+
|
|
17
|
+
- [ ] _(Updated automatically at session end)_
|
|
18
|
+
|
|
19
|
+
### Session Commits
|
|
20
|
+
|
|
21
|
+
| Commit | Message | Branch |
|
|
22
|
+
| :----- | :------ | :----- |
|
|
23
|
+
| — | — | — |
|
|
24
|
+
|
|
25
|
+
### Open Items (Priority Order)
|
|
26
|
+
|
|
27
|
+
1. [ ] _(Add your current priorities here)_
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Current Working Context
|
|
32
|
+
|
|
33
|
+
**Branch**: —
|
|
34
|
+
**Repository**: —
|
|
35
|
+
**Framework**: Antigravity AI Kit v3.5.1
|
|
36
|
+
|
|
37
|
+
### Key File Locations
|
|
38
|
+
|
|
39
|
+
| Purpose | Path |
|
|
40
|
+
| :------------ | :-------------- |
|
|
41
|
+
| Main Entry | `.agent/` |
|
|
42
|
+
| Documentation | `docs/` |
|
|
43
|
+
| Configuration | `mkdocs.yml` |
|
|
44
|
+
| CLI Tool | `bin/ag-kit.js` |
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Quick Resume
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Common commands to resume work
|
|
52
|
+
git status
|
|
53
|
+
git log -n 3 --oneline
|
|
54
|
+
ag-kit status
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Environment Notes
|
|
58
|
+
|
|
59
|
+
- _(Add project-specific notes here)_
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Handoff Notes
|
|
64
|
+
|
|
65
|
+
If another session will continue this work:
|
|
66
|
+
|
|
67
|
+
- **Next Priority**: _(Describe next task)_
|
|
68
|
+
- **Blockers**: None
|
|
69
|
+
- **Context Files**: _(List relevant files)_
|
|
@@ -68,7 +68,7 @@ allowed-tools: Read, Glob, Grep, Bash
|
|
|
68
68
|
|
|
69
69
|
## 3. Platform-Specific Procedures
|
|
70
70
|
|
|
71
|
-
### Vercel
|
|
71
|
+
### Vercel
|
|
72
72
|
|
|
73
73
|
```bash
|
|
74
74
|
# Preview deploy (automatic on PR)
|
|
@@ -172,7 +172,7 @@ Before deploying:
|
|
|
172
172
|
|
|
173
173
|
---
|
|
174
174
|
|
|
175
|
-
## 9.
|
|
175
|
+
## 9. Example Deployment Flow
|
|
176
176
|
|
|
177
177
|
```
|
|
178
178
|
develop → staging (auto) → main → production (auto)
|
|
@@ -188,4 +188,4 @@ export const config = {
|
|
|
188
188
|
|
|
189
189
|
---
|
|
190
190
|
|
|
191
|
-
> **Source**: Antigravity AI Kit — [
|
|
191
|
+
> **Source**: Antigravity AI Kit — [antigravity-ai-kit](https://github.com/besync-labs/antigravity-ai-kit)
|
|
@@ -146,7 +146,7 @@ GPU-accelerated (FAST): CPU-bound (SLOW):
|
|
|
146
146
|
### Before Starting ANY Mobile Project
|
|
147
147
|
|
|
148
148
|
- [ ] Platform(s) confirmed (iOS/Android/Both)
|
|
149
|
-
- [ ] Framework chosen (Expo
|
|
149
|
+
- [ ] Framework chosen (Expo recommended)
|
|
150
150
|
- [ ] Navigation pattern decided
|
|
151
151
|
- [ ] Offline requirements clarified
|
|
152
152
|
- [ ] Design system tokens defined
|
|
@@ -167,7 +167,7 @@ GPU-accelerated (FAST): CPU-bound (SLOW):
|
|
|
167
167
|
|
|
168
168
|
---
|
|
169
169
|
|
|
170
|
-
## 🔗
|
|
170
|
+
## 🔗 Recommended Mobile Stack
|
|
171
171
|
|
|
172
172
|
| Layer | Technology |
|
|
173
173
|
| ---------- | -------------------------------- |
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 🚀 Antigravity AI Kit
|
|
2
2
|
|
|
3
|
-

|
|
4
4
|

|
|
5
5
|

|
|
6
6
|

|
package/bin/ag-kit.js
CHANGED
|
@@ -17,6 +17,7 @@ const path = require('path');
|
|
|
17
17
|
const VERSION = require('../package.json').version;
|
|
18
18
|
const AGENT_FOLDER = '.agent';
|
|
19
19
|
const { safeCopyDirSync, readJsonSafe } = require('../lib/io');
|
|
20
|
+
const { USER_DATA_FILES, USER_DATA_DIRS } = require('../lib/updater');
|
|
20
21
|
|
|
21
22
|
// ANSI colors
|
|
22
23
|
const colors = {
|
|
@@ -37,7 +38,24 @@ function logStep(step, message) {
|
|
|
37
38
|
console.log(`${colors.cyan}[${step}]${colors.reset} ${message}`);
|
|
38
39
|
}
|
|
39
40
|
|
|
41
|
+
function loadBannerCounts() {
|
|
42
|
+
try {
|
|
43
|
+
const manifestPath = path.join(__dirname, '..', AGENT_FOLDER, 'manifest.json');
|
|
44
|
+
const manifest = readJsonSafe(manifestPath, null);
|
|
45
|
+
if (manifest?.capabilities) {
|
|
46
|
+
return {
|
|
47
|
+
agents: manifest.capabilities.agents?.count || 19,
|
|
48
|
+
skills: manifest.capabilities.skills?.count || 32,
|
|
49
|
+
commands: manifest.capabilities.commands?.count || 31,
|
|
50
|
+
workflows: manifest.capabilities.workflows?.count || 14,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
} catch { /* fallback to defaults */ }
|
|
54
|
+
return { agents: 19, skills: 32, commands: 31, workflows: 14 };
|
|
55
|
+
}
|
|
56
|
+
|
|
40
57
|
function showBanner() {
|
|
58
|
+
const counts = loadBannerCounts();
|
|
41
59
|
console.log(`
|
|
42
60
|
${colors.bright}${colors.blue}
|
|
43
61
|
_____ __ .__ .__ __
|
|
@@ -50,8 +68,8 @@ ${colors.reset}
|
|
|
50
68
|
${colors.green}🚀 Antigravity AI Kit v${VERSION}${colors.reset}
|
|
51
69
|
${colors.yellow} Transform Your IDE into an Autonomous Engineering Team${colors.reset}
|
|
52
70
|
|
|
53
|
-
•
|
|
54
|
-
•
|
|
71
|
+
• ${counts.agents} AI Agents • ${counts.skills} Skills
|
|
72
|
+
• ${counts.commands} Commands • ${counts.workflows} Workflows
|
|
55
73
|
• Runtime Engine • Error Budget
|
|
56
74
|
`);
|
|
57
75
|
}
|
|
@@ -169,15 +187,13 @@ function initCommand(options) {
|
|
|
169
187
|
log(` To: ${agentPath}\n`, 'cyan');
|
|
170
188
|
// M-2: Show force damage preview
|
|
171
189
|
if (options.force && fs.existsSync(agentPath)) {
|
|
172
|
-
log(' ⚠️ --force would overwrite these user files:', 'yellow');
|
|
173
|
-
const
|
|
174
|
-
const userDirs = ['decisions', 'contexts'];
|
|
175
|
-
for (const f of userFiles) {
|
|
190
|
+
log(' ⚠️ --force would overwrite these user files (restored from backup):', 'yellow');
|
|
191
|
+
for (const f of USER_DATA_FILES) {
|
|
176
192
|
if (fs.existsSync(path.join(agentPath, f))) {
|
|
177
193
|
log(` • ${f}`, 'yellow');
|
|
178
194
|
}
|
|
179
195
|
}
|
|
180
|
-
for (const d of
|
|
196
|
+
for (const d of USER_DATA_DIRS) {
|
|
181
197
|
if (fs.existsSync(path.join(agentPath, d))) {
|
|
182
198
|
log(` • ${d}/ (directory)`, 'yellow');
|
|
183
199
|
}
|
|
@@ -188,10 +204,11 @@ function initCommand(options) {
|
|
|
188
204
|
}
|
|
189
205
|
|
|
190
206
|
// C-2: Auto-backup before force-overwrite
|
|
207
|
+
let backupPath = null;
|
|
191
208
|
if (options.force && fs.existsSync(agentPath)) {
|
|
192
|
-
logStep('1/
|
|
209
|
+
logStep('1/5', 'Backing up existing .agent folder...');
|
|
193
210
|
try {
|
|
194
|
-
|
|
211
|
+
backupPath = backupDirectory(agentPath);
|
|
195
212
|
log(` ✓ Backup created: ${path.basename(backupPath)}`, 'green');
|
|
196
213
|
} catch (err) {
|
|
197
214
|
log(` ⚠️ Backup failed: ${err.message}`, 'yellow');
|
|
@@ -199,9 +216,13 @@ function initCommand(options) {
|
|
|
199
216
|
}
|
|
200
217
|
}
|
|
201
218
|
|
|
219
|
+
// Dynamic step counter — avoids hardcoded step strings
|
|
220
|
+
const isForceWithBackup = backupPath !== null;
|
|
221
|
+
const totalSteps = isForceWithBackup ? 5 : 3;
|
|
222
|
+
let currentStep = isForceWithBackup ? 2 : 1;
|
|
223
|
+
|
|
202
224
|
// C-3: Atomic copy via temp directory
|
|
203
|
-
|
|
204
|
-
logStep(stepPrefix, 'Copying .agent folder...');
|
|
225
|
+
logStep(`${currentStep}/${totalSteps}`, 'Copying .agent folder...');
|
|
205
226
|
|
|
206
227
|
const tempPath = `${agentPath}.tmp-${Date.now()}`;
|
|
207
228
|
try {
|
|
@@ -225,16 +246,53 @@ function initCommand(options) {
|
|
|
225
246
|
log(` ✗ Failed to copy: ${err.message}`, 'red');
|
|
226
247
|
process.exit(1);
|
|
227
248
|
}
|
|
249
|
+
currentStep++;
|
|
250
|
+
|
|
251
|
+
// E3: Restore user data files from backup after force-overwrite
|
|
252
|
+
if (isForceWithBackup) {
|
|
253
|
+
logStep(`${currentStep}/${totalSteps}`, 'Restoring user session data from backup...');
|
|
254
|
+
let restoredCount = 0;
|
|
255
|
+
|
|
256
|
+
for (const file of USER_DATA_FILES) {
|
|
257
|
+
const backupFile = path.join(backupPath, file);
|
|
258
|
+
const targetFile = path.join(agentPath, file);
|
|
259
|
+
if (fs.existsSync(backupFile)) {
|
|
260
|
+
const targetDirPath = path.dirname(targetFile);
|
|
261
|
+
if (!fs.existsSync(targetDirPath)) {
|
|
262
|
+
fs.mkdirSync(targetDirPath, { recursive: true });
|
|
263
|
+
}
|
|
264
|
+
fs.copyFileSync(backupFile, targetFile);
|
|
265
|
+
log(` ✓ Restored ${file}`, 'green');
|
|
266
|
+
restoredCount++;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
for (const dir of USER_DATA_DIRS) {
|
|
271
|
+
const backupDir = path.join(backupPath, dir);
|
|
272
|
+
const targetDirPath = path.join(agentPath, dir);
|
|
273
|
+
if (fs.existsSync(backupDir)) {
|
|
274
|
+
safeCopyDirSync(backupDir, targetDirPath);
|
|
275
|
+
log(` ✓ Restored ${dir}/`, 'green');
|
|
276
|
+
restoredCount++;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
if (restoredCount === 0) {
|
|
281
|
+
log(' ○ No user data to restore', 'yellow');
|
|
282
|
+
}
|
|
283
|
+
currentStep++;
|
|
284
|
+
}
|
|
228
285
|
|
|
229
286
|
// Verify installation
|
|
230
|
-
logStep(
|
|
287
|
+
logStep(`${currentStep}/${totalSteps}`, 'Verifying installation...');
|
|
231
288
|
const skills = countItems(path.join(agentPath, 'skills'), 'dir');
|
|
232
289
|
const commands = countItems(path.join(agentPath, 'commands'), 'file');
|
|
233
290
|
const workflows = countItems(path.join(agentPath, 'workflows'), 'file');
|
|
234
291
|
log(` ✓ Skills: ${skills}, Commands: ${commands}, Workflows: ${workflows}`, 'green');
|
|
292
|
+
currentStep++;
|
|
235
293
|
|
|
236
294
|
// Final message
|
|
237
|
-
logStep(
|
|
295
|
+
logStep(`${currentStep}/${totalSteps}`, 'Setup complete!');
|
|
238
296
|
|
|
239
297
|
if (!options.quiet) {
|
|
240
298
|
console.log(`
|
|
@@ -424,11 +482,13 @@ function updateCommand(updateOptions) {
|
|
|
424
482
|
const updater = require('../lib/updater');
|
|
425
483
|
const isDryRun = updateOptions.dryRun;
|
|
426
484
|
|
|
427
|
-
// M-1: Show version transition
|
|
485
|
+
// M-1: Show version transition (use source kit version, not CLI version)
|
|
486
|
+
const sourcePackage = readJsonSafe(path.join(sourceRoot, 'package.json'), {});
|
|
487
|
+
const kitVersion = sourcePackage.version || VERSION;
|
|
428
488
|
const currentManifest = readJsonSafe(path.join(agentPath, 'manifest.json'), {});
|
|
429
489
|
const currentVersion = currentManifest.kitVersion || 'unknown';
|
|
430
|
-
if (currentVersion !==
|
|
431
|
-
log(`\n 📦 Upgrading
|
|
490
|
+
if (currentVersion !== kitVersion) {
|
|
491
|
+
log(`\n 📦 Upgrading: v${currentVersion} → v${kitVersion}`, 'cyan');
|
|
432
492
|
}
|
|
433
493
|
|
|
434
494
|
if (isDryRun) {
|
package/lib/updater.js
CHANGED
|
@@ -18,14 +18,21 @@ const crypto = require('crypto');
|
|
|
18
18
|
|
|
19
19
|
const { AGENT_DIR } = require('./constants');
|
|
20
20
|
|
|
21
|
-
/**
|
|
22
|
-
|
|
21
|
+
/**
|
|
22
|
+
* User data files that should NEVER be overwritten during updates.
|
|
23
|
+
* These contain project-specific data populated at runtime.
|
|
24
|
+
*/
|
|
25
|
+
const USER_DATA_FILES = new Set([
|
|
23
26
|
'session-context.md',
|
|
24
27
|
'session-state.json',
|
|
28
|
+
'engine/identity.json',
|
|
25
29
|
]);
|
|
26
30
|
|
|
27
|
-
/**
|
|
28
|
-
|
|
31
|
+
/**
|
|
32
|
+
* User data directories whose contents should NEVER be overwritten.
|
|
33
|
+
* These contain project-specific decisions and context.
|
|
34
|
+
*/
|
|
35
|
+
const USER_DATA_DIRS = new Set([
|
|
29
36
|
'decisions',
|
|
30
37
|
'contexts',
|
|
31
38
|
]);
|
|
@@ -86,15 +93,23 @@ function collectFiles(rootDir, prefix = '') {
|
|
|
86
93
|
* @returns {boolean} True if the file should be preserved
|
|
87
94
|
*/
|
|
88
95
|
function isPreservedFile(relativePath) {
|
|
89
|
-
//
|
|
96
|
+
// Normalize path separators for cross-platform matching
|
|
97
|
+
const normalizedPath = relativePath.replace(/\\/g, '/');
|
|
98
|
+
|
|
99
|
+
// Check exact relative path matches (e.g., 'engine/identity.json')
|
|
100
|
+
if (USER_DATA_FILES.has(normalizedPath)) {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// Check basename matches for root-level files (e.g., 'session-context.md')
|
|
90
105
|
const basename = path.basename(relativePath);
|
|
91
|
-
if (
|
|
106
|
+
if (USER_DATA_FILES.has(basename)) {
|
|
92
107
|
return true;
|
|
93
108
|
}
|
|
94
109
|
|
|
95
|
-
// Check if inside a
|
|
96
|
-
const parts =
|
|
97
|
-
for (const dir of
|
|
110
|
+
// Check if inside a user data directory
|
|
111
|
+
const parts = normalizedPath.split('/');
|
|
112
|
+
for (const dir of USER_DATA_DIRS) {
|
|
98
113
|
if (parts.includes(dir)) {
|
|
99
114
|
return true;
|
|
100
115
|
}
|
|
@@ -199,4 +214,6 @@ module.exports = {
|
|
|
199
214
|
applyUpdate,
|
|
200
215
|
isPreservedFile,
|
|
201
216
|
collectFiles,
|
|
217
|
+
USER_DATA_FILES,
|
|
218
|
+
USER_DATA_DIRS,
|
|
202
219
|
};
|
package/package.json
CHANGED
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "antigravity-ai-kit",
|
|
3
|
-
"version": "3.5.
|
|
4
|
-
"description": "🚀 Trust-Grade AI development framework with a 29-module runtime engine — 19 Agents, 32 Skills, 31 Commands, 14 Workflows, 8 Rules, 341 Tests. Workflow enforcement, task governance, agent reputation, self-healing, and skill marketplace.",
|
|
5
|
-
"main": "bin/ag-kit.js",
|
|
6
|
-
"bin": {
|
|
7
|
-
"ag-kit": "./bin/ag-kit.js"
|
|
8
|
-
},
|
|
9
|
-
"scripts": {
|
|
10
|
-
"test": "vitest run",
|
|
11
|
-
"test:watch": "vitest watch",
|
|
12
|
-
"preversion": "npm test",
|
|
13
|
-
"version": "node scripts/sync-version.js && git add -A",
|
|
14
|
-
"postinstall": "echo '✅ Antigravity AI Kit installed! Run: ag-kit init'"
|
|
15
|
-
},
|
|
16
|
-
"keywords": [
|
|
17
|
-
"ai",
|
|
18
|
-
"agents",
|
|
19
|
-
"gemini",
|
|
20
|
-
"claude",
|
|
21
|
-
"antigravity",
|
|
22
|
-
"development",
|
|
23
|
-
"workflow",
|
|
24
|
-
"skills",
|
|
25
|
-
"commands",
|
|
26
|
-
"devtools",
|
|
27
|
-
"productivity",
|
|
28
|
-
"cli"
|
|
29
|
-
],
|
|
30
|
-
"author": "Emre Dursun <info.emredursun@gmail.com>",
|
|
31
|
-
"license": "MIT",
|
|
32
|
-
"repository": {
|
|
33
|
-
"type": "git",
|
|
34
|
-
"url": "git+https://github.com/besync-labs/antigravity-ai-kit.git"
|
|
35
|
-
},
|
|
36
|
-
"bugs": {
|
|
37
|
-
"url": "https://github.com/besync-labs/antigravity-ai-kit/issues"
|
|
38
|
-
},
|
|
39
|
-
"homepage": "https://github.com/besync-labs/antigravity-ai-kit#readme",
|
|
40
|
-
"engines": {
|
|
41
|
-
"node": ">=18.0.0",
|
|
42
|
-
"npm": ">=9.0.0"
|
|
43
|
-
},
|
|
44
|
-
"files": [
|
|
45
|
-
"bin/",
|
|
46
|
-
"lib/",
|
|
47
|
-
".agent/",
|
|
48
|
-
"README.md",
|
|
49
|
-
"LICENSE"
|
|
50
|
-
],
|
|
51
|
-
"devDependencies": {
|
|
52
|
-
"vitest": "^4.1.0"
|
|
53
|
-
}
|
|
54
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "antigravity-ai-kit",
|
|
3
|
+
"version": "3.5.2",
|
|
4
|
+
"description": "🚀 Trust-Grade AI development framework with a 29-module runtime engine — 19 Agents, 32 Skills, 31 Commands, 14 Workflows, 8 Rules, 341 Tests. Workflow enforcement, task governance, agent reputation, self-healing, and skill marketplace.",
|
|
5
|
+
"main": "bin/ag-kit.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"ag-kit": "./bin/ag-kit.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"test": "vitest run",
|
|
11
|
+
"test:watch": "vitest watch",
|
|
12
|
+
"preversion": "npm test",
|
|
13
|
+
"version": "node scripts/sync-version.js && git add -A",
|
|
14
|
+
"postinstall": "echo '✅ Antigravity AI Kit installed! Run: ag-kit init'"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"ai",
|
|
18
|
+
"agents",
|
|
19
|
+
"gemini",
|
|
20
|
+
"claude",
|
|
21
|
+
"antigravity",
|
|
22
|
+
"development",
|
|
23
|
+
"workflow",
|
|
24
|
+
"skills",
|
|
25
|
+
"commands",
|
|
26
|
+
"devtools",
|
|
27
|
+
"productivity",
|
|
28
|
+
"cli"
|
|
29
|
+
],
|
|
30
|
+
"author": "Emre Dursun <info.emredursun@gmail.com>",
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"repository": {
|
|
33
|
+
"type": "git",
|
|
34
|
+
"url": "git+https://github.com/besync-labs/antigravity-ai-kit.git"
|
|
35
|
+
},
|
|
36
|
+
"bugs": {
|
|
37
|
+
"url": "https://github.com/besync-labs/antigravity-ai-kit/issues"
|
|
38
|
+
},
|
|
39
|
+
"homepage": "https://github.com/besync-labs/antigravity-ai-kit#readme",
|
|
40
|
+
"engines": {
|
|
41
|
+
"node": ">=18.0.0",
|
|
42
|
+
"npm": ">=9.0.0"
|
|
43
|
+
},
|
|
44
|
+
"files": [
|
|
45
|
+
"bin/",
|
|
46
|
+
"lib/",
|
|
47
|
+
".agent/",
|
|
48
|
+
"README.md",
|
|
49
|
+
"LICENSE"
|
|
50
|
+
],
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"vitest": "^4.1.0"
|
|
53
|
+
}
|
|
54
|
+
}
|