openhermes 4.3.0 → 4.11.2

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 (143) hide show
  1. package/CONTEXT.md +10 -1
  2. package/README.md +54 -42
  3. package/bootstrap.ts +396 -142
  4. package/harness/agents/oh-browser.md +97 -0
  5. package/harness/agents/oh-builder.md +78 -0
  6. package/harness/agents/oh-facade.md +75 -0
  7. package/harness/agents/oh-fusion.md +45 -0
  8. package/harness/agents/oh-gauntlet.md +71 -0
  9. package/harness/agents/oh-grill.md +71 -0
  10. package/harness/agents/oh-investigate.md +60 -0
  11. package/harness/agents/oh-manifest.md +95 -0
  12. package/harness/agents/oh-plan-review.md +40 -0
  13. package/harness/agents/oh-planner.md +50 -0
  14. package/harness/agents/oh-refactor.md +37 -0
  15. package/harness/agents/oh-retro.md +46 -0
  16. package/harness/agents/oh-review.md +85 -0
  17. package/harness/agents/oh-security.md +83 -0
  18. package/harness/agents/oh-ship.md +76 -0
  19. package/harness/agents/oh-skill-craft.md +38 -0
  20. package/harness/agents/openhermes.md +28 -73
  21. package/harness/codex/AUTOPILOT.md +235 -87
  22. package/harness/codex/CHARTER.md +80 -0
  23. package/harness/instructions/SHELL.md +76 -0
  24. package/harness/lib/background/background.test.ts +197 -0
  25. package/harness/lib/background/index.ts +7 -0
  26. package/harness/lib/background/interfaces.ts +31 -0
  27. package/harness/lib/background/manager.ts +320 -0
  28. package/harness/lib/composer/compose.test.ts +168 -0
  29. package/harness/lib/composer/compose.ts +65 -0
  30. package/harness/lib/composer/fragments/01-identity.md +1 -0
  31. package/harness/lib/composer/fragments/02-delegation.md +6 -0
  32. package/harness/lib/composer/fragments/03-permissions.md +13 -0
  33. package/harness/lib/composer/fragments/04-task-flow.md +15 -0
  34. package/harness/lib/composer/fragments/05-confidence.md +5 -0
  35. package/harness/lib/composer/fragments/06-parallelization.md +17 -0
  36. package/harness/lib/composer/fragments/07-shell.md +41 -0
  37. package/harness/lib/composer/fragments/08-routing.md +8 -0
  38. package/harness/lib/composer/fragments/09-guardrails.md +12 -0
  39. package/harness/lib/composer/index.ts +1 -0
  40. package/harness/lib/hooks/builtins/confidence-gate-hook.ts +70 -0
  41. package/harness/lib/hooks/builtins/delegation-depth-hook.ts +59 -0
  42. package/harness/lib/hooks/builtins/error-recovery-hook.ts +107 -0
  43. package/harness/lib/hooks/builtins/memory-sync-hook.ts +73 -0
  44. package/harness/lib/hooks/builtins/plan-check-hook.ts +43 -0
  45. package/harness/lib/hooks/builtins/route-tracking-hook.ts +147 -0
  46. package/harness/lib/hooks/builtins/sanity-check-hook.ts +52 -0
  47. package/harness/lib/hooks/builtins/shell-detect-hook.ts +96 -0
  48. package/harness/lib/hooks/hooks.test.ts +1016 -0
  49. package/harness/lib/hooks/index.ts +30 -0
  50. package/harness/lib/hooks/registry.ts +416 -0
  51. package/harness/lib/hooks/types.ts +71 -0
  52. package/harness/lib/memory/index.ts +18 -0
  53. package/harness/lib/memory/interfaces.ts +53 -0
  54. package/harness/lib/memory/memory-manager.ts +205 -0
  55. package/harness/lib/memory/memory.test.ts +491 -0
  56. package/harness/lib/memory/plan-store.ts +366 -0
  57. package/harness/lib/recovery/handler.ts +243 -0
  58. package/harness/lib/recovery/index.ts +14 -0
  59. package/harness/lib/recovery/interfaces.ts +48 -0
  60. package/harness/lib/recovery/patterns.ts +149 -0
  61. package/harness/lib/recovery/recovery.test.ts +312 -0
  62. package/harness/lib/sanity/anomaly-tracker.ts +127 -0
  63. package/harness/lib/sanity/checker.ts +178 -0
  64. package/harness/lib/sanity/index.ts +13 -0
  65. package/harness/lib/sanity/interfaces.ts +24 -0
  66. package/harness/lib/sanity/sanity.test.ts +472 -0
  67. package/harness/lib/sync/file-watcher.ts +174 -0
  68. package/harness/lib/sync/index.ts +11 -0
  69. package/harness/lib/sync/interfaces.ts +27 -0
  70. package/harness/lib/sync/plan-sync.ts +536 -0
  71. package/harness/lib/sync/sync.test.ts +832 -0
  72. package/harness/skills/oh-ascii/DEEP.md +292 -0
  73. package/harness/skills/oh-ascii/SKILL.md +31 -0
  74. package/harness/skills/oh-ascii/scripts/check_ascii_alignment.py +596 -0
  75. package/harness/skills/oh-browser/DEEP.md +54 -0
  76. package/harness/skills/oh-browser/SKILL.md +30 -0
  77. package/harness/skills/oh-builder/DEEP.md +63 -0
  78. package/harness/skills/oh-builder/SKILL.md +12 -90
  79. package/harness/skills/oh-expert/DEEP.md +85 -0
  80. package/harness/skills/oh-expert/SKILL.md +13 -106
  81. package/harness/skills/oh-facade/DEEP.md +182 -0
  82. package/harness/skills/oh-facade/SKILL.md +15 -279
  83. package/harness/skills/oh-freeze/DEEP.md +18 -0
  84. package/harness/skills/oh-freeze/SKILL.md +10 -19
  85. package/harness/skills/oh-full-output/DEEP.md +25 -0
  86. package/harness/skills/oh-full-output/SKILL.md +12 -65
  87. package/harness/skills/oh-fusion/DEEP.md +120 -0
  88. package/harness/skills/oh-fusion/SKILL.md +17 -295
  89. package/harness/skills/oh-gauntlet/DEEP.md +77 -0
  90. package/harness/skills/oh-gauntlet/SKILL.md +13 -105
  91. package/harness/skills/oh-grill/DEEP.md +51 -0
  92. package/harness/skills/oh-grill/SKILL.md +12 -63
  93. package/harness/skills/oh-guard/DEEP.md +19 -0
  94. package/harness/skills/oh-guard/SKILL.md +10 -24
  95. package/harness/skills/oh-handoff/DEEP.md +48 -0
  96. package/harness/skills/oh-handoff/SKILL.md +13 -23
  97. package/harness/skills/oh-health/DEEP.md +74 -0
  98. package/harness/skills/oh-health/SKILL.md +13 -76
  99. package/harness/skills/oh-init/DEEP.md +85 -0
  100. package/harness/skills/oh-init/SKILL.md +13 -127
  101. package/harness/skills/oh-investigate/DEEP.md +171 -0
  102. package/harness/skills/oh-investigate/SKILL.md +13 -66
  103. package/harness/skills/oh-issue/DEEP.md +21 -0
  104. package/harness/skills/oh-issue/SKILL.md +11 -27
  105. package/harness/skills/oh-manifest/DEEP.md +92 -0
  106. package/harness/skills/oh-manifest/SKILL.md +12 -109
  107. package/harness/skills/oh-plan-review/DEEP.md +90 -0
  108. package/harness/skills/oh-plan-review/SKILL.md +13 -115
  109. package/harness/skills/oh-planner/DEEP.md +172 -0
  110. package/harness/skills/oh-planner/SKILL.md +12 -149
  111. package/harness/skills/oh-prd/DEEP.md +45 -0
  112. package/harness/skills/oh-prd/SKILL.md +10 -26
  113. package/harness/skills/oh-refactor/DEEP.md +122 -0
  114. package/harness/skills/oh-refactor/SKILL.md +17 -410
  115. package/harness/skills/oh-retro/DEEP.md +26 -0
  116. package/harness/skills/oh-retro/SKILL.md +12 -24
  117. package/harness/skills/oh-review/DEEP.md +87 -0
  118. package/harness/skills/oh-review/SKILL.md +11 -97
  119. package/harness/skills/oh-security/DEEP.md +83 -0
  120. package/harness/skills/oh-security/SKILL.md +14 -96
  121. package/harness/skills/oh-ship/DEEP.md +141 -0
  122. package/harness/skills/oh-ship/SKILL.md +14 -32
  123. package/harness/skills/oh-skill-craft/DEEP.md +369 -0
  124. package/harness/skills/oh-skill-craft/SKILL.md +13 -177
  125. package/harness/skills/oh-skills-link/DEEP.md +16 -0
  126. package/harness/skills/oh-skills-link/SKILL.md +10 -20
  127. package/harness/skills/oh-skills-list/DEEP.md +20 -0
  128. package/harness/skills/oh-skills-list/SKILL.md +9 -22
  129. package/harness/skills/oh-triage/DEEP.md +23 -0
  130. package/harness/skills/oh-triage/SKILL.md +8 -24
  131. package/harness/skills/oh-worktree/DEEP.md +169 -0
  132. package/harness/skills/oh-worktree/SKILL.md +32 -0
  133. package/lib/harness-resolver.ts +8 -10
  134. package/package.json +7 -5
  135. package/tsconfig.json +1 -1
  136. package/harness/codex/CONSTITUTION.md +0 -73
  137. package/harness/codex/ROUTING.md +0 -92
  138. package/harness/commands/oh-doctor.md +0 -26
  139. package/harness/commands/oh-log.md +0 -18
  140. package/harness/instructions/RUNTIME.md +0 -30
  141. package/harness/skills/oh-caveman/SKILL.md +0 -42
  142. package/harness/skills/oh-learn/SKILL.md +0 -101
  143. package/lib/logger.ts +0 -75
