@polderlabs/bizar-omp 0.9.0 → 0.10.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.
Files changed (44) hide show
  1. package/README.md +7 -3
  2. package/agents/bizar-architect.md +1 -1
  3. package/agents/bizar-implementer.md +8 -2
  4. package/agents/bizar-planner.md +1 -1
  5. package/agents/bizar-reviewer.md +7 -2
  6. package/agents/bizar-security-reviewer.md +1 -1
  7. package/agents/bizar-verifier.md +1 -1
  8. package/dist/cli/doctor.d.ts +4 -4
  9. package/dist/cli/install.d.ts +1 -1
  10. package/dist/cli/install.d.ts.map +1 -1
  11. package/dist/cli/install.js +20 -5
  12. package/dist/cli/install.js.map +1 -1
  13. package/dist/extension.js +2 -2
  14. package/dist/extension.js.map +1 -1
  15. package/dist/omp/autonomous-settings.js +2 -2
  16. package/dist/omp/autonomous-settings.js.map +1 -1
  17. package/dist/omp/compatibility-manifest.json +35 -0
  18. package/dist/omp/compatibility.d.ts +17 -17
  19. package/dist/omp/compatibility.d.ts.map +1 -1
  20. package/dist/omp/compatibility.js +25 -13
  21. package/dist/omp/compatibility.js.map +1 -1
  22. package/dist/services/recipes.d.ts.map +1 -1
  23. package/dist/services/recipes.js +42 -3
  24. package/dist/services/recipes.js.map +1 -1
  25. package/docs/compatibility/baseline.json +2 -2
  26. package/docs/development/ci-release-implementation-guide.md +3 -1
  27. package/docs/development/contributing-and-releasing.md +23 -6
  28. package/docs/development/omp-compatibility.md +119 -0
  29. package/docs/releases/0.10.0.md +17 -0
  30. package/docs/releases/support-matrix.md +1 -1
  31. package/package.json +5 -2
  32. package/prompts/bizar-system.md +8 -0
  33. package/rules/bizar-core.md +1 -0
  34. package/skills/bizar-omp/SKILL.md +12 -1
  35. package/skills/bizar-testing/SKILL.md +14 -0
  36. package/skills/bizar-uiux/SKILL.md +96 -0
  37. package/skills/bizar-uiux/agents/openai.yaml +3 -0
  38. package/skills/bizar-uiux/references/principles.md +244 -0
  39. package/skills/bizar-uiux/references/review-checklist.md +114 -0
  40. package/skills/bizar-uiux/references/sources.md +32 -0
  41. package/skills/omp-native-development/references/source-manifest.json +1 -1
  42. package/skills/ponytail/LICENSE +21 -0
  43. package/skills/ponytail/SKILL.md +119 -0
  44. package/skills/ponytail/UPSTREAM.md +27 -0
