Conversation
That is exactly the failure Your live runs on 1.2.7 show auto-discovery works there, so this is likely right for current versions. But Worth knowing: Minor: the generator truncates the committed artifact before confirming its inputs are readable. Two nits: |
Address review on obra#2350: validate bootstrap sources before truncating output, write via temp file + mv, mkdir -p custom output dirs, keep /dev/stdout path for test cmp. State verified agy 1.2.7+ floor in README (1.1.x reported components null) and correct the size-guard message.
Drop the 1.1.x components-null claim and upgrade directive: no agy is available in this environment to reproduce it live. The verified-versions sentence stands on this PR's own Environment tested table (agy 1.2.7, 2.0 2.15.0, IDE 2.5.5).
Deduplicate the rule body into one render_rule function so the /dev/stdout and atomic file paths cannot drift. README verified-versions line now includes agy 1.2.12, confirmed live: plugin install preserves the rule byte-for-byte, the rule loads at session start (probe + empty-profile control), and the exact acceptance prompt auto-triggers brainstorming.
|
@Enough1122 Thanks for the review — verified each point live on Accepted and fixed:
Checked live, declines to change:
The |
Re-verified at The truncation fix is complete in the order that matters. The size message no longer claims a limit it cannot cite, per your note. That was the whole of that finding. On
A control is what turns "it works" into "it works because of this", and running it live on 1.2.12 settles the question in a way my reading of the manifest could not. I would rather a maintainer decline a finding on evidence than accept it on my inference. Declining the The version floor stays absent, and the README now states only what you verified. "Verified on Antigravity CLI 1.2.7 and 1.2.12, 2.0 2.15.0, IDE 2.5.5" is a checkable claim; the previous unconditional version claim was not. Given that 1.2.12 and 1.1.x behave identically on the Nothing blocking from me, and thank you for the probes — running the thing on a real binary is a stronger receipt than any amount of reading on my side. |
Independent review findings: restrict the direct-write path to /dev/stdout (the only legitimate non-file target, used by the test cmp) so targets like /dev/null fail loudly instead of discarding output. Require non-empty (-s) bootstrap sources so a truncated input cannot generate a degenerate rule.
Pull request
Who is submitting this PR?
codex-cli 0.155.0-alpha.9.2(desktop UI version not exposed)What problem are you trying to solve?
With Antigravity CLI (
agy1.2.7), Superpowers' Claude-shapedhooks/hooks.jsonis rejected withinvalid hook "hooks": command hook must specify 'command'. The plugin's skills are installed, but theusing-superpowersbootstrap does not reach the model at session start. Fixes #2247. Antigravity 2.0 and the standalone IDE also had no native Superpowers bootstrap. In an initial 2.0 no-tool probe, an always-on rule's own marker was visible but its@-referenced bootstrap and tool-map markers were bothMISSING.What does this PR change?
Adds a native Antigravity
plugin.jsonand a generated always-onrules/superpowers.mdcontaining the canonicalusing-superpowersbootstrap and harness tool mapping inline. Documents local CLI installation and workspace/global plugin directories for Antigravity 2.0 and IDE, and prevents Antigravity-only files from entering the Codex plugin sync. Static tests validate the package and generated rule even whenagyis absent; the live install portion runs when available.Is this change appropriate for the core library?
Yes. This is harness infrastructure for Superpowers' existing general-purpose skills, with no new dependency, domain skill, or user-global configuration edit. It fixes the existing Antigravity integration's missing bootstrap and uses Google's native plugin mechanism on all three surfaces.
What alternatives did you consider?
SessionStarthook: currentagyrejects the hook schema; Antigravity does not expose that event in the plugin hook configuration.PreInvocationbootstrap: it fires at invocation time and needs a separate Antigravity hook and injection shape. The native always-on plugin rule reaches the model from the first message and also works in 2.0 and IDE.@references inside the rule: a no-tool 2.0 probe showed the referenced content did not enter context. The generated inline rule passed the same probe in 2.0 and IDE.AGENTS.md: rejected because it is outside the plugin install and would modify unrelated user configuration.Does this PR contain multiple unrelated changes?
No. The manifest, generated rule, mapping, documentation, tests, and Codex sync exclusions all serve this one Antigravity bootstrap fix. The IDE limitation on subagent delegation is documented rather than hidden.
Existing PRs
Environment tested
agy)agy)New harness support
All three clean-session transcripts for the exact prompt are included below. The first CLI and 2.0/IDE tool call reads
brainstorming/SKILL.md; each session creates a task artifact and asks about scope before any application code is written. The CLI JSONL stream records the tool call and result state for the file read but not the full contents of that tool result. In the tested IDE, no generalinvoke_subagenttool was available; subagent-dependent skills remain limited there.Clean-session transcripts for "Let's make a react todo list"
Clean-session acceptance transcripts
These are the complete user-visible first-turn records: prompt, tool calls and results, and final response. System messages, internal reasoning, and repeated streaming deltas are omitted. No application code was written in any session.
Antigravity CLI 1.2.7
User:
Let's make a react todo listTool call 2:
view_file{ "name": "view_file", "parameters": { "AbsolutePath": "[test-profile]\\.gemini\\config\\plugins\\superpowers\\skills\\brainstorming\\SKILL.md" }, "output": "286 lines, 17548 bytes" }Tool call 4:
run_command{ "name": "run_command", "parameters": { "CommandLine": "Get-ChildItem -Force" } }Tool call 6:
run_command{ "name": "run_command", "parameters": { "CommandLine": "node -v; npm -v; git --version" }, "output": "v24.16.0\r\n11.17.0\ngit version 2.54.0.windows.1\n" }Tool call 8:
write_to_file{ "name": "write_to_file", "parameters": { "TargetFile": "[test-profile]\\.gemini\\antigravity-cli\\brain\\[session-id]\\task.md" } }Tool call 12:
replace_file_content{ "name": "replace_file_content", "parameters": { "TargetFile": "[test-profile]\\.gemini\\antigravity-cli\\brain\\[session-id]\\task.md" } }Assistant:
Antigravity 2.0 2.15.0
User:
Let's make a react todo listTool call 1:
view_file{ "AbsolutePath": "\"[workspace]\\\\.agents\\\\plugins\\\\superpowers\\\\skills\\\\brainstorming\\\\SKILL.md\"", "toolAction": "\"Viewing brainstorming skill\"", "toolSummary": "\"View brainstorming SKILL.md\"" }Tool output 2:
Tool call 3:
write_to_file{ "ArtifactMetadata": "{\"RequestFeedback\":false,\"Summary\":\"Task tracking checklist for brainstorming and designing a React todo list.\",\"UserFacing\":true}", "CodeContent": "\"# Tasks: React Todo List Design\\n\\n- [ ] Explore project context\\n- [ ] Ask clarifying questions (purpose, constraints, features)\\n- [ ] Propose 2-3 approaches with trade-offs\\n- [ ] Present design in sections and get user feedback\\n- [ ] Write design doc\\n- [ ] Spec self-review\\n- [ ] User reviews written spec\\n- [ ] Transition to implementation (invoke writing-plans)\\n\"", "Description": "\"Create task tracking checklist for brainstorming phase\"", "Overwrite": "true", "TargetFile": "\"[conversation-artifacts]\\\\task.md\"", "toolAction": "\"Creating task tracking checklist\"", "toolSummary": "\"Create task.md artifact\"" }Tool output 4:
Tool call 5:
list_dir{ "DirectoryPath": "\"[workspace]\"", "toolAction": "\"Listing workspace directory\"", "toolSummary": "\"List directory contents\"" }Tool output 6:
Tool call 7:
run_command{ "CommandLine": "\"git status\"", "Cwd": "\"[workspace]\"", "IsDaemon": "false", "WaitMsBeforeAsync": "5000", "toolAction": "\"Checking git status\"", "toolSummary": "\"Check git status\"" }Tool output 8:
Tool call 9:
manage_task{ "Action": "\"status\"", "TaskId": "\"[session-id]/task-8\"", "toolAction": "\"Checking command status\"", "toolSummary": "\"Check task status\"" }Assistant:
Tool output 10:
Tool call 12:
replace_file_content{ "AllowMultiple": "false", "Description": "\"Mark explore project context as completed\"", "EndLine": "4", "Instruction": "\"Mark Explore project context as done\"", "ReplacementContent": "\"- [x] Explore project context\"", "StartLine": "3", "TargetContent": "\"- [ ] Explore project context\"", "TargetFile": "\"[conversation-artifacts]\\\\task.md\"", "toolAction": "\"Updating task checklist\"", "toolSummary": "\"Update task.md\"" }Tool output 13:
Assistant:
Antigravity IDE 2.5.5
User:
Let's make a react todo listTool call 3:
view_file{ "AbsolutePath": "\"[workspace]\\\\.agents\\\\plugins\\\\superpowers\\\\skills\\\\brainstorming\\\\SKILL.md\"", "toolAction": "\"Viewing file\"", "toolSummary": "\"View brainstorming skill file\"" }Tool output 4:
Tool call 6:
list_dir{ "DirectoryPath": "\"[workspace]\"", "toolAction": "\"Analyzing directory\"", "toolSummary": "\"List workspace directory\"" }Tool output 7:
Tool call 8:
run_command{ "CommandLine": "\"git status\"", "Cwd": "\"[workspace]\"", "WaitMsBeforeAsync": "5000", "toolAction": "\"Running command\"", "toolSummary": "\"Check git status\"" }Tool output 9:
Tool call 10:
write_to_file{ "ArtifactMetadata": "{\"RequestFeedback\":false,\"Summary\":\"Task checklist for brainstorming a React Todo List application.\",\"UserFacing\":true}", "CodeContent": "\"# Brainstorming: React Todo List\\n\\n- [x] Explore project context\\n- [ ] Ask clarifying questions (one at a time)\\n- [ ] Propose 2-3 approaches\\n- [ ] Present design sections and get approval\\n- [ ] Write design doc to `docs/superpowers/specs/YYYY-MM-DD-react-todo-list-design.md`\\n- [ ] Spec self-review\\n- [ ] User reviews written spec\\n- [ ] Transition to implementation (writing-plans skill)\\n\"", "Description": "\"Initialize task checklist for brainstorming React Todo List\"", "Overwrite": "true", "TargetFile": "\"[conversation-artifacts]\\\\task.md\"", "toolAction": "\"Editing file\"", "toolSummary": "\"Create task checklist artifact\"" }Tool output 11:
Tool call 13:
ask_question{ "questions": "[{\"is_multi_select\":false,\"options\":[\"(Recommended) A modern, polished personal productivity app with categories, priorities, due dates, and localStorage persistence\",\"A clean, lightweight todo list focusing on core basics (add, toggle, delete, filtering)\",\"An advanced task management tool with drag-and-drop reordering, subtasks, search, and theme switching\"],\"question\":\"What is the primary purpose and scope you'd like for this React todo list?\"}]", "toolAction": "\"Clarifying scope\"", "toolSummary": "\"Todo list purpose and scope\"" }Assistant:
Evaluation
agyrejected the Claude hook; in 2.0 an always-on rule's inline marker was present but the two@-referenced markers wereMISSINGwithout file-read tools.brainstormingbefore code. An additional IDE delegation probe reported no general subagent tool and made zero tool calls.agy1.2.12 (fresh official binary, isolated profile):plugin validateok (skills: 15 processed);plugin installpreservesrules/superpowers.mdbyte-for-byte; a rule probe quotes the injected always-on content while an empty-profile control answers NO_RULE_LOADED; the exact acceptance prompt auto-triggersbrainstormingwith no code written.plugin listreportscomponents: ["skills"]with no rules line in validate output — the manifest declares no component paths and a trial"rules"field is silently ignored — yet the agent loadsrules/at runtime, which matches the documented plugin layout (skills, agents, rules, MCP servers, hooks).bash tests/antigravity/run-tests.sh,bash tests/codex-plugin-sync/test-sync-to-codex-plugin.sh,bash scripts/lint-shell.shon the three Antigravity shell scripts,bash -n, andgit diff --check origin/dev...HEADpassed. Liveagy plugin installwithagy1.2.7 confirmed that the plugin rule and skills install correctly.Rigor
superpowers:writing-skillsfor the harness mapping change and ran a failing no-tool baseline before inlining.using-superpowers/SKILL.mdor any Red Flags, rationalization, or human-partner wording.Human review