Skip to content

Latest commit

 

History

History
59 lines (52 loc) · 11.7 KB

File metadata and controls

59 lines (52 loc) · 11.7 KB

Agent Portability

Ponytail is an agent-portable skill distribution. The skills in skills/ hold the core behavior; host-specific files are adapters that make that behavior easy to load in a given agent.

Supported Adapters

Host Files Notes
Claude Code .claude-plugin/plugin.json, commands/, hooks/claude-codex-hooks.json, hooks/ Full plugin install with session activation, mode tracking, commands, and statusline support.
Codex .codex-plugin/plugin.json, hooks/claude-codex-hooks.json, hooks/, skills/ Plugin install with the same skills plus lifecycle hooks for activation and mode tracking.
CodeBuddy .claude-plugin/plugin.json, .claude-plugin/marketplace.json, hooks/claude-codex-hooks.json, hooks/, skills/ CodeBuddy Code reads the Claude-format manifests when no .codebuddy-plugin/ exists and expands ${CLAUDE_PLUGIN_ROOT} in hook commands, so /plugin marketplace add DietrichGebert/ponytail + /plugin install ponytail@ponytail installs the Claude plugin unchanged. The hooks detect it by CODEBUDDY_PLUGIN_ROOT, keep the mode flag in $CODEBUDDY_CONFIG_DIR or ~/.codebuddy, and answer in hookSpecificOutput JSON. No subagent injection: CodeBuddy discards SubagentStart hook output. Verified with CodeBuddy CLI 2.161.2.
Grok Build root plugin.json, .grok-plugin/marketplace.json, skills/, commands/ grok plugin install DietrichGebert/ponytail --trust, then enable. Grok can auto-invoke ponytail from its coding-task skill description; /ponytail makes activation explicit. Grok lifecycle hooks are not used because passive hook output cannot inject instructions.
Goose plugin.json, skills/, AGENTS.md goose plugin install https://github.com/DietrichGebert/ponytail.git clones the repo into ~/.agents/plugins/ponytail/ and imports the six skills as ponytail:<skill>. Always-on rules come from AGENTS.md: goose reads it from the project (git root down to the working directory) and from ~/.agents/AGENTS.md, plus .goosehints from ~/.config/goose/. No lifecycle hooks, so no persistent /ponytail levels. Verified with Goose 1.53.0.
Muse Code (Meta) AGENTS.md, skills/ Muse reads AGENTS.md (or CLAUDE.md) in the project once the workspace is trusted, and ~/.config/muse/AGENTS.md for every project. Skills: copy the folders from skills/ to ~/.agents/skills/, or run muse skills install ./skills/<name> --scope user per skill. Instruction-tier, no /ponytail levels or hooks. Verified with Muse Code 1.4.2.
OpenCode .opencode/plugins/ponytail.mjs, .opencode/command/, hooks/, skills/ Server plugin injects the ruleset each turn via experimental.chat.system.transform and persists /ponytail switches; reuses the shared instruction builder. Installs globally with opencode plugin add @dietrichgebert/ponytail (OpenCode writes the plugins entry itself), or per project through the plugins array in opencode.json.
Kilo Code .opencode/plugins/ponytail.mjs (npm), AGENTS.md Kilo is built on OpenCode and runs ponytail's OpenCode plugin unchanged: add { "plugin": ["@dietrichgebert/ponytail"] } to kilo.jsonc (project) or ~/.config/kilo/kilo.jsonc (global). That injects the ruleset every turn, keeps /ponytail level switches, and registers /ponytail-review and the other commands. Without the plugin, Kilo still loads AGENTS.md from the project root or ~/.config/kilo/AGENTS.md (instruction-tier). Verified with Kilo CLI 7.8.3, which shares its core with the VS Code extension.
pi pi-extension/, skills/, hooks/ Package extension: injects the ruleset each turn through the shared instruction builder and registers the /ponytail commands.
Oh My Pi (omp) .claude-plugin/marketplace.json, pi-extension/, skills/ Installs through the marketplace and runs the pi extension unchanged (omp reads the pi key in package.json). Verified with omp 18.6.1: the ruleset arrives every turn and the skills are listed.
Kimi Code .kimi-plugin/plugin.json, AGENTS.md, skills/ Native Kimi plugin: systemPromptPath puts AGENTS.md into the system prompt every turn, and the six skills double as slash commands. No hooks. Verified with Kimi Code 2.1.1 over ACP: the ruleset is in the system prompt and /ponytail-review staged activates the skill with its target.
Hermes Agent plugin.yaml, __init__.py, skills/ Native Hermes plugin: injects active mode through pre_llm_call, rewrites gateway /ponytail-* skill commands into agent prompts, registers /ponytail mode switching, and exposes bundled skills as ponytail:<skill>.
Gemini CLI gemini-extension.json, AGENTS.md, commands/, skills/ Extension manifest points contextFileName at AGENTS.md for always-on rules, and reuses the existing commands/*.toml and skills/, which Gemini CLI auto-discovers. The Claude/Codex hook map is not placed at Gemini's auto-discovered hooks/hooks.json path.
Qwen Code gemini-extension.json, AGENTS.md, commands/, skills/ qwen extensions install DietrichGebert/ponytail:ponytail installs through Qwen's Gemini CLI compatibility: AGENTS.md becomes always-on context, the six /ponytail commands are migrated, and the six skills are registered. The Claude/Codex lifecycle hooks are not used, so levels don't persist. Verified with Qwen Code 0.24.7 and ponytail 4.11.0 (needs 4.11.0 or later, see #1021).
Cursor hooks/cursor-hooks.json, scripts/cursor-hooks.js, hooks/, .cursor/rules/ponytail.mdc Native hooks: node scripts/cursor-hooks.js install merges sessionStart (default-level ruleset via additional_context) and beforeSubmitPrompt (/ponytail level tracking, new-level ruleset via additional_context) into ~/.cursor/hooks.json, or .cursor/hooks.json with --project, keeping unrelated hooks. No subagent injection (Cursor's subagentStart takes only permission/user_message) and no sessionStart in cloud agents. .cursor/rules/ponytail.mdc stays the instruction-only alternative; while that rule is in a workspace the hooks inject only a notice. Contract and verification record: cursor-hooks.md.
Windsurf .windsurf/rules/ponytail.md Project rule.
Cline (extension and CLI) .clinerules/ponytail.md, skills/, AGENTS.md Copy .clinerules/ponytail.md into a project's .clinerules/, or into ~/.cline/rules/ (or ~/Documents/Cline/Rules/) for every project; Cline also reads AGENTS.md from the project root. cline skill add DietrichGebert/ponytail installs the six skills into .agents/skills/. Instruction-tier, no /ponytail levels or hooks. Rules and skills verified with Cline CLI 3.0.68.
GitHub Copilot .github/copilot-instructions.md Repository instruction file.
GitHub Copilot CLI .github/plugin/, AGENTS.md, .github/copilot-instructions.md, ~/.copilot/copilot-instructions.md Plugin-supported (copilot plugin marketplace add DietrichGebert/ponytail + copilot plugin install ponytail@ponytail). Fallback instruction mode remains: per-project from AGENTS.md or .github/copilot-instructions.md, or globally from ~/.copilot/copilot-instructions.md (instruction-tier, no /ponytail levels or hooks).
Antigravity AGENTS.md Reads AGENTS.md at the repo root as always-on rules (like .cursorrules/CLAUDE.md); .agents/rules/ also works for workspace rules. Instruction-tier.
CodeWhale AGENTS.md Reads AGENTS.md from the repo root as project instructions; also reads CLAUDE.md and .claude/instructions.md as fallbacks. Instruction-tier.
VS Code + Codex extension AGENTS.md The Codex extension reads AGENTS.md (repo root, or ~/.codex/AGENTS.md globally). Instruction-tier; the full Codex plugin row above adds /ponytail levels and hooks.
JetBrains Junie AGENTS.md Junie reads AGENTS.md once you point it there in Settings → Tools → Junie → Project Settings → Guidelines Path (not automatic yet); this repo ships AGENTS.md, and .junie/guidelines.md is Junie's legacy path. Instruction-tier.
Amp (Sourcegraph) AGENTS.md Amp reads AGENTS.md from the working directory and parent directories up to $HOME (plus global config like ~/.config/amp/AGENTS.md); falls back to AGENT.md/CLAUDE.md. Instruction-tier.
Factory Droid AGENTS.md, skills/ Droid reads AGENTS.md from the working directory up to the git root (also inside .factory/ and .agents/ there) and globally from ~/.factory/AGENTS.md. It loads SKILL.md skills from .factory/skills/ or ~/.factory/skills/, so copy the folders from skills/ there for review, audit and the other skills. Instruction-tier, no /ponytail levels or hooks.
Command Code skills/, AGENTS.md cmd skills add https://github.com/DietrichGebert/ponytail installs the six skills into .commandcode/skills/ (add --global for ~/.commandcode/skills/); .agents/skills/ is auto-discovered too. Reads AGENTS.md as project memory every session. Instruction-tier, no /ponytail levels or hooks.
Freebuff CLI AGENTS.md, skills/ Freebuff puts the project-root AGENTS.md (or CLAUDE.md if there is none) into every session as project instructions, and reads ~/.agents.md globally. It loads SKILL.md skills from .agents/skills/ or .claude/skills/ in the project and from ~/.agents/skills/ or ~/.claude/skills/ globally, so copy the folders from skills/ there for review, audit and the other skills. Instruction-tier, no /ponytail levels or hooks.
DeepSeek Harness (dsh) AGENTS.md, skills/ DSH loads AGENTS.md (or CLAUDE.md) from the project root down to the working directory, plus ~/.dsh/AGENTS.md ($DSH_HOME) for every project, into the first request of each session. It loads SKILL.md skills from ~/.agents/skills/, so copy the folders from skills/ there for review, audit and the other skills. Instruction-tier, no /ponytail levels or hooks. Verified with dsh 0.2.0-rc.2.
Jules (Google) AGENTS.md Jules automatically reads AGENTS.md from the repository root. Instruction-tier.
Kiro .kiro/steering/ponytail.md Steering rule; copy globally or into a project.
Qoder .qoder/rules/ponytail.md, .qoder-plugin/plugin.json, hooks/qoder-hooks.json, skills/, AGENTS.md Qoder auto-loads AGENTS.md as always-on context; .qoder/rules/ponytail.md provides per-project rules; the plugin manifest points at skills/ for the six ponytail skills (invoked as /ponytail, /ponytail-review, etc. via the Skill system). Full plugin-tier: hooks/qoder-hooks.json template registers UserPromptSubmit (mode activation + ruleset injection) and PreToolUse with `task
Zed AGENTS.md Auto-includes AGENTS.md from the worktree root as one of its default rule files for the Agent Panel. Instruction-tier.
Generic agents AGENTS.md or skills/*/SKILL.md Copy the compact rule file or load the skill files directly.

Adapter Rule

Keep adapters thin. When a host supports skills or hooks, point it at the existing skills/ and hooks/ files. When a host only supports project instructions, keep its copied rule text aligned with AGENTS.md.

Portable Behavior

  • skills/ponytail/SKILL.md: lazy senior dev mode
  • skills/ponytail-review/SKILL.md: over-engineering review
  • skills/ponytail-audit/SKILL.md: whole-repo over-engineering audit
  • skills/ponytail-debt/SKILL.md: harvest ponytail: shortcuts into a tracked ledger
  • skills/ponytail-gain/SKILL.md: measured-impact scoreboard from the benchmark
  • skills/ponytail-help/SKILL.md: quick reference
  • AGENTS.md: compact always-on instruction set for agents without skill support