taste-lint 0.2.0 → 0.4.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 (66) hide show
  1. package/README.md +5 -3
  2. package/data/config.schema.json +7 -0
  3. package/data/corpus/copywriting.jsonl +4 -4
  4. package/data/rule-drafts/interaction/interaction-layout-shift.yaml +3 -3
  5. package/data/rules/copywriting/copywriting-anthropomorphism.yaml +4 -3
  6. package/data/rules/copywriting/copywriting-antithesis-contrast.yaml +43 -0
  7. package/data/rules/copywriting/copywriting-antithesis-frame.yaml +23 -0
  8. package/data/rules/copywriting/copywriting-artificial-balance.yaml +4 -1
  9. package/data/rules/copywriting/copywriting-boilerplate-offer.yaml +1 -1
  10. package/data/rules/copywriting/copywriting-canned-phrasing.yaml +1 -1
  11. package/data/rules/copywriting/copywriting-claim-without-evidence.yaml +10 -1
  12. package/data/rules/copywriting/copywriting-click-here-links.yaml +4 -3
  13. package/data/rules/copywriting/copywriting-conditions-first.yaml +2 -2
  14. package/data/rules/copywriting/copywriting-copula-avoidance.yaml +21 -0
  15. package/data/rules/copywriting/copywriting-dead-link.yaml +28 -0
  16. package/data/rules/copywriting/copywriting-em-dash-in-ui.yaml +23 -0
  17. package/data/rules/copywriting/copywriting-error-descriptions.yaml +2 -2
  18. package/data/rules/copywriting/copywriting-excessive-hedging.yaml +1 -1
  19. package/data/rules/copywriting/copywriting-external-arrow-internal-link.yaml +26 -0
  20. package/data/rules/copywriting/copywriting-fabricated-specificity.yaml +6 -3
  21. package/data/rules/copywriting/copywriting-filler-words.yaml +4 -3
  22. package/data/rules/copywriting/copywriting-generic-framing.yaml +12 -6
  23. package/data/rules/copywriting/copywriting-generic-language.yaml +12 -4
  24. package/data/rules/copywriting/copywriting-generic-validation.yaml +1 -1
  25. package/data/rules/copywriting/copywriting-latinisms.yaml +6 -4
  26. package/data/rules/copywriting/copywriting-machine-prose.yaml +4 -1
  27. package/data/rules/copywriting/copywriting-mechanism-over-outcome.yaml +4 -1
  28. package/data/rules/copywriting/copywriting-meta-commentary.yaml +1 -1
  29. package/data/rules/copywriting/copywriting-missing-reasoning-link.yaml +4 -1
  30. package/data/rules/copywriting/copywriting-nominalisations.yaml +4 -3
  31. package/data/rules/copywriting/copywriting-over-explanation.yaml +4 -1
  32. package/data/rules/copywriting/copywriting-participle-tail.yaml +21 -0
  33. package/data/rules/copywriting/copywriting-passive-voice.yaml +4 -3
  34. package/data/rules/copywriting/copywriting-promotional-docs-voice.yaml +4 -3
  35. package/data/rules/copywriting/copywriting-prompt-restatement.yaml +5 -2
  36. package/data/rules/copywriting/copywriting-punctuation-tics.yaml +4 -1
  37. package/data/rules/copywriting/copywriting-reader-first.yaml +4 -1
  38. package/data/rules/copywriting/copywriting-repetitive-transitions.yaml +1 -1
  39. package/data/rules/copywriting/copywriting-requirements-language.yaml +2 -2
  40. package/data/rules/copywriting/copywriting-searchable-headings.yaml +2 -2
  41. package/data/rules/copywriting/copywriting-semantic-links.yaml +2 -2
  42. package/data/rules/copywriting/copywriting-slogan-headings.yaml +27 -0
  43. package/data/rules/copywriting/copywriting-structural-symmetry.yaml +4 -1
  44. package/data/rules/copywriting/copywriting-tee-up.yaml +23 -0
  45. package/data/rules/copywriting/copywriting-temporal-words.yaml +4 -3
  46. package/data/rules/copywriting/copywriting-unexplained-action.yaml +5 -2
  47. package/data/rules/copywriting/copywriting-unnatural-polish.yaml +8 -5
  48. package/data/rules/copywriting/copywriting-unverifiable-proof.yaml +1 -1
  49. package/data/rules/copywriting/copywriting-vague-error.yaml +2 -0
  50. package/data/rules/craft/craft-atmosphere-gradient.yaml +28 -0
  51. package/data/rules/craft/craft-decoration-no-role.yaml +2 -1
  52. package/data/rules/craft/craft-decorative-ordinals.yaml +26 -0
  53. package/data/rules/craft/craft-default-indigo.yaml +28 -0
  54. package/data/rules/craft/craft-faux-product-chrome.yaml +4 -1
  55. package/data/rules/motion/motion-will-change-misuse.yaml +28 -0
  56. package/data/rules/product/product-nested-modals.yaml +1 -1
  57. package/data/rules/product/product-select-for-few-options.yaml +1 -1
  58. package/data/rules/schema/rule.schema.json +7 -1
  59. package/dist/cli.js +748 -131
  60. package/dist/cli.js.map +1 -1
  61. package/dist/index.d.ts +38 -18
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +459 -51
  64. package/dist/index.js.map +1 -1
  65. package/package.json +2 -2
  66. package/data/rules/copywriting/copywriting-idea-repetition.yaml +0 -34
