feat(ide-integration): integrate Antigravity Agentic Coding capabilities#461
feat(ide-integration): integrate Antigravity Agentic Coding capabilities#461DanielBBrasileiro wants to merge 17 commits intoSynkraAI:mainfrom
Conversation
…ated workflow guide.
- Adds native Antigravity workflow templates (Execution Engine and QA Review) - Updates ide-config-generator logic to copy static workflows during initialization - Updates ide-sync to propagate Antigravity workflows - Elevates Antigravity IDE status to 'Works' and updates documentation/parity matrix
|
@DanielBBrasileiro is attempting to deploy a commit to the Pedro Valério Lopez's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughUpdated AntiGravity compatibility to "Works"; added Antigravity workflow templates, sync utility, installer hook, validator and parity check; registry and manifest entries updated; docs and CLI quickstart added. Changes
Sequence Diagram(s)sequenceDiagram
participant User as User/IDE
participant Installer as Installer
participant Sync as syncAntigravityWorkflows
participant Templates as Templates Dir
participant Project as Project (.agent/workflows)
participant Validate as validateAntigravityIntegration
User->>Installer: trigger AntiGravity setup
Installer->>Installer: generate config
Installer->>Sync: syncAntigravityWorkflows(projectRoot, dryRun, resultFiles, verbose)
Sync->>Templates: read Antigravity .md templates
Templates-->>Sync: return file list
Sync->>Project: copy .md files into .agent/workflows
Sync-->>Installer: return copied file metadata/counts
Installer->>Validate: run validateAntigravityIntegration(options)
Validate->>Project: verify workflows directory and required files
Project-->>Validate: return ok/errors/warnings
Validate-->>Installer: report validation result
Installer-->>User: finish with agent/workflow counts and status
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested labels
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Tip Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs). Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 8
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
packages/installer/src/wizard/ide-config-generator.js (1)
338-371:⚠️ Potential issue | 🟠 Major
createAntiGravityConfigJsonbuilds aconfigobject that is never written to disk — dead code plus a misleading contract.The
configobject (lines 342–367) is constructed but discarded; onlyfs.ensureDirruns. The function returns a path that points to a file that does not exist. This causes two downstream problems in the call site (lines 537–544):
createdFiles.push(configJsonPath)tracks a non-existent path, meaningshowSuccessSummarywill list a phantom file.spinner.succeed("Created AntiGravity config, ...")is factually wrong.Either restore the write or remove the dead object and rename the function:
🔧 Option A — Restore the write (if the config file is needed)
await fs.ensureDir(path.dirname(configPath)); + await fs.writeFile(configPath, JSON.stringify(config, null, 2), 'utf8'); return configPath;🔧 Option B — Remove dead code (if the config file is intentionally not written)
-async function createAntiGravityConfigJson(projectRoot, ideConfig) { +async function ensureAntiGravityConfigDir(projectRoot, ideConfig) { const configPath = path.join(projectRoot, ideConfig.specialConfig.configJsonPath); - const projectName = path.basename(projectRoot); - - const config = { - version: '1.0', - project: projectName, - workspace: projectRoot.replace(/\\/g, '/'), - agents: { ... }, - rules: { ... }, - features: { ... }, - paths: { ... }, - }; - await fs.ensureDir(path.dirname(configPath)); return configPath; }And update the call site accordingly, removing
createdFiles.push(configJsonPath)and fixing the spinner message.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@packages/installer/src/wizard/ide-config-generator.js` around lines 338 - 371, The createAntiGravityConfigJson function constructs a config object but never writes it to disk, yet callers treat the returned path as a created file (see createdFiles.push(...) and spinner.succeed(...) at the caller); either persist the config or remove the dead work and update the caller: Option A — in createAntiGravityConfigJson write the config to configPath (use fs.writeJson or fs.writeFile with JSON.stringify(config, null, 2)) after ensureDir and return configPath so createdFiles.push(configJsonPath) and spinner.succeed remain correct; Option B — if the file should not be created, remove the config object and rename the function to reflect it only ensures the directory (e.g., ensureAntiGravityConfigDir), then update the call site to stop pushing the non-existent config path to createdFiles and change spinner.succeed to not claim the AntiGravity config file was created.docs/ide-integration.md (1)
14-19:⚠️ Potential issue | 🟠 MajorUpdate the version reference in docs/ide-integration.md to match the actual contract file version.
The documentation claims the contract is
aios-4.2.11.yaml(lines 14-19), but the actual validator defaults to and only contract file in the repository isaios-4.0.4.yaml. Theaios-4.0.4.yamlfile has been correctly updated withexpected_status: "Works"for AntiGravity, so validation will pass — however, the documentation's outdated version reference creates confusion about what version is currently active and should be corrected toaios-4.0.4.yaml.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/ide-integration.md` around lines 14 - 19, Update the docs/ide-integration.md compatibility contract reference from aios-4.2.11 to the actual contract file aios-4.0.4: change the header "Compatibility Contract (AIOS 4.2.11)" and the listed contract file `.aios-core/infrastructure/contracts/compatibility/aios-4.2.11.yaml` to `.aios-core/infrastructure/contracts/compatibility/aios-4.0.4.yaml`, and ensure the validator command mention stays `npm run validate:parity` so the doc matches the repository's single contract file.
🧹 Nitpick comments (1)
.aios-core/infrastructure/scripts/ide-sync/index.js (1)
275-293: Workflow-copying logic is duplicated between this file andide-config-generator.js(lines 378–408).The same copy-md-files-from-templates-to-.agent/workflows pattern is implemented twice. Consider extracting it into a shared utility (e.g.,
utils/antigravity-workflows.js) to keep the two sync paths consistent when templates are added.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.aios-core/infrastructure/scripts/ide-sync/index.js around lines 275 - 293, Duplicate logic for copying antigravity workflow .md files should be extracted into a shared helper to avoid drift; create a utility function (e.g., copyAntigravityWorkflows or syncAntigravityWorkflows) in a new module (utils/antigravity-workflows.js) that accepts parameters used in both places (projectRoot, options.dryRun, result.files array or a callback) and implements the behavior currently in the ide-sync 'antigravity' block (ensureDirSync targetDir, readdirSync sourceDir, filter for .md, copyFileSync each file, and push the same result.files entries), then replace the duplicated code in both ide-sync/index.js (the ideName === 'antigravity' branch) and ide-config-generator.js (the lines with the same copy loop) to call that single helper.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.aios-core/infrastructure/contracts/compatibility/aios-4.0.4.yaml:
- Around line 40-44: Add the missing integration check for the "antigravity"
IDE: in the entry where ide is "antigravity" and display_name is "AntiGravity",
append "antigravity-integration" to the required_checks array so it includes
both "antigravity-sync" and "antigravity-integration", matching the pattern used
by other Works-rated IDEs like "claude-code" and "gemini".
In @.aios-core/infrastructure/scripts/ide-sync/index.js:
- Around line 274-301: The antigravity sync block (condition ideName ===
'antigravity', using sourceDir/targetDir, options.dryRun and result.files)
currently swallows errors, hardcodes dry-run filenames, and inflates agentCount;
change the catch(e) to log the error (at least when verbose) instead of ignoring
it, make the dry-run branch enumerate sourceDir for .md files the same way the
non-dry-run branch does (so it stays correct if templates change), and stop
mixing workflows into the agent count by either tagging workflow entries (e.g.,
add a type: 'workflow' field when pushing to result.files) or adjust the agent
counting logic (where agentCount is computed) to exclude entries with agent ===
'Workflow' so the reported agentCount remains accurate.
In
@.aios-core/product/templates/ide-rules/antigravity/workflows/aios-execute-story.md:
- Line 11: Remove the invalid JavaScript-style inline comment "// turbo" from
the template (it appears as literal text in the rendered output) and either
delete it or replace it with a valid non-rendering comment such as an HTML
comment "<!-- turbo -->" so the annotation does not appear in the generated
template output; search for the exact token "// turbo" in the template and
update those occurrences accordingly.
- Line 10: The template in aios-execute-story.md incorrectly references the
story directory `.aios/stories/`; update the template text to use the project's
canonical story path `docs/stories/` so the Antigravity agent looks in the right
location (replace the string `.aios/stories/` with `docs/stories/` in the
sentence "Identifique o arquivo da História de Desenvolvimento (`.aios/stories/`
or requisitado)"). Also verify any other occurrences of `.aios/stories/` in this
template and align them with AGENTS.md's convention.
In
@.aios-core/product/templates/ide-rules/antigravity/workflows/aios-qa-review.md:
- Around line 12-13: In the "Testes Nativos" section replace the invalid literal
annotation "// turbo-all" with a non-rendering comment (for example an HTML
comment) or remove it entirely so it doesn't appear in the rendered Markdown,
and correct the abbreviation "etc" to "etc." to include the trailing period;
locate the strings "// turbo-all", "Testes Nativos", and "etc" in the template
to make these edits.
In `@GEMINI-QUICKSTART.md`:
- Line 100: Replace the outdated model string "Gemini 1.5 Pro/Flash" with the
current Gemini 2.0 family in the comparison table—e.g., "Gemini 2.0 Pro/Flash
(Flash‑Lite available)" and remove references to the shut down 1.5 Flash model
so the doc matches the wrapper reference "gemini-2.0-flash" used elsewhere; also
update the troubleshooting API key placeholder from "sk-..." to the Google key
prefix "AIza..." so examples show the correct Google AI API key format.
- Line 37: Replace the hardcoded developer-specific paths
'/Users/daniel/Documents/Bordeless/aios-core' and
'~/Documents/Bordeless/aios-core' in GEMINI-QUICKSTART.md with a generic
placeholder or relative path (e.g., ./aios-core or <project-root>), update the
cd command examples to use that placeholder or $HOME, and add a one-line note
telling users to substitute their actual local path; search for the exact
strings '/Users/daniel/Documents/Bordeless/aios-core' and
'~/Documents/Bordeless/aios-core' to find and update all occurrences.
In `@GUIA_AIOS_DANIEL.md`:
- Around line 1-80: The file GUIA_AIOS_DANIEL.md is a personal,
addressee-specific guide that should not be in the repo root; either move this
file out of version control (e.g., to a personal ~/notes/ location and remove it
from the commit) or extract/genericize its useful instructions and merge them
into GEMINI-QUICKSTART.md (rename headings, remove personal references like
"Daniel", and align formatting with the existing quickstart). After choosing,
update the repo by deleting or replacing GUIA_AIOS_DANIEL.md in the commit and
ensure any references/links and README entries point to GEMINI-QUICKSTART.md
instead.
---
Outside diff comments:
In `@docs/ide-integration.md`:
- Around line 14-19: Update the docs/ide-integration.md compatibility contract
reference from aios-4.2.11 to the actual contract file aios-4.0.4: change the
header "Compatibility Contract (AIOS 4.2.11)" and the listed contract file
`.aios-core/infrastructure/contracts/compatibility/aios-4.2.11.yaml` to
`.aios-core/infrastructure/contracts/compatibility/aios-4.0.4.yaml`, and ensure
the validator command mention stays `npm run validate:parity` so the doc matches
the repository's single contract file.
In `@packages/installer/src/wizard/ide-config-generator.js`:
- Around line 338-371: The createAntiGravityConfigJson function constructs a
config object but never writes it to disk, yet callers treat the returned path
as a created file (see createdFiles.push(...) and spinner.succeed(...) at the
caller); either persist the config or remove the dead work and update the
caller: Option A — in createAntiGravityConfigJson write the config to configPath
(use fs.writeJson or fs.writeFile with JSON.stringify(config, null, 2)) after
ensureDir and return configPath so createdFiles.push(configJsonPath) and
spinner.succeed remain correct; Option B — if the file should not be created,
remove the config object and rename the function to reflect it only ensures the
directory (e.g., ensureAntiGravityConfigDir), then update the call site to stop
pushing the non-existent config path to createdFiles and change spinner.succeed
to not claim the AntiGravity config file was created.
---
Nitpick comments:
In @.aios-core/infrastructure/scripts/ide-sync/index.js:
- Around line 275-293: Duplicate logic for copying antigravity workflow .md
files should be extracted into a shared helper to avoid drift; create a utility
function (e.g., copyAntigravityWorkflows or syncAntigravityWorkflows) in a new
module (utils/antigravity-workflows.js) that accepts parameters used in both
places (projectRoot, options.dryRun, result.files array or a callback) and
implements the behavior currently in the ide-sync 'antigravity' block
(ensureDirSync targetDir, readdirSync sourceDir, filter for .md, copyFileSync
each file, and push the same result.files entries), then replace the duplicated
code in both ide-sync/index.js (the ideName === 'antigravity' branch) and
ide-config-generator.js (the lines with the same copy loop) to call that single
helper.
.aios-core/product/templates/ide-rules/antigravity/workflows/aios-execute-story.md
Outdated
Show resolved
Hide resolved
.aios-core/product/templates/ide-rules/antigravity/workflows/aios-execute-story.md
Outdated
Show resolved
Hide resolved
| 3. **Testes Nativos**: Se a linguagem/framework da spec suportar, realize uma passagem de testes locais (`npm test`, `pytest`, etc) ou rodadas de Linter. | ||
| // turbo-all |
There was a problem hiding this comment.
// turbo-all annotation is not valid Markdown; also, etc is missing a period.
// turbo-all on line 13 will render as literal text in the IDE (same issue as // turbo in aios-execute-story.md). Additionally, etc on line 12 should be written etc. as it is an abbreviation.
🔧 Proposed fix
-3. **Testes Nativos**: Se a linguagem/framework da spec suportar, realize uma passagem de testes locais (`npm test`, `pytest`, etc) ou rodadas de Linter.
-// turbo-all
+3. **Testes Nativos**: Se a linguagem/framework da spec suportar, realize uma passagem de testes locais (`npm test`, `pytest`, etc.) ou rodadas de Linter.
4. **Parecer de Qualidade**: As per coding guidelines for .aios-core/product/templates/**: "Validate template produces valid output."
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| 3. **Testes Nativos**: Se a linguagem/framework da spec suportar, realize uma passagem de testes locais (`npm test`, `pytest`, etc) ou rodadas de Linter. | |
| // turbo-all | |
| 3. **Testes Nativos**: Se a linguagem/framework da spec suportar, realize uma passagem de testes locais (`npm test`, `pytest`, etc.) ou rodadas de Linter. |
🧰 Tools
🪛 LanguageTool
[uncategorized] ~12-~12: Se é uma abreviatura, falta um ponto. Se for uma expressão, coloque entre aspas.
Context: ... realize uma passagem de testes locais (npm test, pytest, etc) ou rodadas de Linter. ...
(ABREVIATIONS_PUNCTUATION)
[uncategorized] ~12-~12: Se é uma abreviatura, falta um ponto. Se for uma expressão, coloque entre aspas.
Context: ...de testes locais (npm test, pytest, etc) ou rodadas de Linter. // turbo-all 4. ...
(ABREVIATIONS_PUNCTUATION)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
@.aios-core/product/templates/ide-rules/antigravity/workflows/aios-qa-review.md
around lines 12 - 13, In the "Testes Nativos" section replace the invalid
literal annotation "// turbo-all" with a non-rendering comment (for example an
HTML comment) or remove it entirely so it doesn't appear in the rendered
Markdown, and correct the abbreviation "etc" to "etc." to include the trailing
period; locate the strings "// turbo-all", "Testes Nativos", and "etc" in the
template to make these edits.
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (4)
.agent/workflows/aios-qa-review.md (1)
12-12: Minor:etcshould beetc.(abbreviation period missing in Portuguese).✏️ Proposed fix
-3. **Testes Nativos**: Se a linguagem/framework da spec suportar, realize uma passagem de testes locais (`npm test`, `pytest`, etc) ou rodadas de Linter. +3. **Testes Nativos**: Se a linguagem/framework da spec suportar, realize uma passagem de testes locais (`npm test`, `pytest`, etc.) ou rodadas de Linter.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.agent/workflows/aios-qa-review.md at line 12, Edit the line under "3. **Testes Nativos**" and add the missing period to the abbreviation by changing the phrase "`npm test`, `pytest`, etc" to "`npm test`, `pytest`, etc." so the sentence reads with the correct Portuguese abbreviation punctuation.GEMINI-QUICKSTART.md (1)
60-62: Fenced code block missing a language specifier (markdownlint MD040).✏️ Proposed fix
-``` +```text /aios-menu</details> <details> <summary>🤖 Prompt for AI Agents</summary>Verify each finding against the current code and only fix it if needed.
In
@GEMINI-QUICKSTART.mdaround lines 60 - 62, The fenced code block containing
"/aios-menu" lacks a language specifier; update the block delimiter fromto include a language (e.g.,text) so the snippet is fenced astext ...
to satisfy markdownlint MD040 and improve rendering for the "/aios-menu"
snippet.</details> </blockquote></details> <details> <summary>.aios-core/infrastructure/scripts/validate-antigravity-integration.js (1)</summary><blockquote> `46-53`: **Minor: redundant `fs.existsSync` call on `workflowsDir`.** `fs.existsSync(resolved.workflowsDir)` is called on line 35 and again on line 51 for the `metrics` object. Consider caching the result to avoid the duplicate I/O call. <details> <summary>♻️ Proposed fix</summary> ```diff + const workflowsDirExists = fs.existsSync(resolved.workflowsDir); + - if (!fs.existsSync(resolved.workflowsDir)) { + if (!workflowsDirExists) { warnings.push(`Antigravity workflows dir not found: ${path.relative(resolved.projectRoot, resolved.workflowsDir)}`); } else { ... } return { ok: errors.length === 0, errors, warnings, metrics: { - workflowsDirExists: fs.existsSync(resolved.workflowsDir), + workflowsDirExists, }, }; ``` </details> <details> <summary>🤖 Prompt for AI Agents</summary> ``` Verify each finding against the current code and only fix it if needed. In @.aios-core/infrastructure/scripts/validate-antigravity-integration.js around lines 46 - 53, Cache the filesystem check result instead of calling fs.existsSync(resolved.workflowsDir) twice: compute a const like workflowsDirExists = fs.existsSync(resolved.workflowsDir) where the first check currently occurs, use workflowsDirExists for the earlier conditional logic, and reuse workflowsDirExists inside the returned metrics.workflowsDirExists property so the I/O call is performed once (references: resolved.workflowsDir and metrics.workflowsDirExists). ``` </details> </blockquote></details> <details> <summary>.aios-core/infrastructure/scripts/ide-sync/utils/antigravity-workflows.js (1)</summary><blockquote> `45-49`: **Silent error swallowing may mask sync failures.** When `verbose` is false (the default), sync failures are completely invisible — no return value indicates failure, and no error propagates. Callers have no way to know the sync was skipped. Consider always pushing a warning or error entry into `resultFiles` so the IDE sync report reflects the failure, even in non-verbose mode. <details> <summary>♻️ Proposed improvement</summary> ```diff } catch (e) { + resultFiles.push({ + agent: 'Workflow', + type: 'workflow-error', + filename: null, + path: null, + error: e.message, + }); if (verbose) { console.warn(`${colors.yellow}⚠ Antigravity static workflow copy failed: ${e.message}${colors.reset}`); } } ``` </details> <details> <summary>🤖 Prompt for AI Agents</summary> ``` Verify each finding against the current code and only fix it if needed. In @.aios-core/infrastructure/scripts/ide-sync/utils/antigravity-workflows.js around lines 45 - 49, The catch block currently only logs when verbose is true, which swallows errors otherwise; update the catch in antigravity-workflows.js to always record the failure into the sync report (push an error/warning entry into resultFiles) using the existing resultFiles array and include e.message and context (e.g., a path or operation name like "antigravity static workflow copy") so IDE sync reports show the failure even when verbose is false, while retaining the existing console.warn when verbose is true. ``` </details> </blockquote></details> </blockquote></details> <details> <summary>🤖 Prompt for all review comments with AI agents</summary>Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.agent/workflows/aios-execute-story.md:
- Around line 10-11: Replace the stale template tokens in the workflow: change
every occurrence of the string ".aios/stories/" to "docs/stories/" and replace
the "// turbo" markers with "" (and ensure any other identical
markers in the file are updated), then re-run the sync command npm run
sync:ide:antigravity to propagate template fixes; verify the file now matches
the template's corrected tokens.In @.agent/workflows/aios-qa-review.md:
- Line 13: Remove or relocate the stray JavaScript-style line "// turbo-all"
that breaks the ordered list rendering in the Markdown; either delete it
entirely or move it into a non-disruptive location such as frontmatter or a
fenced comment block so the numbered steps (e.g., the list around "step 3" and
"step 4") render sequentially without resetting.In @.aios-core/infrastructure/scripts/validate-antigravity-integration.js:
- Around line 25-31: The resolved options built in
validateAntigravityIntegration currently spread getDefaultOptions() which
computes workflowsDir from process.cwd(), so when callers pass a different
projectRoot the workflowsDir stays wrong; update validateAntigravityIntegration
to recompute/override workflowsDir after the spread (using the resolved
projectRoot) — e.g. set workflowsDir to options.workflowsDir ||
path.join(projectRoot, '.aios-core', 'product', 'templates', 'ide-rules',
'antigravity', 'workflows') so workflowsDir is aligned with the provided
projectRoot; reference validateAntigravityIntegration and getDefaultOptions to
locate the change.In
@docs/ide-integration.md:
- Around line 14-18: The document shows a mismatch between the compatibility
contract header "AIOS 4.0.4" and the document/Quick Status Matrix/footer version
"4.2.11" (contract file
.aios-core/infrastructure/contracts/compatibility/aios-4.0.4.yaml, document
version4.2.11, Quick Status Matrix header(AIOS 4.2.11), footerv4.2.11);
either update the contract header and contract filename to match the document
version or add a single-line clarification under the Compatibility Contract
heading explaining that the contract file version is intentionally different
from the document release version (and why) to avoid confusion.
Nitpick comments:
In @.agent/workflows/aios-qa-review.md:
- Line 12: Edit the line under "3. Testes Nativos" and add the missing
period to the abbreviation by changing the phrase "npm test,pytest, etc" to
"npm test,pytest, etc." so the sentence reads with the correct Portuguese
abbreviation punctuation.In @.aios-core/infrastructure/scripts/ide-sync/utils/antigravity-workflows.js:
- Around line 45-49: The catch block currently only logs when verbose is true,
which swallows errors otherwise; update the catch in antigravity-workflows.js to
always record the failure into the sync report (push an error/warning entry into
resultFiles) using the existing resultFiles array and include e.message and
context (e.g., a path or operation name like "antigravity static workflow copy")
so IDE sync reports show the failure even when verbose is false, while retaining
the existing console.warn when verbose is true.In @.aios-core/infrastructure/scripts/validate-antigravity-integration.js:
- Around line 46-53: Cache the filesystem check result instead of calling
fs.existsSync(resolved.workflowsDir) twice: compute a const like
workflowsDirExists = fs.existsSync(resolved.workflowsDir) where the first check
currently occurs, use workflowsDirExists for the earlier conditional logic, and
reuse workflowsDirExists inside the returned metrics.workflowsDirExists property
so the I/O call is performed once (references: resolved.workflowsDir and
metrics.workflowsDirExists).In
@GEMINI-QUICKSTART.md:
- Around line 60-62: The fenced code block containing "/aios-menu" lacks a
language specifier; update the block delimiter fromto include a language (e.g.,text) so the snippet is fenced astext ...to satisfy
markdownlint MD040 and improve rendering for the "/aios-menu" snippet.</details> <!-- This is an auto-generated comment by CodeRabbit for review status -->
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
docs/ide-integration.md (1)
40-45:⚠️ Potential issue | 🟡 Minor"Works" legend contradicts AntiGravity's placement in the Beginner Decision Guide.
The legend (line 43) defines
Worksas "fully recommended for new users", but line 66 still places AntiGravity in the "Usable with extra steps" tier (#3) alongsideCursorandCopilot(bothLimited). This creates a contradiction for readers who check both sections.The guide placement is correct on its merits (AntiGravity has no auto-checks, so it genuinely needs more manual steps). The fix should be in the legend, not the guide, since the same pattern exists for Codex CLI (
Limitedin the matrix butGood option#2in the guide):🔧 Proposed fix — clarify the legend
Legend: -- `Works`: fully recommended for new users in AIOS 4.2.11. +- `Works`: integration is functional and fully deployable in AIOS 4.2.11 (automation level varies — see the Auto-Checks column and the Beginner Decision Guide for effort required). - `Limited`: usable with the documented workaround.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/ide-integration.md` around lines 40 - 45, Update the legend text to remove the "fully recommended for new users" wording for the `Works` label and instead describe capability/support level (e.g., "`Works`: fully supported — no additional steps required"), and clarify `Limited` as "`Limited`: usable with documented workaround/extra manual steps" so the matrix entries for AntiGravity and Codex CLI remain consistent with their placements in the Beginner Decision Guide; adjust the legend lines containing the `Works`, `Limited`, and `Not available` definitions to use these capability-focused descriptions and ensure the table/matrix rows (e.g., the AntiGravity and Codex CLI entries) now match the clarified legend semantics.
🧹 Nitpick comments (2)
docs/ide-integration.md (1)
263-263: Portuguese text in an English-declared document.The document header is
> **EN**, but the newspecial_featuresentry uses Portuguese:Workflows nativos para Dev e QA. All other entries in the same YAML block are in English.🔧 Proposed fix
- - Deep Execution Engine (Workflows nativos para Dev e QA) + - Deep Execution Engine (native workflows for Dev and QA)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/ide-integration.md` at line 263, The YAML entry special_features contains Portuguese text while the document header is > **EN**; update the special_features value "Deep Execution Engine (Workflows nativos para Dev e QA)" to English (for example "Deep Execution Engine (Native workflows for Dev and QA)") so the language matches the EN document and maintain consistent wording/format with the other entries..aios-core/data/entity-registry.yaml (1)
4804-4842: Consider adding anantigravitykeyword for IDE-scoped discovery.
This is optional, but it can improve search/filtering in tooling that relies on keywords rather than path.♻️ Optional keyword addition
aios-execute-story: path: .aios-core/product/templates/ide-rules/antigravity/workflows/aios-execute-story.md type: template purpose: '[AIOS] Executar uma História de Desenvolvimento (Story) com o Agente Dev' keywords: - aios + - antigravity - execute - story - 'aios:' - execution - engine - workflow @@ aios-qa-review: path: .aios-core/product/templates/ide-rules/antigravity/workflows/aios-qa-review.md type: template purpose: '[AIOS] Executar revisão de Qualidade (QA) em uma Story recém-finalizada' keywords: - aios + - antigravity - qa - review - 'aios:' - evolution - workflow🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.aios-core/data/entity-registry.yaml around lines 4804 - 4842, Add the "antigravity" keyword to the keywords arrays for the aios-execute-story and aios-qa-review entries so IDE-scoped discovery can find these templates by keyword; locate the aios-execute-story and aios-qa-review sections in the entity-registry and insert "antigravity" alongside the existing keywords (e.g., after "aios" or at the end of the keywords list) for both entries.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Outside diff comments:
In `@docs/ide-integration.md`:
- Around line 40-45: Update the legend text to remove the "fully recommended for
new users" wording for the `Works` label and instead describe capability/support
level (e.g., "`Works`: fully supported — no additional steps required"), and
clarify `Limited` as "`Limited`: usable with documented workaround/extra manual
steps" so the matrix entries for AntiGravity and Codex CLI remain consistent
with their placements in the Beginner Decision Guide; adjust the legend lines
containing the `Works`, `Limited`, and `Not available` definitions to use these
capability-focused descriptions and ensure the table/matrix rows (e.g., the
AntiGravity and Codex CLI entries) now match the clarified legend semantics.
---
Duplicate comments:
In @.agent/workflows/aios-qa-review.md:
- Line 13: The HTML comment directive <!-- turbo-all --> is placed as an
unindented block between ordered list items which breaks the list rendering; fix
by making the directive part of the preceding list item content (indent it by at
least 3 spaces so <!-- turbo-all --> is nested under the list item), or move the
directive into the document frontmatter as a custom key, or remove it entirely
so the ordered list remains continuous; update the occurrence of <!-- turbo-all
--> accordingly.
---
Nitpick comments:
In @.aios-core/data/entity-registry.yaml:
- Around line 4804-4842: Add the "antigravity" keyword to the keywords arrays
for the aios-execute-story and aios-qa-review entries so IDE-scoped discovery
can find these templates by keyword; locate the aios-execute-story and
aios-qa-review sections in the entity-registry and insert "antigravity"
alongside the existing keywords (e.g., after "aios" or at the end of the
keywords list) for both entries.
In `@docs/ide-integration.md`:
- Line 263: The YAML entry special_features contains Portuguese text while the
document header is > **EN**; update the special_features value "Deep Execution
Engine (Workflows nativos para Dev e QA)" to English (for example "Deep
Execution Engine (Native workflows for Dev and QA)") so the language matches the
EN document and maintain consistent wording/format with the other entries.
…end list rendering
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.aios-core/data/entity-registry.yaml (1)
6045-6056:⚠️ Potential issue | 🟡 MinorRestore
dev-helper.usedBylist with actual dependencies.The
dev-helpermodule is actively used by four tasks:build-autonomous,create-service,dev-develop-story, anddev-suggest-refactoringall import and call functions from it (checkBeforeWriting,assessRefactoringImpact). LeavingusedByempty breaks registry-driven dependency discovery and weakens understanding of module usage across the system.Suggested restore
- usedBy: [] + usedBy: + - dev-develop-story + - create-service + - dev-suggest-refactoring + - build-autonomous🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.aios-core/data/entity-registry.yaml around lines 6045 - 6056, The registry entry for the module "dev-helper" has an empty usedBy list which should list consumers; restore the usedBy array to include the actual dependents so dependency discovery works. Edit the entity entry for dev-helper and set usedBy to include "build-autonomous", "create-service", "dev-develop-story", and "dev-suggest-refactoring" (these tasks import/call dev-helper functions checkBeforeWriting and assessRefactoringImpact); ensure the names match other registry entries exactly and save the YAML with the updated usedBy array.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/ide-integration.md`:
- Line 40: The "Workaround if Limited" cell for the AntiGravity row currently
contains a feature note ("Uses native workflows for deep execution") instead of
the consistent placeholder used for other "Works" entries; update that cell to
"--" in the row that reads "AntiGravity | Works | workflow-driven activation
(`aios-execute-story`) | Not available | Uses native workflows for deep
execution", and if you want to preserve the native-workflows detail move it into
the "How to Activate" or "Auto-Checks" column (or append it as a parenthetical
note there) so the "Workaround if Limited" column matches other "Works" entries.
---
Outside diff comments:
In @.aios-core/data/entity-registry.yaml:
- Around line 6045-6056: The registry entry for the module "dev-helper" has an
empty usedBy list which should list consumers; restore the usedBy array to
include the actual dependents so dependency discovery works. Edit the entity
entry for dev-helper and set usedBy to include "build-autonomous",
"create-service", "dev-develop-story", and "dev-suggest-refactoring" (these
tasks import/call dev-helper functions checkBeforeWriting and
assessRefactoringImpact); ensure the names match other registry entries exactly
and save the YAML with the updated usedBy array.
docs/ide-integration.md
Outdated
| | Cursor | Limited | `@agent` + synced rules | Not available | Follow synced rules and run validators manually (`npm run validate:parity`) | | ||
| | GitHub Copilot | Limited | chat modes + repo instructions | Not available | Use repo instructions and VS Code MCP config for context | | ||
| | AntiGravity | Limited | workflow-driven activation | Not available | Use generated workflows and run validators manually | | ||
| | AntiGravity | Works | workflow-driven activation (`aios-execute-story`) | Not available | Uses native workflows for deep execution | |
There was a problem hiding this comment.
Minor inconsistency: "Workaround if Limited" column has content for a "Works" status IDE.
Other IDEs with "Works" status (Claude Code, Gemini CLI) use -- in the "Workaround if Limited" column. AntiGravity is now "Works" but shows "Uses native workflows for deep execution" — which reads more like a feature description than a workaround. Consider changing it to -- for consistency, and moving the native-workflows note to the "How to Activate" or "Auto-Checks" column if it needs to be surfaced here.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/ide-integration.md` at line 40, The "Workaround if Limited" cell for the
AntiGravity row currently contains a feature note ("Uses native workflows for
deep execution") instead of the consistent placeholder used for other "Works"
entries; update that cell to "--" in the row that reads "AntiGravity | Works |
workflow-driven activation (`aios-execute-story`) | Not available | Uses native
workflows for deep execution", and if you want to preserve the native-workflows
detail move it into the "How to Activate" or "Auto-Checks" column (or append it
as a parenthetical note there) so the "Workaround if Limited" column matches
other "Works" entries.
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.aios-core/install-manifest.yaml (1)
1-3:⚠️ Potential issue | 🔴 CriticalRemove or resolve 4 missing antigravity entries from the manifest—they don't exist on disk.
The manifest lists 4 antigravity-related entries that are missing from the repository:
infrastructure/scripts/ide-sync/utils/antigravity-workflows.jsinfrastructure/scripts/validate-antigravity-integration.jsproduct/templates/ide-rules/antigravity/workflows/aios-execute-story.mdproduct/templates/ide-rules/antigravity/workflows/aios-qa-review.mdManifest entries should track actual files. These missing entries could cause issues during brownfield upgrades. Either add the files or regenerate the manifest with
npm run generate:manifestto exclude them.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.aios-core/install-manifest.yaml around lines 1 - 3, Remove or resolve the four invalid antigravity entries in the install manifest by either adding the missing files to the repo or regenerating the manifest so it no longer references non‑existent paths; specifically address these entries: infrastructure/scripts/ide-sync/utils/antigravity-workflows.js, infrastructure/scripts/validate-antigravity-integration.js, product/templates/ide-rules/antigravity/workflows/aios-execute-story.md, and product/templates/ide-rules/antigravity/workflows/aios-qa-review.md — run the manifest generator (npm run generate:manifest) if you choose to remove them, or add the actual files with correct content if they are required.
🧹 Nitpick comments (1)
docs/ide-integration.md (1)
248-271: AntiGravity setup section lacks validation/sync commands present for other IDEs.Other IDE sections (e.g., Codex CLI at Lines 150–160, Gemini CLI at Lines 304–308) include explicit
npm run sync:ide:<target>andnpm run validate:*commands in their setup blocks. The AntiGravity section mentionsnpm run sync:ide:antigravityin the Sync Commands section (Line 344) but omits it from its own Setup block. Consider adding a Configuration subsection similar to other IDEs:📝 Suggested addition after line 271
3. Agents synchronized as workflows +**Configuration:** + +```bash +# Sync AntiGravity workflows +npm run sync:ide:antigravity + +# Verify setup +ls -la .agent/workflows/ +``` + ---🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/ide-integration.md` around lines 248 - 271, Add a "Configuration" subsection inside the AntiGravity setup (the "AntiGravity" heading / Setup block) mirroring other IDE sections: run the sync command npm run sync:ide:antigravity to push workflows into .agent/workflows, then include a simple verification step such as listing the directory (e.g., ls -la .agent/workflows/) and/or a validate step to confirm configuration; reference the .antigravity/ config files and .agent/workflows location so readers know what to sync and verify.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Outside diff comments:
In @.aios-core/install-manifest.yaml:
- Around line 1-3: Remove or resolve the four invalid antigravity entries in the
install manifest by either adding the missing files to the repo or regenerating
the manifest so it no longer references non‑existent paths; specifically address
these entries: infrastructure/scripts/ide-sync/utils/antigravity-workflows.js,
infrastructure/scripts/validate-antigravity-integration.js,
product/templates/ide-rules/antigravity/workflows/aios-execute-story.md, and
product/templates/ide-rules/antigravity/workflows/aios-qa-review.md — run the
manifest generator (npm run generate:manifest) if you choose to remove them, or
add the actual files with correct content if they are required.
---
Duplicate comments:
In `@docs/ide-integration.md`:
- Line 40: The review noted a duplicate marker remaining in the PR comment;
remove the stray "[duplicate_comment]" token from the documentation change so
the table row string "| AntiGravity | Works | workflow-driven activation
(`aios-execute-story`) (uses native workflows for deep execution) | Not
available | -- |" stands alone and no duplicate comment artifacts remain in
docs/ide-integration.md.
---
Nitpick comments:
In `@docs/ide-integration.md`:
- Around line 248-271: Add a "Configuration" subsection inside the AntiGravity
setup (the "AntiGravity" heading / Setup block) mirroring other IDE sections:
run the sync command npm run sync:ide:antigravity to push workflows into
.agent/workflows, then include a simple verification step such as listing the
directory (e.g., ls -la .agent/workflows/) and/or a validate step to confirm
configuration; reference the .antigravity/ config files and .agent/workflows
location so readers know what to sync and verify.
nikolasdehor
left a comment
There was a problem hiding this comment.
Interesting addition! A few observations:
- The PR adds +349K lines — could you confirm if any of those are generated/binary files? That's a lot of additions for an IDE integration.
- The installer integration approach (updating
ide-config-generator.js) follows the same pattern as the existing Claude Code and Gemini handlers, which is good for consistency. - Would be nice to see a test covering the Antigravity sync path in
ide-sync/index.jsto prevent regression.
Overall the architecture looks aligned with the existing IDE integration patterns.
Excellent catch on the txt dump bloat! Removed it from the branch. Also added a dedicated Jest test suite for the ide-sync Antigravity utility path as requested to prevent regression. Thank you! |
Follow-up review (2a revisão)@DanielBBrasileiro, obrigado pelas correções! Revisando os novos commits: Pontos endereçados (bom trabalho):
Restante a avaliar:
No geral, o PR está bem mais limpo que na primeira review. Os pontos acima são menores — nenhum é blocker. |
nikolasdehor
left a comment
There was a problem hiding this comment.
Atualizacao pos-review -- 4 novos commits (431a345, d11b8f7, b3e1a28, merge)
Analisei os commits adicionados desde meu review anterior de 23/fev:
1. test(ide-sync): cobertura para antigravity workflow syncing (431a345) -- Excelente
Este commit responde diretamente ao ponto 3 do meu review anterior onde pedi testes para o path de sync do Antigravity. O arquivo tests/ide-sync/utils/antigravity-workflows.test.js cobre:
- Sync de workflows markdown para diretorio destino (ignora
.json) - Respeita flag
dry-run(nao cria diretorio) - Reporta erros em
resultFilesquando operacoes de FS falham
Qualidade do teste: Boa. Usa tmpRoot com fs.mkdtemp para isolacao, cleanup adequado no afterEach, e o mock de readdirSync para simular falha de FS e funcional (embora jest.spyOn seria mais idiomatico que substituicao direta no modulo).
Observacao menor: O mock manual fs.readdirSync = () => { throw... } funciona, mas se outro teste rodar em paralelo pode causar interferencia. Considere jest.spyOn(fs, 'readdirSync').mockImplementation(...) para restauracao automatica.
2. Remocao do arquivo de 348K linhas (_contexto_aios-core.txt)
Isso responde ao ponto 1 do meu review anterior sobre o volume de linhas. Otimo -- um arquivo de contexto gigante nao deveria estar no PR.
3. docs: gemini quickstart relocation (d11b8f7)
Rename de docs/gemini-quickstart.md com ajuste de wording. Mudanca trivial e adequada.
4. chore(pr): address second round of human review feedback (b3e1a28)
- Remove variaveis nao utilizadas (
projectRoot,workflowsDir) devalidate-antigravity-integration.js-- boa limpeza - Adiciona
.agent/workflows/ao.gitignore-- correto, outputs gerados nao devem ser trackeados - Bump de versao do
install-manifest.yamlpara 4.2.15
Veredicto
Os novos commits endereçam os dois pontos criticos do review anterior: volume de linhas (remocao do arquivo de 348K) e cobertura de testes para o sync path. A qualidade do PR melhorou significativamente. O escopo esta agora mais focado na integracao do Antigravity com o pipeline de IDE sync existente.
A unica sugestao pendente seria o uso de jest.spyOn no teste de erro em vez de substituicao manual do fs.readdirSync, mas nao e bloqueante.
Bom trabalho endereçando o feedback, @DanielBBrasileiro.
Revisado por @nikolasdehor
Description
This PR introduces native support for Antigravity as a fully integrated IDE/Execution Engine within the AIOS ecosystem. It elevates Antigravity from a prototype/local script to a first-class feature in the Node.js architecture.
Changes Made
.aios-core/product/templates/ide-rules/antigravity/workflows/.ide-config-generator.jssonpx aios-core initautomatically deploys the.agent/workflowsstructure when Antigravity is selected.ide-sync/index.jsto ensurenpm run sync:ide:antigravitycorrectly propagates these static workflows from the core templates to the project scope.docs/ide-integration.mdto mark AntiGravity asWorksand successfully passed thevalidate:paritycontract.Validation
npm run sync:ideworkflow propagationnpm run validate:paritynpm run lint,npm run typecheck, andnpm testSummary by CodeRabbit
New Features
Documentation