Skip to content

feat: Antigravity-compatible skills distribution (spike)#87

Draft
adunn08 wants to merge 4 commits into
mainfrom
feat/port-antigravity
Draft

feat: Antigravity-compatible skills distribution (spike)#87
adunn08 wants to merge 4 commits into
mainfrom
feat/port-antigravity

Conversation

@adunn08

@adunn08 adunn08 commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Summary

Feasibility spike: a repeatable build that transforms the claude-skills catalog into a Google Antigravity-compatible distribution under dist/antigravity/.agents/skills/.

Lane discipline: only scripts/build-antigravity.mjs and dist/antigravity/ were created. skills/ treated as read-only source. Zero new dependencies (Node built-in fs/path only, frontmatter parsed by hand).

Catalog

  • Skill count: 102 (find skills -name SKILL.md | wc -l)
  • Reference files: 488 (all Markdown), copied byte-for-byte including nested subfolders
  • Structure is uniform: every skill is SKILL.md + references/

Frontmatter normalization

Every source SKILL.md carries 5 keys. The build keeps the portable core and sidecars the rest:

key action
name kept
description kept
category moved to references/_claude-frontmatter-extras.yaml
catalog_summary moved to sidecar
display_order moved to sidecar

Sidecaring (vs dropping) keeps the port lossless and reversible. Each emitted SKILL.md ends with exactly name + description; the body below the frontmatter is preserved byte-for-byte (verified across all 102).

Validation results

All Step 4 checks PASS:

  • Valid --- delimiters + non-empty name/description on all 102 emitted SKILL.md: PASS
  • Emitted skill count == source count (102 == 102): PASS
  • Every source references/ file has an emitted counterpart (488 matched): PASS
  • No emitted frontmatter contains keys other than name/description: PASS

Taxonomy classification (Skills / Rules / Workflows)

All 102 entries are on-demand procedural knowledge with trigger-rich descriptions, so all map to Antigravity Skills. Emitted: 102 Skills, 0 Rules, 0 Workflows. design-standards, security-baseline, and vertical-site-conventions are flagged in PORT_NOTES as candidates a team could later promote to always-on Rules; left as Skills here to keep the transform mechanical and reversible.

Install

node scripts/build-antigravity.mjs              # build
cp -r dist/antigravity/.agents <target-project>/  # install

Feasibility

Feasible and low-risk: the catalog is uniform, the transform is a frontmatter trim plus recursive copy, and all structural validation passes.

🤖 Generated with Claude Code

adunn08 added a commit that referenced this pull request Jun 1, 2026
Extend scripts/build-antigravity.mjs and dist/antigravity/ to bring PR #87
toward merge-ready (still draft, not merged).

Build hardening:
- parameterized output root so the build can target temp dirs
- determinism self-test: build twice into temp dirs, assert byte-identical
- --check flag: rebuild into temp, diff against committed dist, nonzero on drift
- --audit flag: regenerate the heuristic discovery audit