package/dist/index.d.ts CHANGED
@@ -68,7 +68,7 @@ declare const DOC_TYPES: readonly ["tutorial", "howto", "reference", "explanatio
68
68
  type DocType = (typeof DOC_TYPES)[number];
69
69
  declare const ROLES: readonly ["heading", "body", "list-item", "cell", "button", "link", "label", "placeholder", "aria", "literal-copy", "caption", "unknown"];
70
70
  type Role = (typeof ROLES)[number];
71
- declare const CONTEXT_KEYS: readonly ["section", "headingAbove", "docType", "element", "role", "neighbours"];
71
+ declare const CONTEXT_KEYS: readonly ["section", "headingAbove", "docType", "element", "role", "neighbours", "earlier", "brief"];
72
72
  type ContextKey = (typeof CONTEXT_KEYS)[number];
73
73
  type Band = "act" | "review" | "silent";
74
74
  interface RuleSource {
@@ -116,6 +116,8 @@ interface Preconditions {
116
116
  role?: Role[];
117
117
  /** Skip Markdown units when the project curls quotes at build time. */
118
118
  smartQuotesAtBuild?: false;
119
+ /** Skip units shorter than this many words: a label or a greeting is not prose. */
120
+ minWords?: number;
119
121
  }
120
122
  interface ReviewProcedure {
121
123
  applicability: string;
@@ -186,6 +188,10 @@ interface UnitContext {
186
188
  fontScale?: Record<string, string>;
187
189
  section?: string;
188
190
  headingAbove?: string;
191
+ /** Sentences said earlier in the file that share content words with this unit. */
192
+ earlier?: string;
193
+ /** What the product is and does, from `lint --brief`: the facts copy may state. */
194
+ brief?: string;
189
195
  docType: DocType;
190
196
  element?: string;
191
197
  attr?: string;
@@ -408,6 +414,8 @@ interface CorpusItem {
408
414
  labelSource: "manifest" | "manifest-weak" | "hand" | "sweep" | "ai";
409
415
  labelModel?: string;
410
416
  labelPromptHash?: string;
417
+ /** Why a hand labeller decided as they did; feeds rubric edits. */
418
+ note?: string;
411
419
  source: {
412
420
  repo: string;
413
421
  path: string;
@@ -431,6 +439,8 @@ interface Config {
431
439
  };
432
440
  smartQuotesAtBuild: boolean;
433
441
  exclude: string[];
442
+ /** Extra rule directories from the config, absolute. */
443
+ rules?: string[];
434
444
  }
435
445
  //#endregion
436
446
  //#region src/scan/profiles.d.ts
@@ -438,7 +448,7 @@ declare const PROFILE_NAMES: readonly ["product", "writing", "instructions", "al
438
448
  type ProfileName = (typeof PROFILE_NAMES)[number];
439
449
  //#endregion
440
450
  //#region src/lib/config.d.ts
441
- declare const loadConfig: (root: string, defaults?: Config["docTypes"]) => Config;
451
+ export declare const loadConfig: (root: string, defaults?: Config["docTypes"]) => Config;
442
452
  //#endregion
443
453
  //#region src/lint.d.ts
444
454
  /**
@@ -454,6 +464,8 @@ interface LintOptions {
454
464
  profile?: ProfileName;
455
465
  /** Report only findings on lines changed since this Git revision. */
456
466
  since?: string;
467
+ /** File stating what the product is and does; rules that compare copy against it read it. */
468
+ brief?: string;
457
469
  /** Rules directory. Default: the packaged `data/rules`. */
458
470
  rulesDir?: string;
459
471
  /** Rule ids to run; wins over `profile`. */
@@ -490,7 +502,7 @@ interface LintContext {
490
502
  /** Called at most every request with counts and elapsed time. */
491
503
  onProgress?: (progress: Progress) => void;
492
504
  /** Called once with every unit, the Jev answers and the mechanical negatives, before findings are banded. */
493
- onEvidence?: (units: Unit[], answers: Map<string, Record<string, number>>, negatives: Map<string, Set<string>>, rules: Rule[]) => void;
505
+ onEvidence?: (units: Unit[], answers: Map<string, Record<string, number>>, negatives: Map<string, Set<string>>, rules: Rule[], sources: Map<string, string[]>) => void;
494
506
  }
495
507
  /** What `runLint` resolves with: a report where the fields renderers treat as optional are always present. */
496
508
  type LintRun = LintResult & Required<Pick<LintResult, "summary" | "ruleFindings" | "ruleScorecard" | "scope">> & {
@@ -498,17 +510,19 @@ type LintRun = LintResult & Required<Pick<LintResult, "summary" | "ruleFindings"
498
510
  units: number;
499
511
  manifest: Record<string, unknown>;
500
512
  };
501
- declare const runLint: (options?: LintOptions, ctx?: LintContext) => Promise<LintRun>;
513
+ export declare const runLint: (options?: LintOptions, ctx?: LintContext) => Promise<LintRun>;
502
514
  //#endregion
503
515
  //#region src/rules/load.d.ts
504
- declare const resolveRulesDir: (explicit?: string) => string;
516
+ export declare const resolveRulesDir: (explicit?: string) => string;
505
517
  interface LoadOptions {
506
518
  /** Include rules with status draft (default false). */
507
519
  allowDraft?: boolean;
508
520
  /** Restrict to these rule ids. */
509
521
  only?: string[];
522
+ /** More rule directories with the same domain-folder layout, such as a voice pack. */
523
+ extraDirs?: string[];
510
524
  }
511
- declare const loadRules: (rulesDir: string, options?: LoadOptions) => Rule[];
525
+ export declare const loadRules: (rulesDir: string, options?: LoadOptions) => Rule[];
512
526
  //#endregion
513
527
  //#region src/rules/taxonomy.d.ts
514
528
  interface Category {
@@ -516,21 +530,21 @@ interface Category {
516
530
  domain: Domain;
517
531
  label: string;
518
532
  }
519
- declare const CATEGORIES: readonly Category[];
533
+ export declare const CATEGORIES: readonly Category[];
520
534
  //#endregion
521
535
  //#region src/extract/index.d.ts
522
- declare const extractFile: (config: Config, relativeFile: string) => Unit[];
536
+ export declare const extractFile: (config: Config, relativeFile: string) => Unit[];
523
537
  //#endregion
524
538
  //#region src/extract/tsx.d.ts
525
539
  interface TsxExtractOptions {
526
540
  config: Config;
527
541
  docType: DocType;
528
542
  }
529
- declare const extractTsx: (file: string, source: string, options: TsxExtractOptions) => Unit[];
543
+ export declare const extractTsx: (file: string, source: string, options: TsxExtractOptions) => Unit[];
530
544
  //#endregion
531
545
  //#region src/map/jev.d.ts
532
546
  type Transport = "typesafe" | "gateway";
533
- declare class ProviderError extends Error {
547
+ export declare class ProviderError extends Error {
534
548
  readonly category: "provider_error" | "invalid_response" | "timeout" | "auth";
535
549
  readonly status?: number | undefined;
536
550
  constructor(category: "provider_error" | "invalid_response" | "timeout" | "auth", status?: number | undefined);
@@ -545,16 +559,16 @@ interface FetchEvaluateOptions {
545
559
  /** Sleep hook so tests can run without waiting. */
546
560
  sleep?: (ms: number) => Promise<void>;
547
561
  }
548
- declare const makeFetchEvaluate: (options: FetchEvaluateOptions) => Evaluate;
562
+ export declare const makeFetchEvaluate: (options: FetchEvaluateOptions) => Evaluate;
549
563
  //#endregion
550
564
  //#region src/report/json.d.ts
551
- declare const renderJson: (result: LintResult, manifest: Record<string, unknown>) => string;
565
+ export declare const renderJson: (result: LintResult, manifest: Record<string, unknown>) => string;
552
566
  //#endregion
553
567
  //#region src/report/sarif.d.ts
554
- declare const renderSarif: (result: Pick<LintResult, "findings" | "ruleFindings">, rules: Rule[], version: string) => string;
568
+ export declare const renderSarif: (result: Pick<LintResult, "findings" | "ruleFindings">, rules: Rule[], version: string) => string;
555
569
  //#endregion
556
570
  //#region src/report/tty.d.ts
557
- declare const renderTty: (result: LintResult, options?: {
571
+ export declare const renderTty: (result: LintResult, options?: {
558
572
  verbose?: boolean;
559
573
  }) => string;
560
574
  //#endregion
@@ -615,6 +629,10 @@ interface EvalOptions {
615
629
  only?: string[];
616
630
  split?: "dev" | "holdout" | "all";
617
631
  includeWeak?: boolean;
632
+ /** Only items from these label sources; `hand` measures agreement with you. */
633
+ sources?: CorpusItem["labelSource"][];
634
+ /** List each item where the judge and the label disagree at the review threshold. */
635
+ disagreements?: boolean;
618
636
  dryRun?: boolean;
619
637
  noCache?: boolean;
620
638
  resultsDir?: string;
@@ -660,10 +678,10 @@ interface EvalResult {
660
678
  errors: number;
661
679
  };
662
680
  }
663
- declare const runEval: (options: EvalOptions, ctx?: EvalContext) => Promise<EvalResult>;
681
+ export declare const runEval: (options: EvalOptions, ctx?: EvalContext) => Promise<EvalResult>;
664
682
  //#endregion
665
683
  //#region src/eval/corpus.d.ts
666
- declare const splitFor: (id: string) => "dev" | "holdout";
684
+ export declare const splitFor: (id: string) => "dev" | "holdout";
667
685
  //#endregion
668
686
  //#region src/eval/promotion.d.ts
669
687
  interface PromotionEvidence {
@@ -684,6 +702,8 @@ interface TuneOptions {
684
702
  model?: string;
685
703
  apiKey?: string;
686
704
  minItems?: number;
705
+ /** Only items from these label sources, e.g. `hand`. */
706
+ sources?: CorpusItem["labelSource"][];
687
707
  }
688
708
  interface TuneContext {
689
709
  evaluate?: Evaluate;
@@ -698,11 +718,11 @@ interface TuneDecision {
698
718
  recall: number;
699
719
  action: "keep" | "raise" | "lower" | "demote" | "insufficient";
700
720
  }
701
- declare const runTune: (options: TuneOptions, ctx?: TuneContext) => Promise<{
721
+ export declare const runTune: (options: TuneOptions, ctx?: TuneContext) => Promise<{
702
722
  report: string;
703
723
  exitCode: number;
704
724
  decisions: TuneDecision[];
705
725
  }>;
706
726
  //#endregion
707
- export { type Band, CATEGORIES, type CONTEXT_KEYS, type Config, type ContextKey, type CorpusItem, type Coverage, type CriterionSide, type DOC_TYPES, type DOMAINS, type DocType, type Domain, type EntryValue, type Evaluate, type Finding, type Fix, type LintContext, type LintOptions, type LintResult, type LintRun, type Mechanical, type MechanicalHit, type NeighbourSummary, type Preconditions, type Progress, ProviderError, type Question, type ROLES, type RULE_STATUSES, type RecorderHandle, type ResolvedTypography, type ReviewProcedure, type Role, type Rule, type RuleSource, type RuleStatus, type RunStatus, type RunSummary, type SEVERITIES, type SEVERITY_RANK, type STRUCTURAL_KINDS, type ScanScope, type Scorecard, type Severity, type SystemOneNoul, type SystemOneRequest, type SystemOneResponse, type TIERS, type Thresholds, type Tier, type Tuning, type TuningEntry, type UNIT_KINDS, type Unit, type UnitContext, type UnitKind, type Unknown, type Usage, extractFile, extractTsx, loadConfig, loadRules, makeFetchEvaluate, renderJson, renderSarif, renderTty, resolveRulesDir, runEval, runLint, runTune, splitFor };
727
+ export type { Band, CONTEXT_KEYS, Config, ContextKey, CorpusItem, Coverage, CriterionSide, DOC_TYPES, DOMAINS, DocType, Domain, EntryValue, Evaluate, Finding, Fix, LintContext, LintOptions, LintResult, LintRun, Mechanical, MechanicalHit, NeighbourSummary, Preconditions, Progress, Question, ROLES, RULE_STATUSES, RecorderHandle, ResolvedTypography, ReviewProcedure, Role, Rule, RuleSource, RuleStatus, RunStatus, RunSummary, SEVERITIES, SEVERITY_RANK, STRUCTURAL_KINDS, ScanScope, Scorecard, Severity, SystemOneNoul, SystemOneRequest, SystemOneResponse, TIERS, Thresholds, Tier, Tuning, TuningEntry, UNIT_KINDS, Unit, UnitContext, UnitKind, Unknown, Usage };
708
728
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/analysis/repository.ts","../src/types.ts","../src/scan/profiles.ts","../src/lib/config.ts","../src/lint.ts","../src/rules/load.ts","../src/rules/taxonomy.ts","../src/extract/index.ts","../src/extract/tsx.ts","../src/map/jev.ts","../src/report/json.ts","../src/report/sarif.ts","../src/report/tty.ts","../src/lib/stats.ts","../src/eval/coverage.ts","../src/eval/metrics.ts","../src/eval/corpus.ts","../src/eval/promotion.ts","../src/eval/tune.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/analysis/repository.ts","../src/types.ts","../src/scan/profiles.ts","../src/lib/config.ts","../src/lint.ts","../src/rules/load.ts","../src/rules/taxonomy.ts","../src/extract/index.ts","../src/extract/tsx.ts","../src/map/jev.ts","../src/report/json.ts","../src/report/sarif.ts","../src/report/tty.ts","../src/lib/stats.ts","../src/eval/coverage.ts","../src/eval/metrics.ts","../src/eval/corpus.ts","../src/eval/promotion.ts","../src/eval/tune.ts"],"mappings":"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"}