@wenaixi/dsh-ponytail 5.1.0 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +130 -241
- package/README.md +99 -104
- package/lib/client.js +58 -16
- package/lib/ponytail-config.d.ts +11 -2
- package/lib/ponytail-config.d.ts.map +1 -1
- package/lib/ponytail-config.js +4 -2
- package/lib/ponytail-config.js.map +1 -1
- package/lib/ponytail-instructions.d.ts.map +1 -1
- package/lib/ponytail-instructions.js +31 -31
- package/lib/ponytail-instructions.js.map +1 -1
- package/lib/ponytail-priority.d.ts +2 -2
- package/lib/ponytail-priority.js +2 -2
- package/lib/ponytail-remote.d.ts +19 -10
- package/lib/ponytail-remote.d.ts.map +1 -1
- package/lib/ponytail-remote.js +55 -52
- package/lib/ponytail-remote.js.map +1 -1
- package/lib/ponytail-skills.d.ts +10 -0
- package/lib/ponytail-skills.d.ts.map +1 -1
- package/lib/ponytail-skills.js +23 -5
- package/lib/ponytail-skills.js.map +1 -1
- package/lib/ponytail.d.ts +4 -0
- package/lib/ponytail.d.ts.map +1 -1
- package/lib/ponytail.js +37 -12
- package/lib/ponytail.js.map +1 -1
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +1 -1
- package/skills/descriptions.en.json +8 -0
- package/skills/descriptions.zh.json +8 -0
- package/skills/ponytail/SKILL.md +89 -46
- package/skills/ponytail-audit/SKILL.md +27 -17
- package/skills/ponytail-debt/SKILL.md +27 -14
- package/skills/ponytail-gain/SKILL.md +32 -19
- package/skills/ponytail-help/SKILL.md +53 -32
- package/skills/ponytail-review/SKILL.md +36 -24
|
@@ -1,58 +1,79 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ponytail-help
|
|
3
3
|
description: >
|
|
4
|
-
|
|
4
|
+
Quick-reference card for all ponytail modes, skills, and commands.
|
|
5
|
+
One-shot display, not a persistent mode. Trigger: /ponytail-help,
|
|
6
|
+
"ponytail help", "what ponytail commands", "how do I use ponytail".
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
# Ponytail Help
|
|
9
|
+
# Ponytail Help
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
Display this reference card when invoked. One-shot, do NOT change mode,
|
|
12
|
+
write flag files, or persist anything.
|
|
10
13
|
|
|
11
|
-
##
|
|
14
|
+
## Levels
|
|
12
15
|
|
|
13
|
-
|
|
|
14
|
-
|
|
15
|
-
| **Lite** | `/ponytail lite` |
|
|
16
|
-
| **Full** | `/ponytail` |
|
|
17
|
-
| **Ultra** | `/ponytail ultra` | YAGNI
|
|
16
|
+
| Level | Trigger | What change |
|
|
17
|
+
|-------|---------|-------------|
|
|
18
|
+
| **Lite** | `/ponytail lite` | Build what's asked, name the lazier alternative in one line. |
|
|
19
|
+
| **Full** | `/ponytail` | The ladder enforced: YAGNI → stdlib → native → one line → minimum. Default. |
|
|
20
|
+
| **Ultra** | `/ponytail ultra` | YAGNI extremist. Deletion before addition. Challenges requirements before building. |
|
|
18
21
|
|
|
19
|
-
|
|
22
|
+
Level sticks until changed or session end.
|
|
20
23
|
|
|
21
|
-
##
|
|
24
|
+
## Skills
|
|
22
25
|
|
|
23
|
-
|
|
|
24
|
-
|
|
25
|
-
| **ponytail** | `/ponytail` |
|
|
26
|
-
| **ponytail-review** | `/ponytail-review` |
|
|
27
|
-
| **ponytail-audit** | `/ponytail-audit` |
|
|
28
|
-
| **ponytail-debt** | `/ponytail-debt` |
|
|
29
|
-
| **ponytail-gain** | `/ponytail-gain` |
|
|
30
|
-
| **ponytail-help** | `/ponytail-help` |
|
|
26
|
+
| Skill | Trigger | What it does |
|
|
27
|
+
|-------|---------|--------------|
|
|
28
|
+
| **ponytail** | `/ponytail` | Lazy mode itself. Simplest solution that works. |
|
|
29
|
+
| **ponytail-review** | `/ponytail-review` | Over-engineering review: `L42: yagni: factory, one product. Inline.` |
|
|
30
|
+
| **ponytail-audit** | `/ponytail-audit` | Whole-repo over-engineering audit: ranked list of what to delete. |
|
|
31
|
+
| **ponytail-debt** | `/ponytail-debt` | Harvest `ponytail:` shortcut comments into a tracked ledger. |
|
|
32
|
+
| **ponytail-gain** | `/ponytail-gain` | Measured-impact scoreboard: less code, less cost, more speed. |
|
|
33
|
+
| **ponytail-help** | `/ponytail-help` | This card. |
|
|
31
34
|
|
|
35
|
+
Codex uses `@ponytail`, `@ponytail-review`, and `@ponytail-help`; Claude Code
|
|
36
|
+
and OpenCode use the slash-command forms above (OpenCode ships all six as
|
|
37
|
+
slash commands).
|
|
32
38
|
|
|
33
|
-
##
|
|
39
|
+
## Deactivate
|
|
34
40
|
|
|
35
|
-
|
|
36
|
-
`/ponytail off`
|
|
41
|
+
Say "stop ponytail" or "normal mode". Resume anytime with `/ponytail`.
|
|
42
|
+
`/ponytail off` also works.
|
|
37
43
|
|
|
38
|
-
##
|
|
44
|
+
## Configure Default Mode
|
|
39
45
|
|
|
40
|
-
|
|
46
|
+
Default mode = `full`, auto-active every session. Change it:
|
|
41
47
|
|
|
42
|
-
|
|
48
|
+
**Environment variable** (highest priority):
|
|
43
49
|
```bash
|
|
44
50
|
export PONYTAIL_DEFAULT_MODE=ultra
|
|
45
51
|
```
|
|
46
52
|
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
|
|
53
|
+
**Profile patch** (`profiles/<name>/cordis.patch.yml`, entry `- id: ponytail`):
|
|
54
|
+
```yaml
|
|
55
|
+
config:
|
|
56
|
+
defaultMode: lite
|
|
50
57
|
```
|
|
51
58
|
|
|
52
|
-
|
|
59
|
+
The plugin config card writes the patch for you; `/ponytail default <mode>`
|
|
60
|
+
does the same from a prompt. Set `"off"` to disable auto-activation on session
|
|
61
|
+
start, activate manually with `/ponytail` when wanted.
|
|
53
62
|
|
|
54
|
-
|
|
63
|
+
Resolution: env var > profile patch > built-in `full`. The card shows all three
|
|
64
|
+
sources and which one wins, so a level that "looks" set but is shadowed is
|
|
65
|
+
visible instead of silently ignored.
|
|
55
66
|
|
|
56
|
-
##
|
|
67
|
+
## Update
|
|
57
68
|
|
|
58
|
-
|
|
69
|
+
```bash
|
|
70
|
+
dsh plugin --profile <name> add @wenaixi/dsh-ponytail
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Restart the host after updating: a plugin entry's artifact fingerprint is
|
|
74
|
+
computed at process start and frozen, so a page refresh alone keeps serving
|
|
75
|
+
the previous build. A fresh install only needs a refresh.
|
|
76
|
+
|
|
77
|
+
## More
|
|
78
|
+
|
|
79
|
+
Full docs + examples: https://github.com/DietrichGebert/ponytail
|
|
@@ -1,45 +1,57 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ponytail-review
|
|
3
3
|
description: >
|
|
4
|
-
|
|
4
|
+
Code review focused exclusively on over-engineering. Finds what to delete:
|
|
5
|
+
reinvented standard library, unneeded dependencies, speculative abstractions,
|
|
6
|
+
dead flexibility. One line per finding: location, what to cut, what replaces
|
|
7
|
+
it. Use when the user says "review for over-engineering", "what can we
|
|
8
|
+
delete", "is this over-engineered", "simplify review", or invokes
|
|
9
|
+
/ponytail-review. Complements correctness-focused review, this one only
|
|
10
|
+
hunts complexity.
|
|
5
11
|
---
|
|
6
12
|
|
|
7
|
-
|
|
13
|
+
Review diffs for unnecessary complexity. One line per finding: location, what
|
|
14
|
+
to cut, what replaces it. The diff's best outcome is getting shorter.
|
|
8
15
|
|
|
9
|
-
##
|
|
16
|
+
## Format
|
|
10
17
|
|
|
11
|
-
`L
|
|
18
|
+
`L<line>: <tag> <what>. <replacement>.`, or `<file>:L<line>: ...` for
|
|
19
|
+
multi-file diffs.
|
|
12
20
|
|
|
13
|
-
|
|
21
|
+
Tags:
|
|
14
22
|
|
|
15
|
-
- `delete:`
|
|
16
|
-
- `stdlib:`
|
|
17
|
-
- `native:`
|
|
18
|
-
- `yagni:`
|
|
19
|
-
- `shrink:`
|
|
23
|
+
- `delete:` dead code, unused flexibility, speculative feature. Replacement: nothing.
|
|
24
|
+
- `stdlib:` hand-rolled thing the standard library ships. Name the function.
|
|
25
|
+
- `native:` dependency or code doing what the platform already does. Name the feature.
|
|
26
|
+
- `yagni:` abstraction with one implementation, config nobody sets, layer with one caller.
|
|
27
|
+
- `shrink:` same logic, fewer lines. Show the shorter form.
|
|
20
28
|
|
|
21
|
-
##
|
|
29
|
+
## Examples
|
|
22
30
|
|
|
23
|
-
❌
|
|
31
|
+
❌ "This EmailValidator class might be more complex than necessary, have you
|
|
32
|
+
considered whether all these validation rules are needed at this stage?"
|
|
24
33
|
|
|
25
|
-
✅ `L12-38: stdlib: 27
|
|
34
|
+
✅ `L12-38: stdlib: 27-line validator class. "@" in email, 1 line, real validation is the confirmation mail.`
|
|
26
35
|
|
|
27
|
-
✅ `L4: native:
|
|
36
|
+
✅ `L4: native: moment.js imported for one format call. Intl.DateTimeFormat, 0 deps.`
|
|
28
37
|
|
|
29
|
-
✅ `repo.py:L88: yagni:
|
|
38
|
+
✅ `repo.py:L88: yagni: AbstractRepository with one implementation. Inline it until a second one exists.`
|
|
30
39
|
|
|
31
|
-
✅ `L52-71: delete:
|
|
40
|
+
✅ `L52-71: delete: retry wrapper around an idempotent local call. Nothing replaces it.`
|
|
32
41
|
|
|
33
|
-
✅ `L30-44: shrink:
|
|
42
|
+
✅ `L30-44: shrink: manual loop builds dict. dict(zip(keys, values)), 1 line.`
|
|
34
43
|
|
|
35
|
-
##
|
|
44
|
+
## Scoring
|
|
36
45
|
|
|
37
|
-
|
|
46
|
+
End with the only metric that matters: `net: -<N> lines possible.`
|
|
38
47
|
|
|
39
|
-
|
|
48
|
+
If there is nothing to cut, say `Lean already. Ship.` and stop.
|
|
40
49
|
|
|
41
|
-
##
|
|
50
|
+
## Boundaries
|
|
42
51
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
52
|
+
Scope: over-engineering and complexity only. Correctness bugs, security holes,
|
|
53
|
+
and performance are explicitly out of scope. Route them to a normal review
|
|
54
|
+
pass, not this one. A single smoke test or `assert`-based
|
|
55
|
+
self-check is the ponytail minimum, not bloat, never flag it for deletion.
|
|
56
|
+
Does not apply the fixes, only lists them.
|
|
57
|
+
"stop ponytail-review" or "normal mode": revert to verbose review style.
|