agni-kai
Zuko's Agni Kai for bakeoffs. The formal firebending duel, where competing implementations fight under the same rules and a judge…
Iroh writing a new scroll for the library. Use for authoring or modifying a skill, writing or editing a SKILL.md, "create a skill", "add a skill to the plugin", "improve this skill's description", "split this skill into references", or a workflow you keep repeating that no skill
$ npx -y skills add tmcfarlane/team-avatar --skill new-scroll --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/new-scrollContext preview
The summary Claude sees to decide when to auto-load this skill.
Iroh writing a new scroll for the library. Use for authoring or modifying a skill, writing or editing a SKILL.md, "create a skill", "add a skill to the plugin", "improve this skill's description", "split this skill into references", or a workflow you keep repeating that no skill
name: new-scroll description: Iroh writing a new scroll for the library. Use for authoring or modifying a skill, writing or editing a SKILL.md, "create a skill", "add a skill to the plugin", "improve this skill's description", "split this skill into references", or a workflow you keep repeating that no skill captures yet. Covers frontmatter, description triggers, progressive disclosure, references and scripts, and skills that load the same way on Claude Code and Codex.
Iroh carried a library in his head and shared only what the moment called for. A good scroll is the same. It says exactly when to open it, gives the essential teaching on the first page, and keeps the long commentary in the back for the reader who needs it. You own the scroll's voice.
1. **Check the library first.** Search the existing skills for one that already covers the workflow. Extend it instead of writing a near-duplicate. Write a new skill only for a workflow you keep hitting that no skill captures. 2. **Collect concrete triggers.** Write down three to five real requests that should load the skill, in the words a user would type, including any old command names people already use. These become the description. 3. **Plan the contents.** For each trigger, ask what an agent would otherwise rewrite or rediscover each time. Code it rewrites goes in `scripts/`. Long reference material it rereads goes in `references/`. Files copied into the output go in `assets/`. Create only the folders you use. 4. **Write the frontmatter.** See [Frontmatter](#frontmatter). 5. **Write the body.** See [The body](#the-body). Write it through `tea-time`. 6. **Validate.** See [Validate](#validate). In this plugin, that means registering the skill, regenerating the tables, and running the validator. 7. **Test it if it is structural.** A skill that changes what an agent does (steps, routing, a checklist, a script) gets a behavior test. Run `pai-sho` on it before you promote it. A purely stylistic skill skips this step. Record `skip: subjective` in the todolist. 8. **Ship it.** Hand to `yip-yip`.
Both Claude Code and Codex read a skill from `skills/<name>/SKILL.md` and decide whether to load it from two frontmatter fields. Use exactly these two so both runtimes read the file the same way.
--- name: new-scroll description: Iroh writing a new scroll for the library. Use for authoring or modifying a skill, ... ---
A weak description says "Helps with PRs." A strong one names the job and the exact phrases ("Use for opening a pull request, 'ship it', 'open a PR', 'write the PR description'").
**Progressive disclosure.** A skill loads in three levels. The frontmatter is always in context. The SKILL.md body loads when the skill triggers. Files in `references/` and `scripts/` load only when the body sends the agent to them. Put each piece of information at the lowest level that still gets it read when it is needed.
**Scripts.** A script earns its place when the same code would be rewritten each time or when the result must be deterministic. Scripts run with plain `node` or `sh`, with no npm dependencies. Give the exact command to run, with the path relative to the skill, and say what its output means.
**Writing.**
**Two runtimes.** Write in Claude Code tool names. A skill that dispatches subagents, asks fixed-choice questions, or uses task tools adds this line near the top, with the relative path fixed for the file's depth.
On Codex, read [avatar-mode/references/codex.md](../avatar-mode/references/codex.md) for tool equivalents.
Team Avatar: a universal agent orchestrator for Claude Code, Codex, and Cursor. Nine Avatar characters, 58 engineering skills. pstack with Avatar characters on top.
Zuko's Agni Kai for bakeoffs. The formal firebending duel, where competing implementations fight under the same rules and a judge…
Aang showing a new friend around the team. Explains Team Avatar to a user, the roster and who owns what, how to invoke a skill on…
Aang's operating mode for Team Avatar, principal-level engineering where each task goes to the character who owns that…
Aang choosing which bender takes which fight. Configures which model each Team Avatar character runs on, the default reasoning…
Sokka's battle map, the decision trail he keeps so anyone can see how the campaign was won. Use for show-me-your-work,…
Appa's morning departure for picking up paused or handed-off work. The team breaks camp, reads the map they left, and flies on…