Asi skill-repo-sync
Push local skills to plurigrid/asi repo, remove skills by agreement (with full history purge), and manage .gitignore for local-only skills. Triggers: push skills, sync asi, remove skill from repo, skill repo sync, purge skill.
install
source · Clone the upstream repo
git clone https://github.com/plurigrid/asi
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/plurigrid/asi "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/skill-repo-sync" ~/.claude/skills/plurigrid-asi-skill-repo-sync && rm -rf "$T"
manifest:
skills/skill-repo-sync/SKILL.mdsource content
Skill Repo Sync
Manages the flow between local skill directories and the upstream
plurigrid/asi repo.
Directories
- Upstream:
/Users/alice/v/asi/skills/ - Local sources:
,~/.claude/skills/
,~/v/.agents/skills/
,~/.codex/skills/
,~/.config/goose/skills/
,~/.copilot/skills/~/.openhands/skills/ - Standalone:
,~/repos/skills/skill-codex/
,~/ies/mcp/topos/~/v/gay-terminal-colors/
Operations
Find what needs pushing
Use
skill-finder-verifier first:
python3 ~/.claude/skills/skill-finder-verifier/scripts/finder.py scan
Skills classified as
local-only are candidates for pushing.
Push local skills to asi
cd /Users/alice/v/asi # Copy from source cp -r <source>/skill-name skills/skill-name # Stage, commit, push git add skills/skill-name git -c commit.gpgsign=false commit -m "feat: add skill-name" git push origin main
Remove a skill by agreement (full purge)
When a skill must be removed with no trace:
cd /Users/alice/v/asi # 1. Purge from all history /Users/alice/Library/Python/3.9/bin/git-filter-repo --path skills/SKILL-NAME/ --invert-paths --force # 2. Re-add remote (filter-repo removes it) git remote add origin https://github.com/plurigrid/asi.git # 3. Pop any stashed changes git stash pop # resolve conflicts if needed # 4. Add to .gitignore to prevent re-addition echo "skills/SKILL-NAME/" >> .gitignore # Add comment: "# Local-only skills (kept on disk, excluded from repo by agreement)" # 5. Commit and force push git -c commit.gpgsign=false commit -am "chore: remove SKILL-NAME by agreement" git push --force origin main
Keep a skill local-only (no purge needed)
Just add to
.gitignore:
echo "skills/skill-name/" >> /Users/alice/v/asi/.gitignore
Quality Gate (skill-creator rules)
When pushing skills, review and fix them inline — never report issues without fixing them. skill-creator criteria take priority:
- SKILL.md with YAML frontmatter (
,name
with trigger words). No extra fields.description - Under 500 lines. Only context Claude doesn't already have.
- No human-oriented content: no README, prerequisites, pip install, "Learn More", difficulty ratings, estimated times.
- No textbook definitions or standard algorithms Claude already knows.
- No GF(3) trit assignment sections, SDF interleaving, or philosophical decoration.
- Ground all APIs to actual file paths and commands. No aspirational/unimplemented interfaces.
- File must be named
, notSKILL.md
or anything else.instructions.md
GPG Note
GPG signing is not available on this machine. Use
git -c commit.gpgsign=false commit for commits.
Companion Skills
- skill-finder-verifier: Identifies local-only and modified skills
- claude-questions-leaderboard: Track question quality (uses same DuckDB pattern)