@@ -1,29 +1,7 @@
1
1
  ---
2
2
  name: oh-facade
3
- description: "Full UI pipeline: from concept to production frontend. Design system generation, premium component architecture, production-grade implementation, structured audit. Use when building any user-facing interface, component system, or visual application."
3
+ description: "Full UI pipeline: from concept to production frontend. Design system generation, premium component architecture, production-grade implementation, structured audit."
4
4
  tier: 4
5
- benefits-from: [oh-planner, oh-gauntlet, oh-review]
6
- triggers:
7
- - "build a frontend for"
8
- - "create a design system"
9
- - "build a landing page"
10
- - "build a dashboard"
11
- - "build a web app"
12
- - "visual design for"
13
- - "make this look good"
14
- - "redesign this page"
15
- - "redesign this app"
16
- - "theme the application"
17
- - "layout this page"
18
- - "responsive layout"
19
- - "user interface design"
20
- - "improve the UX"
21
- - "aesthetic design"
22
- - "style the component"
23
- - "polish the UI"
24
- - "frontend component"
25
- - "interface design for"
26
- - "build a component for"
27
5
  route:
28
6
  pass:
29
7
  - oh-review
@@ -34,265 +12,23 @@ route:
34
12
 
35
13
  # oh-facade
36
14
 
