Em dashes crept back into examples, docs/platform-native.md, several READMEs,
the ponytail-debt skill, and a command file since 88431de. Replaced with plain
punctuation (commas, matching the house convention), .openclaw mirror
regenerated. Follows 88431de's scope: leaves untouched the vendored caveman
SKILL.md and the dated benchmarks/results/ writeups (historical records).
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
A one-shot scoreboard showing ponytail's measured benchmark impact
(less code, less cost, more speed) as plain ASCII bars, then points to
/ponytail-debt and /ponytail-audit for this repo's real numbers.
Complements the existing skills rather than duplicating them: debt
harvests the ponytail: ledger, audit finds what's cuttable, gain shows
the measured why-it-matters. No per-repo savings number is ever printed
-- the unbuilt version was never written, so there is no real baseline
to subtract from in a live repo. The bars carry the published benchmark
medians (5 tasks, 3 models); per-repo figures come from debt's count.
Ships every adapter the other commands ship: Claude commands/*.toml,
OpenCode .opencode/command/*.md, OpenClaw skill (generated), Pi command
registration. Help card, command enumeration, portability table, and
README updated in the same change.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
New examples (examples/):
- modal-dialog: <dialog> vs Radix/react-modal
- url-params: URLSearchParams vs query-string
- number-formatting: Intl.NumberFormat vs numeral
- infinite-scroll: IntersectionObserver vs react-infinite-scroll-component
- deep-clone: structuredClone vs lodash.cloneDeep / JSON hack
- group-by: Object.groupBy vs lodash.groupBy
New doc (docs/platform-native.md):
Comprehensive reference of platform-native solutions across HTML elements,
CSS, Browser APIs, Node.js stdlib, Python stdlib, and database features.
Covers 60+ cases where the platform already has what developers reach for
a package to do.
CodeWhale reads AGENTS.md from project root per its CONFIGURATION.md —
ponytail already works with no adapter file needed. Added dedicated install
section, agent count bump (13→14), and portability table row.
Also adds Zed to the grouped instruction-only adapter list (same
mechanism: reads AGENTS.md natively).
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
* Add GitHub Copilot plugin and marketplace manifests for Ponytail
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add Copilot hook adapters and plugin data runtime precedence
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Document Copilot plugin install flow and instruction fallback mode
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix Copilot hooks for native output context and state-only mode tracking
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: add Copilot CLI namespaced command examples
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Collapse Copilot hooks into shared activate/mode-tracker
The Copilot hook files duplicated ponytail-activate.js and
ponytail-mode-tracker.js, differing only in output shape. Move that
difference into writeHookOutput (isCopilot branch) and point
copilot-hooks.json at the shared hooks. Deletes both forks (-73 lines).
Refs #1
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Align Copilot manifest version to 4.4.0 with cross-manifest parity test
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Make Copilot and Codex host detection exclusive in runtime output routing
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add Copilot debt command validation with a pull request acceptance checklist
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Removed PR template
* Drop tautological copilot command-form test
The namespaced-form assertion built '/ponytail:ponytail-debt' from two
constants and compared it to itself — it tests string concatenation, not
wiring. The file-exists check above already catches a renamed manifest.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
* docs: add a Commands reference to the README
The commands were only mentioned scattered through prose, and two install
blurbs had gone stale (OpenCode omitted /ponytail-debt, Gemini omitted audit
and debt). Add one canonical Commands table (all five commands + what each
does + which hosts support them) and point the install blurbs at it so they
stop drifting as commands are added.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs: add pi to the portability table, de-stale the Gemini row
pi was a supported integration (pi-extension, README install, registers all
the commands) but had no row in the Supported Adapters table. The Gemini row
also enumerated an outdated command list; point it at commands/*.toml
generically so it stops drifting.
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Closes the last gap from the field review: deferral creep. /ponytail-debt
greps the repo for `ponytail:` comment markers and prints a ledger
(file:line, what was simplified, ceiling, upgrade trigger), flagging any
marker with no trigger as the rot risk. One-shot, reports only.
Full parity like ponytail-audit: skill + commands/.toml + .opencode/.md + pi
registerCommand (+ test) + agent-portability + README.
Verified: tests 32/32 (pi command list updated), rule check green, the scan
finds the repo's real markers, and a live end-to-end run produced a correct
ledger (2 markers, 1 no-trigger, prose/examples excluded).
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Both read AGENTS.md, which the repo already ships, so ponytail works
from the repo root with no extra setup. Add agent-portability rows and a
README note. Instruction-tier (no /ponytail levels or hooks).
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot CLI already reads AGENTS.md and .github/copilot-instructions.md
(both shipped), plus a global ~/.copilot/copilot-instructions.md. Add an
agent-portability row and a README note. Instruction-tier only: no
/ponytail levels or hooks.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* feat: add Gemini CLI support
Add a thin Gemini CLI extension adapter (closes#22). The manifest points
contextFileName at the existing AGENTS.md for always-on rules and reuses the
repo's commands/*.toml (/ponytail, /ponytail-review) and skills/, which Gemini
CLI auto-discovers — no rule text is duplicated.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* test: read manifest inside cases for a clean RED
The manifest was parsed at module scope, so reverting the adapter crashed the
whole test file at load (ENOENT) and collapsed all four cases into one
unreadable failure. Read it inside each case via a helper that asserts existence
first, so a missing or malformed manifest surfaces as clear per-case assertion
failures instead of a stack trace.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Add ponytail-audit skill
Whole-codebase audit for over-engineering. Scans a repository and produces a
ranked report of things to delete, simplify, or replace with stdlib/native
equivalents.
* Drop counting-by-number heuristics: remove Phase 5 (structural audit) and TODO-age heuristic per review
* feat: slim ponytail-audit and add cross-platform parity
Rewrite the ponytail-audit skill to ponytail-review's lean shape (35 lines,
was 111): same five tags, repo-wide scope, ranked output. Drop the
prescriptive phase walkthrough, sampling rules, report template, and the
license frontmatter that no other skill carries.
Add the adapters the skill was missing so it ships on every supported
platform the way ponytail-review does:
- commands/ponytail-audit.toml
- .opencode/command/ponytail-audit.md
- pi-extension registerCommand (+ test)
- agent-portability and README entries
Co-authored-by: Alexander Brandt <github@a13x.de>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Emeriko <dietrich.gebert@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>