@@ -0,0 +1,244 @@
1
+ # Bizar UI/UX principle catalog
2
+
3
+ This reference translates common UX psychology and UI composition laws into operational design guidance. Use principles as hypotheses about user behavior, not as automatic rules. Context, accessibility, product conventions, and observed user evidence take precedence.
4
+
5
+ ## Decision-making and cognitive effort
6
+
7
+ ### Hick's Law
8
+ Decision time tends to grow as the number and complexity of choices increases.
9
+
10
+ Use it to:
11
+ - reduce simultaneous choices on time-sensitive paths;
12
+ - separate advanced options from common actions;
13
+ - provide sensible defaults and recommendations;
14
+ - split genuinely complex tasks into meaningful stages.
15
+
16
+ Do not use it to remove necessary comparison information or force users through excessive wizard steps.
17
+
18
+ ### Choice overload
19
+ Too many alternatives can reduce decision confidence and increase abandonment.
20
+
21
+ Prefer filtering, ranking, comparison, presets, and progressive disclosure over dumping all options into one undifferentiated list.
22
+
23
+ ### Cognitive load
24
+ Every control, instruction, unfamiliar pattern, remembered value, and context switch consumes mental effort.
25
+
26
+ Reduce load by making state visible, reusing conventions, grouping information, removing redundant decisions, and keeping required information near the action that needs it.
27
+
28
+ ### Working memory
29
+ Users should not have to remember information from one view to operate another.
30
+
31
+ Keep important values, prior selections, requirements, and task context visible or retrievable. Prefer recognition over recall.
32
+
33
+ ### Miller-style chunking
34
+ Human short-term memory benefits from meaningful grouping; exact numeric limits are not a design target.
35
+
36
+ Break dense information into semantically coherent groups. Do not create arbitrary seven-item rules.
37
+
38
+ ### Chunking
39
+ Group related information into understandable units to improve scanning and comprehension.
40
+
41
+ Use headings, spacing, progressive disclosure, grouped controls, and summaries that reflect task structure.
42
+
43
+ ### Tesler's Law / conservation of complexity
44
+ Some complexity is inherent and must live somewhere.
45
+
46
+ Move repetitive, technical, or machine-manageable complexity into the system. Keep decision-relevant complexity visible to the user.
47
+
48
+ ### Occam-style simplicity
49
+ When two designs solve the same problem equally well, prefer the one with fewer assumptions and unnecessary mechanisms.
50
+
51
+ Do not confuse simplicity with fewer pixels. A slightly richer interface may be simpler to understand.
52
+
53
+ ### Complexity bias
54
+ People can overvalue complicated explanations or systems.
55
+
56
+ Do not add configuration, abstraction, dashboards, or workflow steps merely to make a product appear powerful.
57
+
58
+ ## Familiarity, models, and consistency
59
+
60
+ ### Jakob's Law
61
+ Users bring expectations learned from other products.
62
+
63
+ Use familiar navigation, control behavior, terminology, form patterns, and platform conventions for ordinary tasks. Deviate when there is a clear user benefit, and make the new behavior learnable.
64
+
65
+ ### Mental models
66
+ Users act according to their internal understanding of how the system works.
67
+
68
+ Make cause/effect, state, ownership, and object relationships match the conceptual model presented by the interface. Avoid labels or layouts that imply a false structure.
69
+
70
+ ### Consistency
71
+ Repeated patterns reduce learning cost and strengthen predictability.
72
+
73
+ Keep the same component, state, terminology, placement, and behavior for the same concept. Differentiate only when semantics differ.
74
+
75
+ ### Paradox of the active user
76
+ Users commonly start using software instead of studying instructions first.
77
+
78
+ Make the primary path self-explanatory. Put help in context, reveal advanced guidance when needed, and do not rely on manuals or onboarding slides to explain basic operation.
79
+
80
+ ## Target acquisition and interaction speed
81
+
82
+ ### Fitts's Law
83
+ Larger and nearer targets are easier and faster to acquire.
84
+
85
+ Give important controls adequate hit areas, place frequent actions where pointer/thumb travel is low, avoid tiny icon-only targets, and keep destructive actions separated from common actions.
86
+
87
+ ### Doherty Threshold
88
+ Interfaces feel much more fluid when interaction feedback arrives quickly; the often-cited target is around 400 ms for keeping the interaction loop engaged.
89
+
90
+ Acknowledge actions immediately. Use optimistic state, skeletons, inline progress, streaming, or background execution when the underlying work is slower.
91
+
92
+ ### Parkinson's Law
93
+ Work tends to expand to fill the available time.
94
+
95
+ For UX, constrain tasks and forms to what users actually need. Do not make a workflow longer because the available surface permits it.
96
+
97
+ ## Motivation, progress, and memory
98
+
99
+ ### Goal-gradient effect
100
+ Motivation often increases as users perceive themselves getting closer to completion.
101
+
102
+ Expose meaningful progress, completed steps, remaining work, and achievable next actions. Avoid fake progress indicators.
103
+
104
+ ### Zeigarnik effect
105
+ Unfinished tasks remain cognitively salient.
106
+
107
+ Preserve drafts and progress, make incomplete work easy to resume, and use pending-state cues carefully. Do not weaponize unfinished-state anxiety for dark patterns.
108
+
109
+ ### Peak-end rule
110
+ People disproportionately remember intense moments and the ending of an experience.
111
+
112
+ Prioritize failure recovery, success confirmation, checkout completion, onboarding finish, and other high-emotion points. A polished ending cannot compensate for a broken flow, but a poor ending can damage an otherwise good one.
113
+
114
+ ### Serial position effect
115
+ People tend to remember items at the beginning and end of a sequence more readily.
116
+
117
+ Put high-priority actions or information in strong positions, but do not hide lower-ranked critical items in the middle of long lists.
118
+
119
+ ### Flow
120
+ Sustained work benefits from clear goals, immediate feedback, manageable challenge, and minimal interruption.
121
+
122
+ Keep expert workflows fast, preserve context, avoid unnecessary modal interruptions, and reduce repetitive confirmation where risk does not require it.
123
+
124
+ ## Attention and emphasis
125
+
126
+ ### Selective attention
127
+ Users focus on stimuli related to their current goal and ignore much of the rest.
128
+
129
+ Put task-relevant information near the point of action. Do not assume a banner, tooltip, or distant status indicator will be noticed simply because it exists.
130
+
131
+ ### Von Restorff / isolation effect
132
+ A visually distinct item attracts attention and is more memorable.
133
+
134
+ Use singular emphasis for the primary action, warning, selected state, or exceptional item. Avoid multiple competing accent treatments.
135
+
136
+ ### Aesthetic-usability effect
137
+ Visually polished interfaces are often perceived as easier to use.
138
+
139
+ Use visual quality to create trust and reduce perceived friction, but never let polish hide bad interaction design, inaccessible contrast, or ambiguous behavior.
140
+
141
+ ### Cognitive bias
142
+ Judgment is affected by predictable heuristics and context.
143
+
144
+ Use behavioral principles to reduce mistakes and improve comprehension, not to manipulate users into decisions against their interests.
145
+
146
+ ## Grouping and Gestalt structure
147
+
148
+ ### Proximity
149
+ Nearby elements are perceived as related.
150
+
151
+ Use spacing before borders. Keep labels near their controls, related actions together, and unrelated groups separated.
152
+
153
+ ### Common region
154
+ Elements enclosed by a shared boundary are perceived as a group.
155
+
156
+ Use containers only when the boundary communicates a real relationship. Too many cards create visual noise and competing regions.
157
+
158
+ ### Similarity
159
+ Elements with similar appearance are interpreted as related.
160
+
161
+ Keep shared semantics visually consistent. Avoid making different actions look identical or identical actions look unrelated.
162
+
163
+ ### Uniform connectedness
164
+ Explicit visual connections imply stronger relationships than mere proximity.
165
+
166
+ Use connecting lines, stepper paths, grouped controls, and shared backgrounds when relationships must be unmistakable.
167
+
168
+ ### Prägnanz / simplicity of form
169
+ People tend to interpret complex visual input as the simplest stable structure available.
170
+
171
+ Create clean silhouettes, obvious hierarchy, and unambiguous grouping. Remove ornamental geometry that makes the structure harder to parse.
172
+
173
+ ### Closure
174
+ People infer complete forms from partial visual information.
175
+
176
+ Useful for icons, charts, logos, and restrained decorative composition. Do not depend on closure for essential controls or information where ambiguity would hurt usability.
177
+
178
+ ### Continuity
179
+ Aligned elements and continuous visual paths are perceived as related.
180
+
181
+ Use alignment to lead scanning through forms, tables, timelines, navigation, and multi-step flows. Break continuity intentionally to signal a semantic break.
182
+
183
+ ### Symmetry
184
+ Balanced symmetrical structures are often perceived as coherent and stable.
185
+
186
+ Use symmetry for calm, comparison, and balanced layouts. Break it deliberately when hierarchy or directional emphasis matters more.
187
+
188
+ ## Composition and visual hierarchy
189
+
190
+ ### Rule of thirds
191
+ A 3x3 compositional grid can help establish balanced focal placement in image-heavy, landing-page, editorial, or promotional layouts.
192
+
193
+ Treat it as a composition aid, not an application-layout requirement. Functional product interfaces usually benefit more from grid consistency and task hierarchy than photographic composition rules.
194
+
195
+ ### White space
196
+ Unused space is an active structural tool.
197
+
198
+ Use it to separate groups, increase legibility, create emphasis, and reduce density. Avoid both cramped interfaces and wasteful whitespace that pushes important controls off-screen.
199
+
200
+ ### Typography hierarchy
201
+ Text size, weight, spacing, and style should reveal the information structure before the user reads every word.
202
+
203
+ Keep heading levels coherent, body text readable, metadata subordinate, labels distinguishable, and emphasis limited. Do not use font size alone to communicate semantics.
204
+
205
+ ### Contrast
206
+ Contrast directs attention and establishes hierarchy.
207
+
208
+ Use contrast for readability, primary actions, selected state, errors, and key distinctions. Verify color contrast and avoid relying on color as the only signal.
209
+
210
+ ### Color theory
211
+ Color carries perceptual and cultural associations and can encode hierarchy/state.
212
+
213
+ Use a constrained semantic palette, consistent state colors, accessible contrast, and theme-aware tokens. Avoid assigning meaning only through hue and avoid decorative color that competes with status/action semantics.
214
+
215
+ ## Robustness and resilience
216
+
217
+ ### Postel-style robustness
218
+ User input is variable and imperfect; interfaces should tolerate reasonable variation while producing clear, consistent output.
219
+
220
+ Normalize benign input, accept common formatting differences, show constraints before failure, and return specific recovery guidance. Do not apply this principle to security boundaries where permissiveness creates risk.
221
+
222
+ ### Pareto principle
223
+ A small subset of actions often accounts for most use.
224
+
225
+ Optimize frequent, high-value paths first. Keep rare expert functions available without letting them dominate the primary interface.
226
+
227
+ ## Practical combination rules
228
+
229
+ Some principles reinforce each other:
230
+
231
+ - Hick + choice overload + cognitive load -> reduce and structure decisions.
232
+ - Fitts + selective attention + contrast -> make the primary action easy to find and hit.
233
+ - Proximity + common region + similarity + connectedness -> make grouping unambiguous.
234
+ - Jakob + consistency + mental models -> preserve predictable behavior.
235
+ - Goal-gradient + Zeigarnik + peak-end -> design progress, resumption, and completion intentionally.
236
+ - Doherty + flow -> keep interaction feedback fast and interruptions low.
237
+ - White space + typography hierarchy + contrast -> establish readable visual hierarchy.
238
+
239
+ Some principles can conflict:
240
+
241
+ - Minimalism vs necessary complexity: Tesler wins when hidden complexity harms decisions.
242
+ - Familiarity vs innovation: Jakob wins unless novelty produces a material benefit.
243
+ - Emphasis vs consistency: Von Restorff should create one intentional exception, not a new visual language.
244
+ - Robust input vs security: security constraints override permissive input handling.
@@ -0,0 +1,114 @@
1
+ # UI/UX review checklist
2
+
3
+ Use only the sections relevant to the product and task. This is a review aid, not a requirement to produce findings in every category.
4
+
5
+ ## 1. Primary task and information architecture
6
+ - Can a first-time user identify the screen's purpose within a few seconds?
7
+ - Is one primary action visually and semantically dominant where appropriate?
8
+ - Are navigation labels based on user concepts rather than implementation terminology?
9
+ - Are advanced/rare actions available without competing with the common path?
10
+ - Are related items grouped consistently by spacing, region, alignment, and styling?
11
+ - Does the hierarchy remain clear when content grows, localizes, or wraps?
12
+
13
+ ## 2. Decisions and cognitive load
14
+ - Is the user asked to make more choices than necessary at once?
15
+ - Are defaults safe and meaningful?
16
+ - Can complex choices be filtered, compared, or progressively disclosed?
17
+ - Does the interface require remembering values or instructions from elsewhere?
18
+ - Are labels, values, requirements, and consequences visible at the point of decision?
19
+
20
+ ## 3. Actions and controls
21
+ - Are target sizes and hit areas adequate for pointer and touch?
22
+ - Are frequent actions easy to reach?
23
+ - Are destructive actions separated and clearly distinguished?
24
+ - Do icons have obvious meaning or accessible labels/tooltips where needed?
25
+ - Do controls look interactive and expose disabled/selected/pressed/loading state?
26
+ - Are keyboard focus order and shortcuts coherent?
27
+
28
+ ## 4. Feedback and system state
29
+ - Is there immediate acknowledgment after an action?
30
+ - Are loading, queued, background, partial, success, failure, empty, and offline states handled?
31
+ - Can users tell whether something is saved, synced, selected, running, or complete?
32
+ - Do long operations expose progress or meaningful status rather than appearing frozen?
33
+ - Are repeated submissions prevented or safely idempotent where needed?
34
+
35
+ ## 5. Forms and input
36
+ - Are labels persistent and clear?
37
+ - Are format requirements visible before submission?
38
+ - Is reasonable input variation accepted and normalized safely?
39
+ - Are errors attached to the relevant field and written as recovery instructions?
40
+ - Is entered data preserved after recoverable errors?
41
+ - Are optional fields actually necessary?
42
+ - Are autocomplete, input modes, and platform-native controls used appropriately?
43
+
44
+ ## 6. Visual hierarchy
45
+ - Does typography reveal structure without relying on reading order alone?
46
+ - Is whitespace used to communicate grouping rather than simply increase emptiness?
47
+ - Is contrast sufficient and intentional?
48
+ - Is accent color reserved for meaningful priority/state?
49
+ - Are cards/borders/shadows doing structural work, or just adding visual noise?
50
+ - Does the layout remain balanced without flattening important hierarchy?
51
+
52
+ ## 7. Consistency and familiarity
53
+ - Does the interface follow the host platform's conventions?
54
+ - Are repeated concepts named and represented consistently?
55
+ - Are similar actions placed and styled similarly?
56
+ - Does a redesign preserve useful learned behavior or clearly teach the change?
57
+ - Are custom controls justified over native/design-system primitives?
58
+
59
+ ## 8. Accessibility
60
+ - Can all interactive controls be reached and used with keyboard alone?
61
+ - Is focus visible?
62
+ - Are accessible names, roles, states, headings, and landmarks appropriate?
63
+ - Is color never the only carrier of meaning?
64
+ - Is text/background and UI-component contrast adequate?
65
+ - Does the interface survive 200%+ zoom/reflow where applicable?
66
+ - Is meaningful motion reducible and non-essential?
67
+ - Are touch targets and spacing usable for motor impairments?
68
+ - Do validation and notifications work with assistive technology?
69
+
70
+ ## 9. Responsive/mobile behavior
71
+ - Does priority change appropriately on small screens instead of merely stacking everything?
72
+ - Are touch targets, thumb reach, and gesture discoverability considered?
73
+ - Are sticky controls preventing content access?
74
+ - Are tables, dense filters, and multi-column layouts redesigned rather than squeezed?
75
+ - Does orientation/viewport change preserve state?
76
+
77
+ ## 10. Onboarding and discoverability
78
+ - Can users begin without reading a manual?
79
+ - Is contextual guidance available exactly where uncertainty appears?
80
+ - Is progressive disclosure used for advanced functionality?
81
+ - Are empty states instructional and actionable?
82
+ - Does onboarding teach the core behavior rather than describe features abstractly?
83
+
84
+ ## 11. Progress, completion, and resumption
85
+ - Is meaningful progress visible for multi-step tasks?
86
+ - Can users resume unfinished work?
87
+ - Are final confirmation and next steps clear?
88
+ - Are success screens dead ends, or do they help users continue appropriately?
89
+ - Are drafts/autosave states understandable?
90
+
91
+ ## 12. Error prevention and recovery
92
+ - Can the interface prevent common errors before they happen?
93
+ - Are irreversible/destructive actions proportionately protected?
94
+ - Are undo/retry/recover options available when practical?
95
+ - Are errors specific, local, and actionable?
96
+ - Does the system fail safely under latency, duplicate input, refresh, disconnect, or stale state?
97
+
98
+ ## 13. Review of implementation quality
99
+ - Does the implementation reuse existing design tokens/components?
100
+ - Are one-off CSS values creating design drift?
101
+ - Are semantic HTML and native controls used where suitable?
102
+ - Are interactive states implemented, not just shown in static mockups?
103
+ - Do loading/error/empty states have actual code paths?
104
+ - Are responsive and accessibility behaviors covered by tests or manual verification?
105
+
106
+ ## Final prioritization
107
+
108
+ Before reporting, ask:
109
+
110
+ 1. Which issue most blocks the user's goal?
111
+ 2. Which change removes the most friction for the most common path?
112
+ 3. Which issue creates the highest error/accessibility risk?
113
+ 4. Which recommendations can share one underlying fix?
114
+ 5. Which observations are merely stylistic preference and should be omitted?
@@ -0,0 +1,32 @@
1
+ # Canonical skill repository
2
+
3
+ Standalone source distribution: https://github.com/DrB0rk/Borks-uiux-skill
4
+
5
+ BizarHarness-OMP includes the skill by default so OMP can discover it from the installed package. The standalone repository is the intended canonical home for the reusable skill itself; Bizar's packaged copy must stay semantically aligned with it.
6
+
7
+ # Sources and provenance
8
+
9
+ This skill is an original operational synthesis. It does not reproduce article text, examples, illustrations, or proprietary visual assets from the source sites.
10
+
11
+ ## Laws of UX
12
+
13
+ - Website: https://lawsofux.com/
14
+ - Creator: Jon Yablonski
15
+ - Scope consulted: the site's current law index and public explanatory pages.
16
+ - The site states that its content is licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0.
17
+ - Because BizarHarness-OMP is an independently licensed software package, keep this skill to independently worded summaries of general design/psychology principles and attribution. Do not copy the site's prose, examples, diagrams, posters, or branded graphics.
18
+
19
+ Principles represented in this skill include the site's current index of concepts such as aesthetic-usability effect, choice overload, chunking, cognitive load, Doherty threshold, Fitts's Law, flow, goal-gradient effect, Hick's Law, Jakob's Law, Gestalt grouping principles, mental models, working memory, active-user behavior, Pareto/Parkinson effects, peak-end rule, Postel-style robustness, selective attention, serial-position effects, Tesler's Law, isolation effect, and unfinished-task effects.
20
+
21
+ ## Laws of UI
22
+
23
+ - Website: https://www.uilaws.com/
24
+ - Scope consulted: the current public law index.
25
+ - The site footer states "All rights reserved."
26
+ - Do not copy its page text or visual assets. This skill independently expresses common UI principles and design practice.
27
+
28
+ Principles represented from its public index include symmetry, rule of thirds, white space, color theory, typography hierarchy, consistency, proximity, contrast, closure, continuity, Fitts's Law, Hick's Law, and Jakob's Law.
29
+
30
+ ## Evidence discipline
31
+
32
+ These principles are heuristics, not empirical guarantees for every context. When product analytics, usability tests, accessibility requirements, platform conventions, or direct user research contradict a heuristic, prefer the stronger task-specific evidence.
@@ -8,7 +8,7 @@
8
8
  "tag": "v18.6.1",
