Skill Sync Publisher
Use the bundled CLI to preflight and synchronize one local skill directory. The
source GitHub repository is canonical; registry entries are projections of that
source. Read references/platform-matrix.md before working with a platform and
references/security-policy.md when preflight reports a security finding.
Safety rules
- Start with
python3 scripts/sync.py preflight <skill-dir>or--dry-run. - Never collect or store passwords, tokens, cookies, or private keys.
- Ask before the first submission to each platform. Persist choices per GitHub repository, skill path, and platform in the user state file, not the repo.
- Require the user to complete login before running an authenticated identity check. A failed check blocks only that platform.
- Show the exact diff and commit scope before GitHub commit/push.
- Use official CLIs when available. For directory sites without a supported API/CLI, create a browser/manual handoff instead of inventing an endpoint.
- Never touch unrelated dirty files, force-push, or roll back successful targets.
Commands
Run bin/skill-sync from the repository root:
bin/skill-sync init <skill-dir>
bin/skill-sync preflight <skill-dir>
bin/skill-sync layout --check
bin/skill-sync layout --write
bin/skill-sync sync <skill-dir> --dry-run --json
bin/skill-sync sync <skill-dir> --platform github,clawhub
bin/skill-sync sync <skill-dir> --resume
bin/skill-sync status <skill-dir> --refresh
bin/skill-sync reset-choice <skill-dir> <platform>
bin/skill-sync reset-all <skill-dir>
bin/skill-sync forget <skill-dir>
skills/skill-sync-publisher/ is the canonical skill content. Root SKILL.md
and agents/openai.yaml are generated mirrors; use layout --write after a
canonical change and layout --check in CI.
sync is confirmation-gated by default. --yes is intended for an already
reviewed, authenticated automation job; it does not bypass platform choice or
security blockers. The CLI returns non-zero if a selected platform fails or is
blocked.
Platform behavior
- GitHub: commit and push only the target skill files after confirmation.
- Awesome Codex Plugins: create or update a PR only when a valid plugin manifest exists; ordinary skills are blocked unless explicitly projected.
- HOL Registry: use the official
npx @hol-org/registryquote/publish flow and requireREGISTRY_BROKER_API_KEYbefore an authenticated publish. - ClawHub: use
clawhub whoami, dry-run, then the manifest version as semver. - skills.sh, SkillsMP, LobeHub, Cursor Directory: verify public GitHub source
and produce/check an index or browser handoff;
plannedis not success.
Never publish to an unselected platform, duplicate an open PR, or claim that a manual directory submission is complete before the user confirms it.