Verification artifacts:
- SKILL_DISCOVERY_AUDIT.md: heuristic token-overlap audit (8/8 fixture prompts
  in top 3, 6/8 ranked #1) plus description lint; labeled heuristic throughout
- RULES_CANDIDATES.md: documents design-standards, security-baseline,
  vertical-site-conventions as v2 Rule candidates (not converted)
- PORT_NOTES.md: phase-2 results (steps 1 to 4) and an owner smoke-test recipe

Real discovery check: Pi CLI (same .agents/skills contract) accepts the tree and
loads all 102 skills without crashing; full runtime triggering remains the
owner's live Antigravity smoke test. Determinism and --check both PASS.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@adunn08

adunn08 commented Jun 1, 2026

Copy link
Copy Markdown
Contributor Author

Phase 2: hardening + discovery verification

Pushed 5e56b55 to feat/port-antigravity. Build is hardened and discovery verified by automated proxies. PR stays draft; the one remaining gate is the owner's live smoke test in Antigravity.

Automated verification (all green)

  • Determinism: build twice into temp dirs, assert byte-identical .agents/skills trees: PASS.
  • Drift guard (node scripts/build-antigravity.mjs --check): rebuilds into a temp dir and diffs against the committed dist, nonzero on drift: PASS. Confirmed it fails loudly by mutating an emitted file (exit 1, names the path).
  • Discovery audit (heuristic, --audit -> SKILL_DISCOVERY_AUDIT.md): expected skill in top 3 for 8/8 fixture prompts, ranked Add creative-direction skill (60th skill in catalog) #1 for 6/8. Two README: add live showcase section with screenshots #2 cases lose to vocabulary-sharing neighbors and are flagged low-confidence. Lint: 0 short, 0 duplicate, 0 duplicate-first-sentence descriptions; 3 lack an explicit use cue (noted, not blocking). Labeled heuristic throughout, it is not a runtime test.

Real discovery check (best effort, partial)

No Antigravity CLI exists in this environment. As a directory-contract proxy, the Pi CLI (@mariozechner/pi-coding-agent, same .agents/skills/ contract) was pointed at the emitted tree with --skill .agents/skills: it loaded all 102 skills at startup with no crash and reached the model step, failing only on the absent API key (downstream of loading). Pi is not an independent frontmatter validator here (no credential-free skill-listing, tolerant/silent loader), so authoritative parse validation remains the build's own phase-1 checks plus --check.

New in this phase

  • scripts/build-antigravity.mjs: parameterized output root, determinism self-test, --check, --audit.
  • dist/antigravity/SKILL_DISCOVERY_AUDIT.md, dist/antigravity/RULES_CANDIDATES.md (3 candidates documented, not converted), updated PORT_NOTES.md.

Remaining gate before merge

Owner's live smoke test in Antigravity: install .agents into a workspace, confirm "write a creative brief" surfaces creative-brief, "on-page SEO" surfaces seo-onpage, "WCAG accessibility audit" surfaces accessibility-audit, and references load without parse errors. Recipe is in PORT_NOTES.md.

adunn08 and others added 4 commits June 1, 2026 14:46
Add scripts/build-codex.mjs, a dependency-free Node ESM build step that
produces a Codex distribution of the 102-skill catalog under dist/codex/.

- Walks skills/<name>/ and copies each into dist/codex/.agents/skills/<name>/,
  preserving the references/ subtree byte for byte (488 files).
- Normalizes SKILL.md frontmatter to the portable core (name + description);
  moves category, catalog_summary, display_order into a per-skill sidecar
  (references/_claude-frontmatter-extras.yaml) so the port is reversible.
- Leaves SKILL.md bodies untouched.
- Detects MCP references and emits dist/codex/agents/openai.yaml as a commented
  wiring template (Ahrefs MCP powers the SEO audit suite; no real config is
  fabricated).
- Includes a validation pass (PASS/FAIL per check): non-empty name/description,
  skill-count parity, reference-file coverage, clean frontmatter.

Adds dist/codex/PORT_NOTES.md and dist/codex/README.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a dependency-free Node ESM build (scripts/build-antigravity.mjs) that
transforms the 102-skill claude-skills catalog into an Antigravity layout
under dist/antigravity/.agents/skills/.

Transform:
- one folder per source skill, references/ subtree copied byte-for-byte
- frontmatter trimmed to the portable core (name, description)
- RampStack-only keys (category, catalog_summary, display_order) moved to a
  per-skill references/_claude-frontmatter-extras.yaml sidecar (lossless)
- SKILL.md body preserved byte-for-byte

All 102 skills map to Antigravity Skills (0 Rules, 0 Workflows). Includes
PORT_NOTES.md and README.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Extend scripts/build-antigravity.mjs and dist/antigravity/ to bring PR #87
toward merge-ready (still draft, not merged).

Build hardening:
- parameterized output root so the build can target temp dirs
- determinism self-test: build twice into temp dirs, assert byte-identical
- --check flag: rebuild into temp, diff against committed dist, nonzero on drift
- --audit flag: regenerate the heuristic discovery audit

Verification artifacts:
- SKILL_DISCOVERY_AUDIT.md: heuristic token-overlap audit (8/8 fixture prompts
  in top 3, 6/8 ranked #1) plus description lint; labeled heuristic throughout
- RULES_CANDIDATES.md: documents design-standards, security-baseline,
  vertical-site-conventions as v2 Rule candidates (not converted)
- PORT_NOTES.md: phase-2 results (steps 1 to 4) and an owner smoke-test recipe

Real discovery check: Pi CLI (same .agents/skills contract) accepts the tree and
loads all 102 skills without crashing; full runtime triggering remains the
owner's live Antigravity smoke test. Determinism and --check both PASS.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rebased onto origin/main after PR #90 (102 skills, all descriptions under
1024 chars) and rebuilt. Only the three skills whose descriptions were
shortened upstream change in the dist:
- creative-direction (900 chars)
- integration-orchestrator (968 chars)
- logo-design (976 chars)

Frontmatter still trims to name + description; the other three keys stay
sidecar'd. determinism and --check both PASS. No emitted description exceeds
1024 chars; creative-brief-selector present; RULES_CANDIDATES.md intact.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@adunn08 adunn08 force-pushed the feat/port-antigravity branch from 5e56b55 to c9b7fab Compare June 1, 2026 20:48
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