feat(m69-001): bootstrap skills repo + migrate install-platform-ops#1
Merged
Conversation
…m-ops
§1 — Skills repo bootstrap (Supabase-style layout):
- README.md masthead (logo + Get-early-access pattern from usezombie/docs README)
- .claude-plugin/marketplace.json — enables `claude plugin marketplace add usezombie/skills`
- .github/workflows/eval.yml — bun install + bun test on PR + push
- assets/logo/{dark,light}.svg — copied from ~/Projects/docs/logo/
§2 — usezombie-install-platform-ops migration (from usezombie monorepo):
- SKILL.md + references/ — verbatim copy except three corrective edits for
post-M69 reality:
1. metadata.source → github.com/usezombie/skills
2. precondition install one-liner → `npx skills add usezombie/skills`
3. manual symlink fallback → git clone (the npm-bundled skills/ path
disappears with M69 §4; the fallback now uses git clone + ln -s)
- evals/ — 21 pin tests converted from node:test → bun:test:
* skill-body.test.ts (10) — Resend-pattern frontmatter, references resolve,
step coverage, RULE NLG verb guards, 350L cap
* skill-runtime.test.ts (8) — prose-pin tests for s1.0/s1.8/s1.9/s1.10
(TRIGGER.md template asserts stay in usezombie under M69 §3 — template
itself lives in samples/platform-ops/ which is not migrating)
* repo-detection.test.ts (3) — fixture sanity for the three classifier paths
- evals/fixtures/{gh-actions-fly,gh-actions-only,no-ci}/ — copied from
usezombie tests/skill-evals/fixtures/
Test runner: bun test (spec line 70 — forbids node:test, mandates bun;
matches lead repo's zombiectl/ and ui/packages/ runners).
Spec amends M49_001's "no separate repo" decision. Lead repo's skills/ +
tests/skill-evals/usezombie-install-platform-ops/ + npm files: surgery
land in a parallel PR on github.com/usezombie/usezombie
(feat/m69-001-public-skills-repo).
3 tasks
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
…CI pin, skip msg Addresses all 4 greptile findings on PR #1 review 4317058279: P1 — SKILL.md:279-281 (manual-paste contradiction) Out-of-Scope row said "manual paste is the documented compromise" while Step 9 explicitly automates webhook registration via `gh api repos/.../hooks` and Common Mistake #4 states "There is no paste-into-github.com step." Replaced the stale clause with the canonical `gh api` reference + HMAC self-test handoff. A host LLM reading the closing section can no longer legitimately fall back to a manual paste. P1 — references/credential-resolution.md:124-128 (silent webhook_secret nullification) jq `env.OLD_SECRET` resolved to `null` when the shell variable was unset, meaning rotation silently nullified the webhook secret. Next inbound webhook would fail HMAC verification with no obvious cause. Added an explicit `zombiectl credential show github --field webhook_secret` capture step + empty-guard `exit 1` + switched `jq` to `--arg` for unambiguous passthrough. P2 — .github/workflows/eval.yml:20-22 (bun-version: latest) CI now pins `bun-version: "1.3.14"` matching `evals/bun.lock`'s bun-types resolve. Avoids silent CI behaviour change on future bun major bumps. P2 — evals/llm-judge.eval.ts:22 (misleading skip-env message) Error message instructed users to set `SKILL_EVAL_LLM_JUDGE=0` to skip, but the gate runs only when the variable is exactly `"1"` — skipping is the default. Message now correctly says "unset (or leave it != \"1\") to skip". Tests: bun test → 21 pass, 0 fail (unchanged). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Bootstraps
github.com/usezombie/skillsas the canonical public home forusezombie-*agent skills (spec M69_001). Companion PR inusezombie/usezombiedeletes the in-reposkills/+ drops it from the npm bundle.What ships
§1 — Repo bootstrap
README.mdmasthead (logo + early-access pattern fromusezombie/docs).claude-plugin/marketplace.json— enablesclaude plugin marketplace add usezombie/skills.github/workflows/eval.yml—bun install && bun teston PR + push to mainassets/logo/{dark,light}.svg— branding§2 — usezombie-install-platform-ops migration
SKILL.md+references/— verbatim from monorepo except 3 corrective edits for post-M69 reality:metadata.source→github.com/usezombie/skillsnpx skills add usezombie/skillsgit clone(npm-bundledskills/path disappears with M69 §4)evals/— 21 pin tests ported fromnode:test→bun:test:skill-body.test.ts(10) — Resend-pattern frontmatter, references resolve, step coverage, RULE NLG verb guards, 350L capskill-runtime.test.ts(8) — prose-pin tests for s1.0 / s1.8 / s1.9 / s1.10repo-detection.test.ts(3) — fixture sanityevals/fixtures/{gh-actions-fly,gh-actions-only,no-ci}/Test runner:
bun test(spec line 70 — forbidsnode:test, mandates Bun to match lead repo'szombiectl/+ui/packages/runners).Test plan
cd usezombie-install-platform-ops/evals && bun test→ 21 pass, 0 fail, 84 expect() callsfeat/m69-001-public-skills-repoonusezombie/usezombiecan landnpm install -g @usezombie/zombiectl && npx skills add usezombie/skills→/usezombie-install-platform-opsresolves in Claude CodeSequencing
This PR (skills-repo bootstrap) lands first. Companion lead-repo PR (deletes in-repo
skills/) lands second. Order matters — reversing leavesnpx skills add usezombie/skillsresolving to an empty repo.🤖 Generated with Claude Code
Greptile Summary
This PR bootstraps
usezombie/skillsas the canonical public home forusezombie-*agent skills and migratesusezombie-install-platform-opsfrom the monorepo with three post-M69 corrective edits (metadata source, install one-liner →npx skills add, symlink fallback →git clone). It also ports the existing 21 eval tests fromnode:testtobun:testand adds the required CI workflow.README.md,.claude-plugin/marketplace.json, CI workflow (eval.ymlwith Bun runtime pinned to1.3.14), and SVG branding assets are added.SKILL.md+ threereferences/docs are ported verbatim with targeted M69 corrections; all 12 install steps, precondition block, and common-mistakes table are intact.skill-body.test.ts,skill-runtime.test.ts, andrepo-detection.test.tsverify frontmatter shape, prose decision points, fixture well-formedness, and RULE guards; a nightly LLM-judge stub (llm-judge.eval.ts) is scaffolded but skipped from standardbun testdiscovery by its.eval.tssuffix.Confidence Score: 5/5
Safe to merge — the changes are a clean repo bootstrap with a skill migration and an eval suite; no destructive operations or shared-state mutations are introduced.
All twelve install steps, credential handling, and HMAC self-verify logic are carried over correctly from the monorepo. The three M69 corrective edits are targeted and validated by corresponding pin tests. CI is reproducible with the Bun runtime and lockfile both resolved to 1.3.14. The only finding is a minor version drift risk in package.json that is mitigated by the committed lockfile in the normal workflow.
usezombie-install-platform-ops/evals/package.json — @types/bun is declared as latest while the runtime and lockfile are both pinned to 1.3.14.
Important Files Changed
--data @-enforcement, step coverage, and 350-line cap. All patterns match current SKILL.md content.@types/bun: latestwhile the workflow pins the Bun runtime to 1.3.14 and the lockfile already resolves to 1.3.14 — version drift risk on lockfile regeneration.--arg secret "$OLD_SECRET".Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD A[User: npx skills add usezombie/skills] --> B[.claude-plugin/marketplace.json\nresolved by host] B --> C[SKILL.md loaded by host LLM] C --> D[Step 1: zombiectl doctor --json] D -->|fail| E[Stop & surface error] D -->|pass| F[Steps 2-6: Detect repo,\nresolve vars & credentials] F --> G[Step 7: zombiectl zombie install\nwrites .usezombie/platform-ops/] G -->|webhook_urls present| H[Steps 8-9: Parse TRIGGER.md\ngh api repos/.../hooks POST] G -->|webhook_urls empty| K[Skip 8-10, go to 11] H -->|422 hook exists| I[GET hooks, match URL, advance] H -->|403/401| E H -->|success| J[Step 10: HMAC self-verify\nopenssl + curl → expect 202] J -->|non-202| E J -->|pass| K[Step 11: Post-install summary] K --> L[Step 12: zombiectl steer smoke test] L -->|>60s| M[Print slow-response warning] L -->|pass| N[Done]Prompt To Fix All With AI
Reviews (3): Last reviewed commit: "fix(m69-001): greptile P1+P2 — paste con..." | Re-trigger Greptile