owflow 0.5.0 → 0.7.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 (195) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +448 -261
  3. package/dist/agents/bottleneck-analyzer.md +332 -329
  4. package/dist/agents/code-quality-pragmatist.md +353 -354
  5. package/dist/agents/code-reviewer.md +238 -239
  6. package/dist/agents/codebase-analysis-reporter.md +245 -246
  7. package/dist/agents/docs-operator.md +22 -23
  8. package/dist/agents/e2e-test-verifier.md +447 -448
  9. package/dist/agents/gap-analyzer.md +501 -502
  10. package/dist/agents/implementation-completeness-checker.md +219 -220
  11. package/dist/agents/implementation-planner.md +308 -309
  12. package/dist/agents/information-gatherer.md +690 -691
  13. package/dist/agents/production-readiness-checker.md +278 -279
  14. package/dist/agents/project-analyzer.md +403 -403
  15. package/dist/agents/reality-assessor.md +365 -366
  16. package/dist/agents/research-planner.md +449 -450
  17. package/dist/agents/research-synthesizer.md +402 -403
  18. package/dist/agents/solution-brainstormer.md +256 -257
  19. package/dist/agents/solution-designer.md +371 -372
  20. package/dist/agents/spec-auditor.md +297 -298
  21. package/dist/agents/specification-creator.md +333 -334
  22. package/dist/agents/task-classifier.md +449 -450
  23. package/dist/agents/task-group-implementer.md +283 -284
  24. package/dist/agents/test-suite-runner.md +194 -195
  25. package/dist/agents/user-docs-generator.md +508 -509
  26. package/dist/commands/reviews-code.md +90 -90
  27. package/dist/commands/reviews-pragmatic.md +99 -99
  28. package/dist/commands/reviews-production-readiness.md +113 -113
  29. package/dist/commands/reviews-reality-check.md +110 -110
  30. package/dist/commands/reviews-spec-audit.md +114 -114
  31. package/dist/commands/work.md +280 -280
  32. package/dist/configuration/agents-config.d.ts +2 -0
  33. package/dist/configuration/agents-config.js +8 -44
  34. package/dist/configuration/commands-config.d.ts +23 -0
  35. package/dist/configuration/commands-config.js +17 -17
  36. package/dist/configuration/skills-config.d.ts +2 -0
  37. package/dist/configuration/skills-config.js +3 -3
  38. package/dist/hooks/hooks-diagnostics.d.ts +3 -0
  39. package/dist/hooks/hooks-diagnostics.js +21 -0
  40. package/dist/hooks/hooks-persistence.d.ts +17 -0
  41. package/dist/hooks/hooks-persistence.js +207 -0
  42. package/dist/hooks/hooks-registry.d.ts +6 -0
  43. package/dist/hooks/hooks-registry.js +104 -0
  44. package/dist/hooks/hooks-wrapper.d.ts +25 -0
  45. package/dist/hooks/hooks-wrapper.js +318 -0
  46. package/dist/hooks/internal/before-tool.d.ts +6 -0
  47. package/dist/hooks/internal/before-tool.js +13 -0
  48. package/dist/hooks/internal/session-compaction.d.ts +9 -0
  49. package/dist/hooks/{session-compaction.js → internal/session-compaction.js} +9 -7
  50. package/dist/hooks/runtime/circuit-breaker.d.ts +23 -0
  51. package/dist/hooks/runtime/circuit-breaker.js +39 -0
  52. package/dist/hooks/runtime/failure-policy.d.ts +15 -0
  53. package/dist/hooks/runtime/failure-policy.js +49 -0
  54. package/dist/hooks/runtime/process-executor.d.ts +33 -0
  55. package/dist/hooks/runtime/process-executor.js +147 -0
  56. package/dist/hooks/runtime/status-recorder.d.ts +27 -0
  57. package/dist/hooks/runtime/status-recorder.js +111 -0
  58. package/dist/index.d.ts +7 -0
  59. package/dist/index.js +111 -40
  60. package/dist/skills/agents-md-generator/SKILL.md +223 -223
  61. package/dist/skills/codebase-analyzer/SKILL.md +162 -162
  62. package/dist/skills/codebase-analyzer/references/code-analysis.md +63 -63
  63. package/dist/skills/codebase-analyzer/references/combined.md +31 -31
  64. package/dist/skills/codebase-analyzer/references/context-discovery.md +63 -63
  65. package/dist/skills/codebase-analyzer/references/file-discovery.md +51 -51
  66. package/dist/skills/codebase-analyzer/references/migration-target.md +23 -23
  67. package/dist/skills/codebase-analyzer/references/pattern-mining.md +22 -22
  68. package/dist/skills/dev-analyze/SKILL.md +115 -115
  69. package/dist/skills/dev-bugfix/SKILL.md +452 -452
  70. package/dist/skills/dev-finalize/SKILL.md +118 -118
  71. package/dist/skills/dev-implement/SKILL.md +167 -167
  72. package/dist/skills/dev-plan/SKILL.md +147 -147
  73. package/dist/skills/dev-spec/SKILL.md +182 -182
  74. package/dist/skills/dev-tdd-red/SKILL.md +94 -94
  75. package/dist/skills/dev-verify/SKILL.md +153 -153
  76. package/dist/skills/development/SKILL.md +260 -260
  77. package/dist/skills/diagrams-mermaid/SKILL.md +183 -159
  78. package/dist/skills/diagrams-mermaid/references/reference.md +220 -148
  79. package/dist/skills/docs-manager/SKILL.md +379 -379
  80. package/dist/skills/docs-manager/docs/INDEX.md +199 -199
  81. package/dist/skills/docs-manager/docs/standards/backend/api.md +25 -25
  82. package/dist/skills/docs-manager/docs/standards/backend/migrations.md +22 -22
  83. package/dist/skills/docs-manager/docs/standards/backend/models.md +25 -25
  84. package/dist/skills/docs-manager/docs/standards/backend/queries.md +22 -22
  85. package/dist/skills/docs-manager/docs/standards/frontend/accessibility.md +25 -25
  86. package/dist/skills/docs-manager/docs/standards/frontend/components.md +28 -28
  87. package/dist/skills/docs-manager/docs/standards/frontend/css.md +16 -16
  88. package/dist/skills/docs-manager/docs/standards/frontend/responsive.md +28 -28
  89. package/dist/skills/docs-manager/docs/standards/global/coding-style.md +25 -25
  90. package/dist/skills/docs-manager/docs/standards/global/commenting.md +10 -10
  91. package/dist/skills/docs-manager/docs/standards/global/conventions.md +31 -31
  92. package/dist/skills/docs-manager/docs/standards/global/error-handling.md +22 -22
  93. package/dist/skills/docs-manager/docs/standards/global/minimal-implementation.md +22 -22
  94. package/dist/skills/docs-manager/docs/standards/global/validation.md +28 -28
  95. package/dist/skills/docs-manager/docs/standards/testing/test-writing.md +25 -25
  96. package/dist/skills/docs-manager/references/agents-md-template.md +29 -29
  97. package/dist/skills/docs-manager/references/index-md-template.md +73 -73
  98. package/dist/skills/flow-init/SKILL.md +234 -234
  99. package/dist/skills/flow-init/references/architecture-template.md +45 -45
  100. package/dist/skills/flow-init/references/roadmap-templates.md +93 -93
  101. package/dist/skills/flow-init/references/tech-stack-template.md +70 -70
  102. package/dist/skills/flow-init/references/vision-templates.md +75 -75
  103. package/dist/skills/goal-development/SKILL.md +96 -96
  104. package/dist/skills/goal-migration/SKILL.md +114 -114
  105. package/dist/skills/goal-performance/SKILL.md +126 -0
  106. package/dist/skills/goal-research/SKILL.md +118 -118
  107. package/dist/skills/html-renderer/SKILL.md +173 -173
  108. package/dist/skills/html-renderer/references/index.html +318 -318
  109. package/dist/skills/html-renderer/references/styles.css +388 -388
  110. package/dist/skills/html-renderer/references/tokens.json +104 -104
  111. package/dist/skills/implementation-plan-executor/SKILL.md +378 -378
  112. package/dist/skills/implementation-verifier/SKILL.md +307 -307
  113. package/dist/skills/migration/SKILL.md +268 -268
  114. package/dist/skills/migration-analyze/SKILL.md +126 -126
  115. package/dist/skills/migration-finalize/SKILL.md +161 -161
  116. package/dist/skills/migration-fix/SKILL.md +155 -155
  117. package/dist/skills/migration-implement/SKILL.md +131 -131
  118. package/dist/skills/migration-plan/SKILL.md +131 -131
  119. package/dist/skills/migration-spec/SKILL.md +135 -135
  120. package/dist/skills/migration-spec/references/migration-strategies.md +430 -430
  121. package/dist/skills/migration-target/SKILL.md +134 -134
  122. package/dist/skills/migration-target/references/migration-types.md +489 -489
  123. package/dist/skills/migration-verify/SKILL.md +184 -184
  124. package/dist/skills/orchestrator-framework/SKILL.md +65 -65
  125. package/dist/skills/orchestrator-framework/references/command-namespacing.md +7 -7
  126. package/dist/skills/orchestrator-framework/references/confirm-or-revise-exception.md +20 -20
  127. package/dist/skills/orchestrator-framework/references/delegation-rules.md +54 -54
  128. package/dist/skills/orchestrator-framework/references/dispatcher-handoff.md +27 -27
  129. package/dist/skills/orchestrator-framework/references/fix-loop-contract.md +65 -65
  130. package/dist/skills/orchestrator-framework/references/gate-contract.md +122 -117
  131. package/dist/skills/orchestrator-framework/references/orchestrator-creation-checklist.md +51 -51
  132. package/dist/skills/orchestrator-framework/references/orchestrator-patterns.md +235 -235
  133. package/dist/skills/performance/SKILL.md +267 -437
  134. package/dist/skills/performance-analyze/SKILL.md +129 -0
  135. package/dist/skills/{performance → performance-analyze}/references/performance-optimization-guide.md +271 -365
  136. package/dist/skills/performance-finalize/SKILL.md +117 -0
  137. package/dist/skills/performance-implement/SKILL.md +114 -0
  138. package/dist/skills/performance-plan/SKILL.md +112 -0
  139. package/dist/skills/performance-spec/SKILL.md +145 -0
  140. package/dist/skills/performance-verify/SKILL.md +164 -0
  141. package/dist/skills/research/SKILL.md +249 -249
  142. package/dist/skills/research-brainstorm/SKILL.md +120 -120
  143. package/dist/skills/research-brainstorm/references/brainstorming-techniques.md +84 -84
  144. package/dist/skills/research-converge/SKILL.md +130 -130
  145. package/dist/skills/research-design/SKILL.md +146 -146
  146. package/dist/skills/research-design/references/design-techniques.md +40 -40
  147. package/dist/skills/research-finalize/SKILL.md +125 -125
  148. package/dist/skills/research-fork/SKILL.md +190 -190
  149. package/dist/skills/research-gather/SKILL.md +133 -133
  150. package/dist/skills/research-plan/SKILL.md +141 -141
  151. package/dist/skills/research-plan/references/research-methodologies.md +710 -710
  152. package/dist/skills/research-quick/SKILL.md +139 -139
  153. package/dist/skills/research-synthesize/SKILL.md +127 -127
  154. package/dist/skills/rule-reviewer/SKILL.md +334 -334
  155. package/dist/skills/standards-discover/SKILL.md +260 -260
  156. package/dist/skills/standards-discover/references/aggregation-strategy.md +76 -76
  157. package/dist/skills/standards-discover/references/code-pattern-prompt.md +68 -68
  158. package/dist/skills/standards-discover/references/config-analyzer-prompt.md +67 -67
  159. package/dist/skills/standards-discover/references/docs-extractor-prompt.md +65 -65
  160. package/dist/skills/standards-discover/references/external-analyzer-prompt.md +75 -75
  161. package/dist/skills/standards-update/SKILL.md +207 -207
  162. package/dist/templates/orchestrator-state-base.yml +17 -17
  163. package/dist/templates/orchestrator-state-development.yml +95 -95
  164. package/dist/templates/orchestrator-state-migration.yml +95 -95
  165. package/dist/templates/orchestrator-state-performance.yml +64 -53
  166. package/dist/templates/orchestrator-state-research.yml +67 -67
  167. package/dist/tools/fork_task.d.ts +17 -0
  168. package/dist/tools/fork_task.js +21 -11
  169. package/dist/tools/verify_template.d.ts +11 -0
  170. package/dist/tools/verify_template.js +32 -17
  171. package/dist/tui/hooks-dialogs.d.ts +20 -0
  172. package/dist/tui/hooks-dialogs.js +181 -0
  173. package/dist/tui/hooks-presenter.d.ts +15 -0
  174. package/dist/tui/hooks-presenter.js +70 -0
  175. package/dist/tui/hooks-sidebar.d.ts +10 -0
  176. package/dist/tui/hooks-sidebar.js +104 -0
  177. package/dist/tui/primitives.d.ts +21 -0
  178. package/dist/tui/primitives.js +47 -0
  179. package/dist/tui.d.ts +12 -0
  180. package/dist/tui.js +129 -0
  181. package/dist/types/hook-types.d.ts +125 -0
  182. package/dist/types/hook-types.js +76 -0
  183. package/dist/types/opencode-types.d.ts +13 -0
  184. package/dist/utils/file-util.d.ts +2 -0
  185. package/dist/utils/file-util.js +6 -6
  186. package/dist/utils/fork-task.d.ts +27 -0
  187. package/dist/utils/fork-task.js +18 -23
  188. package/dist/utils/plugin-info.d.ts +3 -0
  189. package/dist/utils/plugin-info.js +8 -10
  190. package/dist/utils/workflow-paths.d.ts +17 -0
  191. package/dist/utils/workflow-paths.js +18 -0
  192. package/dist/utils/yaml-structure.d.ts +7 -0
  193. package/dist/utils/yaml-structure.js +7 -11
  194. package/package.json +68 -48
  195. package/dist/hooks/before-tool.js +0 -19