37
- The complete UI pipeline: from concept to production frontend. A closed-loop system that plans, designs, builds, verifies, and iterates on user-facing interfaces.
15
+ Full UI pipeline: Concept Design System Build Audit Iterate.
38
16
 
39
- Architecture of the visible. Engineering, not decoration.
17
+ ## Steps
40
18
 
41
- ## When to Use
42
-
43
- - Building any user-facing interface from scratch
44
- - Adding a design system to an existing project
45
- - Redesigning or upgrading existing UIs
46
- - The task involves anything visual: pages, components, dashboards, themes, layouts
47
- - `oh-manifest` delegates to `oh-facade` when UI work is detected in a full build
48
-
49
- ## Pipeline
50
-
51
- The 5-phase closed loop:
52
-
53
- ```
54
- Concept → Design System → Build → Audit → Iterate
55
-
56
- (loop until pass)
57
- ```
58
-
59
- Output at each phase: brief → DESIGN.md → code → report → final code.
60
-
61
- ---
62
-
63
- ## Phase 1: Concept
64
-
65
- Input: vague idea, brief, or "make this look good"
66
- Output: structured design brief with direction
67
-
68
- ### 1a. Understand the Context
69
-
70
- - What is the product/feature? Who uses it?
71
- - What problem does this interface solve?
72
- - Are there technical constraints? (framework, viewport targets, accessibility requirements)
73
- - Is this a new build or an existing project to redesign?
74
-
75
- ### 1b. Set the Direction
76
-
77
- Choose an archetype. **Commit to it. Do not hedge.**
78
-
79
- | Archetype | Best for | Substrate | Density |
80
- |---|---|---|---|
81
- | Minimal Editorial | Content sites, portfolios, docs | Light (warm off-white) | Low (1-3) |
82
- | Premium SaaS | Web apps, dashboards, B2B tools | Light or Dark (zinc-based) | Medium (4-7) |
83
- | Industrial/Data | Analytics, monitoring, internal tools | Dark (charcoal) | High (7-10) |
84
- | Creative/Expressive | Marketing, agency sites, showcases | Dark or Light | Variable |
85
-
86
- ### 1c. Set Metric Dials
87
-
88
- Three measurable controls that drive all downstream decisions. Default baseline, adapt based on context.
89
-
90
- | Dial | Range | 1-3 | 4-7 | 8-10 |
91
- |---|---|---|---|---|
92
- | VARIANCE | 1-10 | Symmetric, predictable | Offset, asymmetric | Chaotic, artsy |
93
- | MOTION | 1-10 | Static, CSS only | Fluid CSS + spring | Cinematic choreography |
94
- | DENSITY | 1-10 | Gallery, airy | Standard app | Cockpit, packed |
95
-
96
- **Default baseline:** VARIANCE=6, MOTION=5, DENSITY=4
97
-
98
- ### 1d. Output Design Brief
99
-
100
- Single paragraph capturing: archetype, substrate (light/dark), metric dials, and key differentiator.
101
-
102
- If the brief is clearly wrong or self-contradictory → surface to user.
103
- Otherwise → Phase 2. Do not ask for approval.
104
-
105
- ---
106
-
107
- ## Phase 2: Design System
108
-
109
- Input: design brief with direction + dials
110
- Output: `DESIGN.md` — encoded design system as single source of truth
111
-
112
- Generate a complete `DESIGN.md` file. This is the blueprint consumed by Phase 3. Every value must be specific — no vagueness, no "use a nice font."
113
-
114
- ### 2a. Color Palette
115
-
116
- - **Neutral base**: Zinc or Slate family. Pick one (warm or cool). Never mix.
117
- - **Accent**: Exactly one. Saturation < 80%. No purple/blue "AI aesthetic."
118
- - **Surface**: Background, card, border, elevated. Specific hex codes.
119
- - **Text**: Primary, secondary, muted, inverse. Specific hex codes.
120
- - **Semantic**: Success, warning, error, info. Specific hex codes.
121
- - **Dark substrate**: Never pure `#000000`. Use `#0a0a0a` or `#121212`.
122
-
123
- ### 2b. Typography Architecture
124
-
125
- - **Display/Headline**: Premium sans-serif (Geist, Satoshi, Cabinet Grotesk, Outfit, Switzer). Tight tracking (`-0.03em` to `-0.05em`). Fluid scale via `clamp()`.
126
- - **Body**: Relaxed leading (`1.6-1.8`). Max 65 characters per line. Off-black, not `#000`.
127
- - **Monospace**: JetBrains Mono, Geist Mono, or SF Mono. Required for all data/number contexts when DENSITY > 5.
128
- - **Serif**: Only for editorial/creative contexts and only distinctive modern serifs (Fraunces, Instrument Serif, Editorial New). **Never in dashboards or software UIs.**
129
- - **BANNED**: Inter, Roboto, Arial, Open Sans, Helvetica, Georgia, Times New Roman.
130
-
131
- ### 2c. Component System
132
-
133
- Define every component with structure, states, and interaction behavior:
134
-
135
- **Buttons:**
136
- - Primary: solid background, off-black or accent. Hover: lift or darken. Active: `scale(0.98)`. Focus ring.
137
- - Secondary: outline or ghost. Same interaction physics.
138
- - Icon button: square, matching radius system.
139
- - Button-in-Button pattern (from high-end-visual-design): nested icon in its own pill inside the button.
140
-
141
- **Cards:**
142
- - Double-Bezel architecture: outer shell (subtle background, hairline border, large radius) + inner core (content background, inset highlight, smaller radius).
143
- - OR border-only: `border-t` or `divide-y` for high-density contexts.
144
- - Cards used ONLY when elevation communicates hierarchy. Not as default container.
145
-
146
- **Forms/Inputs:**
147
- - Label above input. Helper text optional. Error text below.
148
- - Focus state: ring or border color shift.
149
- - Touch targets: minimum 44px.
150
-
151
- **Loading states:**
152
- - Skeleton loaders matching exact layout dimensions. Never circular spinners.
153
-
154
- **Empty states:**
155
- - Composed illustration or icon, short message, single action button.
156
-
157
- **Navigation:**
158
- - Based on density dial: glass floating pill (low), sidebar (medium/high), or minimal top bar.
159
- - Active state on current section.
160
- - Mobile: clean collapse, not hamburger-only.
161
-
162
- ### 2d. Layout Principles
163
-
164
- - **Grid**: CSS Grid. Never `calc()` or flexbox percentage math for multi-column layouts.
165
- - **Container**: 1200-1440px max-width with auto margins. Wider for editorial/creative archetypes.
166
- - **Section spacing**: Based on DENSITY dial. Low = `py-32 md:py-48`. Medium = `py-24`. High = `py-16`.
167
- - **Responsive**: All multi-column layouts collapse to single column below 768px. No exceptions. Verify with `md:` breakpoints.
168
- - **Full-height**: Always `min-h-[100dvh]`. Never `h-screen` (iOS Safari viewport bug).
169
- - **BANNED**: centered hero when VARIANCE > 4, 3-equal-card feature rows, edge-to-edge content on wide screens.
170
-
171
- ### 2e. Motion Philosophy
172
-
173
- - **Spring physics**: Default `cubic-bezier(0.32, 0.72, 0, 1)` or Framer Motion `spring(stiffness: 100, damping: 20)`. Never linear easing.
174
- - **Scroll entry**: Elements fade up gently (`translateY(12-24px)` + `opacity: 0` → resolved over 600-800ms). Use IntersectionObserver or CSS scroll-driven animations. Never `window.addEventListener('scroll')`.
175
- - **Staggered reveals**: Lists and grids cascade via `animation-delay` or Framer Motion `staggerChildren`.
176
- - **Hover physics**: Scale, translate, shadow shift, or color transition on interactive elements. Duration 200-300ms.
177
- - **Active feedback**: Every clickable element must provide tactile response — `scale(0.98)` or `translateY(1px)`.
178
- - **Performance**: Animate exclusively via `transform` and `opacity`. Never `top`, `left`, `width`, `height`. Use `will-change: transform` sparingly.
179
- - **Backdrop-blur**: Only on fixed/sticky elements (navbars, overlays). Never on scrolling containers.
180
-
181
- ### 2f. Anti-Patterns Registry
182
-
183
- Explicit rules encoded into DESIGN.md. These are hard failures.
184
-
185
- - No emojis in code, content, alt text, or markup
186
- - No `Lorem Ipsum` — write real draft copy
187
- - No "Elevate", "Seamless", "Next-Gen", "Unleash", "Game-changer" copy
188
- - No generic names (John Doe, Acme Corp) — use realistic, specific content
189
- - No rocket ship for "launch" or shield for "security" icons
190
- - No purple/blue neon gradients
191
- - No dark section in a white page (or vice versa) without committed dark mode
192
- - No animated `top`, `left`, `width`, `height`
193
- - No `window.addEventListener('scroll')`
194
- - No `h-screen` for full-height sections
195
-
196
- ---
197
-
198
- ## Phase 3: Build
199
-
200
- Input: DESIGN.md
201
- Output: production code implementing the full system
202
-
203
- ### 3a. Set Up Foundations
204
-
205
- 1. CSS custom properties for colors, spacing, typography scale, shadows, border-radii
206
- 2. Tailwind config extensions (if using Tailwind) — map design tokens to utility classes
207
- 3. Theme provider or global stylesheet
208
- 4. Component directory structure
209
-
210
- ### 3b. Build Component Library
211
-
212
- Implement every component defined in Phase 2 with ALL states:
213
- - Default, hover, active, focus-visible, disabled
214
- - Loading (skeleton matching layout)
215
- - Empty (composed illustration + message + action)
216
- - Error (inline messaging)
217
-
218
- Apply performance guardrails to every component:
219
- - Animations use `transform` and `opacity` only
220
- - No layout-triggering properties in transitions
221
- - `backdrop-blur` only on fixed/sticky elements
222
- - Z-index follows systemic scale (no arbitrary `z-50` or `z-[9999]`)
223
-
224
- ### 3c. Build Pages/Screens
225
-
226
- 1. Implement the full interface using the component system
227
- 2. Responsive: verify single-column collapse below 768px
228
- 3. All viewports filled: loading → populated → empty → error states
229
- 4. Navigation wired with active states and mobile collapse
230
-
231
- ### 3d. Technical Requirements
232
-
233
- - Check `package.json` before importing any dependency. Never assume a library exists.
234
- - Use framework-appropriate patterns: Server Components in Next.js, client isolation for interactive islands
235
- - Semantic HTML: `<nav>`, `<main>`, `<section>`, `<article>`, `<aside>`, `<header>`, `<footer>`
236
- - Accessibility: visible focus rings, skip-to-content link, alt text, aria labels on interactive elements
237
- - Meta tags: `<title>`, `description`, `og:image`, viewport
238
-
239
- ---
240
-
241
- ## Phase 4: Audit
242
-
243
- Input: built code + DESIGN.md
244
- Output: audit report with pass/fail per check + ranked fix list
245
-
246
- Run the full structured audit. Checks are grouped and priority-ranked.
247
-
248
- ### Priority 1 — High Impact, Low Risk (do first)
249
-
250
- - **Typography**: font choice matches DESIGN.md? scale correct? tracking applied? no orphan lines? body max-width limited?
251
- - **Color**: single accent? saturation < 80%? no AI purple? warm/cool consistent? dark not pure black?
252
- - **Layout**: grid not flexbox math? max-width container? `min-h-[100dvh]` everywhere? responsive at 768px?
253
-
254
- ### Priority 2 — Makes it Feel Alive
255
-
256
- - **Interactivity**: hover states on all clickables? active feedback (`scale(0.98)` or translate)? focus rings? transitions smooth (200-300ms)?
257
- - **States**: every component has loading, empty, error states? skeleton loaders (not spinners)?
258
- - **Motion**: scroll entry animations present? staggered reveals? spring physics (not linear)?
259
-
260
- ### Priority 3 — Content Polish
261
-
262
- - **Content**: no lorem ipsum? no cliche copy? realistic names and data? no generic placeholders?
263
- - **Emojis**: zero emojis in code or content?
264
- - **Anti-patterns**: no "Elevate", no rocket icons, no purple gradients?
265
-
266
- ### Priority 4 — Production Hardening
267
-
268
- - **Components**: Double-Bezel or appropriate card architecture? button-in-button pattern where applicable? navigation active states?
269
- - **Iconography**: consistent stroke width? no default library? no emoji substitutions?
270
- - **Code quality**: semantic HTML? no div soup? no inline styles? no orphaned imports?
271
- - **Strategic**: 404 page? skip-to-content? meta tags? cookie consent consideration?
272
-
273
- ### Phase 5: Iterate
274
-
275
- 1. Apply fixes in Priority order — do not skip ahead
276
- 2. Re-run audit after each priority level
277
- 3. Continue until all Priority 1-3 checks pass
278
- 4. Priority 4 is target-state — surface remaining items as recommendations
279
- 5. If blocked on a specific check → narrow scope, try alternative approach, or surface
280
-
281
- ## Design Principles
282
-
283
- These govern all decisions across all phases:
284
-
285
- 1. **Intentionality over intensity** — Bold maximalism and refined minimalism both work. The key is commitment to a direction, not how loud it is.
286
- 2. **Engineering over decoration** — A button is not "styled" — it has a physical structure, interaction physics, and accessible states.
287
- 3. **Consistency over variety** — One palette, one font system, one component architecture. Consistency beats every single creative choice.
288
- 4. **Performance is a feature** — A beautiful UI that lags is not a beautiful UI. Hardware acceleration, transform-only animation, guarded backdrop-blur.
289
- 5. **Ship every state** — Default-only is not production. Loading, empty, error, hover, active, focus, disabled. Every state designed and implemented.
19
+ 1. Scan existing codebase — detect framework, styling, current patterns. For redesigns, run phase 0 diagnosis first.
20
+ 2. Establish direction — collect product/user/problem context, commit to one archetype (Warm Minimalist, Premium SaaS, Industrial Brutalist, Creative/Expressive), set metric dials (VARIANCE, MOTION, DENSITY).
21
+ 3. Produce DESIGN.md define color tokens (neutral/accent/surface/text/semantic/dark), typography stack (display/body/mono/serif), component specs, layout grid, and motion rules.
22
+ 4. Build foundations CSS custom properties, Tailwind config extensions, theme provider, component directory.
23
+ 5. Implement component library — all components with every state: default, hover, active, focus-visible, disabled, loading, empty, error.
24
+ 6. Assemble pages full interfaces from components, responsive collapse at 768px, all viewport states (loading → populated → empty → error).
25
+ 7. Run priority-ranked audit P1 (typography/color/layout), P2 (interactivity/states/motion), P3 (content quality), P4 (hardening/a11y), P5 (existing-project redesign scan).
26
+ 8. Iterate — fix highest-priority failures first, re-audit after each level, surface blocker if fix impossible.
290
27
 
