class-ai-agent 1.4.0 → 1.5.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.
Files changed (157) hide show
  1. package/.agent/README.md +10 -5
  2. package/.agent/SESSION.md +18 -13
  3. package/.agent/rules/agent-continuity.md +44 -0
  4. package/.agent/rules/antigravity-overview.md +38 -0
  5. package/.agent/rules/api-conventions.md +85 -0
  6. package/.agent/rules/clean-code.md +211 -0
  7. package/.agent/rules/code-style.md +92 -0
  8. package/.agent/rules/codegraph.md +47 -0
  9. package/.agent/rules/database.md +66 -0
  10. package/.agent/rules/error-handling.md +98 -0
  11. package/.agent/rules/git-workflow.md +83 -0
  12. package/.agent/rules/monitoring.md +317 -0
  13. package/.agent/rules/naming-conventions.md +266 -0
  14. package/.agent/rules/project-structure.md +71 -0
  15. package/.agent/rules/security.md +95 -0
  16. package/.agent/rules/system-design.md +168 -0
  17. package/.agent/rules/tech-stack.md +463 -0
  18. package/.agent/rules/testing.md +110 -0
  19. package/.agents/agents/backend.md +395 -0
  20. package/.agents/agents/business-analyst.md +380 -0
  21. package/.agents/agents/code-reviewer.md +110 -0
  22. package/.agents/agents/copywriter-seo.md +236 -0
  23. package/.agents/agents/frontend.md +384 -0
  24. package/.agents/agents/project-manager.md +201 -0
  25. package/.agents/agents/qa.md +221 -0
  26. package/.agents/agents/security-auditor.md +143 -0
  27. package/.agents/agents/systems-architect.md +211 -0
  28. package/.agents/agents/test-engineer.md +123 -0
  29. package/.agents/agents/ui-ux-designer.md +210 -0
  30. package/.agents/references/accessibility-checklist.md +174 -0
  31. package/.agents/references/agent-continuity.md +42 -0
  32. package/.agents/references/codegraph.md +90 -0
  33. package/.agents/references/mcp-antigravity.md +71 -0
  34. package/.agents/references/performance-checklist.md +150 -0
  35. package/.agents/references/security-checklist.md +94 -0
  36. package/.agents/references/supabase.md +55 -0
  37. package/.agents/references/testing-patterns.md +183 -0
  38. package/.agents/skills/agent-continuity/SKILL.md +70 -0
  39. package/.agents/skills/code-review/SKILL.md +208 -0
  40. package/.agents/skills/deploy/SKILL.md +68 -0
  41. package/.agents/skills/deploy/deploy.md +735 -0
  42. package/.agents/skills/incremental-implementation/SKILL.md +210 -0
  43. package/.agents/skills/security-review/SKILL.md +71 -0
  44. package/.agents/skills/supabase/SKILL.md +135 -0
  45. package/.agents/skills/supabase/UPSTREAM.md +16 -0
  46. package/.agents/skills/supabase/assets/feedback-issue-template.md +17 -0
  47. package/.agents/skills/supabase/references/skill-feedback.md +17 -0
  48. package/.agents/skills/supabase-postgres-best-practices/SKILL.md +64 -0
  49. package/.agents/skills/supabase-postgres-best-practices/UPSTREAM.md +16 -0
  50. package/.agents/skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
  51. package/.agents/skills/supabase-postgres-best-practices/references/_sections.md +39 -0
  52. package/.agents/skills/supabase-postgres-best-practices/references/_template.md +34 -0
  53. package/.agents/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
  54. package/.agents/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
  55. package/.agents/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
  56. package/.agents/skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
  57. package/.agents/skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
  58. package/.agents/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
  59. package/.agents/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
  60. package/.agents/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
  61. package/.agents/skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
  62. package/.agents/skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
  63. package/.agents/skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
  64. package/.agents/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
  65. package/.agents/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
  66. package/.agents/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
  67. package/.agents/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
  68. package/.agents/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
  69. package/.agents/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
  70. package/.agents/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
  71. package/.agents/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
  72. package/.agents/skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
  73. package/.agents/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
  74. package/.agents/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
  75. package/.agents/skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
  76. package/.agents/skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
  77. package/.agents/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
  78. package/.agents/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
  79. package/.agents/skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
  80. package/.agents/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
  81. package/.agents/skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
  82. package/.agents/skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
  83. package/.agents/skills/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
  84. package/.agents/skills/tdd/SKILL.md +217 -0
  85. package/.agents/skills/ui-ux-pro-max/SKILL.md +288 -0
  86. package/.agents/skills/ui-ux-pro-max/data/charts.csv +26 -0
  87. package/.agents/skills/ui-ux-pro-max/data/colors.csv +97 -0
  88. package/.agents/skills/ui-ux-pro-max/data/icons.csv +101 -0
  89. package/.agents/skills/ui-ux-pro-max/data/landing.csv +31 -0
  90. package/.agents/skills/ui-ux-pro-max/data/products.csv +97 -0
  91. package/.agents/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  92. package/.agents/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  93. package/.agents/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  94. package/.agents/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  95. package/.agents/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  96. package/.agents/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  97. package/.agents/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  98. package/.agents/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  99. package/.agents/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  100. package/.agents/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  101. package/.agents/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  102. package/.agents/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  103. package/.agents/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  104. package/.agents/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  105. package/.agents/skills/ui-ux-pro-max/data/styles.csv +68 -0
  106. package/.agents/skills/ui-ux-pro-max/data/typography.csv +58 -0
  107. package/.agents/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  108. package/.agents/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  109. package/.agents/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
  110. package/.agents/skills/ui-ux-pro-max/scripts/core.py +253 -0
  111. package/.agents/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
  112. package/.agents/skills/ui-ux-pro-max/scripts/search.py +114 -0
  113. package/.agents/workflows/build.md +132 -0
  114. package/.agents/workflows/debug.md +242 -0
  115. package/.agents/workflows/deploy.md +43 -0
  116. package/.agents/workflows/fix-issue.md +45 -0
  117. package/.agents/workflows/handoff.md +93 -0
  118. package/.agents/workflows/plan.md +125 -0
  119. package/.agents/workflows/publish-npm.md +122 -0
  120. package/.agents/workflows/resume.md +106 -0
  121. package/.agents/workflows/review.md +53 -0
  122. package/.agents/workflows/simplify.md +221 -0
  123. package/.agents/workflows/spec.md +95 -0
  124. package/.agents/workflows/test.md +213 -0
  125. package/.claude/CLAUDE.md +23 -0
  126. package/.claude/agents/business-analyst.md +380 -0
  127. package/.claude/references/codegraph.md +26 -14
  128. package/.claude/rules/agent-continuity.md +3 -2
  129. package/.claude/rules/api-conventions.md +1 -0
  130. package/.claude/rules/clean-code.md +1 -0
  131. package/.claude/rules/code-style.md +1 -0
  132. package/.claude/rules/codegraph.md +43 -0
  133. package/.claude/rules/database.md +2 -1
  134. package/.claude/rules/error-handling.md +1 -0
  135. package/.claude/rules/git-workflow.md +1 -0
  136. package/.claude/rules/monitoring.md +1 -0
  137. package/.claude/rules/naming-conventions.md +1 -0
  138. package/.claude/rules/project-structure.md +1 -0
  139. package/.claude/rules/security.md +1 -0
  140. package/.claude/rules/system-design.md +1 -0
  141. package/.claude/rules/tech-stack.md +1 -0
  142. package/.claude/rules/testing.md +1 -0
  143. package/.claude/settings.json +3 -1
  144. package/.claude/skills/ui-ux-pro-max/SKILL.md +1 -90
  145. package/.cursor/CURSOR.md +1 -1
  146. package/.cursor/agents/business-analyst.md +380 -0
  147. package/.cursor/rules/cursor-overview.mdc +4 -3
  148. package/.cursor/rules/database.mdc +2 -2
  149. package/.kiro/KIRO.md +3 -3
  150. package/.kiro/agents/business-analyst.md +380 -0
  151. package/.kiro/steering/database.md +2 -2
  152. package/.kiro/steering/kiro-overview.md +2 -2
  153. package/AGENTS.md +23 -1
  154. package/GEMINI.md +152 -0
  155. package/README.md +65 -19
  156. package/bin/class-ai-agent.cjs +85 -9
  157. package/package.json +11 -4
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # AI Agent Project
2
2
 
