agni-kai
Zuko's Agni Kai for bakeoffs. The formal firebending duel, where competing implementations fight under the same rules and a judge…
Appa's "yip yip" for opening a pull request. Use at the end of every other workflow, and for "ship it", "open a PR", "open a pull request", "stack these PRs", or "write the PR description". Covers worktrees, commit shape, Conventional Commits titles, the PR description, forge
$ npx -y skills add tmcfarlane/team-avatar --skill yip-yip --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/yip-yipContext preview
The summary Claude sees to decide when to auto-load this skill.
Appa's "yip yip" for opening a pull request. Use at the end of every other workflow, and for "ship it", "open a PR", "open a pull request", "stack these PRs", or "write the PR description". Covers worktrees, commit shape, Conventional Commits titles, the PR description, forge
name: yip-yip description: Appa's "yip yip" for opening a pull request. Use at the end of every other workflow, and for "ship it", "open a PR", "open a pull request", "stack these PRs", or "write the PR description". Covers worktrees, commit shape, Conventional Commits titles, the PR description, forge choice, stacked PRs, and review-bot triage. Driving an open PR to merge-ready is `long-flight`.
"Yip yip" is how the team tells Appa it is time to fly. Use it when the work is done and proven, and it is time to land it in front of a reviewer. Every other workflow ends here.
On Codex, read [avatar-mode/references/codex.md](../avatar-mode/references/codex.md) for tool equivalents.
1. **One coherent change.** The PR does one thing a reviewer can hold in their head. Split unrelated changes into their own PRs. 2. **Clean the diff.** Read every hunk. Run `purify` over the diff before you commit and `clear-water` before review. Remove debug output, commented-out code, and stray files. Keep a comment only for a non-obvious why. 3. **Run every check locally.** Tests, linter, type checker, build. Record the commands and their results. 4. **Self-review.** Run `earth-rumble` on your own diff. Run `lie-detector` when the design is contested. Fix blockers and majors before anyone else sees them. 5. **Gather the evidence.** The output, screenshot, recording, or benchmark that shows the change working on the real artifact.
Work from a git worktree off the default branch. Dispatched characters inherit it. Several dispatches on the same branch each get their own worktree, or run `git fetch && git reset --hard origin/<branch>` between them.
Before you commit, merge, or deploy from a worktree, list the live agents and stop every one that holds it. That includes grandchildren you never launched. A dispatch's children do not inherit its brief, so a read-only instruction never reaches them. Confirm each stop. Then run `git status` and read the tree you are about to ship.
Commit liberally. Rebase into small, ordered commits before you open PRs. Each commit is a future PR. It is landable on its own, and the order tells the story. Amend when the fix belongs in a commit you just made. Make a new commit when the fix is separable. A commit body does not restate the subject.
Write every PR title, description, and commit body with `tea-time`. Use one word per action, keep the articles, and prefer a plain verb over an `-ing` form where one works.
**Titles.** Conventional Commits `type(scope): subject`, with no trailing period. The type is one such as `feat`, `fix`, `docs`, `refactor`, `test`, `chore`, or `perf`. The scope is the area, such as `team-avatar` or `yip-yip`. The subject is short and imperative, and names a real symbol when one carries the change. For example, `fix(team-avatar): retarget yip-yip review trigger`.
**Descriptions.** The PR body is a one-minute briefing for a reviewer who has the diff. It is not a lab notebook. It says why the change exists, what it leaves out, what it could break, and how you proved it works. Write short, simple sentences with few identifiers and no walls of text. The body becomes the squash commit body, so keep it under about 40 lines. Follow the repo's PR template when one exists. Otherwise use these `##` headings in this order, not bold lead-ins, and drop a section with nothing to say:
After the sections, attach videos or screenshots when they prove a claim. Full SHAs, per-lane run recitals, file-by-file checklists, and "CLEAN" verdicts go in a linked artifact, not the body.
Resolve the forge before the first PR operation. Keep that choice for create, edit, view, watch, and merge.
**Built-in PR tool.** When the run provides a built-in PR tool, create, edit, retarget, and mark ready through it, never through a forge CLI. A PR made by the CLI misses what the tool tracks. Use the resolved forge for everything the tool does not cover, and for every PR operation when the run has no such tool.
Prefer five narrow PRs to one large PR. When a PR is too big to review, run `light-load`.
A stack is a chain of base branches. The root PR targets trunk. Each child branch rebases onto its parent's exact tip, and its PR targets the parent branch. As a parent merges, move its child onto trunk per step 4 of `safe-landing`. Without a built-in PR tool, use the resolved forge.
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…