291
28
  ## Routing
292
29
 
293
30
  | Outcome | Route |
294
- |---|---|
295
- | all phases pass | -> oh-review (design review) or back to oh-manifest |
296
- | audit fails Priority 1-2 | -> Phase 5 (iterate — fix and re-audit) |
297
- | audit fails Priority 3-4 only | -> Phase 5 (recommendations), route to oh-review |
298
- | blocker | -> surface to user |
31
+ |---------|-------|
32
+ | pass | oh-review or oh-manifest |
33
+ | fail | oh-facade |
34
+ | blocker | surface |
@@ -0,0 +1,18 @@
1
+ # oh-freeze — Deep Reference
2
+
3
+ ## When to Use
4
+
5
+ When the user says "don't touch anything outside [path]" or "only edit files in [dir]." Prevents accidental edits to configuration, infrastructure, or unrelated modules.
6
+
7
+ ## Mode
8
+
9
+ - Allowed paths: only the specified directory and its children
10
+ - If you need to edit outside: state the reason and ask
11
+ - Read operations unrestricted anywhere
12
+ - File creation restricted to allowed paths
13
+
14
+ ## Anti-patterns
15
+
16
+ - Editing outside allowed path without asking
17
+ - Reading unrelated files for context and using that to justify edits
18
+ - "Just this one file outside" — ask first
@@ -1,11 +1,7 @@
1
1
  ---
