@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.
- package/README.md +7 -3
- package/agents/bizar-architect.md +1 -1
- package/agents/bizar-implementer.md +8 -2
- package/agents/bizar-planner.md +1 -1
- package/agents/bizar-reviewer.md +7 -2
- package/agents/bizar-security-reviewer.md +1 -1
- package/agents/bizar-verifier.md +1 -1
- package/dist/cli/doctor.d.ts +4 -4
- package/dist/cli/install.d.ts +1 -1
- package/dist/cli/install.d.ts.map +1 -1
- package/dist/cli/install.js +20 -5
- package/dist/cli/install.js.map +1 -1
- package/dist/extension.js +2 -2
- package/dist/extension.js.map +1 -1
- package/dist/omp/autonomous-settings.js +2 -2
- package/dist/omp/autonomous-settings.js.map +1 -1
- package/dist/omp/compatibility-manifest.json +35 -0
- package/dist/omp/compatibility.d.ts +17 -17
- package/dist/omp/compatibility.d.ts.map +1 -1
- package/dist/omp/compatibility.js +25 -13
- package/dist/omp/compatibility.js.map +1 -1
- package/dist/services/recipes.d.ts.map +1 -1
- package/dist/services/recipes.js +42 -3
- package/dist/services/recipes.js.map +1 -1
- package/docs/compatibility/baseline.json +2 -2
- package/docs/development/ci-release-implementation-guide.md +3 -1
- package/docs/development/contributing-and-releasing.md +23 -6
- package/docs/development/omp-compatibility.md +119 -0
- package/docs/releases/0.10.0.md +17 -0
- package/docs/releases/support-matrix.md +1 -1
- package/package.json +5 -2
- package/prompts/bizar-system.md +8 -0
- package/rules/bizar-core.md +1 -0
- package/skills/bizar-omp/SKILL.md +12 -1
- package/skills/bizar-testing/SKILL.md +14 -0
- package/skills/bizar-uiux/SKILL.md +96 -0
- package/skills/bizar-uiux/agents/openai.yaml +3 -0
- package/skills/bizar-uiux/references/principles.md +244 -0
- package/skills/bizar-uiux/references/review-checklist.md +114 -0
- package/skills/bizar-uiux/references/sources.md +32 -0
- package/skills/omp-native-development/references/source-manifest.json +1 -1
- package/skills/ponytail/LICENSE +21 -0
- package/skills/ponytail/SKILL.md +119 -0
- 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)
|
|
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.
|