/skillify
The meta skill. Turn any raw feature into a properly-skilled, tested, resolvable unit of agent capability. Cross-modal eval is the recommended Phase 3 quality gate: 3 frontier models from different providers critique the output, you iterate to quality, THEN write tests that lock
$ npx -y skills add garrytan/gbrain --skill skillify --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/skillify
Context preview
The summary Claude sees to decide when to auto-load this skill.
The meta skill. Turn any raw feature into a properly-skilled, tested, resolvable unit of agent capability. Cross-modal eval is the recommended Phase 3 quality gate: 3 frontier models from different providers critique the output, you iterate to quality, THEN write tests that lock
SKILL.md
skillify.SKILL.mdname: skillify
version: 1.1.0
description: |
The meta skill. Turn any raw feature into a properly-skilled, tested,
resolvable unit of agent capability. Cross-modal eval is the recommended
Phase 3 quality gate: 3 frontier models from different providers critique
the output, you iterate to quality, THEN write tests that lock in the
proven-good behavior.
triggers:
- "skillify this"
- "skillify"
- "is this a skill?"
- "make this proper"
- "add tests and evals for this"
- "check skill completeness"
tools:
- exec
- read
- write
mutating: true
Skillify — The Meta Skill
> **Relationship to `/cross-modal-review`:** That skill is the manual mid-flow > "second opinion" gate (one model reviews work product before commit). This > skill's Phase 3 below uses `gbrain eval cross-modal` instead — three > different-provider frontier models score-and-iterate on a documented > dimension list *before* tests cement behavior. Use `/cross-modal-review` > for ad-hoc second opinions; use Phase 3 here when skillifying a feature.
Contract
A feature is "properly skilled" when all 11 checklist items pass. Item 3 (cross-modal eval) is informational in v1.1.0 — it does not gate the skillpack-check audit, but a missing or stale receipt is surfaced so the user knows where the gate stands.
The Checklist
□ 1. SKILL.md — skill file with frontmatter + contract + phases
□ 2. Code — deterministic script if applicable
□ 3. Cross-modal eval — 3 frontier models from 3 providers; informational
□ 4. Unit tests — cover every branch of deterministic logic
□ 5. Integration tests — exercise live endpoints
□ 6. LLM evals — quality/correctness cases for LLM-involving steps
□ 7. Resolver trigger — entry in skills/RESOLVER.md with real user trigger phrases
□ 8. Resolver eval — test that triggers route to this skill
□ 9. Check-resolvable — DRY + MECE audit, no orphans
□ 10. E2E test — smoke test: trigger → side effect
□ 11. Brain filing — if it writes pages, entry in brain/RESOLVER.md
Phase 0: Should This Be a Skill?
Before skillifying, check:
- Will this be invoked 2+ times? (One-off work ≠ skill)
- Is there >20 lines of logic? (Trivial helpers don't need full infrastructure)
- Does it have a clear trigger phrase a user would actually say?
If ANY answer is no, it's a script, not a skill — stop here. Do not scaffold, write a SKILL.md, run evals, or write tests for it. Tell the user why and move on.
Scope check (upper bound): one skill = one capability = one coherent trigger family. If the target spans multiple distinct intents users would invoke separately ("run the build" / "roll back the deploy" / "notify the team" are three intents, not one), do NOT build one skill covering them all. Stop, propose splitting into separate skillify targets, and ask the user which one to skillify first.
Phase 1: Audit
Feature: [name]
Code: [path]
Missing items: [check each of the 11]
Phase 2: Write SKILL.md + Code (items 1-2)
SKILL.md frontmatter template (copy-paste):
---
name: my-skill
version: 1.0.0
description: |
One paragraph. What it does, when to use it.
triggers:
- "trigger phrase users actually say"
- "another real trigger"
tools:
- exec
- read
- write
mutating: false # true if it writes to brain/disk
---
Body must include: **Contract** (what it guarantees), **Phases** (step-by-step), **Output Format** (what it produces).
Extract deterministic code into `scripts/*.ts`.
Phase 3: Cross-Modal Eval (item 3) — THE QUALITY GATE
Why this comes before tests
Tests lock in behavior. If the behavior is mediocre, tests lock in mediocrity. Cross-modal eval proves the quality bar FIRST, then tests cement it.
Step 1: Pick a representative input
Choose the input that exercises the skill's hardest documented use case. If unsure: use the primary trigger example from SKILL.md, or the most complex real-world input from the last 7 days of memory files.
Step 2: Run the skill, capture output
Run the skill on the representative input. The OUTPUT FILE is what gets evaluated.
Step 3: Run the eval gate
gbrain eval cross-modal \
--task "What this skill is supposed to accomplish" \
--output skills/<slug>/SKILL.md
The command runs 3 frontier models from 3 different providers in parallel, scores the OUTPUT against the TASK on 5 documented dimensions, and writes a receipt under `~/.gbrain/.gbrain/eval-receipts/<slug>-<sha8>.json` (the sha-8 binds the receipt to the current SKILL.md content — re-running after edits writes a new receipt).
**Default models** (override per slot via `--slot-a-model`, `--slot-b-model`, `--slot-c-model`):
| Slot | Default | Provider | |------|---------|----------| | A | `openai:gpt-5.2` | OpenAI | | B | `anthropic:claude-opus-4-7` | Anthropic | | C | `deepseek:deepseek-v4-pro` | DeepSeek |
**These MUST be frontier models from DIFFERENT providers.** Using a single provider's family or budget models defeats the purpose — different families have less correlated blind spots. Refresh the list when a new model generation ships.
**Pass criteria (BOTH must be true):**
1. Every dimension's mean across successful models ≥ 7. 2. No single model scored any dimension < 5 (the floor).
**Inconclusive:** fewer than 2 of 3 models returned parseable scores. Receipt is still written (forensics) but the gate is not authoritative. Exit code 2; CI wrappers should treat this as "did not run cleanly", not "failed quality gate".
Step 4: Cycle until you pass (≤3 cycles)
CYCLE 1:
Eval → scores + top 10 improvements
IF pass: → done, write tests
ELSE:
Apply top 10 improvements to the actual file
Log: which improvements applied, what changed
CYCLE 2:
Re-eval the FIXED output (same 3 models, same dimensions)
Compare: before/after scores per dimension (track delta)
IF pass: → done, write tests
ELSE: apply remaininRead more
name: skillify version: 1.1.0 description: | The meta skill. Turn any raw feature into a properly-skilled, tested, resolvable unit of agent capability. Cross-modal eval is the recommended Phase 3 quality gate: 3 frontier models from different providers critique the output, you iterate to quality, THEN write tests that lock in the proven-good behavior. triggers: - "skillify this" - "skillify" - "is this a skill?" - "make this proper" - "add tests and evals for this" - "check skill completeness" tools: - exec - read - write mutating: true
Skillify — The Meta Skill
> **Relationship to `/cross-modal-review`:** That skill is the manual mid-flow > "second opinion" gate (one model reviews work product before commit). This > skill's Phase 3 below uses `gbrain eval cross-modal` instead — three > different-provider frontier models score-and-iterate on a documented > dimension list *before* tests cement behavior. Use `/cross-modal-review` > for ad-hoc second opinions; use Phase 3 here when skillifying a feature.
Contract
A feature is "properly skilled" when all 11 checklist items pass. Item 3 (cross-modal eval) is informational in v1.1.0 — it does not gate the skillpack-check audit, but a missing or stale receipt is surfaced so the user knows where the gate stands.
The Checklist
□ 1. SKILL.md — skill file with frontmatter + contract + phases □ 2. Code — deterministic script if applicable □ 3. Cross-modal eval — 3 frontier models from 3 providers; informational □ 4. Unit tests — cover every branch of deterministic logic □ 5. Integration tests — exercise live endpoints □ 6. LLM evals — quality/correctness cases for LLM-involving steps □ 7. Resolver trigger — entry in skills/RESOLVER.md with real user trigger phrases □ 8. Resolver eval — test that triggers route to this skill □ 9. Check-resolvable — DRY + MECE audit, no orphans □ 10. E2E test — smoke test: trigger → side effect □ 11. Brain filing — if it writes pages, entry in brain/RESOLVER.md
Phase 0: Should This Be a Skill?
Before skillifying, check:
- Will this be invoked 2+ times? (One-off work ≠ skill)
- Is there >20 lines of logic? (Trivial helpers don't need full infrastructure)
- Does it have a clear trigger phrase a user would actually say?
If ANY answer is no, it's a script, not a skill — stop here. Do not scaffold, write a SKILL.md, run evals, or write tests for it. Tell the user why and move on.
Scope check (upper bound): one skill = one capability = one coherent trigger family. If the target spans multiple distinct intents users would invoke separately ("run the build" / "roll back the deploy" / "notify the team" are three intents, not one), do NOT build one skill covering them all. Stop, propose splitting into separate skillify targets, and ask the user which one to skillify first.
Phase 1: Audit
Feature: [name] Code: [path] Missing items: [check each of the 11]
Phase 2: Write SKILL.md + Code (items 1-2)
SKILL.md frontmatter template (copy-paste):
--- name: my-skill version: 1.0.0 description: | One paragraph. What it does, when to use it. triggers: - "trigger phrase users actually say" - "another real trigger" tools: - exec - read - write mutating: false # true if it writes to brain/disk ---
Body must include: **Contract** (what it guarantees), **Phases** (step-by-step), **Output Format** (what it produces).
Extract deterministic code into `scripts/*.ts`.
Phase 3: Cross-Modal Eval (item 3) — THE QUALITY GATE
Why this comes before tests
Tests lock in behavior. If the behavior is mediocre, tests lock in mediocrity. Cross-modal eval proves the quality bar FIRST, then tests cement it.
Step 1: Pick a representative input
Choose the input that exercises the skill's hardest documented use case. If unsure: use the primary trigger example from SKILL.md, or the most complex real-world input from the last 7 days of memory files.
Step 2: Run the skill, capture output
Run the skill on the representative input. The OUTPUT FILE is what gets evaluated.
Step 3: Run the eval gate
gbrain eval cross-modal \ --task "What this skill is supposed to accomplish" \ --output skills/<slug>/SKILL.md
The command runs 3 frontier models from 3 different providers in parallel, scores the OUTPUT against the TASK on 5 documented dimensions, and writes a receipt under `~/.gbrain/.gbrain/eval-receipts/<slug>-<sha8>.json` (the sha-8 binds the receipt to the current SKILL.md content — re-running after edits writes a new receipt).
**Default models** (override per slot via `--slot-a-model`, `--slot-b-model`, `--slot-c-model`):
| Slot | Default | Provider | |------|---------|----------| | A | `openai:gpt-5.2` | OpenAI | | B | `anthropic:claude-opus-4-7` | Anthropic | | C | `deepseek:deepseek-v4-pro` | DeepSeek |
**These MUST be frontier models from DIFFERENT providers.** Using a single provider's family or budget models defeats the purpose — different families have less correlated blind spots. Refresh the list when a new model generation ships.
**Pass criteria (BOTH must be true):**
1. Every dimension's mean across successful models ≥ 7. 2. No single model scored any dimension < 5 (the floor).
**Inconclusive:** fewer than 2 of 3 models returned parseable scores. Receipt is still written (forensics) but the gate is not authoritative. Exit code 2; CI wrappers should treat this as "did not run cleanly", not "failed quality gate".
Step 4: Cycle until you pass (≤3 cycles)
CYCLE 1:
Eval → scores + top 10 improvements
IF pass: → done, write tests
ELSE:
Apply top 10 improvements to the actual file
Log: which improvements applied, what changed
CYCLE 2:
Re-eval the FIXED output (same 3 models, same dimensions)
Compare: before/after scores per dimension (track delta)
IF pass: → done, write tests
ELSE: apply remaininSearch gives you raw pages. GBrain gives you the answer. It's the brain layer your AI agent has been missing — the only one that does synthesis, graph traversal, and gap analysis in one box.
Repo: garrytan/gbrain
Other skills on gbrain.
- /voice-persona-mars
Route to Mars (introspective thought partner / demo showman voice persona). Used when the operator wants depth, meaning, or impressive social demos rather than logistics. Mars handles SOLO mode (philosophy, presence, patterns) and DEMO mode (tool-driven showmanship)
Open skill - /voice-persona-venus
Route to Venus (sharp executive-assistant voice persona). Used for logistics — calendar, tasks, recent messages, brain lookups — at sub-second phone-call latency. The default voice persona unless DEFAULT_PERSONA=mars is set.
Open skill - /voice-post-call
Post-call handling for a voice session — turn the transcript into a brain page, post the summary to the operator's messaging surface, archive the audio. Belt-and-suspenders: fires both from a tool the voice persona can call mid-call AND from the automatic call-end handler in
Open skill - /retrieval-reflex
When/what to retrieve — open the brain page for a salient entity before answering from memory.
Open skill - /academic-verify
Verify a research claim or academic citation by tracing it through publication → methodology → raw data → independent replication. Routes through perplexity-research for the actual web lookup, then formats results as a citation-checked brain page. Use when a
Open skill - /archive-crawler
Universal archivist for personal file archives (Dropbox/B2/Gmail-takeout/local-mount/hard-drive-dump). Filters for high-value content (the user's own writing, ideas, relationships) and surfaces it interactively. REFUSES TO RUN without an explicit gbrain.yml
Open skill

