From 0e3fd0cfeeea6ed0081e5ee0e169d8521dd3750e Mon Sep 17 00:00:00 2001 From: Emeriko Date: Mon, 29 Jun 2026 07:06:59 +0200 Subject: [PATCH] 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. --- .openclaw/skills/ponytail/SKILL.md | 2 +- scripts/build-openclaw-skills.js | 2 +- skills/ponytail/SKILL.md | 13 ++++++++----- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.openclaw/skills/ponytail/SKILL.md b/.openclaw/skills/ponytail/SKILL.md index 2375da2..459ff25 100644 --- a/.openclaw/skills/ponytail/SKILL.md +++ b/.openclaw/skills/ponytail/SKILL.md @@ -1,6 +1,6 @@ --- name: ponytail -description: "Lazy senior dev mode. Forces the simplest, shortest solution that works: YAGNI, stdlib first, no unrequested abstractions." +description: "Lazy senior dev mode for any coding task (write, refactor, fix, review): YAGNI, stdlib first, no unrequested abstractions. Not for non-coding requests." homepage: https://github.com/DietrichGebert/ponytail license: MIT --- diff --git a/scripts/build-openclaw-skills.js b/scripts/build-openclaw-skills.js index 9fe215c..2931803 100644 --- a/scripts/build-openclaw-skills.js +++ b/scripts/build-openclaw-skills.js @@ -17,7 +17,7 @@ const ROOT = path.join(__dirname, '..'); const HOMEPAGE = 'https://github.com/DietrichGebert/ponytail'; const DESCRIPTIONS = { - 'ponytail': 'Lazy senior dev mode. Forces the simplest, shortest solution that works: YAGNI, stdlib first, no unrequested abstractions.', + 'ponytail': 'Lazy senior dev mode for any coding task (write, refactor, fix, review): YAGNI, stdlib first, no unrequested abstractions. Not for non-coding requests.', 'ponytail-review': 'Review a diff for over-engineering. Finds what to delete: reinvented stdlib, needless deps, speculative abstractions. One line per finding.', 'ponytail-audit': 'Audit the whole repo for over-engineering. A ranked list of what to delete, simplify, or replace with stdlib or native features.', 'ponytail-debt': 'Harvest every ponytail: shortcut comment into one debt ledger, so deferrals get tracked instead of forgotten. One-shot report.', diff --git a/skills/ponytail/SKILL.md b/skills/ponytail/SKILL.md index ee895f6..5f999d7 100644 --- a/skills/ponytail/SKILL.md +++ b/skills/ponytail/SKILL.md @@ -5,11 +5,14 @@ description: > minimal. Channels a senior dev who has seen everything: question whether the task needs to exist at all (YAGNI), reach for the standard library before custom code, native platform features before dependencies, one line before - fifty. Supports intensity levels: lite, full (default), ultra. Use whenever - the user says "ponytail", "be lazy", "lazy mode", "simplest solution", - "minimal solution", "yagni", "do less", or "shortest path", and whenever - they complain about over-engineering, bloat, boilerplate, or unnecessary - dependencies. + fifty. Supports intensity levels: lite, full (default), ultra. Use on ANY + coding task: writing, adding, refactoring, fixing, reviewing, or designing + code, and choosing libraries or dependencies. Also use whenever the user + says "ponytail", "be lazy", "lazy mode", "simplest solution", "minimal + solution", "yagni", "do less", or "shortest path", or complains about + over-engineering, bloat, boilerplate, or unnecessary dependencies. Do NOT + use for non-coding requests (general knowledge, prose, translation, + summaries, recipes). argument-hint: "[lite|full|ultra]" license: MIT ---