Adds the recall layer to the Antigravity plugin, mirroring the three-
layer wiring from feat/cursor-hooks-support, adapted for Antigravity's
native plugin and hook surfaces.
The wake hook (PreInvocation, invocationNum==1) was already the eager
layer — it injects verbatim palace content via injectSteps[].
ephemeralMessage before the first model call, which is strictly better
than Cursor's static directive. This commit adds the on-demand layers:
- integrations/shared/recall-protocol.md: single canonical source of
truth for "search before answering", shared across Cursor, Antigravity,
Claude Code, Codex, OpenClaw. Ported from feat/cursor-hooks-support
with the wake-up step de-coupled from any IDE-specific hook name.
- .antigravity-plugin/skills/mempalace-recall/SKILL.md: recall-only
skill with Protocol, Tool selection, Unhappy paths, and Anti-patterns
sections. Tailored to Antigravity: references injectSteps injection,
not Cursor's additional_context; links to shared protocol via GitHub
URL (relative file paths break in the installed copy at
~/.gemini/config/plugins/mempalace/).
- .antigravity-plugin/rules/mempalace-recall.md: plain .md recall rule
(no .mdc extension, no YAML frontmatter — per Antigravity's plugin
docs which specify rules/<name>.md). Body mirrors Cursor's rule;
references the shared protocol via absolute GitHub URL.
- hooks/antigravity/install.sh: creates skills/mempalace-recall/ and
rules/ in the install dir, copies both new files (cmp-gated,
idempotent). Verified: first run writes both, second run is silent.
- .antigravity-plugin/README.md: updated layout tree + "Three recall
layers" section documenting wake hook (eager), recall skill
(on-demand), and optional rule.
- 11 new tests in tests/test_antigravity_plugin_manifest.py covering:
shared protocol presence, recall skill structure (frontmatter,
required sections, GitHub URL reference), rule format (plain .md, no
frontmatter), and installer (mkdir + copy_file lines present).
Co-authored-by: Cursor <cursoragent@cursor.com>