Commit Graph
24 Commits
Author SHA1 Message Date
DietrichGebertandClaude Opus 4.8 d9e1480c74 feat: add ponytail-debt skill (#40)
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>
2026-06-15 02:32:45 +02:00
DietrichGebertandClaude Opus 4.8 f3da910b4f feat: refine ruleset from a full-project field review (#39)
* feat: refine ruleset from a full-project field review

A reviewer ran ponytail across a 9-phase rewrite (protocol, PC app, simulator,
RPi daemon, ESP32 firmware) and flagged three gaps. All three land in SKILL.md
and propagate to AGENTS.md + the rule copies:

- Promote the one-runnable-check rule to a headline ("Lazy code without its
  check is unfinished"), enforced as a check-rule-copies invariant.
- Hardware carve-out in "When NOT to be lazy": a real device is never the spec
  ideal (clock drift, sensor offset), leave the calibration knob.
- Clarify the Output rule: explanation the user explicitly asked for is not
  debt, only unrequested prose is.

Fallback instructions kept in sync. Rule-copy check + tests green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* test: add a behavior gate proving the refinements actually fire

The refinements were verified as injected text, but injected != behavioral.
This adds a behavior eval that probes each refined rule on a task that should
trigger it:

- hardware    -> does the output leave a calibration knob?
- explanation -> when a write-up is explicitly requested, is it given in full?
- onecheck    -> is a runnable check left behind?

benchmarks/behavior.yaml runs the probes (baseline vs ponytail arm); the
grader benchmarks/behavior.js is proven by tests/behavior.test.js (8 cases,
RED/GREEN, no API key, runs in CI). Live-confirmed: the model under the
current ruleset passes all three gates, graded by the same grader.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 02:02:50 +02:00
DietrichGebertandClaude Opus 4.8 b545f1536a chore: bump version to 4.3.0 (#38)
Release-prep bump across the Claude Code, Codex, and Gemini manifests.
Cutting v4.3.0 also fixes #33: gemini extensions install pulls the latest
GitHub release, and gemini-extension.json was added after v4.2.0, so it
was missing from the release tarball. Shipping it in a release fixes the
plain install command.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 00:01:51 +02:00
DietrichGebertandClaude Opus 4.8 01578c0cd4 fix: honor CLAUDE_CONFIG_DIR in hooks (#37)
ponytail-activate.js and ponytail-runtime.js hardcoded ~/.claude for the
flag file and settings lookup, ignoring CLAUDE_CONFIG_DIR. Add a shared
getClaudeDir() to ponytail-config.js and use it in both. Regression test
added to hooks.test.js.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 00:00:01 +02:00
DietrichGebertandClaude Opus 4.8 94d231cd32 docs: document Antigravity and VS Code Codex extension support (#36)
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>
2026-06-14 23:40:53 +02:00
DietrichGebertandClaude Opus 4.8 16319c7bc9 docs: document GitHub Copilot CLI support (#30)
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>
2026-06-14 18:27:21 +02:00
EmerikoandClaude Opus 4.8 0882e2d256 docs: correct ponytail-help update steps to match Claude Code docs
Use auto-update or marketplace refresh + /reload-plugins (not reinstall), and
note that an unrecognized /plugin means Claude Code itself needs updating.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 14:18:42 +02:00
EmerikoandClaude Opus 4.8 82cff4bcd2 docs: add Update section to ponytail-help
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 14:14:34 +02:00
EmerikoandClaude Opus 4.8 004256cdc6 chore: add FUNDING.yml for GitHub Sponsors
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 06:35:00 +02:00
EmerikoandClaude Opus 4.8 88431defba docs: replace em dashes with plain punctuation across prose
Swap em dashes for commas/colons/periods in the README, skills, AGENTS.md and
its five rule copies, examples, command files, and benchmark README. Rule
copies stay in sync (same edit applied to all) and the invariant guard passes.

Left untouched on purpose: the vendored caveman SKILL.md (verbatim third-party
text), the dated benchmark writeups in results/ (historical records), and
.js code comments.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 06:06:03 +02:00
EmerikoandClaude Opus 4.8 6abc9f0acc fix(examples): keep response schema in API example, do not leak ORM fields
The ponytail API example returned the raw ORM model, which exposes every
column. Restore a response_model whitelist (the trust boundary) while still
cutting the repository/service/exception ceremony. Matches the skill's own
'never cut security' rule.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 05:33:30 +02:00
EmerikoandClaude Opus 4.8 321a59c82f feat: reproducible promptfoo benchmark + 3-model results
Commit a promptfoo harness (config + arm prompts + LOC metric + vendored
caveman SKILL) so anyone can re-run the comparison: no-skill vs caveman vs
ponytail, across Haiku / Sonnet / Opus, 10 runs per cell, median reported.

Replace the old unreproducible 6-task chart with assets/benchmark-3model.svg
from this run, and reframe the README to the reproducible numbers: ponytail
writes 80-94% less code, costs 47-77% less, and runs 3-6x faster than a
no-skill agent on every model. benchmarks/README.md carries the median tables
and the reproduce command. Drops nothing that is not measured.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 05:08:55 +02:00
EmerikoandClaude Opus 4.8 93f3ac1d76 docs: add badge row and proof bar to README top
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 03:43:32 +02:00
EmerikoandClaude Opus 4.8 24b0b98e16 chore: release v4.2.0
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 03:28:33 +02:00
DietrichGebert 46c5c28b35 feat: add OpenCode adapter
Thin OpenCode plugin injecting the ponytail ruleset via experimental.chat.system.transform, reusing the shared instruction builder. Verified end-to-end on OpenCode 1.17.4. Supersedes #15.
2026-06-13 03:20:44 +02:00
Emeriko 95ba2bafcb docs: add social preview image 2026-06-12 04:32:55 +02:00
Emeriko 24644d4cfa docs: readme grows a sense of humor 2026-06-12 04:23:40 +02:00
Emeriko c7a62ec779 docs: update logo 2026-06-12 04:20:19 +02:00
Emeriko 3a8ed4fc36 docs: readme practices what it preaches 2026-06-12 04:05:20 +02:00
Emeriko 243a28f1dd feat: skill v3 — compress SKILL.md 115 to 95 lines
Skill preaching minimalism was 2x caveman length. Smaller file cuts
per-read and per-session-injection cost. Benchmark: beats caveman on
all areas now — 135.7k vs 138.4k tokens, 127s vs 136s, 47 vs 117 loc.
2026-06-12 03:58:44 +02:00
Emeriko 3b4626a987 feat: skill v2 — output cap, reflex ladder, benchmarks
v1 lost to caveman on tokens/time despite minimal code: it wrote
essays defending each simplification. v2 caps explanation at three
lines and ships the lazy version instead of stalling on necessity
questions. Benchmark: 136.6k tok vs caveman 138.4k, code 47 vs 117
lines across 5 tasks.
2026-06-12 03:54:06 +02:00
Emeriko 7a3475c0f4 feat: full plugin integration + cross-agent rules 2026-06-12 03:25:15 +02:00
Emeriko 2c8c175b4f docs: add logo 2026-06-12 03:13:52 +02:00
Emeriko ef604945d8 feat: add ponytail skill, examples, README 2026-06-12 03:05:59 +02:00