"If it's not documented, it's broken."
This guide details the exact procedures for maintaining antigravity-awesome-skills.
It covers the Quality Bar, Documentation Consistency, and Release Workflows.
Maintainer shortcuts: Merge a PR · Post-merge & contributors · Close issues · Create a release
AGENTS MUST READ AND FOLLOW THIS SECTION BEFORE MARKING ANY TASK AS COMPLETE.
There are 3 things that usually fail/get forgotten. DO NOT FORGET THEM:
Committing is NOT enough. You must PUSH to the remote.
- BAD:
git commit -m "feat: new skill"(User sees nothing) - GOOD:
git commit -m "..." && git push origin main
If you touch any of these:
skills/(add/remove/modify skills)- the Full Skill Registry section of
README.md - counts/claims about the number of skills (
1,200+ Agentic Skills...,(1,200+/1,200+), etc.)
…then you MUST run the Validation Chain BEFORE committing.
- Running
npm run chainis NOT optional. - Running
npm run catalogis NOT optional.
If CI fails with:
❌ Detected uncommitted changes produced by registry/readme/catalog scripts.
it means you did not run or commit the Validation Chain correctly.
- You must create/update
walkthrough.mdorCHANGELOG.mdto document what changed. - If you made something new, link it in the artifacts.
- ALWAYS use the
mainbranch. - NEVER create feature branches (e.g.,
feat/new-skill). - We commit directly to
mainto keep history linear and simple.
Before ANY commit that adds/modifies skills, run the chain:
-
Validate, index, and update readme:
npm run chain
Must return 0 errors for new skills.
-
Build catalog:
npm run catalog
-
COMMIT GENERATED FILES:
git add README.md skills_index.json data/catalog.json data/bundles.json data/aliases.json CATALOG.md git commit -m "chore: sync generated files"🔴 CRITICAL: If you skip this, CI will fail with "Detected uncommitted changes". See docs/CI_DRIFT_FIX.md for details.
Before merging:
- CI is green — All Validation Chain and catalog steps passed (see workflows/ci.yml).
- No drift — PR does not introduce uncommitted generated-file changes; if the "Check for Uncommitted Drift" step failed, ask the author to run
npm run chainandnpm run catalogand commit the result. - Quality Bar — PR description confirms the Quality Bar Checklist (metadata, risk label, credits if applicable).
- Issue link — If the PR fixes an issue, the PR description should contain
Closes #NorFixes #Nso GitHub auto-closes the issue on merge.
Right after merging:
- If the PR had
Closes #N— The issue is closed automatically; no extra action. - If an issue was fixed but not linked — Close it manually and add a comment, e.g.:
Fixed in #<PR_NUMBER>. Shipped in release vX.Y.Z. - Single PR or small batch — Optionally run the full Post-Merge Routine below. For a single, trivial PR you can defer it to the next release prep.
After you have merged several PRs or before cutting a release:
-
Sync Contributors List:
- Run:
git shortlog -sn --all - Update
## Repo Contributorsin README.md.
- Run:
-
Verify Table of Contents:
- Ensure all new headers have clean anchors.
- NO EMOJIS in H2 headers.
-
Prepare for release — Draft the release and tag when ready (see §4 Release Workflow below).
We discovered several consistency issues during V4 development. Follow these rules STRICTLY.
GitHub's anchor generation breaks if headers have emojis.
- BAD:
## 🚀 New Here?-> Anchor:#--new-here(Broken) - GOOD:
## New Here?-> Anchor:#new-here(Clean)
Rule: NEVER put emojis in H2 (##) headers. Put them in the text below if needed.
If you update installation instructions or tool compatibility, you MUST update all 3 files:
README.md(Source of Truth)docs/GETTING_STARTED.md(Beginner Guide)docs/FAQ.md(Troubleshooting)
Common pitfall: Updating the clone URL in README but leaving an old one in FAQ.
If you add/remove skills, you MUST ensure the total count is identical in ALL locations. Do not allow drift (e.g., 560 in title, 558 in header).
Locations to check:
- Title of
README.md: "1,200+ Agentic Skills..." ## Full Skill Registry (1,200+/1,200+)header.docs/GETTING_STARTED.mdintro.
- Credits & Sources: Use this for External Repos.
- Rule: "I extracted skills from this link you sent me." -> Add to
## Credits & Sources.
- Rule: "I extracted skills from this link you sent me." -> Add to
- Repo Contributors: Use this for Pull Requests.
- Rule: "This user sent a PR." -> Add to
## Repo Contributors.
- Rule: "This user sent a PR." -> Add to
- Antigravity Badge: Must point to
https://github.com/sickn33/antigravity-awesome-skills, NOTanthropics/antigravity. - License: Ensure the link points to
LICENSEfile.
If you touch any Workflows-related artifact, keep all workflow surfaces in sync:
docs/WORKFLOWS.md(human-readable playbooks)data/workflows.json(machine-readable schema)skills/antigravity-workflows/SKILL.md(orchestration entrypoint)
Rules:
- Every workflow id referenced in docs must exist in
data/workflows.json. - If you add/remove a workflow step category, update prompt examples accordingly.
- If a workflow references optional skills not yet merged (example:
go-playwright), mark them explicitly as optional in docs. - If workflow onboarding text is changed, update the docs trinity:
README.mddocs/GETTING_STARTED.mddocs/FAQ.md
Reject any PR that fails this:
- Metadata: Has
name,description? - Safety:
risk: offensiveused for red-team tools? - Clarity: Does it say when to use it?
- Examples: Copy-pasteable code blocks?
- Actions: "Run this command" vs "Think about this".
- ⚪ Safe: Default.
- 🔴 Risk: Destructive/Security tools. MUST have
[Authorized Use Only]warning. - 🟣 Official: Vendor mirrors only.
When cutting a new version (e.g., v4.1.0):
Release checklist (order matters):
Validate → Changelog → Bump package.json (and README if needed) → Commit & push → Create GitHub Release with tag matching package.json (e.g. v4.1.0 ↔ "version": "4.1.0") → npm publish (manual or via CI) → Close any remaining linked issues.
-
Run Full Validation:
python3 scripts/validate_skills.py --strict -
Update Changelog: Add the new release section to
CHANGELOG.md. -
Bump Version:
- Update
package.json→"version": "X.Y.Z"(source of truth for npm). - Update version header in
README.mdif it displays the number. - One-liner:
npm version patch(orminor/major) — bumpspackage.jsonand creates a git tag; then amend if you need to tag after release.
- Update
-
Create GitHub Release (REQUIRED):
⚠️ CRITICAL: Pushing a tag (git push --tags) is NOT enough. You must create a GitHub Release Object for it to appear in the sidebar and trigger the NPM publish workflow.Use the GitHub CLI:
# Prepare release notes (copy the new section from CHANGELOG.md into release_notes.md, or use CHANGELOG excerpt) # Then create the tag AND the release page (tag must match package.json version, e.g. v4.1.0) gh release create v4.0.0 --title "v4.0.0 - [Theme Name]" --notes-file release_notes.md
Important: The release tag (e.g.
v4.1.0) must matchpackage.json's"version": "4.1.0". The Publish to npm workflow runs on Release published and will runnpm publish; npm rejects republishing the same version.Or create the release manually via GitHub UI > Releases > Draft a new release, then publish.
-
Publish to npm (so
npx antigravity-awesome-skillsworks):- Option A (manual): From repo root, with npm logged in and 2FA/token set up:
You cannot republish the same version; always bump
npm publish
package.jsonbefore publishing. - Option B (CI): On GitHub, create a Release (tag e.g.
v4.6.1). The workflow Publish to npm runs on Release published and runsnpm publishif the repo secretNPM_TOKENis set (npm → Access Tokens → Granular token with Publish, then add as repo secretNPM_TOKEN).
- Option A (manual): From repo root, with npm logged in and 2FA/token set up:
-
Close linked issue(s):
- Issues that had
Closes #N/Fixes #Nin a merged PR are already closed. - For any issue that was fixed by the release but not auto-closed, close it manually and add a comment, e.g.:
gh issue close <ID> --comment "Shipped in vX.Y.Z. See CHANGELOG.md and release notes."
- Issues that had
| Situation | Action |
|---|---|
PR merges and PR body contains Closes #N or Fixes #N |
GitHub closes the issue automatically. |
| PR merges but did not reference the issue | After merge, close manually: gh issue close N --comment "Fixed in #<PR>. Shipped in vX.Y.Z." |
| Fix/feature shipped in a release, no PR referenced | Close with: gh issue close N --comment "Shipped in vX.Y.Z. See CHANGELOG." |
Each new release section in CHANGELOG.md should follow Keep a Changelog and this structure:
## [X.Y.Z] - YYYY-MM-DD - "[Theme Name]"
> **[One-line catchy summary of the release]**
[Brief 2-3 sentence intro about the release's impact]
## 🚀 New Skills
### [Emoji] [Skill Name](skills/skill-name/)
**[Bold high-level benefit]**
[Description of what it does]
- **Key Feature 1**: [Detail]
- **Key Feature 2**: [Detail]
> **Try it:** `(User Prompt) ...`
---
## 📦 Improvements
- **Registry Update**: Now tracking [N] skills.
- **[Component]**: [Change detail]
## 👥 Credits
A huge shoutout to our community contributors:
- **@username** for `skill-name`
- **@username** for `fix-name`
---
_Upgrade now: `git pull origin main` to fetch the latest skills._If a skill is found to be harmful or broken:
- Move to broken folder (don't detect):
mv skills/bad-skill skills/.broken/ - Or Add Warning: Add
> [!WARNING]to the top ofSKILL.md. - Push Immediately.
data/package.json exists for historical reasons; the build and catalog scripts run from the repo root and use root node_modules. You can ignore or remove data/package.json and data/node_modules if present.