Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Guides a one-question-at-a-time design interview, captures alignment in agent/EVE-BRIEF.md, then scaffolds and implements a runnable eve agent with verbose teaching comments. Use when the user wants to create a new eve agent, build an agent from scratch, or invokes /create-agent.
.claude/skills/asymmetric-al-create-agent/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 159% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 237% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 128% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 96% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 88% | 0% |
Turn a rough agent idea into a runnable eve agent through structured Q&A, a written brief, then scaffold + implementation.
Task Progress:
- [ ] Phase 1 — Design interview (one question at a time)
- [ ] Phase 2 — Write agent/EVE-BRIEF.md and get confirmation
- [ ] Phase 3 — Scaffold eve, implement, verifyDo not skip Phase 1 or Phase 2. Do not scaffold or write agent code until the user confirms the brief.
Interview the user until you have a shared, implementable picture of the agent.
| Area | Goal | | ------------- | ------------------------------------------------------------------------------------------------------------------------- | | Purpose | One sentence: what job does this agent do? | | Users & entry | Who talks to it, and through what channel(s)? | | Core loop | Typical turn: user says X → agent does Y → user sees Z | | Eve surfaces | Which slots matter? (tools, skills, channels, connections, subagents, schedules, hooks, sandbox, evals) | | Tools & data | Named capabilities, inputs/outputs, real APIs vs connections | | Scope | What is deliberately out of scope for v1? | | Model | Preferred model string (default: openai/gpt-4.1-mini via AI Gateway) | | Secrets | Env vars needed for real integrations (always include AI_GATEWAY_API_KEY) | | Location | Project directory name and whether it lives inside an existing monorepo |
Stop interviewing when you can fill every section of EVE-BRIEF template without guessing.
Summarize decisions in a short bullet list. Ask: "Does this match what you want? Ready for me to write EVE-BRIEF.md?"
Write agent/EVE-BRIEF.md using the template in reference.md.
agent/EVE-BRIEF.md after init — then place it there immediately after scaffold.After eve is installed, must read bundled docs at node_modules/eve/docs/ before writing agent code:
Never rely on hardcoded snippets from this skill or training memory. API shapes, imports, and conventions change — local docs are the source of truth. See reference.md.
Before scaffolding, inspect the repo:
| Situation | Action | | ------------------------------ | ------------------------------------------------------------------------------------------------ | | No agent/ directory anywhere | npx eve@latest init <dir> (standalone) or npx eve@latest init . (add to existing app) | | One existing eve agent | Mirror its project structure (package.json scripts, tsconfig, env pattern) | | Multiple eve agents (monorepo) | Inventory siblings; mirror naming, workspace deps, and folder conventions from the nearest agent |
Do not assume a specific monorepo shape. Discover conventions from the codebase. See reference.md.
No eve project yet:
bashnpx eve@latest init <agent-dir>
init installs deps and may start the dev server — run in a controllable process and stop the server before editing files.
Existing project, no agent/ directory:
bashcd <project-root> npx eve@latest init .
eve already present: skip init; ensure agent/agent.ts and agent/instructions.md exist.
Optional: --channel-web-nextjs only when the user asked for Web Chat and they are using Next.js.
Write or move agent/EVE-BRIEF.md into the scaffolded agent/ directory.
Minimum bar for every agent:
agent/agent.ts — model config per brief (follow docs for current defineAgent API)agent/instructions.md — identity, when to use tools, tone, guardrails from the brief.env.example with AI_GATEWAY_API_KEY= and every env var for real integrationsImplement only surfaces listed in the brief. For each surface, read the matching page in node_modules/eve/docs/ and follow patterns from the nearest existing agent in the repo when one exists.
Teaching comments (required):
Every file you create or substantially edit during scaffold + implementation must include verbose, educational comments that teach the user how eve works — not just what the line does. Treat the generated agent as a guided tutorial the user will read while running it.
See reference.md — Teaching comments for the full checklist. At minimum:
agent/**/*.ts file: which eve surface this file belongs to, how eve discovers/loads it, and what role it plays in a turn.defineAgent slots, channel request lifecycle).node_modules/eve/docs/ when helpful.instructions.md: short callouts above each major section explaining how system instructions shape model behavior in eve.Do not strip comments eve init generated if they teach a concept. Prefer adding over removing. Skip comments only on truly obvious TypeScript (e.g. import of a local type). Never use placeholder comments like // TODO: explain — write the explanation.
Conventions:
agent/tools/foo.ts → fooagent/connections/) and real data/APIs when feasibleEVE-BRIEF.md.env or secretsIf the repo already hosts multiple eve agents under a shared parent directory:
agents/README.md and the root README.md with Eve surfaces and Eve capabilities demonstrated (use labels from the capabilities key in agents/README.md)pnpm-workspace.yaml, package.json workspaces, etc.)Skip this step for standalone projects.
bashpnpm install # or npm install pnpm typecheck # if available pnpm build # eve build
Tell the user how to run pnpm dev, what to ask in the TUI, and how to exercise the agent over HTTP per the eve docs. Point them to the most-commented files as the learning path. Do not commit unless asked.
User: "I want an agent that summarizes my GitHub PRs"
→ Phase 1 asks: which repo/PR scope? channel? recommended: GitHub connection or API-backed get_pr tool with real token, HTTP channel for v1. Mock only if the user has no credentials yet — note that in the brief.
User: "/create-agent" in a repo that already has eve agents
→ Inventory sibling agents, mirror their layout, interview, brief, scaffold alongside them, update any repo index.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 9,489 | 5,681 | -40% | 1 | 1 | 0% | 1,460 | 2,586 | +77% | 0 | 0 | — |
case-02 | fail→fail | 7,705 | 5,414 | -30% | 1 | 1 | 0% | 1,053 | 2,504 | +138% | 0 | 0 | — |
case-03 | fail→fail | 6,365 | 5,693 | -11% | 1 | 1 | 0% | 934 | 2,598 | +178% | 0 | 0 | — |
case-04 | fail→pass | 7,017 | 6,153 | -12% | 1 | 1 | 0% | 1,236 | 3,203 | +159% | 0 | 0 | — |
case-05 | pass→pass | 7,964 | 3,833 | -52% | 1 | 1 | 0% | 1,188 | 2,942 | +148% | 0 | 0 | — |
case-06 | pass→pass | 8,832 | 3,483 | -61% | 1 | 1 | 0% | 1,326 | 2,762 | +108% | 0 | 0 | — |
case-07 | fail→pass | 5,766 | 3,147 | -45% | 1 | 1 | 0% | 828 | 2,788 | +237% | 0 | 0 | — |
case-08 | fail→pass | 7,771 | 2,549 | -67% | 1 | 1 | 0% | 1,162 | 2,648 | +128% | 0 | 0 | — |
case-09 | pass→pass | 9,641 | 4,697 | -51% | 1 | 1 | 0% | 1,503 | 3,075 | +105% | 0 | 0 | — |
case-14 | pass→fail | 12,301 | 3,244 | -74% | 1 | 1 | 0% | 1,847 | 2,735 | +48% | 0 | 0 | — |
case-10 | pass→pass | 11,199 | 4,865 | -57% | 1 | 1 | 0% | 1,729 | 2,930 | +69% | 0 | 0 | — |
case-11 | fail→pass | 7,781 | 1,750 | -78% | 1 | 1 | 0% | 1,284 | 2,522 | +96% | 0 | 0 | — |
case-12 | pass→pass | 5,438 | 3,753 | -31% | 1 | 1 | 0% | 787 | 2,893 | +268% | 0 | 0 | — |
case-13 | pass→pass | 14,309 | 5,369 | -62% | 1 | 1 | 0% | 2,063 | 3,177 | +54% | 0 | 0 | — |
case-15 | pass→pass | 11,099 | 3,635 | -67% | 1 | 1 | 0% | 1,767 | 2,925 | +66% | 0 | 0 | — |
case-16 | fail→pass | 9,090 | 2,273 | -75% | 1 | 1 | 0% | 1,356 | 2,546 | +88% | 0 | 0 | — |
case-17 | fail→pass | 13,415 | 3,575 | -73% | 1 | 1 | 0% | 1,985 | 2,819 | +42% | 0 | 0 | — |
case-18 | fail→pass | 13,005 | 3,174 | -76% | 1 | 1 | 0% | 2,225 | 2,721 | +22% | 0 | 0 | — |
case-19 | fail→pass | 10,787 | 2,482 | -77% | 1 | 1 | 0% | 1,523 | 2,624 | +72% | 0 | 0 | — |
case-20 | fail→pass | 15,228 | 4,373 | -71% | 1 | 1 | 0% | 2,223 | 2,938 | +32% | 0 | 0 | — |
case-21 | pass→fail | 9,270 | 6,145 | -34% | 1 | 1 | 0% | 1,495 | 2,603 | +74% | 0 | 0 | — |
case-22 | pass→fail | 5,170 | 4,942 | -4% | 1 | 1 | 0% | 838 | 2,511 | +200% | 0 | 0 | — |
case-23 | pass→pass | 6,597 | 4,301 | -35% | 1 | 1 | 0% | 1,293 | 3,034 | +135% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 18 counted toward the lift figure. The other 5 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +26 percentage points is the difference between those two pass rates over the 18 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.