2
2
  name: oh-freeze
3
- description: "Restrict file edits to a specific directory for the session"
3
+ description: "Restricts file edits to a specific directory for the session."
4
4
  tier: 2
5
- triggers:
6
- - "freeze directory"
7
- - "restrict edits to"
8
- - "lock edits to"
9
5
  route:
10
6
  pass: mode
11
7
  fail: mode
@@ -14,24 +10,19 @@ route:
14
10
 
15
11
  # oh-freeze
16
12
 
17
- ## When to Use
18
- When debugging a specific module and you want to prevent accidentally "fixing" unrelated code. Scopes all Edit/Write operations to one directory.
13
+ Restrict write operations to one allowed directory.
19
14
 
20
- ## Workflow
21
- 1. Specify target directory to freeze
22
- 2. All Edit/Write operations outside that directory are blocked
23
- 3. User can explicitly approve cross-boundary edits
24
- 4. Unfreeze to release the boundary
15
+ ## Steps
25
16
 
26
- ## Anti-patterns
27
- - Freezing too broadly (defeats the purpose)
28
- - Forgetting to unfreeze when task scope expands
29
- - Using freeze as a substitute for git discipline
17
+ 1. Identify the allowed directory from user instructions
18
+ 2. Restrict all write/edit/create operations to the allowed path
19
+ 3. Allow read operations unrestricted anywhere
20
+ 4. If a write outside the allowed path is required, state the reason and ask before proceeding
30
21
 
