@su-record/vibe 2.11.0 → 2.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +23 -28
- package/README.md +10 -9
- package/dist/cli/auth.d.ts +2 -2
- package/dist/cli/auth.js +12 -12
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/commands/codex-proxy.d.ts +1 -1
- package/dist/cli/commands/codex-proxy.js +11 -11
- package/dist/cli/commands/codex-proxy.js.map +1 -1
- package/dist/cli/commands/config.d.ts +1 -1
- package/dist/cli/commands/config.d.ts.map +1 -1
- package/dist/cli/commands/config.js +22 -21
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/info.js +2 -2
- package/dist/cli/commands/init.d.ts +2 -2
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +20 -16
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/setup.d.ts +1 -1
- package/dist/cli/commands/setup.js +24 -24
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/skills.d.ts.map +1 -1
- package/dist/cli/commands/skills.js +8 -7
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +28 -16
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/index.js +22 -23
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/llm/antigravity-commands.d.ts +25 -0
- package/dist/cli/llm/antigravity-commands.d.ts.map +1 -0
- package/dist/cli/llm/antigravity-commands.js +142 -0
- package/dist/cli/llm/antigravity-commands.js.map +1 -0
- package/dist/cli/llm/claude-commands.d.ts.map +1 -1
- package/dist/cli/llm/claude-commands.js +3 -1
- package/dist/cli/llm/claude-commands.js.map +1 -1
- package/dist/cli/llm/config.js +7 -7
- package/dist/cli/llm/config.js.map +1 -1
- package/dist/cli/llm/gemini-commands.d.ts.map +1 -1
- package/dist/cli/llm/gemini-commands.js +7 -4
- package/dist/cli/llm/gemini-commands.js.map +1 -1
- package/dist/cli/llm/gpt-commands.d.ts.map +1 -1
- package/dist/cli/llm/gpt-commands.js +3 -3
- package/dist/cli/llm/gpt-commands.js.map +1 -1
- package/dist/cli/llm/help.js +4 -4
- package/dist/cli/llm/index.d.ts +1 -1
- package/dist/cli/llm/index.d.ts.map +1 -1
- package/dist/cli/llm/index.js +1 -1
- package/dist/cli/llm/index.js.map +1 -1
- package/dist/cli/llm.d.ts +2 -2
- package/dist/cli/llm.js +2 -2
- package/dist/cli/postinstall/constants.js +6 -6
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/dist/cli/postinstall/inline-skills.js +5 -5
- package/dist/cli/postinstall/inline-skills.js.map +1 -1
- package/dist/cli/postinstall/main.d.ts.map +1 -1
- package/dist/cli/postinstall/main.js +14 -9
- package/dist/cli/postinstall/main.js.map +1 -1
- package/dist/cli/setup/CodexHooks.d.ts +20 -0
- package/dist/cli/setup/CodexHooks.d.ts.map +1 -0
- package/dist/cli/setup/CodexHooks.js +50 -0
- package/dist/cli/setup/CodexHooks.js.map +1 -0
- package/dist/cli/setup/CodexHooks.test.d.ts +2 -0
- package/dist/cli/setup/CodexHooks.test.d.ts.map +1 -0
- package/dist/cli/setup/CodexHooks.test.js +23 -0
- package/dist/cli/setup/CodexHooks.test.js.map +1 -0
- package/dist/cli/setup/LegacyMigration.js +2 -2
- package/dist/cli/setup/ProjectSetup.d.ts +4 -4
- package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
- package/dist/cli/setup/ProjectSetup.js +21 -19
- package/dist/cli/setup/ProjectSetup.js.map +1 -1
- package/dist/cli/setup/index.d.ts +1 -0
- package/dist/cli/setup/index.d.ts.map +1 -1
- package/dist/cli/setup/index.js +1 -0
- package/dist/cli/setup/index.js.map +1 -1
- package/dist/cli/setup.d.ts +2 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +2 -1
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/types.d.ts +7 -9
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/utils/cli-detector.d.ts +5 -5
- package/dist/cli/utils/cli-detector.d.ts.map +1 -1
- package/dist/cli/utils/cli-detector.js +18 -14
- package/dist/cli/utils/cli-detector.js.map +1 -1
- package/dist/cli/utils/cli-detector.test.d.ts +2 -0
- package/dist/cli/utils/cli-detector.test.d.ts.map +1 -0
- package/dist/cli/utils/cli-detector.test.js +51 -0
- package/dist/cli/utils/cli-detector.test.js.map +1 -0
- package/dist/infra/lib/ReviewRace.d.ts +4 -4
- package/dist/infra/lib/ReviewRace.d.ts.map +1 -1
- package/dist/infra/lib/ReviewRace.js +16 -16
- package/dist/infra/lib/ReviewRace.js.map +1 -1
- package/dist/infra/lib/SkillRepository.js +7 -7
- package/dist/infra/lib/antigravity/auth.d.ts +18 -0
- package/dist/infra/lib/antigravity/auth.d.ts.map +1 -0
- package/dist/infra/lib/antigravity/auth.js +32 -0
- package/dist/infra/lib/antigravity/auth.js.map +1 -0
- package/dist/infra/lib/antigravity/capabilities.d.ts +28 -0
- package/dist/infra/lib/antigravity/capabilities.d.ts.map +1 -0
- package/dist/infra/lib/antigravity/capabilities.js +178 -0
- package/dist/infra/lib/antigravity/capabilities.js.map +1 -0
- package/dist/infra/lib/antigravity/chat.d.ts +34 -0
- package/dist/infra/lib/antigravity/chat.d.ts.map +1 -0
- package/dist/infra/lib/antigravity/chat.js +160 -0
- package/dist/infra/lib/antigravity/chat.js.map +1 -0
- package/dist/infra/lib/antigravity/completion.d.ts +12 -0
- package/dist/infra/lib/antigravity/completion.d.ts.map +1 -0
- package/dist/infra/lib/antigravity/completion.js +13 -0
- package/dist/infra/lib/antigravity/completion.js.map +1 -0
- package/dist/infra/lib/antigravity/constants.d.ts +8 -0
- package/dist/infra/lib/antigravity/constants.d.ts.map +1 -0
- package/dist/infra/lib/antigravity/constants.js +11 -0
- package/dist/infra/lib/antigravity/constants.js.map +1 -0
- package/dist/infra/lib/antigravity/index.d.ts +13 -0
- package/dist/infra/lib/antigravity/index.d.ts.map +1 -0
- package/dist/infra/lib/antigravity/index.js +12 -0
- package/dist/infra/lib/antigravity/index.js.map +1 -0
- package/dist/infra/lib/antigravity/models.d.ts +11 -0
- package/dist/infra/lib/antigravity/models.d.ts.map +1 -0
- package/dist/infra/lib/antigravity/models.js +38 -0
- package/dist/infra/lib/antigravity/models.js.map +1 -0
- package/dist/infra/lib/antigravity/orchestration.d.ts +33 -0
- package/dist/infra/lib/antigravity/orchestration.d.ts.map +1 -0
- package/dist/infra/lib/antigravity/orchestration.js +62 -0
- package/dist/infra/lib/antigravity/orchestration.js.map +1 -0
- package/dist/infra/lib/antigravity/types.d.ts +115 -0
- package/dist/infra/lib/antigravity/types.d.ts.map +1 -0
- package/dist/infra/lib/antigravity/types.js +5 -0
- package/dist/infra/lib/antigravity/types.js.map +1 -0
- package/dist/infra/lib/codex-proxy.d.ts +1 -1
- package/dist/infra/lib/codex-proxy.js +9 -9
- package/dist/infra/lib/codex-proxy.js.map +1 -1
- package/dist/infra/lib/config/GlobalConfigManager.d.ts +6 -3
- package/dist/infra/lib/config/GlobalConfigManager.d.ts.map +1 -1
- package/dist/infra/lib/config/GlobalConfigManager.js +47 -37
- package/dist/infra/lib/config/GlobalConfigManager.js.map +1 -1
- package/dist/infra/lib/config/GlobalConfigManager.test.d.ts +2 -0
- package/dist/infra/lib/config/GlobalConfigManager.test.d.ts.map +1 -0
- package/dist/infra/lib/config/GlobalConfigManager.test.js +9 -0
- package/dist/infra/lib/config/GlobalConfigManager.test.js.map +1 -0
- package/dist/infra/lib/constants.js +1 -1
- package/dist/infra/lib/constants.js.map +1 -1
- package/dist/infra/lib/gemini/auth.d.ts +3 -3
- package/dist/infra/lib/gemini/auth.js +9 -9
- package/dist/infra/lib/gemini/auth.js.map +1 -1
- package/dist/infra/lib/llm/auth/AuthProfileManager.d.ts +3 -3
- package/dist/infra/lib/llm/auth/AuthProfileManager.d.ts.map +1 -1
- package/dist/infra/lib/llm/auth/AuthProfileManager.js.map +1 -1
- package/dist/infra/lib/llm/auth/AuthProfileManager.test.js +8 -8
- package/dist/infra/lib/llm/auth/AuthProfileManager.test.js.map +1 -1
- package/dist/infra/lib/llm/auth/ConfigManager.js +2 -2
- package/dist/infra/lib/llm/auth/ConfigManager.js.map +1 -1
- package/dist/infra/lib/llm/auth/TokenRefresher.d.ts +1 -1
- package/dist/infra/lib/llm/auth/TokenRefresher.js +1 -1
- package/dist/infra/lib/llm/auth/index.js +1 -1
- package/dist/infra/lib/llm/auth/index.js.map +1 -1
- package/dist/infra/lib/llm/index.d.ts +1 -1
- package/dist/infra/lib/llm/index.js +1 -1
- package/dist/infra/lib/llm/types.d.ts +3 -3
- package/dist/infra/lib/llm/types.d.ts.map +1 -1
- package/dist/infra/lib/llm/types.js +1 -1
- package/dist/infra/lib/llm/utils/stream.js +1 -1
- package/dist/infra/lib/llm/utils/stream.js.map +1 -1
- package/dist/infra/lib/llm-availability.d.ts +5 -5
- package/dist/infra/lib/llm-availability.d.ts.map +1 -1
- package/dist/infra/lib/llm-availability.js +13 -10
- package/dist/infra/lib/llm-availability.js.map +1 -1
- package/dist/infra/lib/llm-availability.test.d.ts +2 -0
- package/dist/infra/lib/llm-availability.test.d.ts.map +1 -0
- package/dist/infra/lib/llm-availability.test.js +36 -0
- package/dist/infra/lib/llm-availability.test.js.map +1 -0
- package/dist/infra/lib/ui-ux/UiUxWorkflow.d.ts.map +1 -1
- package/dist/infra/lib/ui-ux/UiUxWorkflow.js +23 -5
- package/dist/infra/lib/ui-ux/UiUxWorkflow.js.map +1 -1
- package/dist/infra/orchestrator/AgentExecutor.d.ts.map +1 -1
- package/dist/infra/orchestrator/AgentExecutor.js +30 -1
- package/dist/infra/orchestrator/AgentExecutor.js.map +1 -1
- package/dist/infra/orchestrator/AgentManifestCache.js +1 -1
- package/dist/infra/orchestrator/AgentManifestCache.js.map +1 -1
- package/dist/infra/orchestrator/BackgroundManager.js +2 -2
- package/dist/infra/orchestrator/BackgroundManager.js.map +1 -1
- package/dist/infra/orchestrator/CodexAgentRuntime.d.ts +12 -0
- package/dist/infra/orchestrator/CodexAgentRuntime.d.ts.map +1 -0
- package/dist/infra/orchestrator/CodexAgentRuntime.js +94 -0
- package/dist/infra/orchestrator/CodexAgentRuntime.js.map +1 -0
- package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts +2 -0
- package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts.map +1 -0
- package/dist/infra/orchestrator/CodexAgentRuntime.test.js +37 -0
- package/dist/infra/orchestrator/CodexAgentRuntime.test.js.map +1 -0
- package/dist/infra/orchestrator/LLMCluster.d.ts +11 -11
- package/dist/infra/orchestrator/LLMCluster.d.ts.map +1 -1
- package/dist/infra/orchestrator/LLMCluster.js +22 -22
- package/dist/infra/orchestrator/LLMCluster.js.map +1 -1
- package/dist/infra/orchestrator/MultiLlmResearch.d.ts +3 -3
- package/dist/infra/orchestrator/MultiLlmResearch.d.ts.map +1 -1
- package/dist/infra/orchestrator/MultiLlmResearch.js +17 -17
- package/dist/infra/orchestrator/MultiLlmResearch.js.map +1 -1
- package/dist/infra/orchestrator/SmartRouter.d.ts +2 -2
- package/dist/infra/orchestrator/SmartRouter.js +7 -7
- package/dist/infra/orchestrator/SmartRouter.js.map +1 -1
- package/dist/infra/orchestrator/SmartRouter.test.js +74 -74
- package/dist/infra/orchestrator/SmartRouter.test.js.map +1 -1
- package/dist/infra/orchestrator/agentDiscovery.d.ts +1 -1
- package/dist/infra/orchestrator/agentDiscovery.js +4 -4
- package/dist/infra/orchestrator/agentDiscovery.js.map +1 -1
- package/dist/infra/orchestrator/index.d.ts +17 -17
- package/dist/infra/orchestrator/index.d.ts.map +1 -1
- package/dist/infra/orchestrator/index.js +30 -30
- package/dist/infra/orchestrator/index.js.map +1 -1
- package/dist/infra/orchestrator/orchestrator.d.ts +4 -4
- package/dist/infra/orchestrator/orchestrator.d.ts.map +1 -1
- package/dist/infra/orchestrator/orchestrator.js +5 -5
- package/dist/infra/orchestrator/orchestrator.js.map +1 -1
- package/dist/infra/orchestrator/parallelResearch.d.ts.map +1 -1
- package/dist/infra/orchestrator/parallelResearch.js +11 -0
- package/dist/infra/orchestrator/parallelResearch.js.map +1 -1
- package/dist/infra/orchestrator/types.d.ts +7 -8
- package/dist/infra/orchestrator/types.d.ts.map +1 -1
- package/dist/infra/orchestrator/types.js +17 -18
- package/dist/infra/orchestrator/types.js.map +1 -1
- package/dist/tools/spec/specGenerator.d.ts +1 -1
- package/dist/tools/spec/specGenerator.js +1 -1
- package/hooks/antigravity-hooks.json +73 -0
- package/hooks/scripts/__tests__/codex-hook-adapter.test.js +31 -0
- package/hooks/scripts/__tests__/hook-payload.test.js +29 -0
- package/hooks/scripts/__tests__/llm-orchestrate-antigravity.test.js +63 -0
- package/hooks/scripts/codex-hook-adapter.js +124 -0
- package/hooks/scripts/codex-review-gate.js +7 -3
- package/hooks/scripts/devlog-gen.js +1 -1
- package/hooks/scripts/hook-payload.js +64 -0
- package/hooks/scripts/lib/dispatcher.js +20 -0
- package/hooks/scripts/llm-orchestrate.js +40 -44
- package/hooks/scripts/prompt-dispatcher.js +9 -9
- package/hooks/scripts/stop-notify.js +1 -1
- package/hooks/scripts/utils.js +1 -1
- package/package.json +1 -1
- package/skills/brand-assets/SKILL.md +11 -11
- package/skills/docs/SKILL.md +10 -5
- package/skills/event-comms/SKILL.md +1 -1
- package/skills/event-ops/SKILL.md +4 -4
- package/skills/spec/SKILL.md +29 -29
- package/skills/spec-review/SKILL.md +23 -23
- package/skills/tool-fallback/SKILL.md +2 -2
- package/skills/tool-fallback/rubrics/fallback-chain.md +2 -2
- package/skills/vibe.event/SKILL.md +1 -1
- package/skills/vibe.review/SKILL.md +13 -13
- package/skills/vibe.run/SKILL.md +30 -30
- package/skills/vibe.spec/SKILL.md +4 -4
- package/skills/vibe.utils/SKILL.md +17 -17
- package/hooks/gemini-hooks.json +0 -73
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: spec-review
|
|
3
|
-
description: SPEC 품질 리뷰 본체 — GPT/
|
|
3
|
+
description: SPEC 품질 리뷰 본체 — GPT/Antigravity 크로스 검증, 100-point gate, Race Review(수렴 종료), Codex 적대 리뷰, 사용자 체크포인트.
|
|
4
4
|
when_to_use: spec 완료 후 또는 /vibe.spec Phase 4에서 체인. 직접 호출 금지.
|
|
5
5
|
user-invocable: false
|
|
6
6
|
tier: core
|
|
@@ -8,7 +8,7 @@ tier: core
|
|
|
8
8
|
|
|
9
9
|
# spec-review — SPEC Quality Review
|
|
10
10
|
|
|
11
|
-
Review and enhance SPEC with GPT/
|
|
11
|
+
Review and enhance SPEC with GPT/Antigravity cross-validation.
|
|
12
12
|
|
|
13
13
|
**Purpose:** Run this skill after `spec` to ensure accurate review execution. For large contexts, invoke in a new session.
|
|
14
14
|
|
|
@@ -38,7 +38,7 @@ Or via natural language trigger: "스펙 리뷰", "review spec", "명세 리뷰"
|
|
|
38
38
|
> CODEX_AVAILABLE=$(node "{{VIBE_PATH}}/hooks/scripts/codex-detect.js" 2>/dev/null || echo "unavailable")
|
|
39
39
|
> ```
|
|
40
40
|
>
|
|
41
|
-
> If `available`, `/codex:adversarial-review` is automatically invoked. If `unavailable`, falls back to the existing GPT+
|
|
41
|
+
> If `available`, `/codex:adversarial-review` is automatically invoked. If `unavailable`, falls back to the existing GPT+Antigravity workflow.
|
|
42
42
|
|
|
43
43
|
---
|
|
44
44
|
|
|
@@ -56,7 +56,7 @@ If the value is already the same, no-op.
|
|
|
56
56
|
```
|
|
57
57
|
/vibe.spec "feature" → SPEC created (Phase 3)
|
|
58
58
|
↓
|
|
59
|
-
Phase 4: spec-review skill (this) → Quality validation + GPT/
|
|
59
|
+
Phase 4: spec-review skill (this) → Quality validation + GPT/Antigravity review
|
|
60
60
|
↓
|
|
61
61
|
/vibe.run "feature"
|
|
62
62
|
```
|
|
@@ -246,7 +246,7 @@ Re-evaluating...
|
|
|
246
246
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
247
247
|
Score: 100/100 ✅ PASSED
|
|
248
248
|
|
|
249
|
-
✅ Quality Gate PASSED - proceeding to GPT/
|
|
249
|
+
✅ Quality Gate PASSED - proceeding to GPT/Antigravity review
|
|
250
250
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
251
251
|
```
|
|
252
252
|
|
|
@@ -285,7 +285,7 @@ How would you like to proceed?
|
|
|
285
285
|
|
|
286
286
|
---
|
|
287
287
|
|
|
288
|
-
## Step 3: Race Review (GPT +
|
|
288
|
+
## Step 3: Race Review (GPT + Antigravity Cross-Validation) - Convergence-Based (No Round Cap)
|
|
289
289
|
|
|
290
290
|
**RULES FOR RACE REVIEW:**
|
|
291
291
|
|
|
@@ -294,7 +294,7 @@ How would you like to proceed?
|
|
|
294
294
|
3. Run rounds sequentially (each round uses updated SPEC)
|
|
295
295
|
4. **No hard round cap** — loop until P1=0 AND no new findings (convergence)
|
|
296
296
|
|
|
297
|
-
> Race Mode reviews SPEC with GPT and
|
|
297
|
+
> Race Mode reviews SPEC with GPT and Antigravity in parallel, then cross-validates findings for higher confidence. The loop continues until quality converges naturally.
|
|
298
298
|
|
|
299
299
|
### Termination Rules
|
|
300
300
|
|
|
@@ -318,7 +318,7 @@ When the same findings repeat across rounds, the auto-apply loop has hit a wall.
|
|
|
318
318
|
|
|
319
319
|
Same findings repeated from Round {N-1}. Auto-applier cannot resolve:
|
|
320
320
|
|
|
321
|
-
| # | Issue | Severity | GPT |
|
|
321
|
+
| # | Issue | Severity | GPT | Antigravity | Reason it's stuck |
|
|
322
322
|
|---|-------|----------|-----|--------|-------------------|
|
|
323
323
|
| 1 | {issue title} | P1 | ✅ | ✅ | {e.g., "fix requires domain decision"} |
|
|
324
324
|
| 2 | {issue title} | P2 | ✅ | ❌ | {e.g., "conflicts with existing constraint"} |
|
|
@@ -371,7 +371,7 @@ To prevent LLM cosmetic noise from causing infinite loops while still reaching 1
|
|
|
371
371
|
|
|
372
372
|
### 3.1 Review Loop (No Round Cap)
|
|
373
373
|
|
|
374
|
-
**Run GPT +
|
|
374
|
+
**Run GPT + Antigravity in PARALLEL via Bash tool for each round. Stop when termination rules trigger.**
|
|
375
375
|
|
|
376
376
|
**🚨 IMPORTANT: SPEC content is too large for CLI arguments. Use --input file method (no pipe needed).**
|
|
377
377
|
|
|
@@ -388,7 +388,7 @@ To prevent LLM cosmetic noise from causing infinite loops while still reaching 1
|
|
|
388
388
|
**Step B: Script path:**
|
|
389
389
|
- `[LLM_SCRIPT]` = `{{VIBE_PATH}}/hooks/scripts/llm-orchestrate.js`
|
|
390
390
|
|
|
391
|
-
**Step C: Run GPT +
|
|
391
|
+
**Step C: Run GPT + Antigravity in PARALLEL (two separate Bash tool calls at once):**
|
|
392
392
|
|
|
393
393
|
```bash
|
|
394
394
|
# GPT review (Bash tool call 1)
|
|
@@ -396,16 +396,16 @@ node "[LLM_SCRIPT]" gpt orchestrate-json --input "[SCRATCHPAD]/spec-review-input
|
|
|
396
396
|
```
|
|
397
397
|
|
|
398
398
|
```bash
|
|
399
|
-
#
|
|
400
|
-
node "[LLM_SCRIPT]"
|
|
399
|
+
# Antigravity review (Bash tool call 2 - run in parallel with GPT)
|
|
400
|
+
node "[LLM_SCRIPT]" antigravity orchestrate-json --input "[SCRATCHPAD]/spec-review-input.json"
|
|
401
401
|
```
|
|
402
402
|
|
|
403
403
|
**🚨 MANDATORY: Replace `[SCRATCHPAD]` with the actual scratchpad directory path.**
|
|
404
404
|
**🚨 Replace `[N]` with the current round number (1, 2, 3, ...).**
|
|
405
405
|
**🚨 Replace `[LLM_SCRIPT]` with the resolved absolute path from Step B.**
|
|
406
|
-
**🚨 Run GPT and
|
|
406
|
+
**🚨 Run GPT and Antigravity calls in PARALLEL (two separate Bash tool calls at once).**
|
|
407
407
|
|
|
408
|
-
- Round 1: Write SPEC → Run GPT +
|
|
408
|
+
- Round 1: Write SPEC → Run GPT + Antigravity in parallel (full scope) → Cross-validate → Apply fixes → Update SPEC file
|
|
409
409
|
- Round 2: Write updated SPEC → Run (P1+P2 scope) → Cross-validate → Apply fixes → Update SPEC file
|
|
410
410
|
- Round 3+: Write updated SPEC → Run (P1-only scope) → Cross-validate → Apply fixes → Continue until P1=0 AND no new findings (or convergence detected)
|
|
411
411
|
|
|
@@ -438,7 +438,7 @@ Key changes found across {N} review rounds:
|
|
|
438
438
|
|
|
439
439
|
| # | Change | Source | Confidence |
|
|
440
440
|
|---|--------|--------|------------|
|
|
441
|
-
| 1 | {change1} | GPT+
|
|
441
|
+
| 1 | {change1} | GPT+Antigravity | 100% |
|
|
442
442
|
| 2 | {change2} | GPT only | 50% |
|
|
443
443
|
| ... | ... | ... | ... |
|
|
444
444
|
|
|
@@ -469,10 +469,10 @@ Model Results:
|
|
|
469
469
|
| Model | Issues | Duration |
|
|
470
470
|
|--------|--------|----------|
|
|
471
471
|
| GPT | 2 | 1823ms |
|
|
472
|
-
|
|
|
472
|
+
| Antigravity | 2 | 2156ms |
|
|
473
473
|
|
|
474
474
|
Cross-Validated Issues:
|
|
475
|
-
| Issue | GPT |
|
|
475
|
+
| Issue | GPT | Antigravity | Codex | Confidence |
|
|
476
476
|
|--------------------------|-----|--------|-------|------------|
|
|
477
477
|
| Missing retry logic | ✅ | ✅ | ✅ | 100% → P1 |
|
|
478
478
|
| Missing rate limiting | ✅ | ✅ | ✅ | 100% → P1 |
|
|
@@ -491,7 +491,7 @@ Auto-applying...
|
|
|
491
491
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
492
492
|
|
|
493
493
|
Cross-Validated Issues:
|
|
494
|
-
| Issue | GPT |
|
|
494
|
+
| Issue | GPT | Antigravity | Codex | Confidence |
|
|
495
495
|
|-----------------------------|-----|--------|-------|------------|
|
|
496
496
|
| Concurrent session unclear | ✅ | ❌ | ❌ | 50% → P2 |
|
|
497
497
|
|
|
@@ -517,14 +517,14 @@ Cross-Validated Issues: None
|
|
|
517
517
|
### Step 3.1: Codex Adversarial Review (When Codex Plugin Is Active)
|
|
518
518
|
|
|
519
519
|
> **Activation condition**: Automatically runs when Codex plugin is installed. Skipped if not installed.
|
|
520
|
-
> Runs **simultaneously** with GPT+
|
|
520
|
+
> Runs **simultaneously** with GPT+Antigravity Race Review for triple cross-validation.
|
|
521
521
|
|
|
522
522
|
Codex adversarial review **challenges the design decisions** in the SPEC:
|
|
523
523
|
- Validates whether an alternative architecture would be better
|
|
524
524
|
- Checks for over-engineering or under-engineering
|
|
525
525
|
- Identifies missing edge cases and non-functional requirements
|
|
526
526
|
|
|
527
|
-
**Execution (parallel with GPT+
|
|
527
|
+
**Execution (parallel with GPT+Antigravity Race):**
|
|
528
528
|
|
|
529
529
|
```
|
|
530
530
|
/codex:adversarial-review
|
|
@@ -533,7 +533,7 @@ Codex adversarial review **challenges the design decisions** in the SPEC:
|
|
|
533
533
|
**Result integration**: Add Codex column to the Race Review cross-validation table:
|
|
534
534
|
|
|
535
535
|
```markdown
|
|
536
|
-
| Issue | GPT |
|
|
536
|
+
| Issue | GPT | Antigravity | Codex | Confidence |
|
|
537
537
|
|-------|-----|--------|-------|------------|
|
|
538
538
|
| {issue} | ✅/❌ | ✅/❌ | ✅/❌ | {%} |
|
|
539
539
|
```
|
|
@@ -693,9 +693,9 @@ Expected (split): .vibe/features/{feature-name}/_index.feature
|
|
|
693
693
|
Please run /vibe.spec "{feature-name}" first to create the Feature file.
|
|
694
694
|
```
|
|
695
695
|
|
|
696
|
-
### GPT/
|
|
696
|
+
### GPT/Antigravity Call Failed
|
|
697
697
|
```
|
|
698
|
-
⚠️ WARNING: {GPT|
|
|
698
|
+
⚠️ WARNING: {GPT|Antigravity} call failed
|
|
699
699
|
|
|
700
700
|
Error: {error message}
|
|
701
701
|
|
|
@@ -87,8 +87,8 @@ Request → Check circuit
|
|
|
87
87
|
|
|
88
88
|
| Task Type | Primary → Secondary → Fallback |
|
|
89
89
|
|-----------|-------------------------------|
|
|
90
|
-
| architecture, debugging | GPT →
|
|
91
|
-
| uiux, code-analysis |
|
|
90
|
+
| architecture, debugging | GPT → Antigravity → Claude |
|
|
91
|
+
| uiux, code-analysis | Antigravity → GPT → Claude |
|
|
92
92
|
| code-gen, general | Claude only |
|
|
93
93
|
|
|
94
94
|
## Principles
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
|
|
24
24
|
| Task Type | Primary | Secondary | Fallback |
|
|
25
25
|
|-----------|---------|-----------|----------|
|
|
26
|
-
| Architecture, debugging | GPT |
|
|
27
|
-
| UI/UX, code analysis |
|
|
26
|
+
| Architecture, debugging | GPT | Antigravity | Claude direct |
|
|
27
|
+
| UI/UX, code analysis | Antigravity | GPT | Claude direct |
|
|
28
28
|
| Code generation, general | Claude | — | — |
|
|
29
29
|
|
|
30
30
|
**On 429 / rate limit**: skip to secondary immediately — no retry on rate-limited primary.
|
|
@@ -147,7 +147,7 @@ python output/serve.py
|
|
|
147
147
|
# - Timeline view with D-Day progress
|
|
148
148
|
# - Generate buttons per step
|
|
149
149
|
# - File preview links
|
|
150
|
-
# - API status (
|
|
150
|
+
# - API status (Antigravity/Aligo key validity)
|
|
151
151
|
# - Dark theme with community color coding
|
|
152
152
|
```
|
|
153
153
|
|
|
@@ -16,7 +16,7 @@ user-invocable: true
|
|
|
16
16
|
/vibe.review PR#123 # Review specific PR
|
|
17
17
|
/vibe.review feature/login # Review specific branch
|
|
18
18
|
/vibe.review src/api/ # Review specific path
|
|
19
|
-
/vibe.review --race # Multi-LLM race mode (GPT +
|
|
19
|
+
/vibe.review --race # Multi-LLM race mode (GPT + Antigravity)
|
|
20
20
|
/vibe.review --race security # Race mode for specific review type
|
|
21
21
|
```
|
|
22
22
|
|
|
@@ -30,11 +30,11 @@ user-invocable: true
|
|
|
30
30
|
> CODEX_AVAILABLE=$(node "{{VIBE_PATH}}/hooks/scripts/codex-detect.js" 2>/dev/null || echo "unavailable")
|
|
31
31
|
> ```
|
|
32
32
|
>
|
|
33
|
-
> `available`이면 `/codex:review`, `/codex:rescue` 자동 호출. `unavailable`이면 기존 GPT+
|
|
33
|
+
> `available`이면 `/codex:review`, `/codex:rescue` 자동 호출. `unavailable`이면 기존 GPT+Antigravity Race 모드로 동작.
|
|
34
34
|
|
|
35
35
|
## Race Mode (v2.6.9)
|
|
36
36
|
|
|
37
|
-
**Multi-LLM competitive review** - Same review task runs on GPT +
|
|
37
|
+
**Multi-LLM competitive review** - Same review task runs on GPT + Antigravity in parallel, results are cross-validated.
|
|
38
38
|
|
|
39
39
|
### How It Works
|
|
40
40
|
|
|
@@ -43,7 +43,7 @@ user-invocable: true
|
|
|
43
43
|
|
|
44
44
|
security-review:
|
|
45
45
|
├─ GPT Codex → [SQL injection, XSS]
|
|
46
|
-
└─
|
|
46
|
+
└─ Antigravity → [SQL injection, CSRF]
|
|
47
47
|
↓
|
|
48
48
|
Cross-validation:
|
|
49
49
|
- SQL injection (2/2) → 🔴 P1 (100% confidence)
|
|
@@ -73,14 +73,14 @@ security-review:
|
|
|
73
73
|
## SECURITY Review (Race Mode)
|
|
74
74
|
|
|
75
75
|
**Duration**: 3420ms
|
|
76
|
-
**Models**: GPT Codex,
|
|
76
|
+
**Models**: GPT Codex, Antigravity
|
|
77
77
|
|
|
78
78
|
### Model Results
|
|
79
79
|
|
|
80
80
|
| Model | Issues Found | Duration | Status |
|
|
81
81
|
|-------|--------------|----------|--------|
|
|
82
82
|
| gpt | 3 | 1823ms | OK |
|
|
83
|
-
|
|
|
83
|
+
| antigravity | 2 | 2156ms | OK |
|
|
84
84
|
|
|
85
85
|
### Cross-Validated Issues
|
|
86
86
|
|
|
@@ -89,7 +89,7 @@ security-review:
|
|
|
89
89
|
|
|
90
90
|
#### 🔴 P1 - SQL Injection in user query
|
|
91
91
|
|
|
92
|
-
- **Confidence**: 100% (gpt,
|
|
92
|
+
- **Confidence**: 100% (gpt, antigravity)
|
|
93
93
|
- **Severity**: critical
|
|
94
94
|
- **Location**: `src/api/users.ts:42`
|
|
95
95
|
- **Suggestion**: Use parameterized queries
|
|
@@ -103,7 +103,7 @@ security-review:
|
|
|
103
103
|
|
|
104
104
|
### Codex Review (Codex 플러그인 활성화 시)
|
|
105
105
|
|
|
106
|
-
Race Mode에서 GPT+
|
|
106
|
+
Race Mode에서 GPT+Antigravity와 **동시에** Codex review 실행하여 3중 교차 검증:
|
|
107
107
|
|
|
108
108
|
```
|
|
109
109
|
/codex:review
|
|
@@ -112,7 +112,7 @@ Race Mode에서 GPT+Gemini와 **동시에** Codex review 실행하여 3중 교
|
|
|
112
112
|
교차 검증 테이블:
|
|
113
113
|
|
|
114
114
|
```markdown
|
|
115
|
-
| Issue | GPT |
|
|
115
|
+
| Issue | GPT | Antigravity | Codex | Confidence |
|
|
116
116
|
|-------|-----|--------|-------|------------|
|
|
117
117
|
| {이슈} | ✅/❌ | ✅/❌ | ✅/❌ | {%} |
|
|
118
118
|
```
|
|
@@ -129,7 +129,7 @@ Race Mode에서 GPT+Gemini와 **동시에** Codex review 실행하여 3중 교
|
|
|
129
129
|
| Quick iteration | ❌ Standard review |
|
|
130
130
|
| API cost concerns | ❌ Standard review |
|
|
131
131
|
|
|
132
|
-
### Tool Invocation (Race Mode - GPT +
|
|
132
|
+
### Tool Invocation (Race Mode - GPT + Antigravity in parallel via Bash)
|
|
133
133
|
|
|
134
134
|
**🚨 Use --input file to avoid CLI argument length limits and Windows pipe issues.**
|
|
135
135
|
|
|
@@ -138,7 +138,7 @@ Race Mode에서 GPT+Gemini와 **동시에** Codex review 실행하여 3중 교
|
|
|
138
138
|
- `{"prompt": "Review this code for [REVIEW_TYPE]. Return JSON: {issues: [{id, title, description, severity, suggestion}]}. Code: [CODE_CONTENT]"}`
|
|
139
139
|
- Where `[CODE_CONTENT]` is the code text (properly JSON-escaped inside the prompt string)
|
|
140
140
|
3. Script path: `[LLM_SCRIPT]` = `{{VIBE_PATH}}/hooks/scripts/llm-orchestrate.js`
|
|
141
|
-
4. Run GPT +
|
|
141
|
+
4. Run GPT + Antigravity in PARALLEL (two Bash tool calls at once):
|
|
142
142
|
|
|
143
143
|
```bash
|
|
144
144
|
# GPT review (Bash tool call 1)
|
|
@@ -146,8 +146,8 @@ node "[LLM_SCRIPT]" gpt orchestrate-json --input "[SCRATCHPAD]/review-input.json
|
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
```bash
|
|
149
|
-
#
|
|
150
|
-
node "[LLM_SCRIPT]"
|
|
149
|
+
# Antigravity review (Bash tool call 2 - run in parallel)
|
|
150
|
+
node "[LLM_SCRIPT]" antigravity orchestrate-json --input "[SCRATCHPAD]/review-input.json"
|
|
151
151
|
```
|
|
152
152
|
|
|
153
153
|
## File Reading Policy (Mandatory)
|
package/skills/vibe.run/SKILL.md
CHANGED
|
@@ -240,9 +240,9 @@ When you include `ultrawork` (or `ulw`), ALL of these activate automatically:
|
|
|
240
240
|
| **Boulder Loop** | Auto-continues until ALL phases complete |
|
|
241
241
|
| **Context Compression** | Aggressive auto-save at 70%+ context |
|
|
242
242
|
| **No Pause** | Doesn't wait for confirmation between phases |
|
|
243
|
-
| **External LLMs** | Auto-consults GPT/
|
|
243
|
+
| **External LLMs** | Auto-consults GPT/Antigravity if enabled |
|
|
244
244
|
| **Error Recovery** | Loops until 100% or stuck; on stuck auto-records TODO and proceeds (no user prompt) |
|
|
245
|
-
| **Race Review (v2.6.9)** | Multi-LLM review (GPT+
|
|
245
|
+
| **Race Review (v2.6.9)** | Multi-LLM review (GPT+Antigravity) with cross-validation |
|
|
246
246
|
|
|
247
247
|
### Boulder Loop (Inspired by Sisyphus)
|
|
248
248
|
|
|
@@ -782,12 +782,12 @@ When external LLMs are enabled in `.vibe/config.json`:
|
|
|
782
782
|
|
|
783
783
|
| Role | Method | Condition |
|
|
784
784
|
|------|--------|-----------|
|
|
785
|
-
| User direct query | `gpt.question`, `
|
|
785
|
+
| User direct query | `gpt.question`, `antigravity.question` | Hook auto-handles |
|
|
786
786
|
| Internal orchestration | Call global script via Bash | Claude calls directly |
|
|
787
787
|
|
|
788
788
|
**User questions (Hook auto-handles):**
|
|
789
789
|
- `gpt.question` - GPT architecture consultation
|
|
790
|
-
- `
|
|
790
|
+
- `antigravity.question` - Antigravity Q&A/consultation
|
|
791
791
|
|
|
792
792
|
**Claude internal calls (directly via Bash):**
|
|
793
793
|
```bash
|
|
@@ -800,8 +800,8 @@ When external LLMs are enabled in `.vibe/config.json`:
|
|
|
800
800
|
# GPT call (short prompt - CLI arg)
|
|
801
801
|
node "[LLM_SCRIPT]" gpt orchestrate-json "[question content]"
|
|
802
802
|
|
|
803
|
-
#
|
|
804
|
-
node "[LLM_SCRIPT]"
|
|
803
|
+
# Antigravity call
|
|
804
|
+
node "[LLM_SCRIPT]" antigravity orchestrate-json "[question content]"
|
|
805
805
|
|
|
806
806
|
# Custom system prompt usage
|
|
807
807
|
node "[LLM_SCRIPT]" gpt orchestrate-json "You are a code reviewer" "[question content]"
|
|
@@ -813,7 +813,7 @@ node "[LLM_SCRIPT]" gpt orchestrate-json --input "[SCRATCHPAD]/input.json"
|
|
|
813
813
|
|
|
814
814
|
### External LLM Fallback
|
|
815
815
|
|
|
816
|
-
**IMPORTANT**: When GPT/
|
|
816
|
+
**IMPORTANT**: When GPT/Antigravity hook fails, Claude MUST handle the task directly:
|
|
817
817
|
|
|
818
818
|
**Fallback behavior**:
|
|
819
819
|
- Do NOT retry the external LLM call
|
|
@@ -1157,7 +1157,7 @@ Then: Login success + JWT token returned
|
|
|
1157
1157
|
│ Task(haiku) ─┴─→ "Find existing patterns and conventions" │
|
|
1158
1158
|
│ │
|
|
1159
1159
|
│ [If GPT enabled] Bash: node "[LLM_SCRIPT]" gpt-codex orchestrate-json "[question]"
|
|
1160
|
-
│ [If
|
|
1160
|
+
│ [If Antigravity enabled] Bash: node "[LLM_SCRIPT]" antigravity orchestrate-json "[question]"
|
|
1161
1161
|
└─────────────────────────────────────────────────────────────────┘
|
|
1162
1162
|
│
|
|
1163
1163
|
↓ (wait for all to complete)
|
|
@@ -1440,10 +1440,10 @@ When starting a **new project** with brand context in SPEC, auto-generate app ic
|
|
|
1440
1440
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1441
1441
|
|
|
1442
1442
|
[Check] Brand assets exist? → Skip if favicon.ico exists
|
|
1443
|
-
[Check]
|
|
1443
|
+
[Check] Antigravity API configured? → Required for image generation
|
|
1444
1444
|
[Check] SPEC has brand context? → Extract app name, colors, style
|
|
1445
1445
|
|
|
1446
|
-
[Generate] Creating app icon with
|
|
1446
|
+
[Generate] Creating app icon with Antigravity Image API...
|
|
1447
1447
|
- Prompt: "App icon for [AppName], [style], [color]..."
|
|
1448
1448
|
- Generated: 512x512 master icon
|
|
1449
1449
|
|
|
@@ -1476,34 +1476,34 @@ Brand:
|
|
|
1476
1476
|
**Trigger Conditions:**
|
|
1477
1477
|
- First `/vibe.run` execution (no existing icons)
|
|
1478
1478
|
- SPEC contains brand/design context
|
|
1479
|
-
-
|
|
1479
|
+
- Antigravity API key configured (`vibe antigravity key <key>`)
|
|
1480
1480
|
|
|
1481
1481
|
**Manual Generation:**
|
|
1482
1482
|
```bash
|
|
1483
1483
|
# [LLM_SCRIPT] = {{VIBE_PATH}}/hooks/scripts/llm-orchestrate.js
|
|
1484
|
-
node "[LLM_SCRIPT]"
|
|
1484
|
+
node "[LLM_SCRIPT]" antigravity image "App icon for MyApp, primary color #2F6BFF, square format 1:1, simple recognizable design, works well at small sizes, no text or letters, solid or gradient background, modern minimalist" --output "./public/app-icon.png"
|
|
1485
1485
|
```
|
|
1486
1486
|
|
|
1487
1487
|
---
|
|
1488
1488
|
|
|
1489
|
-
### 5. Race Code Review (GPT +
|
|
1489
|
+
### 5. Race Code Review (GPT + Antigravity) + Auto-Fix (v2.6.9)
|
|
1490
1490
|
|
|
1491
|
-
After all scenarios are implemented, **GPT and
|
|
1491
|
+
After all scenarios are implemented, **GPT and Antigravity review in parallel with cross-validation**:
|
|
1492
1492
|
|
|
1493
1493
|
> **ULTRAWORK Default**: In ULTRAWORK mode, race review is automatically enabled.
|
|
1494
1494
|
|
|
1495
1495
|
```
|
|
1496
1496
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1497
|
-
🏁 RACE CODE REVIEW (GPT +
|
|
1497
|
+
🏁 RACE CODE REVIEW (GPT + Antigravity)
|
|
1498
1498
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1499
1499
|
|
|
1500
1500
|
[Step 1] Parallel review execution...
|
|
1501
1501
|
├─ GPT Codex: Reviewing...
|
|
1502
|
-
└─
|
|
1502
|
+
└─ Antigravity: Reviewing...
|
|
1503
1503
|
|
|
1504
1504
|
[Step 2] Cross-validation results:
|
|
1505
1505
|
┌──────────────────────────────────────────────────────────────────┐
|
|
1506
|
-
│ Issue │ GPT │
|
|
1506
|
+
│ Issue │ GPT │ Antigravity │ Codex │ Confidence│
|
|
1507
1507
|
│────────────────────────────────│─────│────────│───────│───────────│
|
|
1508
1508
|
│ Timing attack in password │ ✅ │ ✅ │ ✅ │ 100% → P1 │
|
|
1509
1509
|
│ Rate limiting missing │ ✅ │ ✅ │ ✅ │ 100% → P1 │
|
|
@@ -1526,7 +1526,7 @@ After all scenarios are implemented, **GPT and Gemini review in parallel with cr
|
|
|
1526
1526
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1527
1527
|
```
|
|
1528
1528
|
|
|
1529
|
-
**Race Review Invocation (GPT +
|
|
1529
|
+
**Race Review Invocation (GPT + Antigravity in parallel via Bash):**
|
|
1530
1530
|
|
|
1531
1531
|
**🚨 Use --input file to avoid CLI argument length limits and Windows pipe issues.**
|
|
1532
1532
|
|
|
@@ -1535,7 +1535,7 @@ After all scenarios are implemented, **GPT and Gemini review in parallel with cr
|
|
|
1535
1535
|
- `{"prompt": "Review this code for security, performance, and best practices. Return JSON: {issues: [{id, title, description, severity, suggestion}]}. Code: [CODE_CONTENT]"}`
|
|
1536
1536
|
- Where `[CODE_CONTENT]` is the code text (properly JSON-escaped inside the prompt string)
|
|
1537
1537
|
3. Script path: `[LLM_SCRIPT]` = `{{VIBE_PATH}}/hooks/scripts/llm-orchestrate.js`
|
|
1538
|
-
4. Run GPT +
|
|
1538
|
+
4. Run GPT + Antigravity in PARALLEL (two Bash tool calls at once):
|
|
1539
1539
|
|
|
1540
1540
|
```bash
|
|
1541
1541
|
# GPT review (Bash tool call 1)
|
|
@@ -1543,8 +1543,8 @@ node "[LLM_SCRIPT]" gpt orchestrate-json --input "[SCRATCHPAD]/review-input.json
|
|
|
1543
1543
|
```
|
|
1544
1544
|
|
|
1545
1545
|
```bash
|
|
1546
|
-
#
|
|
1547
|
-
node "[LLM_SCRIPT]"
|
|
1546
|
+
# Antigravity review (Bash tool call 2 - run in parallel)
|
|
1547
|
+
node "[LLM_SCRIPT]" antigravity orchestrate-json --input "[SCRATCHPAD]/review-input.json"
|
|
1548
1548
|
```
|
|
1549
1549
|
|
|
1550
1550
|
**Confidence-based Priority:**
|
|
@@ -1575,7 +1575,7 @@ node "[LLM_SCRIPT]" gemini orchestrate-json --input "[SCRATCHPAD]/review-input.j
|
|
|
1575
1575
|
|
|
1576
1576
|
### Codex Code Review (Codex 플러그인 활성화 시)
|
|
1577
1577
|
|
|
1578
|
-
GPT+
|
|
1578
|
+
GPT+Antigravity race와 **동시에** Codex review 실행:
|
|
1579
1579
|
|
|
1580
1580
|
```
|
|
1581
1581
|
/codex:review
|
|
@@ -1584,14 +1584,14 @@ GPT+Gemini race와 **동시에** Codex review 실행:
|
|
|
1584
1584
|
결과를 race review 교차 검증에 포함 — 3중 리뷰:
|
|
1585
1585
|
|
|
1586
1586
|
```markdown
|
|
1587
|
-
| Issue | GPT |
|
|
1587
|
+
| Issue | GPT | Antigravity | Codex | Confidence |
|
|
1588
1588
|
|-------|-----|--------|-------|------------|
|
|
1589
1589
|
| {이슈} | ✅/❌ | ✅/❌ | ✅/❌ | {%} |
|
|
1590
1590
|
```
|
|
1591
1591
|
|
|
1592
1592
|
### 6. Quality Report (Auto-generated)
|
|
1593
1593
|
|
|
1594
|
-
After all scenarios complete +
|
|
1594
|
+
After all scenarios complete + Antigravity review, **quality report is auto-generated**:
|
|
1595
1595
|
|
|
1596
1596
|
```
|
|
1597
1597
|
┌─────────────────────────────────────────────────────────────────┐
|
|
@@ -1759,11 +1759,11 @@ Then: Login success + JWT token returned
|
|
|
1759
1759
|
✅ Scenario 4 passed!
|
|
1760
1760
|
|
|
1761
1761
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1762
|
-
🔍
|
|
1762
|
+
🔍 ANTIGRAVITY CODE REVIEW
|
|
1763
1763
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1764
1764
|
|
|
1765
|
-
📤 Sending code to
|
|
1766
|
-
📝
|
|
1765
|
+
📤 Sending code to Antigravity...
|
|
1766
|
+
📝 Antigravity feedback:
|
|
1767
1767
|
1. [Security] Need timing attack prevention → Fixing...
|
|
1768
1768
|
2. [Performance] Unnecessary DB call → Fixing...
|
|
1769
1769
|
|
|
@@ -1784,13 +1784,13 @@ Then: Login success + JWT token returned
|
|
|
1784
1784
|
│ | 4 | Password reset link | ✅ | 0 | │
|
|
1785
1785
|
│ │
|
|
1786
1786
|
│ 📈 Quality score: 94/100 │
|
|
1787
|
-
│ Build: ✅ | Tests: ✅ | Types: ✅ |
|
|
1787
|
+
│ Build: ✅ | Tests: ✅ | Types: ✅ | Antigravity: ✅ (2 applied) │
|
|
1788
1788
|
│ │
|
|
1789
1789
|
│ ⏱️ Started: {start_time} │
|
|
1790
1790
|
│ ⏱️ Completed: {getCurrentTime 결과} │
|
|
1791
1791
|
└─────────────────────────────────────────────────────────────────┘
|
|
1792
1792
|
|
|
1793
|
-
🎉 Implementation complete! All scenarios passed +
|
|
1793
|
+
🎉 Implementation complete! All scenarios passed + Antigravity review applied.
|
|
1794
1794
|
|
|
1795
1795
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1796
1796
|
🔍 AUTO REVIEW (13+ Agents)
|
|
@@ -1884,7 +1884,7 @@ Grades:
|
|
|
1884
1884
|
|------|---------------|-----------|
|
|
1885
1885
|
| **Scenario Complete** | 95 | Each scenario must score ≥95 |
|
|
1886
1886
|
| **Phase Complete** | 95 | Average of all scenarios ≥95 |
|
|
1887
|
-
| **Feature Complete** | 95 | All phases complete +
|
|
1887
|
+
| **Feature Complete** | 95 | All phases complete + Antigravity review |
|
|
1888
1888
|
|
|
1889
1889
|
### Auto-Fix Triggers
|
|
1890
1890
|
|
|
@@ -62,13 +62,13 @@ Phase 2: Plan (skill: plan)
|
|
|
62
62
|
↓
|
|
63
63
|
Phase 3: SPEC 작성 (skill: spec)
|
|
64
64
|
- PTCF 구조 SPEC 문서 + Feature(BDD) 파일
|
|
65
|
-
- Parallel research (GPT/
|
|
65
|
+
- Parallel research (GPT/Antigravity/Claude agents)
|
|
66
66
|
- Large scope 자동 분할
|
|
67
67
|
- Ambiguity scan + 품질 게이트(100점, 수렴까지 루프)
|
|
68
68
|
- 출력: .vibe/specs/{feature}.md + .vibe/features/{feature}.feature
|
|
69
69
|
↓
|
|
70
70
|
Phase 4: SPEC Review (skill: spec-review)
|
|
71
|
-
- Race Review (GPT +
|
|
71
|
+
- Race Review (GPT + Antigravity, 라운드 수 캡 없음, 수렴까지 루프)
|
|
72
72
|
- (옵션) Codex adversarial review
|
|
73
73
|
- 사용자 최종 체크포인트
|
|
74
74
|
↓
|
|
@@ -345,7 +345,7 @@ Load skill `spec` with input: .vibe/plans/{feature}.md
|
|
|
345
345
|
|
|
346
346
|
1. Project analysis (explorer agent)
|
|
347
347
|
2. config.json references 로드
|
|
348
|
-
3. Parallel research (GPT +
|
|
348
|
+
3. Parallel research (GPT + Antigravity + Claude agents, 8개 병렬)
|
|
349
349
|
4. UI/UX Design Intelligence (UI 키워드 시 자동)
|
|
350
350
|
5. PTCF SPEC 작성 (Large scope 자동 분할)
|
|
351
351
|
6. Feature file (BDD) 생성
|
|
@@ -369,7 +369,7 @@ Load skill `spec-review` with feature: {feature-name}
|
|
|
369
369
|
|
|
370
370
|
1. SPEC/Feature 파일 로드 (single/split 자동 감지)
|
|
371
371
|
2. Quality Validation (100점 게이트, 수렴까지 auto-fix 루프)
|
|
372
|
-
3. Race Review (GPT +
|
|
372
|
+
3. Race Review (GPT + Antigravity parallel, 라운드 수 캡 없음, P1=0 + 수렴 시 종료)
|
|
373
373
|
4. (옵션) Codex adversarial review
|
|
374
374
|
5. Review Debate Team (2+ P1/P2 이슈 시)
|
|
375
375
|
6. 사용자 최종 체크포인트
|
|
@@ -19,7 +19,7 @@ Collection of utility tools. Use with options.
|
|
|
19
19
|
/vibe.utils --e2e "scenario" # E2E browser test (Playwright)
|
|
20
20
|
/vibe.utils --e2e --visual # Visual regression test
|
|
21
21
|
/vibe.utils --e2e --record # Video recording
|
|
22
|
-
/vibe.utils --image "description" # Generate image with
|
|
22
|
+
/vibe.utils --image "description" # Generate image with Antigravity (icon, banner, etc.)
|
|
23
23
|
/vibe.utils --image --icon "AppName" # Generate app icon/favicon
|
|
24
24
|
/vibe.utils --build-fix # Fix build errors (minimal diff)
|
|
25
25
|
/vibe.utils --clean # Remove dead code + DELETION_LOG
|
|
@@ -35,8 +35,8 @@ Read and follow `agents/ui-previewer.md` for UI preview generation.
|
|
|
35
35
|
|
|
36
36
|
Generate UI preview from description or design folder.
|
|
37
37
|
|
|
38
|
-
- **
|
|
39
|
-
- **
|
|
38
|
+
- **Antigravity enabled**: UI mockup image + component code generation
|
|
39
|
+
- **Antigravity disabled**: ASCII art fallback
|
|
40
40
|
|
|
41
41
|
**Input types:**
|
|
42
42
|
|
|
@@ -86,10 +86,10 @@ Generate Mermaid diagrams for architecture visualization.
|
|
|
86
86
|
|
|
87
87
|
## --image (Image Generation)
|
|
88
88
|
|
|
89
|
-
Generate images using
|
|
89
|
+
Generate images using the Antigravity image backend.
|
|
90
90
|
|
|
91
|
-
- **Default**:
|
|
92
|
-
- **--pro**:
|
|
91
|
+
- **Default**: Antigravity fast image - 빠르고 가벼운 이미지 생성
|
|
92
|
+
- **--pro**: Antigravity pro image - 고품질 이미지 생성
|
|
93
93
|
|
|
94
94
|
### MANDATORY Tool Invocation
|
|
95
95
|
|
|
@@ -98,19 +98,19 @@ Generate images using Gemini Image API.
|
|
|
98
98
|
**Step 0: Script path:**
|
|
99
99
|
- `[LLM_SCRIPT]` = `{{VIBE_PATH}}/hooks/scripts/llm-orchestrate.js`
|
|
100
100
|
|
|
101
|
-
**General image generation (
|
|
101
|
+
**General image generation (Antigravity fast image):**
|
|
102
102
|
```bash
|
|
103
|
-
node "[LLM_SCRIPT]"
|
|
103
|
+
node "[LLM_SCRIPT]" antigravity image "IMAGE_DESCRIPTION" --output "OUTPUT_PATH"
|
|
104
104
|
```
|
|
105
105
|
|
|
106
|
-
**Pro quality (
|
|
106
|
+
**Pro quality (Antigravity pro image):**
|
|
107
107
|
```bash
|
|
108
|
-
node "[LLM_SCRIPT]"
|
|
108
|
+
node "[LLM_SCRIPT]" antigravity image "IMAGE_DESCRIPTION" --pro --output "OUTPUT_PATH"
|
|
109
109
|
```
|
|
110
110
|
|
|
111
111
|
**With size option:**
|
|
112
112
|
```bash
|
|
113
|
-
node "[LLM_SCRIPT]"
|
|
113
|
+
node "[LLM_SCRIPT]" antigravity image "IMAGE_DESCRIPTION" --size "1920x1080" --output "OUTPUT_PATH"
|
|
114
114
|
```
|
|
115
115
|
|
|
116
116
|
### How to Parse User Request
|
|
@@ -125,11 +125,11 @@ node "[LLM_SCRIPT]" gemini image "IMAGE_DESCRIPTION" --size "1920x1080" --output
|
|
|
125
125
|
### Examples
|
|
126
126
|
|
|
127
127
|
```bash
|
|
128
|
-
node "[LLM_SCRIPT]"
|
|
128
|
+
node "[LLM_SCRIPT]" antigravity image "A friendly AI character mascot, colorful, approachable" --output "./ai-character.png"
|
|
129
129
|
|
|
130
|
-
node "[LLM_SCRIPT]"
|
|
130
|
+
node "[LLM_SCRIPT]" antigravity image "Professional website banner, modern design" --pro --size "1920x400" --output "./banner.png"
|
|
131
131
|
|
|
132
|
-
node "[LLM_SCRIPT]"
|
|
132
|
+
node "[LLM_SCRIPT]" antigravity image "Modern minimal logo design" --output "./public/logo.png"
|
|
133
133
|
```
|
|
134
134
|
|
|
135
135
|
### Output Format
|
|
@@ -152,15 +152,15 @@ Use the same command with a pre-built icon prompt template:
|
|
|
152
152
|
|
|
153
153
|
```bash
|
|
154
154
|
# --icon "MyApp"
|
|
155
|
-
node "[LLM_SCRIPT]"
|
|
155
|
+
node "[LLM_SCRIPT]" antigravity image "App icon for MyApp, square format 1:1, simple recognizable design, works well at small sizes, no text or letters, solid or gradient background, modern minimalist" --output "./public/app-icon.png"
|
|
156
156
|
|
|
157
157
|
# --icon "MyApp" --color "#2F6BFF"
|
|
158
|
-
node "[LLM_SCRIPT]"
|
|
158
|
+
node "[LLM_SCRIPT]" antigravity image "App icon for MyApp, primary color #2F6BFF, square format 1:1, simple recognizable design, works well at small sizes, no text or letters, solid or gradient background, modern minimalist" --output "./public/app-icon.png"
|
|
159
159
|
```
|
|
160
160
|
|
|
161
161
|
### Prerequisites
|
|
162
162
|
|
|
163
|
-
-
|
|
163
|
+
- Antigravity API key configured (`vibe antigravity key <key>`)
|
|
164
164
|
|
|
165
165
|
---
|
|
166
166
|
|