Skip to content

feat(pstack): install pstack in Google Antigravity from a generated tree - #953

Open
aryamantepal wants to merge 1 commit into
cursor:mainfrom
aryamantepal:feat/pstack-antigravity
Open

aryamantepal wants to merge 1 commit into
cursor:mainfrom
aryamantepal:feat/pstack-antigravity

Conversation

@aryamantepal

@aryamantepal aryamantepal commented Oct 26, 2026 •

Copy link
Copy Markdown

Google Antigravity users can install pstack from harness/pstack/antigravity with agy plugin install ./harness/pstack/antigravity, or copy the generated directory into a workspace's .agents/plugins/pstack.

This follows #637's generated-tree architecture. The existing generator now builds both harnesses and checks both for drift, missing adapter mappings, and broken relative links. The Antigravity tree bundles 58 source skills, two adapted agents, the guide, license, and a native manifest. Its adapter covers tool calls, workspace rules, model tiers, setup-pstack, and unavailable Cursor features. Agent definitions use native tool grants and load the bundled adapter before following their source prompts.

Cursor's source skills and agents are unchanged. The Claude Code tree changes only its README to document the new install option. Generated files remain covered by the existing linguist-generated attribute.

Validation:

  • node scripts/generate-pstack-harness-trees.mjs --check passes.
  • node --test scripts/test/*.test.mjs passes all 13 tests, including drift detection, executable modes, adapter coverage, source changes, agent bootstrap changes, and package relocation. CI runs this suite.
  • Antigravity CLI 1.4.7: agy plugin validate harness/pstack/antigravity --strict --json reports 58 skills, two agents, and no findings. A copy under a temporary workspace's .agents/plugins/pstack also passes strict validation.
  • Existing skill tests: 50 pass, 100 skip because TLC/rendering dependencies are unavailable, zero failures.
  • node scripts/validate-plugins.mjs passes.

Limits: live agent discovery/execution could not be tested because the validation environment blocks Antigravity's localhost listener. The adapter documents that Cursor's disable-model-invocation catalog hiding is not guaranteed by Antigravity; generated skill bodies include an explicit-invocation instruction. Model defaults use supported tiers (pro, flash, inherit), without claiming vendor equivalence.


Note

Medium Risk
Touches the shared harness generator and CI gates for both Claude Code and Antigravity trees; mistakes could break installs or drift checks, but Cursor source skills are unchanged and tests cover regeneration and validation failures.

Overview
Adds Google Antigravity as a second installable harness alongside Claude Code: users install from generated harness/pstack/antigravity via agy plugin install or by copying into .agents/plugins/pstack.

The harness generator now builds both trees from the same pstack/ sources, validates each adapter against Cursor-specific terms used in skills, and fails on drift, dangling links, or incomplete mappings for either target. Antigravity-specific output includes a slim plugin.json, rewritten agent frontmatter (native tools, subagent flags, model tiers), bundled adapter injection in skills/agents, explicit-invocation text for disable-model-invocation skills, and poteto-agent bootstrap that reads bundled poteto-mode instead of Cursor plugin paths.

New pstack/docs/harness/antigravity.md documents tool, model, rules, and Cursor-only skip behavior. pstack/README.md documents Antigravity install and regeneration for both harnesses. CI runs node --test scripts/test/*.test.mjs to lock in package shape, agent adaptation, drift --check, and failure modes before trees are overwritten.

Reviewed by Cursor Bugbot for commit ae61882. Bugbot is set up for automated code reviews on this repo. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant