@harness-engineering/cli 1.6.1 → 1.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 (72) hide show
  1. package/dist/agents/personas/planner.yaml +27 -0
  2. package/dist/agents/personas/verifier.yaml +30 -0
  3. package/dist/agents/skills/claude-code/enforce-architecture/SKILL.md +19 -0
  4. package/dist/agents/skills/claude-code/harness-accessibility/SKILL.md +274 -0
  5. package/dist/agents/skills/claude-code/harness-accessibility/skill.yaml +51 -0
  6. package/dist/agents/skills/claude-code/harness-autopilot/SKILL.md +111 -72
  7. package/dist/agents/skills/claude-code/harness-autopilot/skill.yaml +4 -2
  8. package/dist/agents/skills/claude-code/harness-dependency-health/skill.yaml +1 -1
  9. package/dist/agents/skills/claude-code/harness-design/SKILL.md +265 -0
  10. package/dist/agents/skills/claude-code/harness-design/skill.yaml +53 -0
  11. package/dist/agents/skills/claude-code/harness-design-mobile/SKILL.md +336 -0
  12. package/dist/agents/skills/claude-code/harness-design-mobile/skill.yaml +49 -0
  13. package/dist/agents/skills/claude-code/harness-design-system/SKILL.md +282 -0
  14. package/dist/agents/skills/claude-code/harness-design-system/skill.yaml +50 -0
  15. package/dist/agents/skills/claude-code/harness-design-web/SKILL.md +360 -0
  16. package/dist/agents/skills/claude-code/harness-design-web/skill.yaml +52 -0
  17. package/dist/agents/skills/claude-code/harness-hotspot-detector/skill.yaml +1 -1
  18. package/dist/agents/skills/claude-code/harness-impact-analysis/SKILL.md +16 -0
  19. package/dist/agents/skills/claude-code/harness-integrity/SKILL.md +19 -1
  20. package/dist/agents/skills/claude-code/harness-knowledge-mapper/skill.yaml +1 -1
  21. package/dist/agents/skills/claude-code/harness-onboarding/SKILL.md +19 -1
  22. package/dist/agents/skills/claude-code/harness-release-readiness/SKILL.md +13 -9
  23. package/dist/agents/skills/claude-code/harness-security-scan/skill.yaml +1 -1
  24. package/dist/agents/skills/claude-code/harness-verify/SKILL.md +26 -0
  25. package/dist/agents/skills/gemini-cli/harness-accessibility/SKILL.md +274 -0
  26. package/dist/agents/skills/gemini-cli/harness-accessibility/skill.yaml +51 -0
  27. package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +111 -72
  28. package/dist/agents/skills/gemini-cli/harness-autopilot/skill.yaml +4 -2
  29. package/dist/agents/skills/gemini-cli/harness-dependency-health/skill.yaml +1 -1
  30. package/dist/agents/skills/gemini-cli/harness-design/SKILL.md +265 -0
  31. package/dist/agents/skills/gemini-cli/harness-design/skill.yaml +53 -0
  32. package/dist/agents/skills/gemini-cli/harness-design-mobile/SKILL.md +336 -0
  33. package/dist/agents/skills/gemini-cli/harness-design-mobile/skill.yaml +49 -0
  34. package/dist/agents/skills/gemini-cli/harness-design-system/SKILL.md +282 -0
  35. package/dist/agents/skills/gemini-cli/harness-design-system/skill.yaml +50 -0
  36. package/dist/agents/skills/gemini-cli/harness-design-web/SKILL.md +360 -0
  37. package/dist/agents/skills/gemini-cli/harness-design-web/skill.yaml +52 -0
  38. package/dist/agents/skills/gemini-cli/harness-hotspot-detector/skill.yaml +1 -1
  39. package/dist/agents/skills/gemini-cli/harness-impact-analysis/SKILL.md +16 -0
  40. package/dist/agents/skills/gemini-cli/harness-knowledge-mapper/skill.yaml +1 -1
  41. package/dist/agents/skills/gemini-cli/harness-release-readiness/SKILL.md +13 -9
  42. package/dist/agents/skills/gemini-cli/harness-security-scan/skill.yaml +1 -1
  43. package/dist/agents/skills/node_modules/.bin/vitest +2 -2
  44. package/dist/agents/skills/shared/design-knowledge/anti-patterns/color.yaml +106 -0
  45. package/dist/agents/skills/shared/design-knowledge/anti-patterns/layout.yaml +109 -0
  46. package/dist/agents/skills/shared/design-knowledge/anti-patterns/motion.yaml +109 -0
  47. package/dist/agents/skills/shared/design-knowledge/anti-patterns/typography.yaml +112 -0
  48. package/dist/agents/skills/shared/design-knowledge/industries/creative.yaml +80 -0
  49. package/dist/agents/skills/shared/design-knowledge/industries/ecommerce.yaml +80 -0
  50. package/dist/agents/skills/shared/design-knowledge/industries/emerging-tech.yaml +83 -0
  51. package/dist/agents/skills/shared/design-knowledge/industries/fintech.yaml +80 -0
  52. package/dist/agents/skills/shared/design-knowledge/industries/healthcare.yaml +80 -0
  53. package/dist/agents/skills/shared/design-knowledge/industries/lifestyle.yaml +80 -0
  54. package/dist/agents/skills/shared/design-knowledge/industries/saas.yaml +80 -0
  55. package/dist/agents/skills/shared/design-knowledge/industries/services.yaml +80 -0
  56. package/dist/agents/skills/shared/design-knowledge/palettes/curated.yaml +234 -0
  57. package/dist/agents/skills/shared/design-knowledge/platform-rules/android.yaml +125 -0
  58. package/dist/agents/skills/shared/design-knowledge/platform-rules/flutter.yaml +144 -0
  59. package/dist/agents/skills/shared/design-knowledge/platform-rules/ios.yaml +106 -0
  60. package/dist/agents/skills/shared/design-knowledge/platform-rules/web.yaml +102 -0
  61. package/dist/agents/skills/shared/design-knowledge/typography/pairings.yaml +274 -0
  62. package/dist/bin/harness.js +3 -2
  63. package/dist/{chunk-3U5VZYR7.js → chunk-4WUGOJQ7.js} +6 -3
  64. package/dist/{chunk-O6NEKDYP.js → chunk-FFIX3QVG.js} +697 -349
  65. package/dist/chunk-GA6GN5J2.js +6150 -0
  66. package/dist/dist-C4J67MPP.js +242 -0
  67. package/dist/dist-N4D4QWFV.js +2809 -0
  68. package/dist/index.d.ts +79 -0
  69. package/dist/index.js +3 -2
  70. package/dist/validate-cross-check-WGXQ7K62.js +7 -0
  71. package/package.json +12 -8
  72. package/dist/validate-cross-check-LNIZ7KGZ.js +0 -6