3
- **Production-grade configuration for [Claude Code](https://code.claude.com/docs), [Cursor](https://cursor.com), and [Kiro](https://kiro.dev)** — shared rules, specialized agents, workflow prompts, and checklists you can drop into any repository.
3
+ **Production-grade configuration for [Claude Code](https://code.claude.com/docs), [Cursor](https://cursor.com), [Kiro](https://kiro.dev), and [Antigravity](https://antigravity.google)** — shared rules, specialized agents, workflow prompts, and checklists you can drop into any repository.
4
4
 
5
5
  <div align="center">
6
6
 
@@ -18,7 +18,7 @@ Open-source AI agent scaffolding by **Royal Solution** — use it in your own pr
18
18
  <a href="https://www.npmjs.com/package/class-ai-agent"><img src="https://img.shields.io/npm/v/class-ai-agent?label=npm&logo=npm&style=flat-square" alt="npm version" /></a>
19
19
  <img src="https://img.shields.io/badge/node-%3E%3D16.7-339933?logo=node.js&logoColor=white&style=flat-square" alt="Node.js 16.7+" />
20
20
  <img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License MIT" />
21
- <img src="https://img.shields.io/badge/version-1.4.0-blue?style=flat-square" alt="Version" />
21
+ <img src="https://img.shields.io/badge/version-1.5.0-blue?style=flat-square" alt="Version" />
22
22
  </p>
23
23
 
24
24
  </div>
@@ -51,15 +51,15 @@ Open-source AI agent scaffolding by **Royal Solution** — use it in your own pr
51
51
 
52
52
  | You get | Details |
53
53
  |--------|---------|
54
- | **Three layouts** | **`.claude/`** (Claude Code), **`.cursor/`** (Cursor), **`.kiro/`** (Kiro steering + MCP) |
54
+ | **Four layouts** | **`.claude/`** (Claude Code), **`.cursor/`** (Cursor), **`.kiro/`** (Kiro), **`.agents/`** + **`GEMINI.md`** (Antigravity) |
55
55
  | **One workflow** | Spec → Plan → Build → Test → Review → Ship |
56
- | **10 agent personas** | Frontend, backend, architect, review, QA, security, PM, UX, SEO, test engineer |
56
+ | **11 agent personas** | Frontend, backend, architect, review, QA, security, BA, PM, UX, SEO, test engineer |
57
57
  | **13 topic rules** | Code style, security, API, DB, testing, git, and more (same ideas in both trees) |
58
58
  | **`npx` installer** | Copies the folders into your project in one command |
59
- | **CodeGraph** | MCP + usage rules for Cursor and Kiro; local index via [CodeGraph](https://github.com/colbymchenry/codegraph) |
60
- | **Agent continuity** | Committed **`.agent/SESSION.md`** — `/resume` and `/handoff` across Cursor, Claude Code, and Kiro |
59
+ | **CodeGraph** | MCP + usage rules for Cursor and Kiro; Antigravity via user `mcp_config.json`; local index via [CodeGraph](https://github.com/colbymchenry/codegraph) |
60
+ | **Agent continuity** | Committed **`.agent/SESSION.md`** — `/resume` and `/handoff` across Cursor, Claude Code, Kiro, and Antigravity |
61
61
 
62
- Root **`AGENTS.md`** links hubs: **`.cursor/CURSOR.md`**, **`.kiro/KIRO.md`**, **`.claude/CLAUDE.md`**.
62
+ Root **`AGENTS.md`** links hubs: **`.cursor/CURSOR.md`**, **`.kiro/KIRO.md`**, **`.claude/CLAUDE.md`**, **`GEMINI.md`**.
63
63
 
64
64
  ---
65
65
 
@@ -74,7 +74,7 @@ When one agent stops and another starts (new chat, different IDE, or teammate),
74
74
 
75
75
  **Read order:** `.agent/SESSION.md` → `tasks/todo.md` → `SPEC.md` (from SESSION pointers).
76
76
 
77
- Rules: `.cursor/rules/agent-continuity.mdc`, `.claude/rules/agent-continuity.md`, `.kiro/steering/agent-continuity.md`. Reference: `.cursor/references/agent-continuity.md`.
77
+ Rules: `.cursor/rules/agent-continuity.mdc`, `.claude/rules/agent-continuity.md`, `.kiro/steering/agent-continuity.md`, `.agent/rules/agent-continuity.md`. Reference: `.cursor/references/agent-continuity.md`.
78
78
 
79
79
  Do **not** put secrets or PII in `SESSION.md`. See [`.agent/README.md`](.agent/README.md).
80
80
 
@@ -103,6 +103,7 @@ npx class-ai-agent --dir /path/to/your/project
103
103
  npx class-ai-agent --claude
104
104
  npx class-ai-agent --cursor
105
105
  npx class-ai-agent --kiro
106
+ npx class-ai-agent --antigravity
106
107
  npx class-ai-agent --force # overwrite existing
107
108
  npx class-ai-agent --help
108
109
  ```
@@ -116,7 +117,7 @@ npm exec -- class-ai-agent --dir /path/to/your/project
116
117
  # or: node bin/class-ai-agent.cjs --dir /path/to/your/project
117
118
  ```
118
119
 
119
- **Manual copy:** copy **`.agent/`**, **`.claude/`**, **`.cursor/`**, **`.kiro/`**, and **`AGENTS.md`** into your project root. Copy `.agent/SESSION.template.md` → `.agent/SESSION.md` if needed. Then run `npx @colbymchenry/codegraph init -i` and reload Cursor / restart Kiro.
120
+ **Manual copy:** copy **`.agent/`**, **`.agents/`**, **`.claude/`**, **`.cursor/`**, **`.kiro/`**, **`AGENTS.md`**, and **`GEMINI.md`** into your project root. Copy `.agent/SESSION.template.md` → `.agent/SESSION.md` if needed. Then run `npx @colbymchenry/codegraph init -i` and reload Cursor / restart Kiro / configure Antigravity MCP.
120
121
 
121
122
  ---
122
123
 
@@ -130,34 +131,36 @@ npm exec -- class-ai-agent --dir /path/to/your/project
130
131
  | **Cursor** | `.cursor/mcp.json`, `.cursor/rules/codegraph.mdc` — reload window after install |
131
132
  | **Kiro** | `.kiro/settings/mcp.json`, `.kiro/steering/codegraph.md` — restart Kiro after install |
132
133
  | **Claude Code** | Not wired by this package — `codegraph install --target=claude` (see `.claude/references/codegraph.md`) |
134
+ | **Antigravity** | User `~/.gemini/antigravity/mcp_config.json`, `.agent/rules/codegraph.md` — see `.agents/references/mcp-antigravity.md` |
133
135
  | **Manual index** | `npx @colbymchenry/codegraph init -i` if auto-init failed |
134
- | **Opt-out** | `CODEGRAPH_SKIP_INIT=1` when running `npx class-ai-agent` |
135
136
  | **Troubleshooting** | [CodeGraph README](https://github.com/colbymchenry/codegraph#troubleshooting) · `.cursor/references/codegraph.md` |
137
+ | **Opt-out** | `CODEGRAPH_SKIP_INIT=1` when running `npx class-ai-agent` |
136
138
 
137
139
  ---
138
140
 
139
141
  ## Overview
140
142
 
141
- This repo ships **three parallel trees** so you can use the same habits in Claude Code, Cursor, and Kiro:
143
+ This repo ships **four parallel layouts** so you can use the same habits in Claude Code, Cursor, Kiro, and Antigravity:
142
144
 
143
145
  | Layout | Tool | What you use |
144
146
  |--------|------|----------------|
145
147
  | **`.claude/`** | Claude Code | Slash commands, **`CLAUDE.md`**, rules as **`.md`** |
146
148
  | **`.cursor/`** | Cursor | Project rules as **`.mdc`**, hub **`CURSOR.md`**, **`@`** file mentions |
147
149
  | **`.kiro/`** | Kiro | **Steering** as **`.md`** in `.kiro/steering/`, hub **`KIRO.md`**, **`.kiro/settings/mcp.json`** |
150
+ | **`.agents/`** + **`GEMINI.md`** | Antigravity | **Workflows** in `.agents/workflows/` (slash commands), **`.agent/rules/`**, root **`AGENTS.md`** |
148
151
 
149
152
  What is inside:
150
153
 
151
154
  - **Structured workflow** (Spec → Plan → Build → Test → Review → Ship)
152
155
  - **10 specialized agents** (markdown personas under `agents/`)
153
- - **13 mandatory topic rules** (plus **`cursor-overview.mdc`** under `.cursor/rules/`)
156
+ - **13 mandatory topic rules** (plus **`cursor-overview.mdc`**, **`codegraph.mdc`**, and **`agent-continuity.mdc`** under `.cursor/rules/`)
154
157
  - **11 workflow prompts** under `commands/` (includes `handoff`, `resume`)
155
158
  - **9 skills** (TDD, code review, incremental implementation, deploy, security review, agent continuity, UI/UX Pro Max, **supabase**, **supabase-postgres-best-practices**)
156
159
  - **7 reference docs** (security, testing, performance, accessibility, codegraph, agent-continuity, **supabase**)
157
160
  - **`.agent/SESSION.md`** for cross-tool session handoff
158
- - **CodeGraph + Supabase MCP** for Cursor and Kiro (`.cursor/mcp.json`, `.kiro/settings/mcp.json`)
161
+ - **CodeGraph + Supabase MCP** for Cursor and Kiro (`.cursor/mcp.json`, `.kiro/settings/mcp.json`); Antigravity via user `mcp_config.json` (example in `.agents/references/mcp-antigravity.md`)
159
162
 
160
- Keep **`.claude/`**, **`.cursor/`**, and **`.kiro/`** in sync when you change standards. After editing `.cursor/`, run **`npm run sync:kiro`** (or `node scripts/sync-kiro-from-cursor.mjs`) to refresh `.kiro/`.
163
+ Keep **`.claude/`**, **`.cursor/`**, **`.kiro/`**, and the Antigravity layout in sync when you change standards. After editing `.cursor/` (canonical), run **`npm run sync:all`** to refresh `.claude/`, `.kiro/`, `.agents/`, `.agent/rules/`, and `GEMINI.md`.
161
164
 
162
165
  ---
163
166
 
@@ -193,9 +196,32 @@ At session boundaries, use **`/handoff`** before switching tools and **`/resume`
193
196
  .agent/
194
197
  ├── README.md
195
198
  ├── SESSION.md # Live handoff (committed; seeded on install)
196
- └── SESSION.template.md # Schema reference
199
+ ├── SESSION.template.md # Schema reference
200
+ └── rules/ # Antigravity supplement rules (synced from .cursor/rules/)
201
+ ```
202
+
203
+ ### `.agents/` + `GEMINI.md` (Antigravity)
204
+
205
+ Mirrors `.cursor/` for skills, agents, and references. Commands become **workflows** (slash commands):
206
+
207
+ | Item | Role |
208
+ |------|------|
209
+ | **`GEMINI.md`** | Hub (Antigravity-specific; overrides `AGENTS.md` when rules conflict) |
210
+ | **`workflows/*.md`** | Slash-command workflows (`/build`, `/resume`, …) |
211
+ | **`skills/`**, **`agents/`**, **`references/`** | Same content as `.cursor/` (path-rewritten) |
212
+ | **`.agent/rules/`** | Supplement rules (`trigger: always_on` / `glob`) |
213
+
214
+ ```
215
+ .agents/
216
+ ├── workflows/ # 12 workflows (from .cursor/commands/)
217
+ ├── agents/
218
+ ├── skills/
219
+ └── references/ # includes mcp-antigravity.md
220
+ GEMINI.md # Antigravity hub (repo root)
197
221
  ```
198
222
 
223
+ MCP is **user-level**: `~/.gemini/antigravity/mcp_config.json` — see `.agents/references/mcp-antigravity.md`.
224
+
199
225
  ### `.claude/` (Claude Code)
200
226
 
201
227
  ```
@@ -203,7 +229,7 @@ At session boundaries, use **`/handoff`** before switching tools and **`/resume`
203
229
  ├── CLAUDE.md # Main configuration
204
230
  ├── commands/ # 11 workflow prompts (spec, plan, build, handoff, resume, …)
205
231
  ├── agents/ # 10 personas
206
- ├── rules/ # 14 mandatory topic rules (.md)
232
+ ├── rules/ # 15 mandatory topic rules (.md, synced from .cursor/)
207
233
  ├── skills/ # TDD, review, deploy, …
208
234
  ├── references/ # Checklists + codegraph.md
209
235
  └── settings.json
@@ -259,7 +285,7 @@ Mirrors `.cursor/` for `commands/`, `agents/`, `skills/`, `references/`. Kiro us
259
285
  └── references/
260
286
  ```
261
287
 
262
- Regenerate from `.cursor/` after rule changes: `npm run sync:kiro`.
288
+ Regenerate from `.cursor/` after rule changes: `npm run sync:all`.
263
289
 
264
290
  ### Skill notes
265
291
 
@@ -330,7 +356,11 @@ Use **`.claude/rules/*.md`** or **`.cursor/rules/*.mdc`** (paired content; Curso
330
356
 
331
357
  **Cursor** — prompts live under **`.cursor/commands/`**. Open the file, copy the section you need, or **`@`** it (e.g. `@.cursor/commands/spec.md`).
332
358
 
333
- **Agents** — describe the role in natural language, or in Cursor **`@`** an agent file, e.g. `@.cursor/agents/code-reviewer.md`.
359
+ **Kiro** — prompts live under **`.kiro/commands/`**. Open the file, paste or attach in chat, or reference it when running a slash workflow. Restart Kiro after install so MCP (CodeGraph, Supabase) connects.
360
+
361
+ **Antigravity** — use slash workflows (`/build`, `/spec`, …) or open **`.agents/workflows/*.md`**. Read **`GEMINI.md`** for the hub. Configure MCP via **Manage MCP Servers** (see `.agents/references/mcp-antigravity.md`).
362
+
363
+ **Agents** — describe the role in natural language, or **`@`** (Cursor) / reference (Claude, Kiro, Antigravity) an agent file, e.g. `@.cursor/agents/code-reviewer.md` or `.agents/agents/code-reviewer.md`.
334
364
 
335
365
  ---
336
366
 
@@ -364,6 +394,22 @@ Ship thin end-to-end slices (DB + API + UI), not “all models first, then all r
364
394
 
365
395
  ## Release notes
366
396
 
397
+
398
+
399
+
400
+
401
+ ### 1.5.0 — 2026-06-17
402
+
403
+ - Add Google Antigravity IDE support: `GEMINI.md` hub, `.agents/` workflows/skills/agents, `.agent/rules/` supplement rules
404
+ - New `sync-antigravity-from-cursor.mjs` wired into `npm run sync:all` with parity checks
405
+ - CLI `--antigravity` flag; safe merge of `.agent/rules/` without overwriting `SESSION.md`
406
+ - MCP setup reference at `.agents/references/mcp-antigravity.md` (user-level `mcp_config.json`)
407
+
408
+ ### 1.4.1 — 2026-06-17
409
+
410
+ - Add **Business Analyst** agent persona (BABOK v3) for Cursor, Claude Code, and Kiro
411
+ - Document Business Analyst in hub agent tables (`.cursor/CURSOR.md`, `.claude/CLAUDE.md`, `.kiro/KIRO.md`)
412
+
367
413
  ### 1.4.0 — 2026-06-02
368
414
 
369
415
  - Bundle official **Supabase Agent Skills** (`supabase`, `supabase-postgres-best-practices`) for Cursor, Claude Code, and Kiro
@@ -384,7 +430,7 @@ Ship thin end-to-end slices (DB + API + UI), not “all models first, then all r
384
430
  2. Keep tests green.
385
431
  3. Run **`/review`** before opening a PR.
386
432
  4. Use [conventional commits](https://www.conventionalcommits.org/).
387
- 5. Update **`.claude/`**, **`.cursor/`**, and **`.kiro/`** when rules or workflows change (run `npm run sync:kiro` after `.cursor/` edits; run `npm run sync:supabase-skills` to refresh vendored Supabase skills).
433
+ 5. Update **`.cursor/`** when rules or workflows change, then run **`npm run sync:all`** to refresh `.claude/`, `.kiro/`, and Antigravity layout; run **`npm run sync:supabase-skills`** to refresh vendored Supabase skills.
388
434
 
389
435
  ---
390
436
 
@@ -13,7 +13,7 @@ function readPkg() {
13
13
  }
14
14
 
15
15
  function printHelp() {
16
- console.log(`class-ai-agent — Install Claude Code, Cursor & Kiro AI agent scaffolding
16
+ console.log(`class-ai-agent — Install Claude Code, Cursor, Kiro & Antigravity AI agent scaffolding
17
17
 
18
18
  Usage:
19
19
  npx class-ai-agent [init] [options]
@@ -23,15 +23,17 @@ Options:
23
23
  --claude Install only .claude/
24
24
  --cursor Install only .cursor/
25
25
  --kiro Install only .kiro/
26
+ --antigravity Install only .agents/, .agent/rules/, GEMINI.md
26
27
  -f, --force Overwrite existing files or directories
27
28
  -h, --help Show help
28
29
  -v, --version Print version
29
30
 
30
- AGENTS.md is installed with --cursor, --kiro, or a full install (no --*-only flags).
31
+ AGENTS.md is installed with --cursor, --kiro, --antigravity, or a full install (no --*-only flags).
31
32
 
32
33
  .agent/:
33
34
  Cross-tool session handoff (.agent/SESSION.md). Seeded from template on install;
34
35
  existing SESSION.md is never overwritten unless you use --force on .agent/.
36
+ Antigravity supplement rules live in .agent/rules/ (merged on install).
35
37
 
36
38
  CodeGraph:
37
39
  After install, runs "npx @colbymchenry/codegraph init -i" in the target directory
@@ -40,11 +42,13 @@ CodeGraph:
40
42
  Supabase:
41
43
  Bundled skills under skills/supabase/ and skills/supabase-postgres-best-practices/.
42
44
  MCP: https://mcp.supabase.com/mcp (OAuth on first use). Reload Cursor / restart Kiro after install.
45
+ Antigravity: configure ~/.gemini/antigravity/mcp_config.json (see .agents/references/mcp-antigravity.md).
43
46
 
44
47
  Examples:
45
48
  npx class-ai-agent
46
49
  npx class-ai-agent --dir ./my-app
47
50
  npx class-ai-agent --kiro --force
51
+ npx class-ai-agent --antigravity
48
52
  CODEGRAPH_SKIP_INIT=1 npx class-ai-agent
49
53
  `);
50
54
  }
@@ -56,6 +60,7 @@ function parseArgs(argv) {
56
60
  claudeOnly: false,
57
61
  cursorOnly: false,
58
62
  kiroOnly: false,
63
+ antigravityOnly: false,
59
64
  force: false,
60
65
  help: false,
61
66
  version: false,
@@ -92,6 +97,10 @@ function parseArgs(argv) {
92
97
  opts.kiroOnly = true;
93
98
  continue;
94
99
  }
100
+ if (a === '--antigravity') {
101
+ opts.antigravityOnly = true;
102
+ continue;
103
+ }
95
104
  if (a === '-d' || a === '--dir') {
96
105
  const v = argv[++i];
97
106
  if (!v) {
@@ -129,6 +138,27 @@ function copyDir(src, dest, { force }) {
129
138
  fs.cpSync(src, dest, { recursive: true });
130
139
  }
131
140
 
141
+ function mergeDir(src, dest, { force }) {
142
+ if (!fs.existsSync(src)) {
143
+ console.error(`Error: template missing from package: ${src}`);
144
+ process.exit(1);
145
+ }
146
+ fs.mkdirSync(dest, { recursive: true });
147
+ for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
148
+ const srcPath = path.join(src, entry.name);
149
+ const destPath = path.join(dest, entry.name);
150
+ if (entry.isDirectory()) {
151
+ mergeDir(srcPath, destPath, { force });
152
+ } else if (entry.isFile()) {
153
+ if (fs.existsSync(destPath) && !force) {
154
+ continue;
155
+ }
156
+ ensureParentDir(destPath);
157
+ fs.copyFileSync(srcPath, destPath);
158
+ }
159
+ }
160
+ }
161
+
132
162
  function copyFile(src, dest, { force }) {
133
163
  if (!fs.existsSync(src)) {
134
164
  console.error(`Error: template missing from package: ${src}`);
@@ -183,7 +213,7 @@ function runCodegraphInit(targetDir) {
183
213
  if (result.status === 0) {
184
214
  console.log(`CodeGraph: index ready under ${path.join(targetDir, '.codegraph')}`);
185
215
  console.log(
186
- 'CodeGraph: reload Cursor (.cursor/mcp.json) and/or restart Kiro (.kiro/settings/mcp.json).'
216
+ 'CodeGraph: reload Cursor (.cursor/mcp.json), restart Kiro (.kiro/settings/mcp.json), or configure Antigravity MCP.'
187
217
  );
188
218
  return;
189
219
  }
@@ -201,15 +231,33 @@ function shouldInstallTarget(target, opts) {
201
231
  claude: opts.claudeOnly,
202
232
  cursor: opts.cursorOnly,
203
233
  kiro: opts.kiroOnly,
234
+ antigravity: opts.antigravityOnly,
204
235
  };
205
- const anyOnly = only.claude || only.cursor || only.kiro;
236
+ const anyOnly = only.claude || only.cursor || only.kiro || only.antigravity;
206
237
  if (!anyOnly) return true;
207
238
  return only[target];
208
239
  }
209
240
 
210
241
  function shouldInstallAgentDir(opts) {
211
- const anyOnly = opts.claudeOnly || opts.cursorOnly || opts.kiroOnly;
212
- return !anyOnly;
242
+ const anyOnly =
243
+ opts.claudeOnly || opts.cursorOnly || opts.kiroOnly || opts.antigravityOnly;
244
+ if (!anyOnly) return true;
245
+ return opts.antigravityOnly;
246
+ }
247
+
248
+ function shouldInstallAgentsMd(opts) {
249
+ const anyOnly =
250
+ opts.claudeOnly || opts.cursorOnly || opts.kiroOnly || opts.antigravityOnly;
251
+ if (!anyOnly) return true;
252
+ return opts.cursorOnly || opts.kiroOnly || opts.antigravityOnly;
253
+ }
254
+
255
+ function installAgentRules(targetDir, { force }) {
256
+ const srcRules = path.join(PKG_ROOT, '.agent', 'rules');
257
+ const destRules = path.join(targetDir, '.agent', 'rules');
258
+ if (!fs.existsSync(srcRules)) return;
259
+ mergeDir(srcRules, destRules, { force: true });
260
+ console.log(`Installed: ${destRules}`);
213
261
  }
214
262
 
215
263
  function installAgentContinuity(targetDir, { force }) {
@@ -225,9 +273,15 @@ function installAgentContinuity(targetDir, { force }) {
225
273
 
226
274
  if (fs.existsSync(destDir)) {
227
275
  if (force) {
276
+ const sessionBackup =
277
+ fs.existsSync(sessionDest) ? fs.readFileSync(sessionDest, 'utf8') : null;
228
278
  fs.rmSync(destDir, { recursive: true, force: true });
229
279
  fs.cpSync(srcDir, destDir, { recursive: true });
230
- console.log(`Installed: ${destDir} (overwritten)`);
280
+ if (sessionBackup !== null) {
281
+ fs.writeFileSync(sessionDest, sessionBackup);
282
+ console.log(`Preserved: ${sessionDest} (existing session handoff)`);
283
+ }
284
+ console.log(`Installed: ${destDir} (overwritten; SESSION.md preserved if present)`);
231
285
  } else {
232
286
  const readmeSrc = path.join(srcDir, 'README.md');
233
287
  const readmeDest = path.join(destDir, 'README.md');
@@ -261,7 +315,8 @@ function run(opts) {
261
315
  const installClaude = shouldInstallTarget('claude', opts);
262
316
  const installCursor = shouldInstallTarget('cursor', opts);
263
317
  const installKiro = shouldInstallTarget('kiro', opts);
264
- const installAgents = installCursor || installKiro;
318
+ const installAntigravity = shouldInstallTarget('antigravity', opts);
319
+ const installAgentsMd = shouldInstallAgentsMd(opts);
265
320
 
266
321
  fs.mkdirSync(opts.dir, { recursive: true });
267
322
 
@@ -288,7 +343,19 @@ function run(opts) {
288
343
  console.log(`Installed: ${dest}`);
289
344
  }
290
345
 
291
- if (installAgents) {
346
+ if (installAntigravity) {
347
+ const src = path.join(PKG_ROOT, '.agents');
348
+ const dest = path.join(opts.dir, '.agents');
349
+ copyDir(src, dest, copyOpts);
350
+ console.log(`Installed: ${dest}`);
351
+
352
+ const geminiSrc = path.join(PKG_ROOT, 'GEMINI.md');
353
+ const geminiDest = path.join(opts.dir, 'GEMINI.md');
354
+ copyFile(geminiSrc, geminiDest, copyOpts);
355
+ console.log(`Installed: ${geminiDest}`);
356
+ }
357
+
358
+ if (installAgentsMd) {
292
359
  const src = path.join(PKG_ROOT, 'AGENTS.md');
293
360
  const dest = path.join(opts.dir, 'AGENTS.md');
294
361
  copyFile(src, dest, copyOpts);
@@ -299,6 +366,10 @@ function run(opts) {
299
366
  installAgentContinuity(opts.dir, copyOpts);
300
367
  }
301
368
 
369
+ if (installAntigravity || shouldInstallAgentDir(opts)) {
370
+ installAgentRules(opts.dir, copyOpts);
371
+ }
372
+
302
373
  ensureCodegraphGitignore(opts.dir);
303
374
  runCodegraphInit(opts.dir);
304
375
 
@@ -306,6 +377,7 @@ function run(opts) {
306
377
  if (installClaude) hints.push('.claude/CLAUDE.md');
307
378
  if (installCursor) hints.push('.cursor/CURSOR.md');
308
379
  if (installKiro) hints.push('.kiro/KIRO.md');
380
+ if (installAntigravity) hints.push('GEMINI.md');
309
381
  console.log(`\nDone. Next steps: read ${hints.join(', ')}.`);
310
382
  if (installCursor) {
311
383
  console.log(' Cursor: reload the window so MCP loads (.cursor/mcp.json — CodeGraph + Supabase).');
@@ -315,6 +387,10 @@ function run(opts) {
315
387
  console.log(' Kiro: restart IDE/CLI so MCP loads (.kiro/settings/mcp.json — CodeGraph + Supabase).');
316
388
  console.log(' Supabase: complete OAuth when you first use Supabase MCP tools.');
317
389
  }
390
+ if (installAntigravity) {
391
+ console.log(' Antigravity: configure ~/.gemini/antigravity/mcp_config.json (.agents/references/mcp-antigravity.md).');
392
+ console.log(' Antigravity: use /build, /resume, /handoff workflows; read GEMINI.md for the full hub.');
393
+ }
318
394
  if (shouldInstallAgentDir(opts)) {
319
395
  console.log(' Continuity: edit .agent/SESSION.md at session end (/handoff); read at start (/resume).');
320
396
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "class-ai-agent",
3
- "version": "1.4.0",
4
- "description": "Production-grade AI agent configuration for Claude Code, Cursor & Kiro",
3
+ "version": "1.5.0",
4
+ "description": "Production-grade AI agent configuration for Claude Code, Cursor, Kiro & Antigravity",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -16,6 +16,8 @@
16
16
  "claude-code",
17
17
  "cursor",
18
18
  "kiro",
19
+ "antigravity",
20
+ "gemini",
19
21
  "codegraph",
20
22
  "supabase",
21
23
  "ai",
@@ -31,17 +33,22 @@
31
33
  "files": [
32
34
  "bin",
33
35
  ".agent",
36
+ ".agents",
34
37
  ".claude",
35
38
  ".cursor",
36
39
  ".kiro",
37
40
  "AGENTS.md",
41
+ "GEMINI.md",
38
42
  "royal-solution-logo-v2.svg"
39
43
  ],
40
44
  "scripts": {
41
- "prepack": "node -e \"const fs=require('fs');['.agent','.claude','.cursor','.kiro','AGENTS.md'].forEach(p=>{if(!fs.existsSync(p))process.exit(1)})\"",
45
+ "prepack": "node -e \"const fs=require('fs');['.agent','.agents','.claude','.cursor','.kiro','AGENTS.md','GEMINI.md'].forEach(p=>{if(!fs.existsSync(p))process.exit(1)})\"",
42
46
  "sync:kiro": "node scripts/sync-kiro-from-cursor.mjs",
47
+ "sync:claude": "node scripts/sync-claude-from-cursor.mjs",
48
+ "sync:antigravity": "node scripts/sync-antigravity-from-cursor.mjs",
49
+ "sync:all": "node scripts/sync-all.mjs",
43
50
  "sync:supabase-skills": "node scripts/sync-supabase-skills.mjs",
44
51
  "release:readme": "node scripts/update-readme-release.mjs",
45
- "test:cli": "node bin/class-ai-agent.cjs --help && node bin/class-ai-agent.cjs --version && node -e \"const fs=require('fs');const c=JSON.parse(fs.readFileSync('.cursor/mcp.json','utf8'));const k=JSON.parse(fs.readFileSync('.kiro/settings/mcp.json','utf8'));if(!c.mcpServers?.codegraph||!k.mcpServers?.codegraph)throw new Error('missing codegraph MCP');if(!c.mcpServers?.supabase?.url?.includes('mcp.supabase.com')||!k.mcpServers?.supabase?.url?.includes('mcp.supabase.com'))throw new Error('missing supabase MCP');if(!fs.existsSync('.cursor/skills/supabase/SKILL.md')||!fs.existsSync('.cursor/skills/supabase-postgres-best-practices/SKILL.md'))throw new Error('missing supabase skills');if(!fs.existsSync('.claude/skills/supabase/SKILL.md'))throw new Error('missing claude supabase skill');if(!fs.existsSync('.cursor/references/supabase.md'))throw new Error('missing supabase reference');if(!fs.existsSync('scripts/sync-supabase-skills.mjs'))throw new Error('missing sync-supabase-skills');if(!fs.existsSync('.cursor/rules/codegraph.mdc'))throw new Error('missing codegraph.mdc');if(!fs.existsSync('.kiro/steering/codegraph.md'))throw new Error('missing kiro codegraph steering');if(!fs.existsSync('.agent/SESSION.template.md'))throw new Error('missing SESSION.template');if(!fs.existsSync('.cursor/rules/agent-continuity.mdc'))throw new Error('missing agent-continuity.mdc');if(!fs.existsSync('.kiro/steering/agent-continuity.md'))throw new Error('missing kiro agent-continuity steering');if(!fs.existsSync('.cursor/commands/handoff.md')||!fs.existsSync('.cursor/commands/resume.md'))throw new Error('missing handoff/resume commands');\""
52
+ "test:cli": "node bin/class-ai-agent.cjs --help && node bin/class-ai-agent.cjs --version && node -e \"const fs=require('fs');const c=JSON.parse(fs.readFileSync('.cursor/mcp.json','utf8'));const k=JSON.parse(fs.readFileSync('.kiro/settings/mcp.json','utf8'));if(!c.mcpServers?.codegraph||!k.mcpServers?.codegraph)throw new Error('missing codegraph MCP');if(!c.mcpServers?.supabase?.url?.includes('mcp.supabase.com')||!k.mcpServers?.supabase?.url?.includes('mcp.supabase.com'))throw new Error('missing supabase MCP');if(!fs.existsSync('.cursor/skills/supabase/SKILL.md')||!fs.existsSync('.cursor/skills/supabase-postgres-best-practices/SKILL.md'))throw new Error('missing supabase skills');if(!fs.existsSync('.claude/skills/supabase/SKILL.md'))throw new Error('missing claude supabase skill');if(!fs.existsSync('.agents/skills/supabase/SKILL.md'))throw new Error('missing antigravity supabase skill');if(!fs.existsSync('.cursor/references/supabase.md'))throw new Error('missing supabase reference');if(!fs.existsSync('.agents/references/mcp-antigravity.md'))throw new Error('missing mcp-antigravity reference');if(!fs.existsSync('scripts/sync-supabase-skills.mjs'))throw new Error('missing sync-supabase-skills');if(!fs.existsSync('.cursor/rules/codegraph.mdc'))throw new Error('missing codegraph.mdc');if(!fs.existsSync('.claude/rules/codegraph.md'))throw new Error('missing claude codegraph rule');if(!fs.existsSync('.kiro/steering/codegraph.md'))throw new Error('missing kiro codegraph steering');if(!fs.existsSync('.agent/rules/codegraph.md'))throw new Error('missing antigravity codegraph rule');if(!fs.existsSync('.agent/SESSION.template.md'))throw new Error('missing SESSION.template');if(!fs.existsSync('.cursor/rules/agent-continuity.mdc'))throw new Error('missing agent-continuity.mdc');if(!fs.existsSync('.kiro/steering/agent-continuity.md'))throw new Error('missing kiro agent-continuity steering');if(!fs.existsSync('.agent/rules/agent-continuity.md'))throw new Error('missing antigravity agent-continuity rule');if(!fs.existsSync('.cursor/commands/handoff.md')||!fs.existsSync('.cursor/commands/resume.md'))throw new Error('missing handoff/resume commands');if(!fs.existsSync('.agents/workflows/handoff.md')||!fs.existsSync('.agents/workflows/resume.md'))throw new Error('missing antigravity handoff/resume workflows');if(!fs.existsSync('GEMINI.md'))throw new Error('missing GEMINI.md');if(!fs.existsSync('scripts/sync-antigravity-from-cursor.mjs'))throw new Error('missing sync-antigravity script');\" && node scripts/check-parity.mjs"
46
53
  }
47
54
  }