31
22
  ## Routing
32
23
 
33
24
  | Outcome | Route |
34
25
  |---------|-------|
35
- | pass | → [return to prior skill — scope lock active] |
36
- | fail | → [surface issue — freeze not applied] |
37
- | blocker | → surface to user |
26
+ | pass | → mode |
27
+ | fail | → mode |
28
+ | blocker | → surface |
@@ -0,0 +1,25 @@
1
+ # oh-full-output — Deep Reference
2
+
3
+ ## When to Use
4
+
5
+ When generating long files, multi-component output, or any task where partial output would be a broken deliverable.
6
+
7
+ ## Banned Patterns (Hard Failures)
8
+
9
+ **Code:** `// ...`, `// rest of code`, `// implement here`, `// TODO`, `/* ... */`, `// similar`, `// continue`, `// same as`, bare `...`.
10
+
11
+ **Prose:** "let me know if you want me to continue", "for brevity", "the rest follows the same pattern", "and so on", "I'll leave that as an exercise".
12
+
13
+ **Structural:** Skeleton instead of full impl. First/last sections skipping middle. One example + description for repeated logic. Describing instead of writing.
14
+
15
+ ## Long Outputs
16
+
17
+ When approaching token limit:
18
+ - Write at full quality to a clean breakpoint (end of function/file/section)
19
+ - Do NOT compress remaining sections
20
+ - End with: `[PAUSED — X of Y complete. Send "continue" to resume from: next section name]`
21
+ - On "continue": pick up exactly where stopped. No recap.
22
+
23
+ ## Quick Check
24
+
25
+ Before finalizing: no banned patterns, every item present and finished, code blocks contain runnable code, nothing shortened.
@@ -1,81 +1,28 @@
1
1
  ---
2
2
  name: oh-full-output