@@ -0,0 +1,274 @@
1
+ description: "Curated font pairings with complete fallback stacks and usage guidance"
2
+
3
+ pairings:
4
+ - name: "Modern Editorial"
5
+ tags: ["editorial", "creative", "premium"]
6
+ display:
7
+ family: "Instrument Serif"
8
+ fallback: "Georgia, 'Times New Roman', serif"
9
+ weights: [400, 700]
10
+ variable: false
11
+ source: "Google Fonts"
12
+ body:
13
+ family: "Geist"
14
+ fallback: "system-ui, -apple-system, sans-serif"
15
+ weights: [400, 500, 600]
16
+ variable: true
17
+ source: "Vercel"
18
+ mono:
19
+ family: "Geist Mono"
20
+ fallback: "'SF Mono', 'Fira Code', 'Cascadia Code', monospace"
21
+ weights: [400, 500]
22
+ source: "Vercel"
23
+ scale:
24
+ base: "1rem"
25
+ ratio: 1.25
26
+ sizes:
27
+ xs: "0.75rem"
28
+ sm: "0.875rem"
29
+ base: "1rem"
30
+ lg: "1.125rem"
31
+ xl: "1.25rem"
32
+ "2xl": "1.5rem"
33
+ "3xl": "1.875rem"
34
+ "4xl": "2.25rem"
35
+ "5xl": "3rem"
36
+ usage: "Best for editorial, blog, and content-heavy sites that want to feel premium and literary."
37
+
38
+ - name: "Clean Tech"
39
+ tags: ["tech", "saas", "dashboard", "modern"]
40
+ display:
41
+ family: "Inter"
42
+ fallback: "system-ui, -apple-system, 'Segoe UI', sans-serif"
43
+ weights: [500, 600, 700]
44
+ variable: true
45
+ source: "Google Fonts"
46
+ body:
47
+ family: "Inter"
48
+ fallback: "system-ui, -apple-system, 'Segoe UI', sans-serif"
49
+ weights: [400, 500, 600]
50
+ variable: true
51
+ source: "Google Fonts"
52
+ mono:
53
+ family: "JetBrains Mono"
54
+ fallback: "'SF Mono', 'Fira Code', 'Cascadia Code', monospace"
55
+ weights: [400, 500]
56
+ source: "Google Fonts"
57
+ scale:
58
+ base: "1rem"
59
+ ratio: 1.2
60
+ sizes:
61
+ xs: "0.75rem"
62
+ sm: "0.875rem"
63
+ base: "1rem"
64
+ lg: "1.125rem"
65
+ xl: "1.25rem"
66
+ "2xl": "1.5rem"
67
+ "3xl": "1.8rem"
68
+ "4xl": "2.16rem"
69
+ "5xl": "2.592rem"
70
+ usage: "Ideal for SaaS dashboards, developer tools, and data-heavy interfaces where clarity and density matter."
71
+
72
+ - name: "Traditional Pro"
73
+ tags: ["professional", "corporate", "legal", "finance"]
74
+ display:
75
+ family: "Playfair Display"
76
+ fallback: "Georgia, 'Times New Roman', 'Palatino Linotype', serif"
77
+ weights: [400, 700, 900]
78
+ variable: true
79
+ source: "Google Fonts"
80
+ body:
81
+ family: "Source Sans 3"
82
+ fallback: "'Segoe UI', 'Helvetica Neue', Arial, sans-serif"
83
+ weights: [400, 600, 700]
84
+ variable: true
85
+ source: "Google Fonts"
86
+ mono:
87
+ family: "Source Code Pro"
88
+ fallback: "'SF Mono', 'Courier New', monospace"
89
+ weights: [400, 500]
90
+ source: "Google Fonts"
91
+ scale:
92
+ base: "1rem"
93
+ ratio: 1.333
94
+ sizes:
95
+ xs: "0.75rem"
96
+ sm: "0.875rem"
97
+ base: "1rem"
98
+ lg: "1.125rem"
99
+ xl: "1.333rem"
100
+ "2xl": "1.777rem"
101
+ "3xl": "2.369rem"
102
+ "4xl": "3.157rem"
103
+ "5xl": "4.209rem"
104
+ usage: "Best for corporate sites, law firms, financial services, and publications that need gravitas and authority."
105
+
106
+ - name: "Friendly Rounded"
107
+ tags: ["friendly", "approachable", "lifestyle", "consumer"]
108
+ display:
109
+ family: "Nunito"
110
+ fallback: "'Varela Round', 'Helvetica Neue', Arial, sans-serif"
111
+ weights: [600, 700, 800]
112
+ variable: true
113
+ source: "Google Fonts"
114
+ body:
115
+ family: "DM Sans"
116
+ fallback: "'Helvetica Neue', Arial, sans-serif"
117
+ weights: [400, 500, 700]
118
+ variable: true
119
+ source: "Google Fonts"
120
+ mono:
121
+ family: "DM Mono"
122
+ fallback: "'SF Mono', 'Fira Code', monospace"
123
+ weights: [400, 500]
124
+ source: "Google Fonts"
125
+ scale:
126
+ base: "1rem"
127
+ ratio: 1.25
128
+ sizes:
129
+ xs: "0.75rem"
130
+ sm: "0.875rem"
131
+ base: "1rem"
132
+ lg: "1.125rem"
133
+ xl: "1.25rem"
134
+ "2xl": "1.5rem"
135
+ "3xl": "1.875rem"
136
+ "4xl": "2.25rem"
137
+ "5xl": "3rem"
138
+ usage: "Perfect for consumer apps, lifestyle brands, and friendly SaaS products that want to feel warm and approachable."
139
+
140
+ - name: "Geometric Minimal"
141
+ tags: ["minimal", "geometric", "startup", "clean"]
142
+ display:
143
+ family: "Space Grotesk"
144
+ fallback: "'Helvetica Neue', Arial, sans-serif"
145
+ weights: [500, 700]
146
+ variable: true
147
+ source: "Google Fonts"
148
+ body:
149
+ family: "Work Sans"
150
+ fallback: "'Helvetica Neue', Arial, sans-serif"
151
+ weights: [400, 500, 600]
152
+ variable: true
153
+ source: "Google Fonts"
154
+ mono:
155
+ family: "Space Mono"
156
+ fallback: "'SF Mono', 'Courier New', monospace"
157
+ weights: [400, 700]
158
+ source: "Google Fonts"
159
+ scale:
160
+ base: "1rem"
161
+ ratio: 1.2
162
+ sizes:
163
+ xs: "0.75rem"
164
+ sm: "0.875rem"
165
+ base: "1rem"
166
+ lg: "1.125rem"
167
+ xl: "1.25rem"
168
+ "2xl": "1.5rem"
169
+ "3xl": "1.8rem"
170
+ "4xl": "2.16rem"
171
+ "5xl": "2.592rem"
172
+ usage: "Great for startups, portfolios, and minimal landing pages that favor geometric precision over ornamentation."
173
+
174
+ - name: "Monospace Forward"
175
+ tags: ["developer", "technical", "code", "hacker"]
176
+ display:
177
+ family: "JetBrains Mono"
178
+ fallback: "'SF Mono', 'Fira Code', 'Cascadia Code', monospace"
179
+ weights: [500, 700, 800]
180
+ variable: true
181
+ source: "Google Fonts"
182
+ body:
183
+ family: "IBM Plex Sans"
184
+ fallback: "'Helvetica Neue', Arial, sans-serif"
185
+ weights: [400, 500, 600]
186
+ variable: false
187
+ source: "Google Fonts"
188
+ mono:
189
+ family: "JetBrains Mono"
190
+ fallback: "'SF Mono', 'Fira Code', 'Cascadia Code', monospace"
191
+ weights: [400, 500]
192
+ source: "Google Fonts"
193
+ scale:
194
+ base: "1rem"
195
+ ratio: 1.2
196
+ sizes:
197
+ xs: "0.75rem"
198
+ sm: "0.875rem"
199
+ base: "1rem"
200
+ lg: "1.125rem"
201
+ xl: "1.25rem"
202
+ "2xl": "1.5rem"
203
+ "3xl": "1.8rem"
204
+ "4xl": "2.16rem"
205
+ "5xl": "2.592rem"
206
+ usage: "Tailored for developer tools, documentation sites, and technical blogs where code is a first-class citizen."
207
+
208
+ - name: "High Contrast A11y"
209
+ tags: ["accessible", "healthcare", "government", "high-contrast"]
210
+ display:
211
+ family: "Atkinson Hyperlegible"
212
+ fallback: "Arial, 'Helvetica Neue', sans-serif"
213
+ weights: [400, 700]
214
+ variable: false
215
+ source: "Google Fonts"
216
+ body:
217
+ family: "Atkinson Hyperlegible"
218
+ fallback: "Arial, 'Helvetica Neue', sans-serif"
219
+ weights: [400, 700]
220
+ variable: false
221
+ source: "Google Fonts"
222
+ mono:
223
+ family: "Red Hat Mono"
224
+ fallback: "'SF Mono', 'Courier New', monospace"
225
+ weights: [400, 700]
226
+ source: "Google Fonts"
227
+ scale:
228
+ base: "1.125rem"
229
+ ratio: 1.25
230
+ sizes:
231
+ xs: "0.875rem"
232
+ sm: "1rem"
233
+ base: "1.125rem"
234
+ lg: "1.25rem"
235
+ xl: "1.5rem"
236
+ "2xl": "1.875rem"
237
+ "3xl": "2.25rem"
238
+ "4xl": "3rem"
239
+ "5xl": "3.75rem"
240
+ usage: "Designed for maximum legibility. Ideal for healthcare, government, education, and any context where accessibility is paramount."
241
+
242
+ - name: "System Native"
243
+ tags: ["system", "performance", "native", "zero-download"]
244
+ display:
245
+ family: "system-ui"
246
+ fallback: "-apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif"
247
+ weights: [500, 600, 700]
248
+ variable: false
249
+ source: "System"
250
+ body:
251
+ family: "system-ui"
252
+ fallback: "-apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif"
253
+ weights: [400, 500, 600]
254
+ variable: false
255
+ source: "System"
256
+ mono:
257
+ family: "ui-monospace"
258
+ fallback: "'SF Mono', 'Cascadia Code', 'Fira Code', 'JetBrains Mono', 'Courier New', monospace"
259
+ weights: [400, 500]
260
+ source: "System"
261
+ scale:
262
+ base: "1rem"
263
+ ratio: 1.25
264
+ sizes:
265
+ xs: "0.75rem"
266
+ sm: "0.875rem"
267
+ base: "1rem"
268
+ lg: "1.125rem"
269
+ xl: "1.25rem"
270
+ "2xl": "1.5rem"
271
+ "3xl": "1.875rem"
272
+ "4xl": "2.25rem"
273
+ "5xl": "3rem"
274
+ usage: "Zero font downloads, instant rendering. Best for performance-critical apps, internal tools, and native-feeling web applications."
@@ -1,8 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  createProgram
4
- } from "../chunk-O6NEKDYP.js";
5
- import "../chunk-3U5VZYR7.js";
4
+ } from "../chunk-FFIX3QVG.js";
5
+ import "../chunk-4WUGOJQ7.js";
6
+ import "../chunk-GA6GN5J2.js";
6
7
  import {
7
8
  handleError
8
9
  } from "../chunk-ACMDUQJG.js";
@@ -1,8 +1,11 @@
1
+ import {
2
+ Ok
3
+ } from "./chunk-GA6GN5J2.js";
4
+
1
5
  // src/commands/validate-cross-check.ts
2
6
  import * as fs from "fs";
3
7
  import * as path from "path";
4
- import { execSync } from "child_process";
5
- import { Ok } from "@harness-engineering/core";
8
+ import { execFileSync } from "child_process";
6
9
  function findFiles(dir, ext) {
7
10
  if (!fs.existsSync(dir)) return [];
8
11
  return fs.readdirSync(dir).filter((f) => f.endsWith(ext)).map((f) => path.join(dir, f));
@@ -18,7 +21,7 @@ function extractPlannedFiles(planContent) {
18
21
  }
19
22
  function getFileModTime(filePath, projectPath) {
20
23
  try {
21
- const output = execSync(`git log -1 --format=%aI -- "${filePath}"`, {
24
+ const output = execFileSync("git", ["log", "-1", "--format=%aI", "--", filePath], {
22
25
  cwd: projectPath,
23
26
  encoding: "utf-8",
24
27
  stdio: ["pipe", "pipe", "pipe"]