@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.
- package/dist/agents/personas/planner.yaml +27 -0
- package/dist/agents/personas/verifier.yaml +30 -0
- package/dist/agents/skills/claude-code/enforce-architecture/SKILL.md +19 -0
- package/dist/agents/skills/claude-code/harness-accessibility/SKILL.md +274 -0
- package/dist/agents/skills/claude-code/harness-accessibility/skill.yaml +51 -0
- package/dist/agents/skills/claude-code/harness-autopilot/SKILL.md +111 -72
- package/dist/agents/skills/claude-code/harness-autopilot/skill.yaml +4 -2
- package/dist/agents/skills/claude-code/harness-dependency-health/skill.yaml +1 -1
- package/dist/agents/skills/claude-code/harness-design/SKILL.md +265 -0
- package/dist/agents/skills/claude-code/harness-design/skill.yaml +53 -0
- package/dist/agents/skills/claude-code/harness-design-mobile/SKILL.md +336 -0
- package/dist/agents/skills/claude-code/harness-design-mobile/skill.yaml +49 -0
- package/dist/agents/skills/claude-code/harness-design-system/SKILL.md +282 -0
- package/dist/agents/skills/claude-code/harness-design-system/skill.yaml +50 -0
- package/dist/agents/skills/claude-code/harness-design-web/SKILL.md +360 -0
- package/dist/agents/skills/claude-code/harness-design-web/skill.yaml +52 -0
- package/dist/agents/skills/claude-code/harness-hotspot-detector/skill.yaml +1 -1
- package/dist/agents/skills/claude-code/harness-impact-analysis/SKILL.md +16 -0
- package/dist/agents/skills/claude-code/harness-integrity/SKILL.md +19 -1
- package/dist/agents/skills/claude-code/harness-knowledge-mapper/skill.yaml +1 -1
- package/dist/agents/skills/claude-code/harness-onboarding/SKILL.md +19 -1
- package/dist/agents/skills/claude-code/harness-release-readiness/SKILL.md +13 -9
- package/dist/agents/skills/claude-code/harness-security-scan/skill.yaml +1 -1
- package/dist/agents/skills/claude-code/harness-verify/SKILL.md +26 -0
- package/dist/agents/skills/gemini-cli/harness-accessibility/SKILL.md +274 -0
- package/dist/agents/skills/gemini-cli/harness-accessibility/skill.yaml +51 -0
- package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +111 -72
- package/dist/agents/skills/gemini-cli/harness-autopilot/skill.yaml +4 -2
- package/dist/agents/skills/gemini-cli/harness-dependency-health/skill.yaml +1 -1
- package/dist/agents/skills/gemini-cli/harness-design/SKILL.md +265 -0
- package/dist/agents/skills/gemini-cli/harness-design/skill.yaml +53 -0
- package/dist/agents/skills/gemini-cli/harness-design-mobile/SKILL.md +336 -0
- package/dist/agents/skills/gemini-cli/harness-design-mobile/skill.yaml +49 -0
- package/dist/agents/skills/gemini-cli/harness-design-system/SKILL.md +282 -0
- package/dist/agents/skills/gemini-cli/harness-design-system/skill.yaml +50 -0
- package/dist/agents/skills/gemini-cli/harness-design-web/SKILL.md +360 -0
- package/dist/agents/skills/gemini-cli/harness-design-web/skill.yaml +52 -0
- package/dist/agents/skills/gemini-cli/harness-hotspot-detector/skill.yaml +1 -1
- package/dist/agents/skills/gemini-cli/harness-impact-analysis/SKILL.md +16 -0
- package/dist/agents/skills/gemini-cli/harness-knowledge-mapper/skill.yaml +1 -1
- package/dist/agents/skills/gemini-cli/harness-release-readiness/SKILL.md +13 -9
- package/dist/agents/skills/gemini-cli/harness-security-scan/skill.yaml +1 -1
- package/dist/agents/skills/node_modules/.bin/vitest +2 -2
- package/dist/agents/skills/shared/design-knowledge/anti-patterns/color.yaml +106 -0
- package/dist/agents/skills/shared/design-knowledge/anti-patterns/layout.yaml +109 -0
- package/dist/agents/skills/shared/design-knowledge/anti-patterns/motion.yaml +109 -0
- package/dist/agents/skills/shared/design-knowledge/anti-patterns/typography.yaml +112 -0
- package/dist/agents/skills/shared/design-knowledge/industries/creative.yaml +80 -0
- package/dist/agents/skills/shared/design-knowledge/industries/ecommerce.yaml +80 -0
- package/dist/agents/skills/shared/design-knowledge/industries/emerging-tech.yaml +83 -0
- package/dist/agents/skills/shared/design-knowledge/industries/fintech.yaml +80 -0
- package/dist/agents/skills/shared/design-knowledge/industries/healthcare.yaml +80 -0
- package/dist/agents/skills/shared/design-knowledge/industries/lifestyle.yaml +80 -0
- package/dist/agents/skills/shared/design-knowledge/industries/saas.yaml +80 -0
- package/dist/agents/skills/shared/design-knowledge/industries/services.yaml +80 -0
- package/dist/agents/skills/shared/design-knowledge/palettes/curated.yaml +234 -0
- package/dist/agents/skills/shared/design-knowledge/platform-rules/android.yaml +125 -0
- package/dist/agents/skills/shared/design-knowledge/platform-rules/flutter.yaml +144 -0
- package/dist/agents/skills/shared/design-knowledge/platform-rules/ios.yaml +106 -0
- package/dist/agents/skills/shared/design-knowledge/platform-rules/web.yaml +102 -0
- package/dist/agents/skills/shared/design-knowledge/typography/pairings.yaml +274 -0
- package/dist/bin/harness.js +3 -2
- package/dist/{chunk-3U5VZYR7.js → chunk-4WUGOJQ7.js} +6 -3
- package/dist/{chunk-O6NEKDYP.js → chunk-FFIX3QVG.js} +697 -349
- package/dist/chunk-GA6GN5J2.js +6150 -0
- package/dist/dist-C4J67MPP.js +242 -0
- package/dist/dist-N4D4QWFV.js +2809 -0
- package/dist/index.d.ts +79 -0
- package/dist/index.js +3 -2
- package/dist/validate-cross-check-WGXQ7K62.js +7 -0
- package/package.json +12 -8
- 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."
|
package/dist/bin/harness.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
createProgram
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
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 {
|
|
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 =
|
|
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"]
|