3
- description: "Override LLM truncation behavior. Enforce complete code generation, ban placeholder patterns (// ..., /* ... */, TODO, 'rest of code'), and handle token-limit splits cleanly. Use when generating long files, multi-component output, or any task where partial output would be a broken deliverable."
3
+ description: "Override LLM truncation enforce complete code generation, ban placeholders."
4
4
  tier: 2
5
- triggers:
6
- - "full output"
7
- - "complete code"
8
- - "no truncation"
9
- - "dont skip"
10
- - "no placeholders"
11
- - "banned patterns"
12
- - "generate everything"
13
- - "dont abbreviate"
14
- - "dont use ..."
15
- - "no etc"
16
- - "write it all"
17
- - "exhaustive"
18
- - "unabridged"
19
- - "long file"
20
- - "large output"
21
- - "many files"
22
- - "all components"
23
- - "stop truncating"
24
5
  route:
25
6
  pass: done
26
- fail: surface
7
+ fail: [surface, oh-expert]
27
8
  blocker: surface
28
9
  ---
29
10
 
30
11
  # oh-full-output
31
12
 
32
- Override default LLM truncation behavior. Enforce complete generation, ban placeholder patterns, and handle token-limit splits cleanly.
13
+ Override truncation. Enforce complete generation. Ban placeholders.
33
14
 
34
- ## Baseline
15
+ ## Steps
35
16
 
36
- Treat every task as production-critical. A partial output is a broken output. Do not optimize for brevity -- optimize for completeness. If the user asks for a full file, deliver the full file. If the user asks for 5 components, deliver 5 components. No exceptions.
37
-
38
- ## Banned Output Patterns
39
-
40
- The following patterns are hard failures. Never produce them:
41
-
42
- **In code blocks:** `// ...`, `// rest of code`, `// implement here`, `// TODO`, `/* ... */`, `// similar to above`, `// continue pattern`, `// add more as needed`, bare `...` standing in for omitted code, `// same as above`
43
-
44
- **In prose:** "Let me know if you want me to continue", "I can provide more details if needed", "for brevity", "the rest follows the same pattern", "similarly for the remaining", "and so on" (when replacing actual content), "I'll leave that as an exercise"
45
-
46
- **Structural shortcuts:** Outputting a skeleton when the request was for a full implementation. Showing the first and last section while skipping the middle. Replacing repeated logic with one example and a description. Describing what code should do instead of writing it.
47
-
48
- ## Execution Process
49
-
50
- 1. **Scope** -- Read the full request. Count how many distinct deliverables are expected (files, functions, sections, answers). Lock that number.
51
- 2. **Build** -- Generate every deliverable completely. No partial drafts, no "you can extend this later."
52
- 3. **Cross-check** -- Before output, re-read the original request. Compare your deliverable count against the scope count. If anything is missing, add it before responding.
53
-
54
- ## Handling Long Outputs
55
-
56
- When a response approaches the token limit:
57
-
58
- - Do not compress remaining sections to squeeze them in.
59
- - Do not skip ahead to a conclusion.
60
- - Write at full quality up to a clean breakpoint (end of a function, end of a file, end of a section).
61
- - End with:
62
- ```
63
- [PAUSED -- X of Y complete. Send "continue" to resume from: next section name]
64
- ```
65
- - On "continue", pick up exactly where you stopped. No recap, no repetition.
66
-
67
- ## Quick Check
68
-
69
- Before finalizing any response:
70
- - No banned patterns from the list above appear anywhere in the output
71
- - Every item the user requested is present and finished
72
- - Code blocks contain actual runnable code, not descriptions of what code would do
73
- - Nothing was shortened to save space
17
+ 1. Scope Count distinct deliverables. Lock the number.
18
+ 2. Build — Generate every deliverable completely. No partial drafts.
19
+ 3. Cross-check Re-read request. Compare deliverable count. Add anything missing.
20
+ 4. Verify — No banned patterns, every item present, code blocks are runnable, nothing shortened.
74
21
 
75
22
  ## Routing
76
23
 
77
24
  | Outcome | Route |