@@ -1,388 +1,388 @@
1
- :root {
2
- /* Mirrored from tokens.json to keep CSS runtime simple. */
3
- --hr-color-primary: #cc785c;
4
- --hr-color-primary-active: #a9583e;
5
- --hr-color-primary-disabled: #e6dfd8;
6
- --hr-color-ink: #141413;
7
- --hr-color-body: #3d3d3a;
8
- --hr-color-body-strong: #252523;
9
- --hr-color-muted: #6c6a64;
10
- --hr-color-muted-soft: #8e8b82;
11
- --hr-color-hairline: #e6dfd8;
12
- --hr-color-hairline-soft: #ebe6df;
13
- --hr-color-canvas: #faf9f5;
14
- --hr-color-surface-soft: #f5f0e8;
15
- --hr-color-surface-card: #efe9de;
16
- --hr-color-surface-cream-strong: #e8e0d2;
17
- --hr-color-surface-dark: #181715;
18
- --hr-color-surface-dark-elevated: #252320;
19
- --hr-color-surface-dark-soft: #1f1e1b;
20
- --hr-color-on-primary: #ffffff;
21
- --hr-color-on-dark: #faf9f5;
22
- --hr-color-on-dark-soft: #a09d96;
23
- --hr-color-accent-teal: #5db8a6;
24
- --hr-color-accent-amber: #e8a55a;
25
- --hr-color-success: #5db872;
26
- --hr-color-warning: #d4a017;
27
- --hr-color-error: #c64545;
28
-
29
- --hr-font-display: "Copernicus", "Tiempos Headline", "Cormorant Garamond", "EB Garamond", Georgia, serif;
30
- --hr-font-body: "StyreneB", "Styrene B", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
31
- --hr-font-code: "JetBrains Mono", ui-monospace, monospace;
32
-
33
- --hr-space-xxs: 4px;
34
- --hr-space-xs: 8px;
35
- --hr-space-sm: 12px;
36
- --hr-space-md: 16px;
37
- --hr-space-lg: 24px;
38
- --hr-space-xl: 32px;
39
- --hr-space-xxl: 48px;
40
- --hr-space-section: 96px;
41
-
42
- --hr-radius-xs: 4px;
43
- --hr-radius-sm: 6px;
44
- --hr-radius-md: 8px;
45
- --hr-radius-lg: 12px;
46
- --hr-radius-xl: 16px;
47
- --hr-radius-pill: 9999px;
48
- }
49
-
50
- *,
51
- *::before,
52
- *::after {
53
- box-sizing: border-box;
54
- }
55
-
56
- body {
57
- margin: 0;
58
- font-family: var(--hr-font-body);
59
- color: var(--hr-color-body);
60
- background: var(--hr-color-canvas);
61
- }
62
-
63
- .hr-page {
64
- max-width: 1100px;
65
- margin: 0 auto;
66
- padding: var(--hr-space-xl) var(--hr-space-lg) var(--hr-space-section);
67
- }
68
-
69
- .hr-section {
70
- margin-top: var(--hr-space-section);
71
- }
72
-
73
- .hr-section:first-child {
74
- margin-top: 0;
75
- }
76
-
77
- .hr-heading-eyebrow {
78
- display: inline-block;
79
- margin: 0 0 var(--hr-space-sm);
80
- color: var(--hr-color-muted);
81
- letter-spacing: 0.12em;
82
- text-transform: uppercase;
83
- font-size: 12px;
84
- font-weight: 600;
85
- }
86
-
87
- .hr-heading-h1,
88
- .hr-heading-h2,
89
- .hr-heading-h3,
90
- .hr-heading-h4 {
91
- margin: 0;
92
- color: var(--hr-color-ink);
93
- }
94
-
95
- .hr-heading-h1 {
96
- font-family: var(--hr-font-display);
97
- font-size: clamp(2.5rem, 5vw, 4rem);
98
- font-weight: 400;
99
- letter-spacing: -1.5px;
100
- line-height: 1.05;
101
- }
102
-
103
- .hr-heading-h2 {
104
- font-family: var(--hr-font-display);
105
- font-size: clamp(2rem, 4vw, 3rem);
106
- font-weight: 400;
107
- letter-spacing: -1px;
108
- line-height: 1.1;
109
- }
110
-
111
- .hr-heading-h3 {
112
- font-family: var(--hr-font-display);
113
- font-size: clamp(1.7rem, 3vw, 2.25rem);
114
- font-weight: 400;
115
- letter-spacing: -0.5px;
116
- line-height: 1.15;
117
- }
118
-
119
- .hr-heading-h4 {
120
- font-size: 1.125rem;
121
- font-weight: 500;
122
- line-height: 1.4;
123
- }
124
-
125
- .hr-stack {
126
- display: grid;
127
- gap: var(--hr-space-md);
128
- }
129
-
130
- .hr-text-block {
131
- max-width: 75ch;
132
- color: var(--hr-color-body);
133
- }
134
-
135
- .hr-text-block p,
136
- .hr-text-block ul,
137
- .hr-text-block ol {
138
- margin: 0;
139
- font-size: 16px;
140
- line-height: 1.55;
141
- }
142
-
143
- .hr-text-block ul,
144
- .hr-text-block ol {
145
- padding-left: 1.25rem;
146
- }
147
-
148
- .hr-text-muted {
149
- color: var(--hr-color-muted);
150
- font-size: 14px;
151
- }
152
-
153
- .hr-grid {
154
- display: grid;
155
- grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
156
- gap: var(--hr-space-lg);
157
- }
158
-
159
- .hr-grid-2 {
160
- grid-template-columns: repeat(2, minmax(0, 1fr));
161
- }
162
-
163
- .hr-grid-3 {
164
- grid-template-columns: repeat(3, minmax(0, 1fr));
165
- }
166
-
167
- .hr-grid-4 {
168
- grid-template-columns: repeat(4, minmax(0, 1fr));
169
- }
170
-
171
- .hr-grid-feature {
172
- grid-template-columns: 2fr 1fr 1fr;
173
- }
174
-
175
- .hr-grid-feature > :first-child {
176
- grid-row: span 1;
177
- }
178
-
179
- .hr-grid-sidebar {
180
- grid-template-columns: 2fr 1fr;
181
- }
182
-
183
- @media (max-width: 880px) {
184
- .hr-grid-3,
185
- .hr-grid-4,
186
- .hr-grid-feature {
187
- grid-template-columns: repeat(2, minmax(0, 1fr));
188
- }
189
- .hr-grid-feature > :first-child {
190
- grid-column: 1 / -1;
191
- }
192
- }
193
-
194
- @media (max-width: 600px) {
195
- .hr-grid-2,
196
- .hr-grid-3,
197
- .hr-grid-4,
198
- .hr-grid-feature,
199
- .hr-grid-sidebar {
200
- grid-template-columns: 1fr;
201
- }
202
- .hr-grid-feature > :first-child {
203
- grid-column: auto;
204
- }
205
- }
206
-
207
- .hr-card {
208
- background: var(--hr-color-surface-card);
209
- border: 1px solid var(--hr-color-hairline);
210
- border-radius: var(--hr-radius-lg);
211
- padding: var(--hr-space-xl);
212
- }
213
-
214
- .hr-card-featured {
215
- background: var(--hr-color-surface-dark);
216
- border-color: var(--hr-color-surface-dark-elevated);
217
- color: var(--hr-color-on-dark);
218
- }
219
-
220
- .hr-card-title {
221
- margin: 0 0 var(--hr-space-sm);
222
- font-size: 1.125rem;
223
- font-weight: 600;
224
- color: inherit;
225
- }
226
-
227
- .hr-card-text {
228
- margin: 0;
229
- color: inherit;
230
- opacity: 0.92;
231
- line-height: 1.55;
232
- }
233
-
234
- .hr-badge {
235
- display: inline-block;
236
- margin-top: var(--hr-space-md);
237
- border-radius: var(--hr-radius-pill);
238
- background: var(--hr-color-primary);
239
- color: var(--hr-color-on-primary);
240
- font-size: 12px;
241
- font-weight: 600;
242
- letter-spacing: 0.1em;
243
- text-transform: uppercase;
244
- padding: 4px 10px;
245
- }
246
-
247
- .hr-table-wrap {
248
- overflow: auto;
249
- border: 1px solid var(--hr-color-hairline);
250
- border-radius: var(--hr-radius-lg);
251
- background: var(--hr-color-canvas);
252
- }
253
-
254
- .hr-table {
255
- width: 100%;
256
- border-collapse: collapse;
257
- min-width: 640px;
258
- }
259
-
260
- .hr-table th,
261
- .hr-table td {
262
- text-align: left;
263
- padding: var(--hr-space-md);
264
- border-bottom: 1px solid var(--hr-color-hairline-soft);
265
- font-size: 14px;
266
- }
267
-
268
- .hr-table th {
269
- color: var(--hr-color-body-strong);
270
- background: var(--hr-color-surface-soft);
271
- font-weight: 600;
272
- }
273
-
274
- .hr-table tbody tr:last-child td {
275
- border-bottom: 0;
276
- }
277
-
278
- .hr-diagram {
279
- border-radius: var(--hr-radius-lg);
280
- border: 1px solid var(--hr-color-hairline);
281
- background: linear-gradient(
282
- 180deg,
283
- var(--hr-color-surface-card) 0%,
284
- var(--hr-color-canvas) 100%
285
- );
286
- padding: var(--hr-space-lg);
287
- }
288
-
289
- .hr-diagram pre {
290
- margin: 0;
291
- font-family: var(--hr-font-code);
292
- font-size: 14px;
293
- line-height: 1.6;
294
- color: var(--hr-color-body-strong);
295
- white-space: pre-wrap;
296
- }
297
-
298
- .hr-diagram .mermaid {
299
- margin: 0;
300
- display: flex;
301
- justify-content: center;
302
- font-family: var(--hr-font-code);
303
- font-size: 14px;
304
- line-height: 1.6;
305
- color: var(--hr-color-body-strong);
306
- white-space: pre;
307
- }
308
-
309
- .hr-diagram .mermaid svg {
310
- max-width: 100%;
311
- height: auto;
312
- display: block;
313
- margin: 0 auto;
314
- }
315
-
316
- .hr-quote {
317
- margin: 0;
318
- border-left: 4px solid var(--hr-color-primary);
319
- padding: var(--hr-space-md) var(--hr-space-lg);
320
- background: var(--hr-color-surface-soft);
321
- border-radius: 0 var(--hr-radius-md) var(--hr-radius-md) 0;
322
- }
323
-
324
- .hr-quote p {
325
- margin: 0;
326
- font-family: var(--hr-font-display);
327
- font-size: 1.5rem;
328
- line-height: 1.3;
329
- letter-spacing: -0.3px;
330
- color: var(--hr-color-ink);
331
- }
332
-
333
- .hr-quote footer {
334
- margin-top: var(--hr-space-sm);
335
- color: var(--hr-color-muted);
336
- font-size: 14px;
337
- }
338
-
339
- .hr-highlight {
340
- border: 1px solid var(--hr-color-hairline);
341
- border-left-width: 6px;
342
- border-radius: var(--hr-radius-md);
343
- background: var(--hr-color-surface-soft);
344
- padding: var(--hr-space-md) var(--hr-space-lg);
345
- }
346
-
347
- .hr-highlight-title {
348
- margin: 0 0 var(--hr-space-xs);
349
- font-size: 13px;
350
- font-weight: 700;
351
- letter-spacing: 0.08em;
352
- text-transform: uppercase;
353
- }
354
-
355
- .hr-highlight p {
356
- margin: 0;
357
- line-height: 1.55;
358
- }
359
-
360
- .hr-highlight-note {
361
- border-left-color: var(--hr-color-accent-teal);
362
- }
363
-
364
- .hr-highlight-note .hr-highlight-title {
365
- color: #2d8071;
366
- }
367
-
368
- .hr-highlight-warning {
369
- border-left-color: var(--hr-color-warning);
370
- }
371
-
372
- .hr-highlight-warning .hr-highlight-title {
373
- color: #8a6a0e;
374
- }
375
-
376
- .hr-highlight-important {
377
- border-left-color: var(--hr-color-primary);
378
- }
379
-
380
- .hr-highlight-important .hr-highlight-title {
381
- color: var(--hr-color-primary-active);
382
- }
383
-
384
- .hr-hr {
385
- border: 0;
386
- border-top: 1px solid var(--hr-color-hairline);
387
- margin: var(--hr-space-xl) 0;
388
- }
1
+ :root {
2
+ /* Mirrored from tokens.json to keep CSS runtime simple. */
3
+ --hr-color-primary: #cc785c;
4
+ --hr-color-primary-active: #a9583e;
5
+ --hr-color-primary-disabled: #e6dfd8;
6
+ --hr-color-ink: #141413;
7
+ --hr-color-body: #3d3d3a;
8
+ --hr-color-body-strong: #252523;
9
+ --hr-color-muted: #6c6a64;
10
+ --hr-color-muted-soft: #8e8b82;
11
+ --hr-color-hairline: #e6dfd8;
12
+ --hr-color-hairline-soft: #ebe6df;
13
+ --hr-color-canvas: #faf9f5;
14
+ --hr-color-surface-soft: #f5f0e8;
15
+ --hr-color-surface-card: #efe9de;
16
+ --hr-color-surface-cream-strong: #e8e0d2;
17
+ --hr-color-surface-dark: #181715;
18
+ --hr-color-surface-dark-elevated: #252320;
19
+ --hr-color-surface-dark-soft: #1f1e1b;
20
+ --hr-color-on-primary: #ffffff;
21
+ --hr-color-on-dark: #faf9f5;
22
+ --hr-color-on-dark-soft: #a09d96;
23
+ --hr-color-accent-teal: #5db8a6;
24
+ --hr-color-accent-amber: #e8a55a;
25
+ --hr-color-success: #5db872;
26
+ --hr-color-warning: #d4a017;
27
+ --hr-color-error: #c64545;
28
+
29
+ --hr-font-display: "Copernicus", "Tiempos Headline", "Cormorant Garamond", "EB Garamond", Georgia, serif;
30
+ --hr-font-body: "StyreneB", "Styrene B", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
31
+ --hr-font-code: "JetBrains Mono", ui-monospace, monospace;
32
+
33
+ --hr-space-xxs: 4px;
34
+ --hr-space-xs: 8px;
35
+ --hr-space-sm: 12px;
36
+ --hr-space-md: 16px;
37
+ --hr-space-lg: 24px;
38
+ --hr-space-xl: 32px;
39
+ --hr-space-xxl: 48px;
40
+ --hr-space-section: 96px;
41
+
42
+ --hr-radius-xs: 4px;
43
+ --hr-radius-sm: 6px;
44
+ --hr-radius-md: 8px;
45
+ --hr-radius-lg: 12px;
46
+ --hr-radius-xl: 16px;
47
+ --hr-radius-pill: 9999px;
48
+ }
49
+
50
+ *,
51
+ *::before,
52
+ *::after {
53
+ box-sizing: border-box;
54
+ }
55
+
56
+ body {
57
+ margin: 0;
58
+ font-family: var(--hr-font-body);
59
+ color: var(--hr-color-body);
60
+ background: var(--hr-color-canvas);
61
+ }
62
+
63
+ .hr-page {
64
+ max-width: 1100px;
65
+ margin: 0 auto;
66
+ padding: var(--hr-space-xl) var(--hr-space-lg) var(--hr-space-section);
67
+ }
68
+
69
+ .hr-section {
70
+ margin-top: var(--hr-space-section);
71
+ }
72
+
73
+ .hr-section:first-child {
74
+ margin-top: 0;
75
+ }
76
+
77
+ .hr-heading-eyebrow {
78
+ display: inline-block;
79
+ margin: 0 0 var(--hr-space-sm);
80
+ color: var(--hr-color-muted);
81
+ letter-spacing: 0.12em;
82
+ text-transform: uppercase;
83
+ font-size: 12px;
84
+ font-weight: 600;
85
+ }
86
+
87
+ .hr-heading-h1,
88
+ .hr-heading-h2,
89
+ .hr-heading-h3,
90
+ .hr-heading-h4 {
91
+ margin: 0;
92
+ color: var(--hr-color-ink);
93
+ }
94
+
95
+ .hr-heading-h1 {
96
+ font-family: var(--hr-font-display);
97
+ font-size: clamp(2.5rem, 5vw, 4rem);
98
+ font-weight: 400;
99
+ letter-spacing: -1.5px;
100
+ line-height: 1.05;
101
+ }
102
+
103
+ .hr-heading-h2 {
104
+ font-family: var(--hr-font-display);
105
+ font-size: clamp(2rem, 4vw, 3rem);
106
+ font-weight: 400;
107
+ letter-spacing: -1px;
108
+ line-height: 1.1;
109
+ }
110
+
111
+ .hr-heading-h3 {
112
+ font-family: var(--hr-font-display);
113
+ font-size: clamp(1.7rem, 3vw, 2.25rem);
114
+ font-weight: 400;
115
+ letter-spacing: -0.5px;
116
+ line-height: 1.15;
117
+ }
118
+
119
+ .hr-heading-h4 {
120
+ font-size: 1.125rem;
121
+ font-weight: 500;
122
+ line-height: 1.4;
123
+ }
124
+
125
+ .hr-stack {
126
+ display: grid;
127
+ gap: var(--hr-space-md);
128
+ }
129
+
130
+ .hr-text-block {
131
+ max-width: 75ch;
132
+ color: var(--hr-color-body);
133
+ }
134
+
135
+ .hr-text-block p,
136
+ .hr-text-block ul,
137
+ .hr-text-block ol {
138
+ margin: 0;
139
+ font-size: 16px;
140
+ line-height: 1.55;
141
+ }
142
+
143
+ .hr-text-block ul,
144
+ .hr-text-block ol {
145
+ padding-left: 1.25rem;
146
+ }
147
+
148
+ .hr-text-muted {
149
+ color: var(--hr-color-muted);
150
+ font-size: 14px;
151
+ }
152
+
153
+ .hr-grid {
154
+ display: grid;
155
+ grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
156
+ gap: var(--hr-space-lg);
157
+ }
158
+
159
+ .hr-grid-2 {
160
+ grid-template-columns: repeat(2, minmax(0, 1fr));
161
+ }
162
+
163
+ .hr-grid-3 {
164
+ grid-template-columns: repeat(3, minmax(0, 1fr));
165
+ }
166
+
167
+ .hr-grid-4 {
168
+ grid-template-columns: repeat(4, minmax(0, 1fr));
169
+ }
170
+
171
+ .hr-grid-feature {
172
+ grid-template-columns: 2fr 1fr 1fr;
173
+ }
174
+
175
+ .hr-grid-feature > :first-child {
176
+ grid-row: span 1;
177
+ }
178
+
179
+ .hr-grid-sidebar {
180
+ grid-template-columns: 2fr 1fr;
181
+ }
182
+
183
+ @media (max-width: 880px) {
184
+ .hr-grid-3,
185
+ .hr-grid-4,
186
+ .hr-grid-feature {
187
+ grid-template-columns: repeat(2, minmax(0, 1fr));
188
+ }
189
+ .hr-grid-feature > :first-child {
190
+ grid-column: 1 / -1;
191
+ }
192
+ }
193
+
194
+ @media (max-width: 600px) {
195
+ .hr-grid-2,
196
+ .hr-grid-3,
197
+ .hr-grid-4,
198
+ .hr-grid-feature,
199
+ .hr-grid-sidebar {
200
+ grid-template-columns: 1fr;
201
+ }
202
+ .hr-grid-feature > :first-child {
203
+ grid-column: auto;
204
+ }
205
+ }
206
+
207
+ .hr-card {
208
+ background: var(--hr-color-surface-card);
209
+ border: 1px solid var(--hr-color-hairline);
210
+ border-radius: var(--hr-radius-lg);
211
+ padding: var(--hr-space-xl);
212
+ }
213
+
214
+ .hr-card-featured {
215
+ background: var(--hr-color-surface-dark);
216
+ border-color: var(--hr-color-surface-dark-elevated);
217
+ color: var(--hr-color-on-dark);
218
+ }
219
+
220
+ .hr-card-title {
221
+ margin: 0 0 var(--hr-space-sm);
222
+ font-size: 1.125rem;
223
+ font-weight: 600;
224
+ color: inherit;
225
+ }
226
+
227
+ .hr-card-text {
228
+ margin: 0;
229
+ color: inherit;
230
+ opacity: 0.92;
231
+ line-height: 1.55;
232
+ }
233
+
234
+ .hr-badge {
235
+ display: inline-block;
236
+ margin-top: var(--hr-space-md);
237
+ border-radius: var(--hr-radius-pill);
238
+ background: var(--hr-color-primary);
239
+ color: var(--hr-color-on-primary);
240
+ font-size: 12px;
241
+ font-weight: 600;
242
+ letter-spacing: 0.1em;
243
+ text-transform: uppercase;
244
+ padding: 4px 10px;
245
+ }
246
+
247
+ .hr-table-wrap {
248
+ overflow: auto;
249
+ border: 1px solid var(--hr-color-hairline);
250
+ border-radius: var(--hr-radius-lg);
251
+ background: var(--hr-color-canvas);
252
+ }
253
+
254
+ .hr-table {
255
+ width: 100%;
256
+ border-collapse: collapse;
257
+ min-width: 640px;
258
+ }
259
+
260
+ .hr-table th,
261
+ .hr-table td {
262
+ text-align: left;
263
+ padding: var(--hr-space-md);
264
+ border-bottom: 1px solid var(--hr-color-hairline-soft);
265
+ font-size: 14px;
266
+ }
267
+
268
+ .hr-table th {
269
+ color: var(--hr-color-body-strong);
270
+ background: var(--hr-color-surface-soft);
271
+ font-weight: 600;
272
+ }
273
+
274
+ .hr-table tbody tr:last-child td {
275
+ border-bottom: 0;
276
+ }
277
+
278
+ .hr-diagram {
279
+ border-radius: var(--hr-radius-lg);
280
+ border: 1px solid var(--hr-color-hairline);
281
+ background: linear-gradient(
282
+ 180deg,
283
+ var(--hr-color-surface-card) 0%,
284
+ var(--hr-color-canvas) 100%
285
+ );
286
+ padding: var(--hr-space-lg);
287
+ }
288
+
289
+ .hr-diagram pre {
290
+ margin: 0;
291
+ font-family: var(--hr-font-code);
292
+ font-size: 14px;
293
+ line-height: 1.6;
294
+ color: var(--hr-color-body-strong);
295
+ white-space: pre-wrap;
296
+ }
297
+
298
+ .hr-diagram .mermaid {
299
+ margin: 0;
300
+ display: flex;
301
+ justify-content: center;
302
+ font-family: var(--hr-font-code);
303
+ font-size: 14px;
304
+ line-height: 1.6;
305
+ color: var(--hr-color-body-strong);
306
+ white-space: pre;
307
+ }
308
+
309
+ .hr-diagram .mermaid svg {
310
+ max-width: 100%;
311
+ height: auto;
312
+ display: block;
313
+ margin: 0 auto;
314
+ }
315
+
316
+ .hr-quote {
317
+ margin: 0;
318
+ border-left: 4px solid var(--hr-color-primary);
319
+ padding: var(--hr-space-md) var(--hr-space-lg);
320
+ background: var(--hr-color-surface-soft);
321
+ border-radius: 0 var(--hr-radius-md) var(--hr-radius-md) 0;
322
+ }
323
+
324
+ .hr-quote p {
325
+ margin: 0;
326
+ font-family: var(--hr-font-display);
327
+ font-size: 1.5rem;
328
+ line-height: 1.3;
329
+ letter-spacing: -0.3px;
330
+ color: var(--hr-color-ink);
331
+ }
332
+
333
+ .hr-quote footer {
334
+ margin-top: var(--hr-space-sm);
335
+ color: var(--hr-color-muted);
336
+ font-size: 14px;
337
+ }
338
+
339
+ .hr-highlight {
340
+ border: 1px solid var(--hr-color-hairline);
341
+ border-left-width: 6px;
342
+ border-radius: var(--hr-radius-md);
343
+ background: var(--hr-color-surface-soft);
344
+ padding: var(--hr-space-md) var(--hr-space-lg);
345
+ }
346
+
347
+ .hr-highlight-title {
348
+ margin: 0 0 var(--hr-space-xs);
349
+ font-size: 13px;
350
+ font-weight: 700;
351
+ letter-spacing: 0.08em;
352
+ text-transform: uppercase;
353
+ }
354
+
355
+ .hr-highlight p {
356
+ margin: 0;
357
+ line-height: 1.55;
358
+ }
359
+
360
+ .hr-highlight-note {
361
+ border-left-color: var(--hr-color-accent-teal);
362
+ }
363
+
364
+ .hr-highlight-note .hr-highlight-title {
365
+ color: #2d8071;
366
+ }
367
+
368
+ .hr-highlight-warning {
369
+ border-left-color: var(--hr-color-warning);
370
+ }
371
+
372
+ .hr-highlight-warning .hr-highlight-title {
373
+ color: #8a6a0e;
374
+ }
375
+
376
+ .hr-highlight-important {
377
+ border-left-color: var(--hr-color-primary);
378
+ }
379
+
380
+ .hr-highlight-important .hr-highlight-title {
381
+ color: var(--hr-color-primary-active);
382
+ }
383
+
384
+ .hr-hr {
385
+ border: 0;
386
+ border-top: 1px solid var(--hr-color-hairline);
387
+ margin: var(--hr-space-xl) 0;
388
+ }