12 KiB
🛠️ Repository Maintenance Guide (V5)
"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
0. 🤖 Agent Protocol (THE BIBLE)
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:
1. 📤 ALWAYS PUSH (Non-Negotiable)
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
2. 🔄 SYNC GENERATED FILES (Avoid CI Drift)
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.
3. 📝 EVIDENCE OF WORK
- You must create/update
walkthrough.mdorCHANGELOG.mdto document what changed. - If you made something new, link it in the artifacts.
4. 🚫 NO BRANCHES
- ALWAYS use the
mainbranch. - NEVER create feature branches (e.g.,
feat/new-skill). - We commit directly to
mainto keep history linear and simple.
1. 🚦 Daily Maintenance Routine
A. Validation Chain
Before ANY commit that adds/modifies skills, run the chain:
-
Validate, index, and update readme:
npm run chainMust 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.
B. When You Merge a PR (Step-by-Step)
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.
C. Post-Merge Routine (Must Do Before a Release)
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).
2. 📝 Documentation "Pixel Perfect" Rules
We discovered several consistency issues during V4 development. Follow these rules STRICTLY.
A. Table of Contents (TOC) Anchors
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.
B. The "Trinity" of Docs
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.
C. Statistics Consistency (CRITICAL)
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.
D. Credits Policy (Who goes where?)
- 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
E. Badges & Links
- Antigravity Badge: Must point to
https://github.com/sickn33/antigravity-awesome-skills, NOTanthropics/antigravity. - License: Ensure the link points to
LICENSEfile.
F. Workflows Consistency (NEW in V5)
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
3. 🛡️ Governance & Quality Bar
A. The 5-Point Quality Check
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".
B. Risk Labels (V4)
- ⚪ Safe: Default.
- 🔴 Risk: Destructive/Security tools. MUST have
[Authorized Use Only]warning. - 🟣 Official: Vendor mirrors only.
4. 🚀 Release Workflow
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.mdImportant: 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 publishpackage.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
When to Close an Issue
| 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." |
📋 Changelog Entry Template
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._
5. 🚨 Emergency Fixes
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.
6. 📁 Data directory note
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.