22 Commits
Author SHA1 Message Date
Emeriko 0e3fd0cfee Trigger ponytail skill on any coding task, not just keywords
The skill description was written keyword-first ("use when the user
says lazy / complains about boilerplate"), so a model-invoked host
only loaded it on prompts that hit those words. Plain coding tasks
(add a date picker, write a dedupe function, build a cache, fix a bug)
were skipped, exactly the over-build cases ponytail is best at.

Tested via a skill-router proxy (3 runs, 12 labeled prompts): recall
on coding tasks was 2/6 before, 6/6 after, with precision unchanged at
6/6 (no false fires on non-coding prompts). Fix is one clause naming
coding tasks explicitly plus a negative clause to keep precision.

Trigger descriptions live in two source-of-truth spots, both updated:
skills/ponytail/SKILL.md and the DESCRIPTIONS map in
scripts/build-openclaw-skills.js (.openclaw regenerated). The store
blurbs in the plugin manifests are listing metadata, not triggers, so
they are left alone.
2026-06-29 07:06:59 +02:00
dedc97ca7c fix: comprehension-first guard + reuse rung (#245, #217) (#253)
#245 "Dangerously lazy": add an operational "fix the root cause, not the
symptom" directive — grep every caller of the function you touch and fix the
shared function once (the smaller diff). Validated on the agentic benchmark: on
a shared-helper bug-fix trap, baseline fixes the root cause 1/6 while ponytail
does 6/6 on both Sonnet 4.6 (the model the issue was filed on) and Opus 4.8,
verified by reading the produced code. Plain prose ("trace the flow") did not
move it; the actionable, lazy-framed directive did.

#217 "Missing rung": add ladder rung 2 "Already in this codebase? Reuse it,
don't re-write it." Propagated across SKILL.md, AGENTS.md, all agent mirror
copies, the hook fallback, and both READMEs (check-rule-copies passes).

Benchmark: 4 new deterministic quality-tier tasks (reuse-slug, reuse-money,
trace-transfer, trace-amount) with selftest-proven good/bad refs; harness gains
multi-file seed support in --selftest, distinctive-behaviour reuse detection,
and counts in-file __main__/demo() self-checks as test LOC (not source bloat)
for surgical tasks. Full writeup in
benchmarks/results/2026-06-22-issue-245-217-comprehension.md.

Also carries the in-progress todo-null benchmark task already present in the
working tree.

Co-authored-by: Dietrich Gebert <dgebert@Dietrichs-MacBook-Pro.local>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 23:30:05 +02:00
DietrichGebertandClaude Opus 4.8 ff5d0936be docs: sweep em dashes out of the active published surface (#180)
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>
2026-06-19 02:37:02 +02:00
DietrichGebertandClaude Opus 4.8 bd6176a9b3 fix: drop em dashes from ponytail-audit/review scope wording (#163) (#179)
#163 clarified the audit/review Boundaries scope but reintroduced em dashes,
which this repo deliberately purged (commit 88431de "replace em dashes with
plain punctuation across prose"). Keeps the clearer wording, swaps the em dash
for a period. .openclaw mirrors regenerated; suite green.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 02:20:55 +02:00
DietrichGebertandClaude Opus 4.8 cf9cbd531e Revert #82 (Modern Web Guidance rung-3) and re-sync mirrors (#178)
#82 added a "Web tasks: rung 3 lookup" section to the always-on ponytail
SKILL.md, about an external `modern-web` CLI most users won't have installed.
It's optional bloat in the always-on ruleset, and it broke CI by leaving the
.openclaw mirror stale.

Reverts the section from skills/ponytail/SKILL.md, the README callout, and
examples/web-platform-lookup.md, then regenerates the .openclaw mirror and
removes the Spanish callout that #174 had mirrored. Suite green (56/56).

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 02:09:30 +02:00
Liad YosefandClaude fe963cae99 Add Modern Web Guidance as the rung-3 lookup for web tasks (#82)
Scoped, optional reference to Modern Web Guidance so the agent can look
up native platform features on web work, filling the gap at rung 3 of
the ladder. Three additive changes, no compact-ruleset surgery:

- skills/ponytail/SKILL.md: "Web tasks: rung 3 lookup" section after the
  ladder. Runtime source only, not byte-compared, so no six-file sync.
- README.md: one "Pairs well with" line, matching the Caveman pattern.
- examples/web-platform-lookup.md: a <dialog closedby> vs Radix
  before/after in the date-picker.md style.

Lookup, not license: MWG suggests, the ladder filters. Absent CLI
changes nothing. No new INVARIANT phrase; rule-copy check stays green.

Co-authored-by: Claude <noreply@anthropic.com>
2026-06-19 00:26:36 +02:00
Arthur MorrillandClaude Opus 4.8 b0c5820bb1 Fix scope ambiguity in ponytail-audit and ponytail-review Boundaries (#163)
The Boundaries line opened with "Complexity only, correctness bugs, security
holes, and performance go to a normal review pass." The comma after "Complexity
only" fuses the in-scope item with the out-of-scope list, so a model parsing it
literally can read all four categories as targets of the audit — the opposite of
intent.

Restate the boundary as an explicit scope fence: name what is in scope, then
mark correctness/security/performance as explicitly out of scope. "Out of scope"
is phrasing models reliably honor as a constraint. Also aligns the scope term
with each skill's stated purpose (over-engineering).

Applied to both skills/ and the .openclaw/ mirror so the two trees stay in sync.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 00:26:33 +02:00
Ben YounesandClaude Opus 4.8 15749f7ffc feat(skills): add /ponytail-gain measured-impact scoreboard (#108)
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>
2026-06-19 00:24:37 +02:00
Aiden 766c5ca5b1 feat: add argument-hint to ponytail skill (#85) 2026-06-19 00:24:20 +02:00
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
92efc4a648 feat: add ponytail-audit skill (#20)
* 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>
2026-06-14 17:35:45 +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 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
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
Paul c16f967d37 feat: codex support 2026-06-12 08:49:33 -04:00
dgebertandClaude Fable 5 cbb8859f39 feat: skill v4 — test reflex, ceiling comments, robust-variant rule
Hardening per the A-F benchmark brief: non-trivial logic leaves one
runnable check; ponytail: comments on ceiling-bearing shortcuts name
the ceiling and upgrade path; prefer the edge-case-correct stdlib
option at equal size. Applied to SKILL.md, all cross-agent rule
copies, the hook fallback, and a guard line in ponytail-review.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 12:11:47 +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 ef604945d8 feat: add ponytail skill, examples, README 2026-06-12 03:05:59 +02:00