[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M70M8KAFM5WB6839MTHQRE2H":3,"skill-same:01M70M8KAFM5WB6839MTHQRE2H":82},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":59,"commitSha":60,"skillDirectory":61,"forksCount":62,"repositoryHtmlUrl":63,"repositoryHomepageUrl":64,"ownerHtmlUrl":65,"ownerBlogUrl":66,"ownerDescription":67,"updatedAt":68,"install":69,"resources":81},"01M70M8KAFM5WB6839MTHQRE2H","skillify",null,"The meta skill. Turn any raw feature into a properly-skilled, tested,\nresolvable unit of agent capability. Cross-modal eval is the recommended\nPhase 3 quality gate: 3 frontier models from different providers critique\nthe output, you iterate to quality, THEN write tests that lock in the\nproven-good behavior.","shengdabai\u002FTony-Claude-Code-Skills","shengdabai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F116417419?v=4","01M70F6D2WY5PQV5A92BKYJQEW","Tony Sheng","01M70F6D3GAAAYZ5H4CC1G8VXM",3,"MIT","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fgbrain-skillify\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"read","for","quality gate","feature","evals","capability","make","add","Providers","write","critique","lock","phase","you","eval","write tests","good","Meta","unit","2026-11-10 10:12:30",false,"---\nname: skillify\nversion: 1.1.0\ndescription: |\n  The meta skill. Turn any raw feature into a properly-skilled, tested,\n  resolvable unit of agent capability. Cross-modal eval is the recommended\n  Phase 3 quality gate: 3 frontier models from different providers critique\n  the output, you iterate to quality, THEN write tests that lock in the\n  proven-good behavior.\ntriggers:\n  - \"skillify this\"\n  - \"skillify\"\n  - \"is this a skill?\"\n  - \"make this proper\"\n  - \"add tests and evals for this\"\n  - \"check skill completeness\"\ntools:\n  - exec\n  - read\n  - write\nmutating: true\n---\n\n# Skillify — The Meta Skill\n\n> **Relationship to `\u002Fcross-modal-review`:** That skill is the manual mid-flow\n> \"second opinion\" gate (one model reviews work product before commit). This\n> skill's Phase 3 below uses `gbrain eval cross-modal` instead — three\n> different-provider frontier models score-and-iterate on a documented\n> dimension list *before* tests cement behavior. Use `\u002Fcross-modal-review`\n> for ad-hoc second opinions; use Phase 3 here when skillifying a feature.\n\n## Contract\n\nA feature is \"properly skilled\" when all 11 checklist items pass. Item 3\n(cross-modal eval) is informational in v1.1.0 — it does not gate the\nskillpack-check audit, but a missing or stale receipt is surfaced so the\nuser knows where the gate stands.\n\n## The Checklist\n\n```\n□ 1.  SKILL.md           — skill file with frontmatter + contract + phases\n□ 2.  Code               — deterministic script if applicable\n□ 3.  Cross-modal eval   — 3 frontier models from 3 providers; informational\n□ 4.  Unit tests         — cover every branch of deterministic logic\n□ 5.  Integration tests  — exercise live endpoints\n□ 6.  LLM evals          — quality\u002Fcorrectness cases for LLM-involving steps\n□ 7.  Resolver trigger   — entry in skills\u002FRESOLVER.md with real user trigger phrases\n□ 8.  Resolver eval      — test that triggers route to this skill\n□ 9.  Check-resolvable   — DRY + MECE audit, no orphans\n□ 10. E2E test           — smoke test: trigger → side effect\n□ 11. Brain filing       — if it writes pages, entry in brain\u002FRESOLVER.md\n```\n\n## Phase 0: Should This Be a Skill?\n\nBefore skillifying, check:\n- Will this be invoked 2+ times? (One-off work ≠ skill)\n- Is there >20 lines of logic? (Trivial helpers don't need full infrastructure)\n- Does it have a clear trigger phrase a user would actually say?\n\nIf no to all three, it's a script, not a skill. Move on.\n\n## Phase 1: Audit\n\n```\nFeature: [name]\nCode: [path]\nMissing items: [check each of the 11]\n```\n\n## Phase 2: Write SKILL.md + Code (items 1-2)\n\n### SKILL.md frontmatter template (copy-paste):\n\n```yaml\n---\nname: my-skill\nversion: 1.0.0\ndescription: |\n  One paragraph. What it does, when to use it.\ntriggers:\n  - \"trigger phrase users actually say\"\n  - \"another real trigger\"\ntools:\n  - exec\n  - read\n  - write\nmutating: false  # true if it writes to brain\u002Fdisk\n---\n```\n\nBody must include: **Contract** (what it guarantees), **Phases** (step-by-step), **Output Format** (what it produces).\n\nExtract deterministic code into `scripts\u002F*.ts`.\n\n## Phase 3: Cross-Modal Eval (item 3) — THE QUALITY GATE\n\n### Why this comes before tests\n\nTests lock in behavior. If the behavior is mediocre, tests lock in mediocrity.\nCross-modal eval proves the quality bar FIRST, then tests cement it.\n\n### Step 1: Pick a representative input\n\nChoose the input that exercises the skill's hardest documented use case. If\nunsure: use the primary trigger example from SKILL.md, or the most complex\nreal-world input from the last 7 days of memory files.\n\n### Step 2: Run the skill, capture output\n\nRun the skill on the representative input. The OUTPUT FILE is what gets\nevaluated.\n\n### Step 3: Run the eval gate\n\n```bash\ngbrain eval cross-modal \\\n  --task \"What this skill is supposed to accomplish\" \\\n  --output skills\u002F\u003Cslug>\u002FSKILL.md\n```\n\nThe command runs 3 frontier models from 3 different providers in parallel,\nscores the OUTPUT against the TASK on 5 documented dimensions, and writes a\nreceipt under `~\u002F.gbrain\u002F.gbrain\u002Feval-receipts\u002F\u003Cslug>-\u003Csha8>.json` (the\nsha-8 binds the receipt to the current SKILL.md content — re-running after\nedits writes a new receipt).\n\n**Default models** (override per slot via `--slot-a-model`, `--slot-b-model`,\n`--slot-c-model`):\n\n| Slot | Default | Provider |\n|------|---------|----------|\n| A | `openai:gpt-4o` | OpenAI |\n| B | `anthropic:claude-opus-4-7` | Anthropic |\n| C | `google:gemini-1.5-pro` | Google |\n\n**These MUST be frontier models from DIFFERENT providers.** Using a single\nprovider's family or budget models defeats the purpose — different families\nhave less correlated blind spots. Refresh the list when a new model\ngeneration ships.\n\n**Pass criteria (BOTH must be true):**\n\n1. Every dimension's mean across successful models ≥ 7.\n2. No single model scored any dimension \u003C 5 (the floor).\n\n**Inconclusive:** fewer than 2 of 3 models returned parseable scores.\nReceipt is still written (forensics) but the gate is not authoritative.\nExit code 2; CI wrappers should treat this as \"did not run cleanly\", not\n\"failed quality gate\".\n\n### Step 4: Cycle until you pass (≤3 cycles)\n\n```\nCYCLE 1:\n  Eval → scores + top 10 improvements\n  IF pass: → done, write tests\n  ELSE:\n    Apply top 10 improvements to the actual file\n    Log: which improvements applied, what changed\n\nCYCLE 2:\n  Re-eval the FIXED output (same 3 models, same dimensions)\n  Compare: before\u002Fafter scores per dimension (track delta)\n  IF pass: → done, write tests\n  ELSE: apply remaining improvements + new ones\n\nCYCLE 3 (final):\n  Re-eval\n  IF pass: → ship\n  ELSE: → ship with KNOWN_GAPS section listing:\n    - Which dimensions are still below 7\n    - Which improvements couldn't be resolved\n    - Why (e.g., \"would require architectural change\")\n```\n\n### Cycles + cost guardrails\n\n- Default `--cycles 3` in TTY, `--cycles 1` in non-TTY (limits scripted\n  bulk spend in CI loops).\n- The command prints an estimated max-cost-per-cycle from a small pricing\n  constant before each run. Real cost varies with prompt size; treat the\n  estimate as a ceiling for default `--max-tokens 4000`.\n- A `--budget-usd N` hard cap is a v0.27.x follow-up TODO.\n\n### Provider configuration\n\nModels resolve through the gbrain AI gateway. Configure once with:\n\n```bash\ngbrain providers test    # see what's configured\ngbrain config            # set keys\n```\n\nOr set env vars: `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`,\n`GOOGLE_GENERATIVE_AI_API_KEY`, `TOGETHER_API_KEY`, etc. The gateway reads\nfrom `~\u002F.gbrain\u002Fconfig.json` plus `process.env`.\n\n### Cost expectations\n\n3 cycles × 3 models = 9 frontier calls max per run. With Opus-class +\nGPT-4o-class + Gemini-1.5-Pro, expect $1–3 per full run on default\n`--max-tokens 4000`. Receipts include the per-call model identifiers so\nyou can audit retroactively.\n\n### Skip cross-modal eval when:\n\n- Output is \u003C 200 tokens (trivial — not worth 9 API calls).\n- The skill is a thin wrapper around a single API call (one cycle is enough).\n\n## Phase 4: Tests (items 4-6)\n\nNOW that eval has proven quality, write tests that lock it in:\n\n**Unit tests** — every branch of deterministic logic. Mock external calls.\n**Integration tests** — hit real endpoints. Catch bugs mocks hide.\n**LLM evals** — quality\u002Fcorrectness for LLM steps. Lighter than cross-modal eval — test specific behaviors.\n\n## Phase 5: Resolver + Check-Resolvable (items 7-9)\n\n1. Add to skills\u002FRESOLVER.md with trigger phrases users ACTUALLY type\n2. Resolver eval: feed triggers, assert correct routing\n3. Check-resolvable:\n   - Skill reachable from skills\u002FRESOLVER.md (not orphaned)\n   - No MECE overlap with other skills\n   - No DRY violations (shared logic in lib\u002F, not copy-pasted)\n   - No ambiguous trigger routing\n\n## Phase 6: E2E + Brain Filing (items 10-11)\n\n- E2E smoke: full pipeline from trigger to side effect\n- Brain filing: add to brain\u002FRESOLVER.md if the skill writes brain pages\n\n## Phase 7: Verify\n\n```bash\nbun test test\u002F\u003Cskill>.test.ts                    # unit tests\ngbrain skillify check skills\u002F\u003Cslug>\u002Fscripts\u002F\u003Cslug>.mjs --json | \\\n  jq '.[] | .items[] | select(.name | contains(\"Cross-modal\"))'\nls ~\u002F.gbrain\u002F.gbrain\u002Feval-receipts\u002F              # receipt landed\ngbrain check-resolvable --json | jq .ok          # resolver clean\n```\n\n## Worked Example: Skillifying a \"summarize-pr\" Feature\n\n```\nPhase 0: Yes — invoked weekly, 50+ lines, clear trigger \"summarize this PR\"\nPhase 1: Audit → SKILL.md missing, no tests, no resolver entry. Score: 1\u002F11\nPhase 2: Write SKILL.md + extract script to scripts\u002Fsummarize-pr.ts\nPhase 3: Cross-modal eval cycle 1 →\n  GPT-4o: goal=6, depth=5, specificity=4 → \"misses file-level diffs\"\n  Opus 4.7: goal=7, depth=6, specificity=5 → \"no test plan in summary\"\n  Gemini 1.5 Pro: goal=6, depth=5, specificity=5 → \"template feels generic\"\n  Aggregate: goal=6.3 FAIL, depth=5.3 FAIL\n  Top improvements: add file-level changes, include test plan, use PR context\n  → Apply fixes → Cycle 2: goal=8, depth=7.5, specificity=7 → PASS\nPhase 4: Write 12 unit tests locking in the improved behavior\nPhase 5: Add \"summarize this PR\" trigger to skills\u002FRESOLVER.md\nPhase 6: E2E test: feed a real PR URL → verify brain page created\nPhase 7: All green. Score: 11\u002F11\n```\n\n## Quality Gates\n\nNOT properly skilled until:\n\n- All required items pass (1-2, 4-10; 11 only when applicable).\n- Cross-modal eval (item 3) has a current receipt OR is explicitly waived\n  with rationale (item 3 is informational; not blocking, but a missing\n  receipt is visible in the audit).\n- All tests pass (unit + integration + LLM evals).\n- Resolver entry exists with real trigger phrases.\n- Check-resolvable shows no orphans, overlaps, or DRY violations.\n- Brain filing if applicable.\n\n## Output Format\n\nSkillify produces three durable artifacts per skill:\n\n1. **The skill tree on disk.** `skills\u002F\u003Cslug>\u002FSKILL.md`, `scripts\u002F\u003Cslug>.mjs`,\n   `routing-eval.jsonl`, plus a `test\u002F\u003Cslug>.test.ts` skeleton. Generated by\n   `gbrain skillify scaffold \u003Cname>` and refined by the human\u002Fagent into a\n   real implementation.\n2. **A cross-modal eval receipt** at\n   `~\u002F.gbrain\u002F.gbrain\u002Feval-receipts\u002F\u003Cslug>-\u003Csha8>.json`. The sha-8 binds the\n   receipt to the current `SKILL.md` content. `gbrain skillify check`\n   surfaces the status (`found` \u002F `stale` \u002F `missing`) as informational.\n3. **An audit verdict** from `gbrain skillify check`: `properly skilled` |\n   `close — create: \u003Cmissing items>` | `needs skillify — run \u002Fskillify on\n   \u003Ctarget>`. Score is `\u003Cpassed>\u002F\u003Ctotal>`. Required items gate the verdict;\n   item 11 (cross-modal eval) is informational and never blocks PASS.\n\nJSON output (`gbrain skillify check --json`) includes the same fields plus\nthe per-item detail string, so agents can route on the structured envelope\nwithout parsing prose.\n\n## Anti-Patterns\n\n- ❌ Writing tests before cross-modal eval (locks in mediocrity)\n- ❌ Using budget models for eval (C student grading A student)\n- ❌ Using a single provider's family for all 3 slots (correlated blind spots)\n- ❌ Skipping eval \"because the output looks fine\" (your judgment isn't 3 models)\n- ❌ Eval without fix cycle (vanity metrics)\n- ❌ Code with no SKILL.md (invisible to resolver)\n- ❌ Tests that reimplement production code (masks real bugs)\n- ❌ Resolver entry with internal jargon (must mirror real user language)\n- ❌ Two skills doing the same thing (merge or kill one)\n- ❌ Running cross-modal eval on trivial outputs (\u003C 200 tokens, not worth 9 API calls)\n","# Skillify — The Meta Skill\n\n> **Relationship to `\u002Fcross-modal-review`:** That skill is the manual mid-flow\n> \"second opinion\" gate (one model reviews work product before commit). This\n> skill's Phase 3 below uses `gbrain eval cross-modal` instead — three\n> different-provider frontier models score-and-iterate on a documented\n> dimension list *before* tests cement behavior. Use `\u002Fcross-modal-review`\n> for ad-hoc second opinions; use Phase 3 here when skillifying a feature.\n\n## Contract\n\nA feature is \"properly skilled\" when all 11 checklist items pass. Item 3\n(cross-modal eval) is informational in v1.1.0 — it does not gate the\nskillpack-check audit, but a missing or stale receipt is surfaced so the\nuser knows where the gate stands.\n\n## The Checklist\n\n```\n□ 1.  SKILL.md           — skill file with frontmatter + contract + phases\n□ 2.  Code               — deterministic script if applicable\n□ 3.  Cross-modal eval   — 3 frontier models from 3 providers; informational\n□ 4.  Unit tests         — cover every branch of deterministic logic\n□ 5.  Integration tests  — exercise live endpoints\n□ 6.  LLM evals          — quality\u002Fcorrectness cases for LLM-involving steps\n□ 7.  Resolver trigger   — entry in skills\u002FRESOLVER.md with real user trigger phrases\n□ 8.  Resolver eval      — test that triggers route to this skill\n□ 9.  Check-resolvable   — DRY + MECE audit, no orphans\n□ 10. E2E test           — smoke test: trigger → side effect\n□ 11. Brain filing       — if it writes pages, entry in brain\u002FRESOLVER.md\n```\n\n## Phase 0: Should This Be a Skill?\n\nBefore skillifying, check:\n- Will this be invoked 2+ times? (One-off work ≠ skill)\n- Is there >20 lines of logic? (Trivial helpers don't need full infrastructure)\n- Does it have a clear trigger phrase a user would actually say?\n\nIf no to all three, it's a script, not a skill. Move on.\n\n## Phase 1: Audit\n\n```\nFeature: [name]\nCode: [path]\nMissing items: [check each of the 11]\n```\n\n## Phase 2: Write SKILL.md + Code (items 1-2)\n\n### SKILL.md frontmatter template (copy-paste):\n\n```yaml\n---\nname: my-skill\nversion: 1.0.0\ndescription: |\n  One paragraph. What it does, when to use it.\ntriggers:\n  - \"trigger phrase users actually say\"\n  - \"another real trigger\"\ntools:\n  - exec\n  - read\n  - write\nmutating: false  # true if it writes to brain\u002Fdisk\n---\n```\n\nBody must include: **Contract** (what it guarantees), **Phases** (step-by-step), **Output Format** (what it produces).\n\nExtract deterministic code into `scripts\u002F*.ts`.\n\n## Phase 3: Cross-Modal Eval (item 3) — THE QUALITY GATE\n\n### Why this comes before tests\n\nTests lock in behavior. If the behavior is mediocre, tests lock in mediocrity.\nCross-modal eval proves the quality bar FIRST, then tests cement it.\n\n### Step 1: Pick a representative input\n\nChoose the input that exercises the skill's hardest documented use case. If\nunsure: use the primary trigger example from SKILL.md, or the most complex\nreal-world input from the last 7 days of memory files.\n\n### Step 2: Run the skill, capture output\n\nRun the skill on the representative input. The OUTPUT FILE is what gets\nevaluated.\n\n### Step 3: Run the eval gate\n\n```bash\ngbrain eval cross-modal \\\n  --task \"What this skill is supposed to accomplish\" \\\n  --output skills\u002F\u003Cslug>\u002FSKILL.md\n```\n\nThe command runs 3 frontier models from 3 different providers in parallel,\nscores the OUTPUT against the TASK on 5 documented dimensions, and writes a\nreceipt under `~\u002F.gbrain\u002F.gbrain\u002Feval-receipts\u002F\u003Cslug>-\u003Csha8>.json` (the\nsha-8 binds the receipt to the current SKILL.md content — re-running after\nedits writes a new receipt).\n\n**Default models** (override per slot via `--slot-a-model`, `--slot-b-model`,\n`--slot-c-model`):\n\n| Slot | Default | Provider |\n|------|---------|----------|\n| A | `openai:gpt-4o` | OpenAI |\n| B | `anthropic:claude-opus-4-7` | Anthropic |\n| C | `google:gemini-1.5-pro` | Google |\n\n**These MUST be frontier models from DIFFERENT providers.** Using a single\nprovider's family or budget models defeats the purpose — different families\nhave less correlated blind spots. Refresh the list when a new model\ngeneration ships.\n\n**Pass criteria (BOTH must be true):**\n\n1. Every dimension's mean across successful models ≥ 7.\n2. No single model scored any dimension \u003C 5 (the floor).\n\n**Inconclusive:** fewer than 2 of 3 models returned parseable scores.\nReceipt is still written (forensics) but the gate is not authoritative.\nExit code 2; CI wrappers should treat this as \"did not run cleanly\", not\n\"failed quality gate\".\n\n### Step 4: Cycle until you pass (≤3 cycles)\n\n```\nCYCLE 1:\n  Eval → scores + top 10 improvements\n  IF pass: → done, write tests\n  ELSE:\n    Apply top 10 improvements to the actual file\n    Log: which improvements applied, what changed\n\nCYCLE 2:\n  Re-eval the FIXED output (same 3 models, same dimensions)\n  Compare: before\u002Fafter scores per dimension (track delta)\n  IF pass: → done, write tests\n  ELSE: apply remaining improvements + new ones\n\nCYCLE 3 (final):\n  Re-eval\n  IF pass: → ship\n  ELSE: → ship with KNOWN_GAPS section listing:\n    - Which dimensions are still below 7\n    - Which improvements couldn't be resolved\n    - Why (e.g., \"would require architectural change\")\n```\n\n### Cycles + cost guardrails\n\n- Default `--cycles 3` in TTY, `--cycles 1` in non-TTY (limits scripted\n  bulk spend in CI loops).\n- The command prints an estimated max-cost-per-cycle from a small pricing\n  constant before each run. Real cost varies with prompt size; treat the\n  estimate as a ceiling for default `--max-tokens 4000`.\n- A `--budget-usd N` hard cap is a v0.27.x follow-up TODO.\n\n### Provider configuration\n\nModels resolve through the gbrain AI gateway. Configure once with:\n\n```bash\ngbrain providers test    # see what's configured\ngbrain config            # set keys\n```\n\nOr set env vars: `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`,\n`GOOGLE_GENERATIVE_AI_API_KEY`, `TOGETHER_API_KEY`, etc. The gateway reads\nfrom `~\u002F.gbrain\u002Fconfig.json` plus `process.env`.\n\n### Cost expectations\n\n3 cycles × 3 models = 9 frontier calls max per run. With Opus-class +\nGPT-4o-class + Gemini-1.5-Pro, expect $1–3 per full run on default\n`--max-tokens 4000`. Receipts include the per-call model identifiers so\nyou can audit retroactively.\n\n### Skip cross-modal eval when:\n\n- Output is \u003C 200 tokens (trivial — not worth 9 API calls).\n- The skill is a thin wrapper around a single API call (one cycle is enough).\n\n## Phase 4: Tests (items 4-6)\n\nNOW that eval has proven quality, write tests that lock it in:\n\n**Unit tests** — every branch of deterministic logic. Mock external calls.\n**Integration tests** — hit real endpoints. Catch bugs mocks hide.\n**LLM evals** — quality\u002Fcorrectness for LLM steps. Lighter than cross-modal eval — test specific behaviors.\n\n## Phase 5: Resolver + Check-Resolvable (items 7-9)\n\n1. Add to skills\u002FRESOLVER.md with trigger phrases users ACTUALLY type\n2. Resolver eval: feed triggers, assert correct routing\n3. Check-resolvable:\n   - Skill reachable from skills\u002FRESOLVER.md (not orphaned)\n   - No MECE overlap with other skills\n   - No DRY violations (shared logic in lib\u002F, not copy-pasted)\n   - No ambiguous trigger routing\n\n## Phase 6: E2E + Brain Filing (items 10-11)\n\n- E2E smoke: full pipeline from trigger to side effect\n- Brain filing: add to brain\u002FRESOLVER.md if the skill writes brain pages\n\n## Phase 7: Verify\n\n```bash\nbun test test\u002F\u003Cskill>.test.ts                    # unit tests\ngbrain skillify check skills\u002F\u003Cslug>\u002Fscripts\u002F\u003Cslug>.mjs --json | \\\n  jq '.[] | .items[] | select(.name | contains(\"Cross-modal\"))'\nls ~\u002F.gbrain\u002F.gbrain\u002Feval-receipts\u002F              # receipt landed\ngbrain check-resolvable --json | jq .ok          # resolver clean\n```\n\n## Worked Example: Skillifying a \"summarize-pr\" Feature\n\n```\nPhase 0: Yes — invoked weekly, 50+ lines, clear trigger \"summarize this PR\"\nPhase 1: Audit → SKILL.md missing, no tests, no resolver entry. Score: 1\u002F11\nPhase 2: Write SKILL.md + extract script to scripts\u002Fsummarize-pr.ts\nPhase 3: Cross-modal eval cycle 1 →\n  GPT-4o: goal=6, depth=5, specificity=4 → \"misses file-level diffs\"\n  Opus 4.7: goal=7, depth=6, specificity=5 → \"no test plan in summary\"\n  Gemini 1.5 Pro: goal=6, depth=5, specificity=5 → \"template feels generic\"\n  Aggregate: goal=6.3 FAIL, depth=5.3 FAIL\n  Top improvements: add file-level changes, include test plan, use PR context\n  → Apply fixes → Cycle 2: goal=8, depth=7.5, specificity=7 → PASS\nPhase 4: Write 12 unit tests locking in the improved behavior\nPhase 5: Add \"summarize this PR\" trigger to skills\u002FRESOLVER.md\nPhase 6: E2E test: feed a real PR URL → verify brain page created\nPhase 7: All green. Score: 11\u002F11\n```\n\n## Quality Gates\n\nNOT properly skilled until:\n\n- All required items pass (1-2, 4-10; 11 only when applicable).\n- Cross-modal eval (item 3) has a current receipt OR is explicitly waived\n  with rationale (item 3 is informational; not blocking, but a missing\n  receipt is visible in the audit).\n- All tests pass (unit + integration + LLM evals).\n- Resolver entry exists with real trigger phrases.\n- Check-resolvable shows no orphans, overlaps, or DRY violations.\n- Brain filing if applicable.\n\n## Output Format\n\nSkillify produces three durable artifacts per skill:\n\n1. **The skill tree on disk.** `skills\u002F\u003Cslug>\u002FSKILL.md`, `scripts\u002F\u003Cslug>.mjs`,\n   `routing-eval.jsonl`, plus a `test\u002F\u003Cslug>.test.ts` skeleton. Generated by\n   `gbrain skillify scaffold \u003Cname>` and refined by the human\u002Fagent into a\n   real implementation.\n2. **A cross-modal eval receipt** at\n   `~\u002F.gbrain\u002F.gbrain\u002Feval-receipts\u002F\u003Cslug>-\u003Csha8>.json`. The sha-8 binds the\n   receipt to the current `SKILL.md` content. `gbrain skillify check`\n   surfaces the status (`found` \u002F `stale` \u002F `missing`) as informational.\n3. **An audit verdict** from `gbrain skillify check`: `properly skilled` |\n   `close — create: \u003Cmissing items>` | `needs skillify — run \u002Fskillify on\n   \u003Ctarget>`. Score is `\u003Cpassed>\u002F\u003Ctotal>`. Required items gate the verdict;\n   item 11 (cross-modal eval) is informational and never blocks PASS.\n\nJSON output (`gbrain skillify check --json`) includes the same fields plus\nthe per-item detail string, so agents can route on the structured envelope\nwithout parsing prose.\n\n## Anti-Patterns\n\n- ❌ Writing tests before cross-modal eval (locks in mediocrity)\n- ❌ Using budget models for eval (C student grading A student)\n- ❌ Using a single provider's family for all 3 slots (correlated blind spots)\n- ❌ Skipping eval \"because the output looks fine\" (your judgment isn't 3 models)\n- ❌ Eval without fix cycle (vanity metrics)\n- ❌ Code with no SKILL.md (invisible to resolver)\n- ❌ Tests that reimplement production code (masks real bugs)\n- ❌ Resolver entry with internal jargon (must mirror real user language)\n- ❌ Two skills doing the same thing (merge or kill one)\n- ❌ Running cross-modal eval on trivial outputs (\u003C 200 tokens, not worth 9 API calls)\n",{"name":5,"tools":48,"version":50,"mutating":51,"triggers":52,"description":58},[49,24,33],"exec","1.1.0",true,[53,5,54,55,56,57],"skillify this","is this a skill?","make this proper","add tests and evals for this","check skill completeness","The meta skill. Turn any raw feature into a properly-skilled, tested,\nresolvable unit of agent capability. Cross-modal eval is the recommended\nPhase 3 quality gate: 3 frontier models from different providers critique\nthe output, you iterate to quality, THEN write tests that lock in the\nproven-good behavior.\n","main","7850740bd837adb32f0a109ab2af82482196c6f2","skills\u002Fgbrain-skillify",1,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills","https:\u002F\u002Fzturnsgo.com","https:\u002F\u002Fgithub.com\u002Fshengdabai","https:\u002F\u002Fzturnsgo.com\u002F","AI × education creator — producer, not consumer. Taught 6,000+ learners; shipping learning tools & daily essays with Claude Code, practicing @xiaolai's way 🥋","2026-11-01 21:28:23",{"source":8,"skillName":5,"commands":70,"prompt":80,"zipAvailable":51},[71,74,77],{"tool":72,"command":73},"npx","npx skills add shengdabai\u002FTony-Claude-Code-Skills --skill skillify",{"tool":75,"command":76},"bunx","bunx skills add shengdabai\u002FTony-Claude-Code-Skills --skill skillify",{"tool":78,"command":79},"pnpm","pnpm dlx skills add shengdabai\u002FTony-Claude-Code-Skills --skill skillify","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fgbrain-skillify\u002FSKILL.md",[],[83,100,132,159,181,200],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":92,"publishedAt":43},"01M70P17DAD4C1C47NPH6A96EM","xiaolai-methodology","以李笑来(Li Xiaolai)的思考方式、方法论与表达风格,为用户做全方位 1-on-1 教练指导,覆盖创业、赚钱、投资、学习、自学、读书写作、用 AI、以及人生心态与自我管理。当用户提到 \"李笑来\"、\"笑来\"、\"笑来老师\"、\"扮演李笑来\"、\"找笑来聊聊\"、\"笑来怎么看\"、\"xiaolai\"、\"把时间当作朋友\"、\"通往财富自由之路\"、\"定投改变命运\"、\"韭菜的自我修养\"、\"自学是门手艺\"、\"让时间陪你慢慢变富\"、\"七年就是一辈子\"、\"元认知\"、\"活在未来\"、\"复利\u002F长期主义\"、\"践行\"、\"痴迷改进\"、\"个人商业模式\u002F出售时间\"、\"睡后收入\"、\"定投\"、\"财富自由\"、\"操作系统升级\"、\"最少必要知识\"、\"北极星提示词\"、\"用 AI 该怎么学\u002F思考\" 等任一触发词,或当用户带着关于创业\u002F赚钱\u002F投资\u002F学习\u002F职业\u002F重大人生决策的困惑、希望被人用笑来式的「逻辑 + 大白话 + 类比 + 重新定义 + 践行导向」来点醒和指导时,自动进入李笑来教练模式。","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fxiaolai-methodology\u002FSKILL.md",[89],{"categoryNo":90,"categoryName":91,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",[93,94,95,96,97,98,99],"methodology","xiaolai","xiaolai methodology","朋友","投资","writing","收入",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":112,"publishedAt":43},"01M70P13NB9YP7ACJR1S861CDS","zread","Produce and consume a wiki-style knowledge base for a code repository via the `zread` CLI and its on-disk output under `.\u002F.zread\u002Fwiki\u002F`. Use this skill whenever the user wants to understand, onboard onto, explore, summarize, map, or get an overview of an unfamiliar codebase; asks for architecture docs, a project wiki, a repo walkthrough, module\u002Fpackage explanations, or \"what does this repo do\"; wants to generate, regenerate, resume, browse, or serve code documentation locally; or mentions zread \u002F zread.ai directly. Also use it proactively before diving into a large unknown repo — if `.\u002F.zread\u002Fwiki\u002Fcurrent` exists, read the generated pages instead of crawling source file-by-file; if it doesn't, consider offering to run `zread generate`. The trigger is the intent (understand a codebase through generated docs), not the literal word \"zread\".","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fzread\u002FSKILL.md",[106,107],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":108,"categoryName":109,"taxonomyType":110,"taxonomyTypeDesc":111},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[102,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],"knowledge","wiki","explore","walkthrough","project","get","knowledge base","run","generate","intent","cli","map","documentation","project wiki","disk","architecture","code","unknown","generated",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":142,"publishedAt":43},"01M70P10S4SWMZQ8BJAFBFDRW3","youtube","Launch the YouTube Creator Agent to auto-generate videos.\nUse when: user types \u002Fyoutube, wants to create YouTube videos,\ngenerate video content, or upload to YouTube.\nKeywords: youtube, video, 视频, 创作视频, 发布视频","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fyoutube\u002FSKILL.md",[138,139],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":140,"categoryName":141,"taxonomyType":110,"taxonomyTypeDesc":111},"01JBSEEDCAT000000000000036","内容创作者",[134,143,144,145,146,147,148,149,121,150,151,152,153,154,155,156,157,158],"user","content","视频","creator","generate video","videos","launch","video content","create","upload","when","use","auto","types","Video","创作",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":166,"publishedAt":43},"01M70P0YE95D8BACZCGV8BK90K","youtube-script-sync","Sync, update, or optimize Tony's GetNote knowledge base `Youtube视频逐字稿` by turning each parent recording or first-person idea note into an idempotent child note containing a directly recordable YouTube long-video or Shorts script. Use when the user says “更新\u002F同步\u002F优化 Youtube视频逐字稿知识库”, or says “更新\u002F同步\u002F优化该知识库” while this knowledge base is the active context.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fyoutube-script-sync\u002FSKILL.md",[165],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[167,168,134,169,170,157,171,172,173,174,175,176,177,178,119,179,153,154,113,180],"sync","script","youtube script sync","recording","shorts","first","base","person","update","active","child","optimize","idempotent","long",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":191,"publishedAt":43},"01M70P0WMV5XT0EEC0N445PW07","writing-skills","How to write SKILL.md files that trigger reliably and teach effectively. Use when creating, improving, or reviewing Claude Code skills.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fxiaolai\u002Fnlpm\u002Fskills\u002Fnlpm\u002Fwriting-skills\u002FSKILL.md",[187,188,189,190],{"categoryNo":90,"categoryName":91,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":108,"categoryName":109,"taxonomyType":110,"taxonomyTypeDesc":111},{"categoryNo":140,"categoryName":141,"taxonomyType":110,"taxonomyTypeDesc":111},[192,98,193,194,195,33,129,153,154,196,197,198,199],"writing skills","how","teach","write skill","claude code skills","files","how to","trigger",{"skillNo":201,"name":202,"nameZh":6,"description":203,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":204,"categories":205,"keywords":208,"publishedAt":43},"01M70P0SJFR4YVJQBGMHKGSKXT","writing-rules","How to write .claude\u002Frules\u002F files that Claude actually follows. Use when creating, improving, or reviewing project rules.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fxiaolai\u002Fnlpm\u002Fskills\u002Fnlpm\u002Fwriting-rules\u002FSKILL.md",[206,207],{"categoryNo":90,"categoryName":91,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":140,"categoryName":141,"taxonomyType":110,"taxonomyTypeDesc":111},[209,98,210,117,211,197,153,193,33,154,198],"Rules","writing rules","project rules"]