raven-mcp 1.9.0 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/capture.d.ts +57 -1
- package/dist/capture.js +135 -31
- package/dist/capture.js.map +1 -1
- package/dist/content-audit.d.ts +56 -0
- package/dist/content-audit.js +380 -0
- package/dist/content-audit.js.map +1 -0
- package/dist/device-frame.d.ts +73 -0
- package/dist/device-frame.js +483 -0
- package/dist/device-frame.js.map +1 -0
- package/dist/index.js +169 -1
- package/dist/index.js.map +1 -1
- package/dist/ios-capture.d.ts +69 -0
- package/dist/ios-capture.js +110 -0
- package/dist/ios-capture.js.map +1 -1
- package/dist/tap-targets.d.ts +62 -0
- package/dist/tap-targets.js +221 -0
- package/dist/tap-targets.js.map +1 -0
- package/dist/typography.d.ts +69 -0
- package/dist/typography.js +411 -0
- package/dist/typography.js.map +1 -0
- package/package.json +1 -1
- package/scripts/ios-audit.mjs +19 -0
- package/src/data/principles/color-systems.json +32 -0
- package/src/data/principles/spacing-systems.json +55 -0
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ A design knowledge MCP server that Claude can query when generating UI. Eight la
|
|
|
10
10
|
|
|
11
11
|
Raven gives Claude access to a comprehensive design knowledge base:
|
|
12
12
|
|
|
13
|
-
- **Principles** — Nielsen's 10 Heuristics, all 21 Laws of UX, Gestalt principles, WCAG accessibility, typography rules, color theory, mobile UX, D4D framework, UX writing, service design, and
|
|
13
|
+
- **Principles** — Nielsen's 10 Heuristics, all 21 Laws of UX, Gestalt principles, WCAG accessibility, typography rules, color theory, mobile UX, D4D framework, UX writing, service design, brand, color-systems (palette-size discipline), and spacing-systems (base-unit grid + scale limits)
|
|
14
14
|
- **Patterns** — Proven UI patterns for signup flows, pricing pages, navigation, forms, landing pages, dashboards, modals, empty/error/loading states, CTAs, social proof, mobile conversion — plus content patterns (error messages, empty-state copy, notifications, form validation) and service patterns (service blueprinting, human handoff, signup-as-service, omnichannel continuity, moments of truth)
|
|
15
15
|
- **Content systems** — Voice & tone guides from publicly documented brand systems: Mailchimp, GOV.UK, Shopify Polaris, and Atlassian
|
|
16
16
|
- **Research** — Qualitative, quantitative, and usability methods with do/don't protocols and checklists. Metrics frameworks: HEART, AARRR/Pirate, North Star Metric, conversion funnel, RICE, OKRs.
|
|
@@ -68,6 +68,10 @@ cd raven-mcp && npm install && npm run build
|
|
|
68
68
|
| `audit_responsive_visibility` | Render a URL at multiple breakpoints and flag content elements that are visible on desktop but hidden on mobile (display:none/opacity:0/zero-size) — categorises each as likely-oversight (content vanishing on mobile) vs intentional (decorative) |
|
|
69
69
|
| `audit_contrast` | Compute WCAG contrast ratios for every text element on a rendered page and report AA (4.5:1 / 3:1 large) and AAA pass-fail per element, with delta-to-pass for failures |
|
|
70
70
|
| `audit_url` | Render a live URL at each viewport×theme, scroll-settle, fire interactions, capture real pixels + DOM, then run the page/contrast/responsive/blank-media checks **plus** sliced-image edge-symmetry and hover-state white-wash detection over the captures — every finding tagged confirmed/likely-artifact/inconclusive, ranked by severity |
|
|
71
|
+
| `audit_content` | Per-item content verdicts (pass/warn/fail) for headings, prose, CTAs, labels, captions, metrics & outcomes against UX-writing principles + deterministic heuristics (metric needs number+unit; CTA action-led ≤4 words; prose flags passive/jargon/hedging; caption-vs-heading duplication) — with a before→after rewrite suggestion per item. Pure offline |
|
|
72
|
+
| `audit_typography` | Typographic-**scale** report over rendered DOM text nodes (or a supplied snapshot) — detects the dominant modular-scale ratio and flags off-scale sizes, checks line-height consistency vs the body rhythm, and flags weight ladders >4 weights or non-standard values. Goes beyond `audit_page`'s pass/fail typography checks |
|
|
73
|
+
| `audit_tap_targets` | WCAG 2.5.5 / Apple 44pt **web** tap-target audit — enumerates every interactive element (rendered URL or snapshot) and emits a per-element fix table: selector, role, text, measured w/h, per-axis pixel deficit, and a concrete CSS fix, sorted worst-first |
|
|
74
|
+
| `audit_device_frame` | Flag cropped content in device-mockup frames — `frames` (container box + intrinsic media + object-fit, or a DevTools snippet) detects object-fit:cover crop loss when frame AR ≠ media AR; `clips` (first/last frame PNGs) detects baked-in pan/zoom (Ken Burns); `edge_frames` (PNGs) flags content truncated at a frame edge |
|
|
71
75
|
| `audit_swiftui` | Audit SwiftUI source against Apple HIG — Dynamic Type, semantic colors, 44pt targets, 4/8pt spacing, AccentColor |
|
|
72
76
|
| `audit_ios_screen` | Score a rendered iOS screen from an accessibility/view-hierarchy snapshot — 44pt targets + contrast + rhythm, in points |
|
|
73
77
|
| `audit_ios_privacy` | Audit Info.plist (or Expo app.json) /PRIVACY.md/entitlements/source — usage-string honesty, ATS, Android permissions, bundled secrets, undisclosed default data-egress |
|
package/dist/capture.d.ts
CHANGED
|
@@ -4,11 +4,29 @@ export type Theme = "light" | "dark";
|
|
|
4
4
|
export declare class CaptureUnavailableError extends Error {
|
|
5
5
|
constructor(message?: string);
|
|
6
6
|
}
|
|
7
|
+
export type VideoArtifactReason = "preload-none" | "autoplay-blocked" | "empty-src" | "decode-error" | "unknown";
|
|
7
8
|
export type VideoArtifact = {
|
|
8
9
|
selector: string;
|
|
10
|
+
/** The `preload` attribute value on the element (e.g. "none", "auto", "metadata"). */
|
|
9
11
|
preload: string;
|
|
10
12
|
renderedBlank: boolean;
|
|
11
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Discriminated reason for the blank-video detection.
|
|
15
|
+
*
|
|
16
|
+
* - `"preload-none"`: element has preload=none and never buffered (lazy-load pattern — likely not a real defect)
|
|
17
|
+
* - `"autoplay-blocked"`: play() was rejected with NotAllowedError (browser autoplay policy — likely not a real defect)
|
|
18
|
+
* - `"empty-src"`: currentSrc is empty or networkState is NETWORK_NO_SOURCE — genuine missing/broken source
|
|
19
|
+
* - `"decode-error"`: video.error.code is set (MEDIA_ERR_*) — genuine decode/network failure
|
|
20
|
+
* - `"unknown"`: did not match any specific classification
|
|
21
|
+
*
|
|
22
|
+
* @deprecated The legacy value `"unloaded-video-artifact"` is no longer emitted by this library but
|
|
23
|
+
* may appear in data produced by older versions. Callers should treat it as `"unknown"`.
|
|
24
|
+
*/
|
|
25
|
+
reason: VideoArtifactReason | "unloaded-video-artifact";
|
|
26
|
+
/** Raw HTMLMediaElement.error.code value (1–4, MEDIA_ERR_* constants), if an error is set. */
|
|
27
|
+
errorCode?: number;
|
|
28
|
+
/** Raw HTMLMediaElement.networkState value at probe time. */
|
|
29
|
+
networkState?: number;
|
|
12
30
|
};
|
|
13
31
|
export type CaptureResult = {
|
|
14
32
|
url: string;
|
|
@@ -42,6 +60,39 @@ export type CaptureOptions = {
|
|
|
42
60
|
};
|
|
43
61
|
export declare function capturePage(url: string, opts?: CaptureOptions): Promise<CaptureResult>;
|
|
44
62
|
export declare function annotateVideoArtifacts(elements: any[]): VideoArtifact[];
|
|
63
|
+
/** Input shape consumed by {@link classifyVideoArtifact}. All fields are optional so that
|
|
64
|
+
* partial probe data (e.g. from older code paths or static-HTML fallbacks) is still classifiable.
|
|
65
|
+
*/
|
|
66
|
+
export type VideoProbeData = {
|
|
67
|
+
/** `HTMLMediaElement.currentSrc` — empty string when no source is resolved. */
|
|
68
|
+
currentSrc?: string;
|
|
69
|
+
/** `HTMLMediaElement.networkState` — 0=EMPTY, 1=IDLE, 2=LOADING, 3=NO_SOURCE. */
|
|
70
|
+
networkState?: number;
|
|
71
|
+
/** `HTMLMediaElement.error?.code` — set when a media error occurred (MEDIA_ERR_* 1–4). */
|
|
72
|
+
errorCode?: number;
|
|
73
|
+
/**
|
|
74
|
+
* Name of the DOMException thrown by the play() promise (if any).
|
|
75
|
+
* "NotAllowedError" → autoplay policy; "NotSupportedError" → unsupported source.
|
|
76
|
+
*/
|
|
77
|
+
playRejection?: string;
|
|
78
|
+
/** Value of the `preload` attribute. */
|
|
79
|
+
preload?: string;
|
|
80
|
+
/** `HTMLMediaElement.readyState` — 0=HAVE_NOTHING … 4=HAVE_ENOUGH_DATA. */
|
|
81
|
+
readyState?: number;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Pure, synchronous classifier that maps raw video probe data to a {@link VideoArtifactReason}.
|
|
85
|
+
*
|
|
86
|
+
* Priority (first match wins):
|
|
87
|
+
* 1. `empty-src` — currentSrc is empty OR networkState === NETWORK_NO_SOURCE (3)
|
|
88
|
+
* 2. `decode-error` — errorCode is set (1–4)
|
|
89
|
+
* 3. `autoplay-blocked` — play() rejected with NotAllowedError
|
|
90
|
+
* 4. `preload-none` — preload attribute is "none" and readyState < 2
|
|
91
|
+
* 5. `unknown` — none of the above
|
|
92
|
+
*
|
|
93
|
+
* This is exported so it can be unit-tested in isolation without a browser.
|
|
94
|
+
*/
|
|
95
|
+
export declare function classifyVideoArtifact(probe: VideoProbeData): VideoArtifactReason;
|
|
45
96
|
export type Verdict = "confirmed" | "likely-artifact" | "inconclusive";
|
|
46
97
|
export type VerifiableFinding = {
|
|
47
98
|
key: string;
|
|
@@ -49,6 +100,11 @@ export type VerifiableFinding = {
|
|
|
49
100
|
message: string;
|
|
50
101
|
kind: "issue" | "video-artifact";
|
|
51
102
|
selector?: string;
|
|
103
|
+
/**
|
|
104
|
+
* When `kind` is `"video-artifact"`, the discriminated reason from the probe.
|
|
105
|
+
* Used by `verifyFinding` to decide `confirmed` vs `likely-artifact`.
|
|
106
|
+
*/
|
|
107
|
+
videoReason?: VideoArtifactReason | "unloaded-video-artifact";
|
|
52
108
|
};
|
|
53
109
|
export type FindingVerdict = {
|
|
54
110
|
key: string;
|
package/dist/capture.js
CHANGED
|
@@ -153,11 +153,47 @@ export function annotateVideoArtifacts(elements) {
|
|
|
153
153
|
selector: String(element.selector || element.label || "video"),
|
|
154
154
|
preload: String(element.preload || "none"),
|
|
155
155
|
renderedBlank: true,
|
|
156
|
-
reason: "
|
|
156
|
+
reason: "unknown"
|
|
157
157
|
});
|
|
158
158
|
}
|
|
159
159
|
return artifacts;
|
|
160
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Pure, synchronous classifier that maps raw video probe data to a {@link VideoArtifactReason}.
|
|
163
|
+
*
|
|
164
|
+
* Priority (first match wins):
|
|
165
|
+
* 1. `empty-src` — currentSrc is empty OR networkState === NETWORK_NO_SOURCE (3)
|
|
166
|
+
* 2. `decode-error` — errorCode is set (1–4)
|
|
167
|
+
* 3. `autoplay-blocked` — play() rejected with NotAllowedError
|
|
168
|
+
* 4. `preload-none` — preload attribute is "none" and readyState < 2
|
|
169
|
+
* 5. `unknown` — none of the above
|
|
170
|
+
*
|
|
171
|
+
* This is exported so it can be unit-tested in isolation without a browser.
|
|
172
|
+
*/
|
|
173
|
+
export function classifyVideoArtifact(probe) {
|
|
174
|
+
const NETWORK_NO_SOURCE = 3;
|
|
175
|
+
// 1. No source resolved or network reports no source
|
|
176
|
+
if (probe.currentSrc === "" ||
|
|
177
|
+
probe.networkState === NETWORK_NO_SOURCE) {
|
|
178
|
+
return "empty-src";
|
|
179
|
+
}
|
|
180
|
+
// 2. A media error code is set
|
|
181
|
+
if (typeof probe.errorCode === "number" && probe.errorCode > 0) {
|
|
182
|
+
return "decode-error";
|
|
183
|
+
}
|
|
184
|
+
// 3. Autoplay was blocked by the browser
|
|
185
|
+
if (probe.playRejection === "NotAllowedError") {
|
|
186
|
+
return "autoplay-blocked";
|
|
187
|
+
}
|
|
188
|
+
// 4. Lazy-load pattern: preload=none and video never buffered
|
|
189
|
+
if (typeof probe.preload === "string" &&
|
|
190
|
+
probe.preload.toLowerCase() === "none" &&
|
|
191
|
+
typeof probe.readyState === "number" &&
|
|
192
|
+
probe.readyState < 2) {
|
|
193
|
+
return "preload-none";
|
|
194
|
+
}
|
|
195
|
+
return "unknown";
|
|
196
|
+
}
|
|
161
197
|
async function loadChromium() {
|
|
162
198
|
try {
|
|
163
199
|
// @ts-ignore Playwright is an optional runtime dependency for this module.
|
|
@@ -234,12 +270,20 @@ function extractVideoArtifactsFromHtml(html) {
|
|
|
234
270
|
while (match !== null) {
|
|
235
271
|
const tag = match[0];
|
|
236
272
|
const preload = attributeValue(tag, "preload") || "";
|
|
237
|
-
|
|
273
|
+
const src = attributeValue(tag, "src") || "";
|
|
274
|
+
// Static HTML can only determine preload=none and missing src.
|
|
275
|
+
// Richer signals (networkState, error.code, play rejection) require a live browser.
|
|
276
|
+
const reason = src === "" && preload.toLowerCase() !== "none"
|
|
277
|
+
? "empty-src"
|
|
278
|
+
: preload.toLowerCase() === "none"
|
|
279
|
+
? "preload-none"
|
|
280
|
+
: "unknown";
|
|
281
|
+
if (preload.toLowerCase() === "none" || src === "") {
|
|
238
282
|
artifacts.push({
|
|
239
283
|
selector: videoSelectorFromTag(tag, artifacts.length),
|
|
240
284
|
preload: preload,
|
|
241
285
|
renderedBlank: true,
|
|
242
|
-
reason:
|
|
286
|
+
reason: reason
|
|
243
287
|
});
|
|
244
288
|
}
|
|
245
289
|
match = videoTagPattern.exec(html);
|
|
@@ -294,14 +338,17 @@ async function detectVideoArtifacts(page, warnings) {
|
|
|
294
338
|
catch (error) {
|
|
295
339
|
warnings.push("Failed to scroll video into view: " + errorMessage(error));
|
|
296
340
|
}
|
|
341
|
+
let playRejectionName = undefined;
|
|
297
342
|
try {
|
|
298
343
|
await el.evaluate(function (video) {
|
|
299
344
|
return video.play();
|
|
300
345
|
});
|
|
301
346
|
}
|
|
302
|
-
catch {
|
|
303
|
-
//
|
|
304
|
-
|
|
347
|
+
catch (playErr) {
|
|
348
|
+
// Capture whether autoplay or source-support was the rejection cause.
|
|
349
|
+
if (playErr instanceof Error) {
|
|
350
|
+
playRejectionName = playErr.name;
|
|
351
|
+
}
|
|
305
352
|
}
|
|
306
353
|
try {
|
|
307
354
|
await page.waitForFunction(function (video) {
|
|
@@ -311,27 +358,57 @@ async function detectVideoArtifacts(page, warnings) {
|
|
|
311
358
|
catch {
|
|
312
359
|
// Timeout means the video may still be unloaded; read readyState directly.
|
|
313
360
|
}
|
|
361
|
+
let probeResult = {
|
|
362
|
+
readyState: 0,
|
|
363
|
+
networkState: 0,
|
|
364
|
+
currentSrc: "",
|
|
365
|
+
errorCode: null,
|
|
366
|
+
preload: ""
|
|
367
|
+
};
|
|
314
368
|
try {
|
|
315
|
-
|
|
316
|
-
return
|
|
369
|
+
probeResult = await el.evaluate(function (video) {
|
|
370
|
+
return {
|
|
371
|
+
readyState: video.readyState,
|
|
372
|
+
networkState: video.networkState,
|
|
373
|
+
currentSrc: video.currentSrc || "",
|
|
374
|
+
errorCode: video.error ? video.error.code : null,
|
|
375
|
+
preload: video.getAttribute("preload") || ""
|
|
376
|
+
};
|
|
317
377
|
});
|
|
318
378
|
}
|
|
319
379
|
catch (error) {
|
|
320
|
-
warnings.push("Failed to
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
380
|
+
warnings.push("Failed to probe video element: " + errorMessage(error));
|
|
381
|
+
// Fallback: try getAttribute for preload only.
|
|
382
|
+
try {
|
|
383
|
+
preload = (await el.getAttribute("preload")) || "";
|
|
384
|
+
probeResult = { readyState, networkState: 0, currentSrc: "", errorCode: null, preload };
|
|
385
|
+
}
|
|
386
|
+
catch {
|
|
387
|
+
// Ignore secondary error.
|
|
388
|
+
}
|
|
327
389
|
}
|
|
390
|
+
readyState = probeResult.readyState;
|
|
391
|
+
preload = probeResult.preload;
|
|
328
392
|
if (readyState < 2) {
|
|
329
|
-
|
|
393
|
+
const reason = classifyVideoArtifact({
|
|
394
|
+
currentSrc: probeResult.currentSrc,
|
|
395
|
+
networkState: probeResult.networkState,
|
|
396
|
+
errorCode: typeof probeResult.errorCode === "number" ? probeResult.errorCode : undefined,
|
|
397
|
+
playRejection: playRejectionName,
|
|
398
|
+
preload: probeResult.preload,
|
|
399
|
+
readyState: probeResult.readyState
|
|
400
|
+
});
|
|
401
|
+
const artifact = {
|
|
330
402
|
selector: selector,
|
|
331
403
|
preload: preload,
|
|
332
404
|
renderedBlank: true,
|
|
333
|
-
reason:
|
|
334
|
-
|
|
405
|
+
reason: reason,
|
|
406
|
+
networkState: probeResult.networkState
|
|
407
|
+
};
|
|
408
|
+
if (typeof probeResult.errorCode === "number") {
|
|
409
|
+
artifact.errorCode = probeResult.errorCode;
|
|
410
|
+
}
|
|
411
|
+
artifacts.push(artifact);
|
|
335
412
|
}
|
|
336
413
|
}
|
|
337
414
|
return artifacts;
|
|
@@ -567,12 +644,16 @@ function staticHtmlForTarget(target) {
|
|
|
567
644
|
}
|
|
568
645
|
function verifyFindingFromHtml(html, finding, launchError) {
|
|
569
646
|
if (finding.kind === "video-artifact" || finding.rule === "video") {
|
|
647
|
+
const reason = finding.videoReason;
|
|
648
|
+
const isRealDefect = reason === "empty-src" || reason === "decode-error";
|
|
570
649
|
return {
|
|
571
650
|
key: finding.key,
|
|
572
|
-
verdict: "likely-artifact",
|
|
573
|
-
evidence:
|
|
574
|
-
errorMessage(launchError) +
|
|
575
|
-
"
|
|
651
|
+
verdict: isRealDefect ? "confirmed" : "likely-artifact",
|
|
652
|
+
evidence: isRealDefect
|
|
653
|
+
? "video has " + reason + " (browser unavailable — static analysis; " + errorMessage(launchError) + ")"
|
|
654
|
+
: "browser unavailable (" +
|
|
655
|
+
errorMessage(launchError) +
|
|
656
|
+
"); video artifact reason '" + (reason || "unknown") + "' is a likely false positive"
|
|
576
657
|
};
|
|
577
658
|
}
|
|
578
659
|
if (finding.rule === "structure/lang") {
|
|
@@ -629,18 +710,41 @@ function countImgTagsMissingAlt(html) {
|
|
|
629
710
|
return count;
|
|
630
711
|
}
|
|
631
712
|
async function verifyFinding(page, finding) {
|
|
632
|
-
if (finding.kind === "video-artifact") {
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
713
|
+
if (finding.kind === "video-artifact" || finding.rule === "video") {
|
|
714
|
+
const reason = finding.videoReason;
|
|
715
|
+
if (reason === "empty-src") {
|
|
716
|
+
return {
|
|
717
|
+
key: finding.key,
|
|
718
|
+
verdict: "confirmed",
|
|
719
|
+
evidence: "video currentSrc is empty or networkState is NETWORK_NO_SOURCE — source is missing or unresolvable"
|
|
720
|
+
};
|
|
721
|
+
}
|
|
722
|
+
if (reason === "decode-error") {
|
|
723
|
+
return {
|
|
724
|
+
key: finding.key,
|
|
725
|
+
verdict: "confirmed",
|
|
726
|
+
evidence: "video.error.code is set (MEDIA_ERR_* decode/network failure)"
|
|
727
|
+
};
|
|
728
|
+
}
|
|
729
|
+
if (reason === "autoplay-blocked") {
|
|
730
|
+
return {
|
|
731
|
+
key: finding.key,
|
|
732
|
+
verdict: "likely-artifact",
|
|
733
|
+
evidence: "video play() rejected with NotAllowedError (browser autoplay policy), not a missing resource"
|
|
734
|
+
};
|
|
735
|
+
}
|
|
736
|
+
if (reason === "preload-none") {
|
|
737
|
+
return {
|
|
738
|
+
key: finding.key,
|
|
739
|
+
verdict: "likely-artifact",
|
|
740
|
+
evidence: "video has preload=none — blank frame is expected lazy-load behaviour, not a missing resource"
|
|
741
|
+
};
|
|
742
|
+
}
|
|
743
|
+
// Legacy "unloaded-video-artifact" or "unknown" — default to prior conservative behaviour
|
|
640
744
|
return {
|
|
641
745
|
key: finding.key,
|
|
642
746
|
verdict: "likely-artifact",
|
|
643
|
-
evidence: "
|
|
747
|
+
evidence: "video rendered blank (reason: " + (reason || "unknown") + "); treating as likely lazy-load artifact"
|
|
644
748
|
};
|
|
645
749
|
}
|
|
646
750
|
if (finding.rule === "structure/lang") {
|
package/dist/capture.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../src/capture.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../src/capture.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* content-audit.ts — per-item content quality audit.
|
|
3
|
+
*
|
|
4
|
+
* auditContent() evaluates an array of content items (headings, prose, CTAs,
|
|
5
|
+
* labels, captions, metrics, outcomes) against loaded UX-writing principles
|
|
6
|
+
* and lightweight deterministic heuristics. Returns a per-item verdict plus
|
|
7
|
+
* an aggregate summary.
|
|
8
|
+
*
|
|
9
|
+
* Pure (no network, no browser) — fully unit-testable offline.
|
|
10
|
+
*/
|
|
11
|
+
export type ContentItemType = "prose" | "caption" | "heading" | "outcome" | "metric" | "cta" | "label";
|
|
12
|
+
export type ContentItem = {
|
|
13
|
+
id?: string;
|
|
14
|
+
type: ContentItemType;
|
|
15
|
+
text: string;
|
|
16
|
+
};
|
|
17
|
+
export type ContentIssue = {
|
|
18
|
+
principle: string;
|
|
19
|
+
message: string;
|
|
20
|
+
};
|
|
21
|
+
export type ContentVerdict = "pass" | "warn" | "fail";
|
|
22
|
+
export type ContentItemResult = {
|
|
23
|
+
id: string;
|
|
24
|
+
type: ContentItemType;
|
|
25
|
+
text: string;
|
|
26
|
+
verdict: ContentVerdict;
|
|
27
|
+
matched_principles: string[];
|
|
28
|
+
issues: ContentIssue[];
|
|
29
|
+
suggestion: string;
|
|
30
|
+
};
|
|
31
|
+
export type ContentAuditSummary = {
|
|
32
|
+
total: number;
|
|
33
|
+
pass: number;
|
|
34
|
+
warn: number;
|
|
35
|
+
fail: number;
|
|
36
|
+
};
|
|
37
|
+
export type ContentAuditResult = {
|
|
38
|
+
items: ContentItemResult[];
|
|
39
|
+
summary: ContentAuditSummary;
|
|
40
|
+
principles_loaded: string[];
|
|
41
|
+
system?: string;
|
|
42
|
+
goals?: string[];
|
|
43
|
+
};
|
|
44
|
+
export type ContentAuditOptions = {
|
|
45
|
+
/** Optional content-system id (informational; recorded in output). */
|
|
46
|
+
system?: string;
|
|
47
|
+
/** Optional design goals (informational; recorded in output). */
|
|
48
|
+
goals?: string[];
|
|
49
|
+
};
|
|
50
|
+
/** Exposed for testing — resets the lazy cache so tests can call with a clean state. */
|
|
51
|
+
export declare const _resetPrinciplesCache: () => void;
|
|
52
|
+
/**
|
|
53
|
+
* Audit an array of content items against loaded UX-writing principles.
|
|
54
|
+
* Pure — no network, no Playwright, no side effects.
|
|
55
|
+
*/
|
|
56
|
+
export declare const auditContent: (items: ContentItem[], opts?: ContentAuditOptions) => ContentAuditResult;
|