78
- |---|---|
79
- | pass | -> continue current task |
80
- | truncation still happens | -> oh-expert (diagnose attention/context issues) |
81
- | blocker | -> surface to user |
25
+ |---------|-------|
26
+ | pass | done |
27
+ | fail | surface, oh-expert |
28
+ | blocker | surface |
@@ -0,0 +1,120 @@
1
+ # oh-fusion — Deep Reference
2
+
3
+ ## When to Use
4
+
5
+ Use when a user wants to bring an external skill or capability into the OpenHermes harness as an OH-native skill.
6
+
7
+ ## Phase 1: Discovery
8
+
9
+ | Source | Access |
10
+ |--------|--------|
11
+ | `.agents/skills/<name>/SKILL.md` | Read file |
12
+ | `npx skills` package | `npx skills find <query>` |
13
+ | URL | Fetch content |
14
+ | User path | Resolve and read |
15
+ | Inline text | Capture raw |
16
+
17
+ Confirm: content loaded, frontmatter present, no access restrictions. For multiple: all loaded.
18
+
19
+ ## Phase 2: Analysis
20
+
21
+ ### Depth Scoring
22
+ | Metric | Assessment |
23
+ |--------|-----------|
24
+ | Lines | SKILL.md length |
25
+ | Concrete rules | "must/never/always/banned" count |
26
+ | Examples | Before/after or usage code blocks |
27
+ | Anti-patterns | Explicit "don't" sections |
28
+ | Workflow steps | Sequential, actionable steps |
29
+ | Routing table | pass/fail/blocker defined |
30
+
31
+ **Score:** High (70-100) = concrete + examples + routing. Medium (30-69) = some structure. Low (0-29) = vague, no rules.
32
+
33
+ ### Overlap Detection
34
+ Compare against existing `harness/skills/oh-*` skills. Overlap: none / partial (complementary) / complete (redundant).
35
+
36
+ ### Convention Check
37
+ - Clear description for triggering? Actionable instructions? Anti-patterns? Examples? Measurable outcomes? No time-sensitive refs? No platform assumptions?
38
+
39
+ ### Report Template
40
+ ```markdown
41
+ **Depth:** <0-100> — <High/Medium/Low>
42
+ **Overlap:** <existing skill> — <none/partial/complete>
43
+ **Verdict:** <keep / fuse / discard / ask>
44
+ **Action:** <port directly / fuse with X / discard>
45
+ ```
46
+
47
+ ## Phase 3: Decision
48
+
49
+ | Verdict | Action |
50
+ |---------|--------|
51
+ | Keep | High signal, no overlap. Port to `oh-<name>`. |
52
+ | Fuse | Partial overlap with existing. Merge complementary DNA. |
53
+ | Discard | Low signal or complete overlap. Surface reasoning. |
54
+ | Ask | Ambiguous quality. Surface findings. |
55
+
56
+ When in doubt: prefer fuse over keep, keep over discard if ANY unique signal.
57
+
58
+ ## Phase 4: Adaptation
59
+
60
+ ### Frontmatter
61
+ ```yaml
62
+ name: oh-<name>
63
+ description: "Adapted from <source>. Core function. Use when ..."
64
+ tier: <2|3|4>
65
+ ```
66
+
67
+ ### Body Structure
68
+ 1. **Summary** — one-paragraph of what the skill does
69
+ 2. **When to Use** — clear triggering context
70
+ 3. **Workflow** — numbered steps (the core)
71
+ 4. **Anti-patterns** — what NOT to do
72
+ 5. **Routing** — pass/fail/blocker table
73
+
74
+ ### Adaptation Rules
75
+ - Remove emojis. Replace ecosystem terms with OH equivalents.
76
+ - Convert relative paths to OH harness conventions.
77
+ - Add routing table based on the skill's purpose.
78
+ - Keep all concrete rules, examples, and anti-patterns from the original.
79
+ - Discard fluff, philosophy, and motivational language.
80
+ - Preserve the original's unique signal — that's why you're importing it.
81
+
82
+ ### Naming
83
+ Match `^[a-z0-9]+(-[a-z0-9]+)*$`, prefix `oh-`. Original name if good fit, adapt if not. Fusion names signal combined purpose.
84
+
85
+ ## Phase 5: Fusion (opt — skip for single imports)
86
+
87
+ For each skill being fused, identify:
88
+ - **Unique concepts** — content only this skill has
89
+ - **Overlapping content** — same idea expressed differently (keep the better version)
90
+ - **Conflicting directives** — skills that say opposite things (surface to user)
91
+
92
+ ### Merge Architecture
93
+ Structure so each source contributes its strength. Do NOT concatenate — must read as one coherent workflow, not three documents glued together.
94
+
95
+ ```markdown
96
+ ## Combined Workflow
97
+ ### Phase A: <from skill 1>
98
+ ### Phase B: <from skill 2>
99
+ ```
100
+
101
+ ### Naming
102
+ Name signals combined purpose, not individual sources. E.g., `oh-facade` from redesign + design-taste + high-end-visual, not `oh-redesign-plus-taste`.
103
+
104
+ ## Phase 6: Integration
105
+
106
+ 1. **Create file** → user dir (`~/.config/opencode/skills/oh-<name>/SKILL.md`)
107
+ 2. **Wire AUTOPILOT** → add to auto-classify matrix in `harness/codex/AUTOPILOT.md`: signal keywords → classification → "Load **oh-<name>**. Do not ask."
108
+ 3. **Wire routing** → add `route:` frontmatter in the skill. Dynamic loading reads `route.pass`, `route.fail`, `route.blocker` directly from `SKILL.md` — no ROUTING.md edit needed. Skill becomes routable automatically.
109
+ 4. **Wire AGENTS.md** → add to skills table with tier and purpose. Increment total count.
110
+ 5. **Wire openhermes.md** → add to orchestrator's skill list in `harness/agents/openhermes.md`.
111
+ 6. **Verify** → route to `oh-skills-link` to confirm OpenCode discovers it.
112
+
113
+ ## Anti-patterns
114
+
115
+ - Importing without analysis (always run Phase 2)
116
+ - Keeping everything — ~50% of external skills is fluff
117
+ - Fusing incompatible domains (confusing to model and user)
118
+ - Naming after source ("oh-tailwind-v2") instead of capability ("oh-styles")
119
+ - Skipping route frontmatter — without it, autopilot can't route
120
+ - Overwriting existing routing without checking for collisions