MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
Full prioritize → dispatch → shepherd → track pipeline against the live warren instance.
$ npx skills add jayminwest/warren --skill warren-dogfood-pipeline -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jayminwest/warren warren-dogfood-pipeline --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jayminwest/warren.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/warren-dogfood-pipeline .claude/skills/warren-dogfood-pipeline && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "warren-dogfood-pipeline" agent skill from https://github.com/jayminwest/warren/tree/main/.agents/skills/warren-dogfood-pipeline into .claude/skills/warren-dogfood-pipeline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "warren-dogfood-pipeline", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jayminwest/warren/tree/main/.agents/skills/warren-dogfood-pipelineType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jayminwest/warren --skill warren-dogfood-pipeline -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jayminwest/warren warren-dogfood-pipeline --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jayminwest/warren.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/warren-dogfood-pipeline .agents/skills/warren-dogfood-pipeline && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "warren-dogfood-pipeline" agent skill from https://github.com/jayminwest/warren/tree/main/.agents/skills/warren-dogfood-pipeline into .agents/skills/warren-dogfood-pipeline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "warren-dogfood-pipeline", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jayminwest/warren --skill warren-dogfood-pipeline -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jayminwest/warren warren-dogfood-pipeline --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jayminwest/warren.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/warren-dogfood-pipeline .cursor/skills/warren-dogfood-pipeline && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "warren-dogfood-pipeline" agent skill from https://github.com/jayminwest/warren/tree/main/.agents/skills/warren-dogfood-pipeline into .cursor/skills/warren-dogfood-pipeline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "warren-dogfood-pipeline", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jayminwest/warren.git --path .agents/skills/warren-dogfood-pipeline--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jayminwest/warren --skill warren-dogfood-pipeline -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jayminwest/warren warren-dogfood-pipeline --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jayminwest/warren.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/warren-dogfood-pipeline .gemini/skills/warren-dogfood-pipeline && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "warren-dogfood-pipeline" agent skill from https://github.com/jayminwest/warren/tree/main/.agents/skills/warren-dogfood-pipeline into .gemini/skills/warren-dogfood-pipeline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "warren-dogfood-pipeline", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jayminwest/warren warren-dogfood-pipelineInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jayminwest/warren --skill warren-dogfood-pipeline -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jayminwest/warren.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/warren-dogfood-pipeline .github/skills/warren-dogfood-pipeline && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "warren-dogfood-pipeline" agent skill from https://github.com/jayminwest/warren/tree/main/.agents/skills/warren-dogfood-pipeline into .github/skills/warren-dogfood-pipeline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "warren-dogfood-pipeline", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jayminwest/warren --skill warren-dogfood-pipeline -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jayminwest/warren warren-dogfood-pipeline --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jayminwest/warren.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/warren-dogfood-pipeline .opencode/skills/warren-dogfood-pipeline && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "warren-dogfood-pipeline" agent skill from https://github.com/jayminwest/warren/tree/main/.agents/skills/warren-dogfood-pipeline into .opencode/skills/warren-dogfood-pipeline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "warren-dogfood-pipeline", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
warren-dogfood-pipelineFull prioritize → dispatch → shepherd → track pipeline against the live warren instance.
Warren Dogfood Pipeline is an agent skill from jayminwest/warren. Full prioritize → dispatch → shepherd → track pipeline against the live warren instance. Audits the seeds backlog around a focus theme, dispatches the surviving issues to warren agents one at a time, babysits the resulting PRs to merge (update-branch, conflict-repair runs, auto-merge), and closes the loop in the tracker. Activate for prompts like "run the dogfood pipeline", "dispatch the P1 <theme issues to warren", "audit and dispatch", "work the backlog through warren agents".
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows. The repository describes itself as: Run coding agents like infrastructure, not terminal sessions. Warren manages isolation, lifecycle, spend, recovery, and Git delivery on compute you control. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 9595340. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
bungitghjqFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
WARREN_API_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Warren Dogfood Pipeline loads about 2.9k tokens when it runs. Until then it costs about 127 tokens; SKILL.md has 1,597 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jayminwest/warren at commit 9595340, republished under its MIT licence (© jayminwest). 1,597 words, ~2,933 tokens.
.claude/skills/warren-dogfood-pipeline/SKILL.md (or your agent's skills folder).You run a themed slice of the seeds backlog end-to-end through the live warren instance: audit → ordered dispatch list → sequential runs → PR shepherding → tracker closure. Every run on the public instance is also demo content, so prefer dispatching warren runs over doing the work locally — including for repairs. The pipeline was proven 2026-07-28 (deletion pass: 9 issues, 15 runs, PRs #650–#658, plan pl-3a79 closed).
openrouter, model moonshotai/kimi-k3, on the pi
harness (the only harness that can reach OpenRouter; it is also the
project defaultRole). Offer the anthropic tiers
(src/registry/builtins/model-tiers.ts) as alternatives — for hard
or large refactors use claude-opus-5 (Opus 5; pass it as an
explicit modelOverride — do NOT rely on the opus tier's default,
which still pins the older claude-opus-4-8). Dispatch with explicit
providerOverride + modelOverride matching the answer.Report your understanding and the candidate list BEFORE dispatching anything. Dispatching costs real money and opens real PRs.
Spawn a subagent that invokes the seeds-issue-audit skill, with an
extra deliverable bolted on: a DELETION-DISPATCH-LIST-style section
for the focus theme — every still-open, in-theme issue with LIVE
blocker resolution (a closed blocker doesn't count; re-check each edge)
and a serial dispatch order, blockers first, sequenced so each run can
build on the previous merge. Require the exact line format
<order>. <id> — <title> — <UNBLOCKED | blocked-by: ids> so you can
dispatch straight off it.
Babysit the subagent: if it stops claiming to "wait for a worker notification" while it has no live children, resume it and tell it to finish the batch inline.
deploy/k8s/overlays/gke-live/kustomization.yaml (Ingress host
patch). Token: kubectl get secret warren-secrets -n warren -o jsonpath='{.data.warren-api-token}' | base64 -d (key is
warren-api-token, not WARREN_API_TOKEN).GET /projects, match the gitUrl.POST /runs with {agent, project, prompt, modelOverride, seedId}. Always pass seedId — it links the run to
the tracker. BOTH POST /runs and GET /runs/:id WRAP the run as
{run: {...}} — since warren-7d84 the detail GETs wrap to match the
POST and the plan-runs family, so no route needs per-envelope
knowledge. Parse .run.state, never .state. A bare parse reads
all-null, which a polling loop silently reads as "not terminal yet"
and spins to its iteration cap instead of failing loudly.
Terminal states are succeeded|failed|cancelled.ref = targetBranch = the PR's head branch. Warren pushes back to
that branch in place; the agent must NOT open a new PR or branch.Prompt template per issue run (adapt, keep all five elements):
<id>. First run sd show <id> --json from the
repo root" — the issue body is the spec; your summary is a digest.bun run check:bundle-size --update for UI work).bun run check:all must be green
before you commit and report done."sd close <id> --reason ..., then commit
everything."Polling: background loop, ~55s interval, ≤10 iterations per loop
(re-launch on expiry). Pipe curl straight into the JSON parser — never
round-trip response bodies through a shell variable + echo (zsh echo
expands \n inside the JSON and corrupts it). On terminal, capture
state, failureReason, prUrl, costUsd.
gh pr view <n> --json state
immediately before dispatch) — a terminal run is not enough; the
next clone needs the code.Themed slices touch overlapping files (CLAUDE.md, budgets,
.seeds/issues.jsonl), so almost every PR that outlives another merge
goes stale. Diagnose with
gh pr view <n> --json mergeable,mergeStateStatus,autoMergeRequest,statusCheckRollup:
| State | Fix |
|---|---|
BEHIND, auto-merge armed | gh pr update-branch <n> (re-run after every upstream merge — serial auto-merge is a chase) |
DIRTY (conflicts) | FIRST verify the conflict is real: git merge-tree --write-tree origin/main <head-ref>. Clean (tree hash only) has TWO possible meanings — check whether the PR touches .seeds/*.jsonl before concluding: (a) PR does NOT touch .seeds → GitHub's cached mergeability is stale, push a merge commit to force a recompute, do NOT spend a repair run (warren-fb6e). (b) PR touches .seeds → the conflict is REAL for GitHub: the local merge=seeds-jsonl driver resolved an id-keyed row rewrite that GitHub's server-side merge genuinely cannot (it runs no custom drivers), so merge-tree-clean is NOT proof of a stale cache (warren-b34b). The seeds-merge-autoheal workflow pushes the driver-aware merge automatically; if it has not (or failed), do it manually: checkout the PR branch, git merge origin/main --no-edit (driver registered by bun install), verify bun run check:seeds-integrity + no duplicate ids, push. Genuinely conflicted even with the driver → dispatch a repair run on the PR branch (below) |
CLEAN/green but auto-merge off | Article IX gate declined to arm it; gh pr merge <n> --auto --squash — only with operator authorization to unblock merges (ask once, then treat as standing for the session) |
CI FAILURE | read the failing gate log; bundle-size overshoot after a merge → repair run that runs the bounded check:bundle-size --update and commits ONLY the budget diff |
Repair-run prompt essentials: name the PR and its issue; name what
merged on main since the branch was cut; git fetch origin && git merge origin/main; preserve BOTH sides (deletions on main win over
incidental touches; this branch's feature always stays);
.seeds/issues.jsonl needs explicit attention even when git reports NO
conflict — .gitattributes routes it through the merge=seeds-jsonl
driver (a 3-way id-keyed merge registered by bun install), which is
correct ONLY in a clone where the driver is registered; verify
bun run check:seeds-integrity after any merge, and remember closing
one issue rewrites blockedBy on every plan sibling (warren-9c90 /
warren-db8c / warren-b34b).
Always run jq -r .id .seeds/issues.jsonl | sort | uniq -d after the
merge. Resolve by taking closed where either side closed and
INTERSECTING blockedBy — each side only ever removes a blocker, so
taking either row alone resurrects one the other side satisfied. Then
confirm with bun run check:seeds-integrity; budgets take main's numbers unless this branch
changed the UI; stay on the branch, no new PR, gate green, commit, no
push.
finalize_failed, work discarded.
Recovery: re-dispatch immediately (dispatch re-fetches), or fix
locally in a throwaway git worktree and push.seedId at reap. After any run that
declined or no-op'd, verify the seed's status ON ORIGIN
(git show origin/main:.seeds/issues.jsonl) and reopen if needed..seeds conflict
resolution risks dropping a close from one side. At wrap-up, verify
EVERY dispatched seed's final status and re-close with evidence.core.bare=true on the repo.
Never let the check:all hook run sandboxed: commit data/docs-only
changes with --no-verify (CI arbitrates), and run suspect
git-fixture tests with the sandbox disabled. Repair: git config core.bare false.sd update the issue description first so the tracker matches.sd plan outcome <pl> --result ... if a plan completed.sd create) — dogfood yield is half the point.ml record the failures/patterns worth keeping (with
--resolution on failures).sd sync && ml sync; if the hook blocks sandboxed, commit the
.seeds/.mulch diff with --no-verify.git status must end "up to date with origin". Do NOT trust push
output alone — remote: N of N required status checks are expected
appears on a SUCCESSFUL push and is easy to misread as a rejection
(warren-53c0). After any push that touched .seeds/, verify the
remote tip is clean:
git fetch origin && bun run check:seeds-integrity against
git show origin/main:.seeds/issues.jsonl (or the branch you
pushed), and confirm jq -r .id <(git show origin/<ref>:.seeds/issues.jsonl) | sort | uniq -d
is empty. The pre-push hook refuses a corrupt tip locally, but a
misread of push output has still left a bad file on origin once.© jayminwest, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/warren-dogfood-pipeline of jayminwest/warren.
Open the folder on GitHubat commit 9595340
Warren Dogfood Pipeline next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Warren Dogfood Pipeline this skilljayminwest/warren | 481 | — | ~2.9k | Automated safety check: Pass | MIT | |
| MCP Server Builderanthropics/skills | 180k | 63 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Hook Development for Claude Code Pluginsanthropics/claude-plugins-official | 38k | 10 repos | ~4.1k | Automated safety check: Notes | Apache-2.0 | |
| Using Superpowersfarm-fe/farm | 5.6k | 36 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Executing Plans Inlineobra/superpowers | 297k | 2 repos | ~5.1k | Automated safety check: Pass | MIT | |
| Skill CreatorAzure/azqr | 796 | 89 repos | ~8.2k | Automated safety check: Pass | Apache-2.0 |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
anthropics/claude-plugins-official
Explains how to write Claude Code plugin hooks, both prompt-based checks and bash commands, for events such as PreToolUse, Stop and SessionStart.
farm-fe/farm
A skill your agent uses when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions
obra/superpowers
Has the agent carry out an implementation plan itself, task by task in the current session, keeping a ledger, proving each step with a test and ending with one whole-branch review.
Azure/azqr
Create new skills, modify and improve existing skills, and measure skill performance.
anthropics/claude-plugins-official
Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.
jayminwest/warren
Bump warren onto the latest published @os-eco/ versions across package.json + bun.lock and the Dockerfile CLI pins, then run the gates and open a PR.
jayminwest/warren
File a batch of contributor-ready GitHub issues from the seeds backlog, re-verifying every candidate against HEAD first so no dead issue reaches a contributor.
jayminwest/warren
Prepare, cut, and verify a warren release — tracker audits, version bump, CHANGELOG curation, ROADMAP update, push, then watch the pipeline through to published artifacts.
jayminwest/warren
Audit and triage open Seeds (sd) issues — find which can be closed, auto-close high-confidence completed ones, and report borderline cases.
jayminwest/warren
Independent design review of a warren web-UI change. An agent skill from jayminwest/warren.
Categories
Full prioritize → dispatch → shepherd → track pipeline against the live warren instance. Warren Dogfood Pipeline is an agent skill from jayminwest/warren. Full prioritize → dispatch → shepherd → track pipeline against the live warren instance.
Warren Dogfood Pipeline fits situations like: agent Workflows work in your project.
Run `npx skills add jayminwest/warren --skill warren-dogfood-pipeline -a claude-code`. Or copy the skill folder (.agents/skills/warren-dogfood-pipeline in jayminwest/warren) into .claude/skills/warren-dogfood-pipeline in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jayminwest/warren --skill warren-dogfood-pipeline -a codex`. Or copy the skill folder (.agents/skills/warren-dogfood-pipeline in jayminwest/warren) into .agents/skills/warren-dogfood-pipeline in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jayminwest/warren --skill warren-dogfood-pipeline -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/warren-dogfood-pipeline, .gemini/skills/warren-dogfood-pipeline, .github/skills/warren-dogfood-pipeline and .opencode/skills/warren-dogfood-pipeline in your project.
Going by SKILL.md and its folder, Warren Dogfood Pipeline needs the command-line tools its instructions call (bun, git, gh and jq) and credentials named WARREN_API_TOKEN. Our summary lists: A credential in WARREN_API_TOKEN.
SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Warren Dogfood Pipeline is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Warren Dogfood Pipeline: MCP Server Builder (anthropics/skills, 180k stars), Hook Development for Claude Code Plugins (anthropics/claude-plugins-official, 38k stars), Using Superpowers (farm-fe/farm, 5.6k stars) and Executing Plans Inline (obra/superpowers, 297k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jayminwest (a GitHub user) maintains it in jayminwest/warren, which has 481 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 9, 2026.
Source: jayminwest/warren on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.