9
9
  "commit": "2a2c6dcbbb558c0f8145f67f28b3370984f2bf60",
10
10
  "npm_integrity": "sha512-UZoZWYUfflDgd0HVDP12X8r4hiYSps7XMf96U7o8ScThAuw6OoI+zBBIypRfTQnzg0QJljpchpa7i0xqCNyXcA==",
11
- "qualification": "The unmodified published @oh-my-pi/pi-coding-agent package at 18.6.1 (integrity above) was installed from npm and passed `npm run verify:omp`: packed install, repeat install, native extension discovery, the session-id-keyed ownership lease and profile isolation. Source discovery uses the version-scoped SDK prelude import adapter. The bundled docs/source inventory remains pinned to the research commit below."
11
+ "qualification": "The unmodified published @oh-my-pi/pi-coding-agent package at 18.6.1 (integrity above) passed the repository's native qualification gate. The bundled docs/source inventory remains pinned to the separate research commit below; runtime and mobile surfaces have their own qualification gates."
12
12
  },
13
13
  "inspected_target": {
14
14
  "tag": "v18.5.0",
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 DietrichGebert
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,119 @@
1
+ ---
2
+ name: ponytail
3
+ description: >
4
+ Forces the laziest solution that actually works, simplest, shortest, most
5
+ minimal. Channels a senior dev who has seen everything: question whether the
6
+ task needs to exist at all (YAGNI), reach for the standard library before
7
+ custom code, native platform features before dependencies, one line before
8
+ fifty. Supports intensity levels: lite, full (default), ultra. Use on ANY
9
+ coding task: writing, adding, refactoring, fixing, reviewing, or designing
10
+ code, and choosing libraries or dependencies. Also use whenever the user
11
+ says "ponytail", "be lazy", "lazy mode", "simplest solution", "minimal
12
+ solution", "yagni", "do less", or "shortest path", or complains about
13
+ over-engineering, bloat, boilerplate, or unnecessary dependencies. Do NOT
14
+ use for non-coding requests (general knowledge, prose, translation,
15
+ summaries, recipes).
16
+ license: MIT
17
+ ---
18
+
19
+ # Ponytail
20
+
21
+ You are a lazy senior developer. Lazy means efficient, not careless. You have
22
+ seen every over-engineered codebase and been paged at 3am for one. The best
23
+ code is the code never written.
24
+
25
+ ## Persistence
26
+
27
+ ACTIVE EVERY RESPONSE. No drift back to over-building. Still active if
28
+ unsure. Off only: "stop ponytail" / "normal mode". Default: **full**.
29
+ Switch in OMP: `/skill:ponytail lite|full|ultra`.
30
+
31
+ ## The ladder
32
+
33
+ Stop at the first rung that holds:
34
+
35
+ 1. **Does this need to exist at all?** Speculative need = skip it, say so in one line. (YAGNI)
36
+ 2. **Already in this codebase?** A helper, util, type, or pattern that already lives here → reuse it. Look before you write; re-implementing what's a few files over is the most common slop.
37
+ 3. **Stdlib does it?** Use it.
38
+ 4. **Native platform feature covers it?** `<input type="date">` over a picker lib, CSS over JS, DB constraint over app code.
39
+ 5. **Already-installed dependency solves it?** Use it. Never add a new one for what a few lines can do.
40
+ 6. **Can it be one line?** One line.
41
+ 7. **Only then:** the minimum code that works.
42
+
43
+ The ladder is a reflex, not a research project — but it runs *after* you
44
+ understand the problem, not instead of it. Read the task and the code it
45
+ touches first, trace the real flow end to end, then climb. Two rungs work →
46
+ take the higher one and move on. The first lazy solution that works is the
47
+ right one — once you actually know what the change has to touch.
48
+
49
+ **Bug fix = root cause, not symptom.** A report names a symptom. Before you
50
+ edit, grep every caller of the function you're about to touch. The lazy fix IS
51
+ the root-cause fix: one guard in the shared function is a smaller diff than a
52
+ guard in every caller — and patching only the path the ticket names leaves
53
+ every sibling caller still broken. Fix it once, where all callers route through.
54
+
55
+ ## Rules
56
+
57
+ - No unrequested abstractions: no interface with one implementation, no factory for one product, no config for a value that never changes.
58
+ - No boilerplate, no scaffolding "for later", later can scaffold for itself.
59
+ - Deletion over addition. Boring over clever, clever is what someone decodes at 3am.
60
+ - Fewest files possible. Shortest working diff wins — but only once you understand the problem. The smallest change in the wrong place isn't lazy, it's a second bug.
61
+ - Complex request? Ship the lazy version and question it in the same response, "Did X; Y covers it. Need full X? Say so." Never stall on an answer you can default.
62
+ - Two stdlib options, same size? Take the one that's correct on edge cases. Lazy means writing less code, not picking the flimsier algorithm.
63
+ - Mark deliberate simplifications that cut a real corner with a known ceiling (global lock, O(n²) scan, naive heuristic) with a `ponytail:` comment naming the ceiling and upgrade path (`# ponytail: global lock, per-account locks if throughput matters`).
64
+
65
+ ## Output
66
+
67
+ Code first. Then at most three short lines: what was skipped, when to add it.
68
+ No essays, no feature tours, no design notes. If the explanation is longer
69
+ than the code, delete the explanation, every paragraph defending a
70
+ simplification is complexity smuggled back in as prose. Explanation the user
71
+ explicitly asked for (a report, a walkthrough, per-phase notes) is not debt,
72
+ give it in full, the rule is only against unrequested prose.
73
+
74
+ Pattern: `[code] → skipped: [X], add when [Y].`
75
+
76
+ ## Intensity
77
+
78
+ | Level | What change |
79
+ |-------|------------|
80
+ | **lite** | Build what's asked, but name the lazier alternative in one line. User picks. |
81
+ | **full** | The ladder enforced. Stdlib and native first. Shortest diff, shortest explanation. Default. |
82
+ | **ultra** | YAGNI extremist. Deletion before addition. Ship the one-liner and challenge the rest of the requirement in the same breath. |
83
+
84
+ Example: "Add a cache for these API responses."
85
+ - lite: "Done, cache added. FYI: `functools.lru_cache` covers this in one line if you'd rather not own a cache class."
86
+ - full: "`@lru_cache(maxsize=1000)` on the fetch function. Skipped custom cache class, add when lru_cache measurably falls short."
87
+ - ultra: "No cache until a profiler says so. When it does: `@lru_cache`. A hand-rolled TTL cache class is a bug farm with a hit rate."
88
+
89
+ ## When NOT to be lazy
90
+
91
+ Never simplify away: input validation at trust boundaries, error handling
92
+ that prevents data loss, security measures, accessibility basics, anything
93
+ explicitly requested. User insists on the full version → build it, no
94
+ re-arguing.
95
+
96
+ Never lazy about understanding the problem. The ladder shortens the
97
+ solution, never the reading. Trace the whole thing first — every file the
98
+ change touches, the actual flow — before picking a rung. Laziness that skips
99
+ comprehension to ship a small diff is the dangerous kind: it dresses up as
100
+ efficiency and ships a confident wrong fix. Read fully, then be lazy.
101
+
102
+ Hardware is never the ideal on paper: a real clock drifts, a real sensor
103
+ reads off, a PCA9685 runs a few percent fast. Leave the calibration knob, not
104
+ just less code, the physical world needs tuning a minimal model can't see.
105
+
106
+ Lazy code without its check is unfinished. Non-trivial logic (a branch, a
107
+ loop, a parser, a money/security path) leaves ONE runnable check behind, the
108
+ smallest thing that fails if the logic breaks: an `assert`-based
109
+ `demo()`/`__main__` self-check or one small `test_*.py`. No frameworks, no
110
+ fixtures, no per-function suites unless asked. Trivial one-liners need no
111
+ test, YAGNI applies to tests too.
112
+
113
+ ## Boundaries
114
+
115
+ Ponytail governs what you build, not how you talk (pair with Caveman for
116
+ terse prose). "stop ponytail" / "normal mode": revert. Level persists until
117
+ changed or session end.
118
+
119
+ The shortest path to done is the right path.
@@ -0,0 +1,27 @@
1
+ # Upstream
2
+
3
+ - Project: Ponytail
4
+ - Repository: https://github.com/DietrichGebert/ponytail
5
+ - Website: https://ponytail.dev/
6
+ - Pinned release: v4.13.0
7
+ - Release commit: 08e952d7a8057a57ce561ff1330d093fd92eec67
8
+ - Imported file: skills/ponytail/SKILL.md
9
+ - License: MIT
10
+
11
+ The bundled `SKILL.md` is the upstream v4.13.0 skill text. BizarHarness-OMP
12
+ adds activation policy outside the upstream file so the vendored source remains
13
+ auditable against the pin.
14
+
15
+ To update it, compare the new tagged upstream `skills/ponytail/SKILL.md`,
16
+ review behavior changes, update the pin, and rerun package/skill contract tests.
17
+ Do not track upstream `main` implicitly.
18
+
19
+
20
+ ## OMP compatibility adaptation
21
+
22
+ OMP 18.6.1 validates Agent Skills against a closed frontmatter field set:
23
+ `name`, `description`, `license`, `allowed-tools`, `metadata`, and
24
+ `compatibility`. Ponytail v4.13.0 includes `argument-hint`, which is useful
25
+ to some clients but is not part of that OMP skill field set.
26
+
27
+ The Bizar packaged copy removes that unsupported frontmatter field and changes the documented level command from upstream `/ponytail ...` to OMP's native `/skill:ponytail ...` form. The design rules, name, description, license, and default `full` behavior remain unchanged.