@design-intelligence/ghost 0.21.0 → 0.22.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 (125) hide show
  1. package/README.md +47 -33
  2. package/dist/commands/fingerprint-commands.d.ts.map +1 -1
  3. package/dist/commands/fingerprint-commands.js +1 -6
  4. package/dist/commands/fingerprint-commands.js.map +1 -1
  5. package/dist/commands/gather-command.d.ts.map +1 -1
  6. package/dist/commands/gather-command.js +26 -30
  7. package/dist/commands/gather-command.js.map +1 -1
  8. package/dist/commands/init-command.d.ts.map +1 -1
  9. package/dist/commands/init-command.js +1 -6
  10. package/dist/commands/init-command.js.map +1 -1
  11. package/dist/commands/pull-command.d.ts.map +1 -1
  12. package/dist/commands/pull-command.js +12 -19
  13. package/dist/commands/pull-command.js.map +1 -1
  14. package/dist/commands/pulse-command.js +1 -10
  15. package/dist/commands/pulse-command.js.map +1 -1
  16. package/dist/ghost-core/catalog/assemble.d.ts +0 -4
  17. package/dist/ghost-core/catalog/assemble.d.ts.map +1 -1
  18. package/dist/ghost-core/catalog/assemble.js +0 -10
  19. package/dist/ghost-core/catalog/assemble.js.map +1 -1
  20. package/dist/ghost-core/catalog/index.d.ts +1 -1
  21. package/dist/ghost-core/catalog/index.d.ts.map +1 -1
  22. package/dist/ghost-core/catalog/index.js +1 -1
  23. package/dist/ghost-core/catalog/index.js.map +1 -1
  24. package/dist/ghost-core/catalog/menu.d.ts +1 -11
  25. package/dist/ghost-core/catalog/menu.d.ts.map +1 -1
  26. package/dist/ghost-core/catalog/menu.js +1 -6
  27. package/dist/ghost-core/catalog/menu.js.map +1 -1
  28. package/dist/ghost-core/catalog/types.d.ts +0 -6
  29. package/dist/ghost-core/catalog/types.d.ts.map +1 -1
  30. package/dist/ghost-core/glossary.d.ts +0 -13
  31. package/dist/ghost-core/glossary.d.ts.map +1 -1
  32. package/dist/ghost-core/glossary.js +0 -7
  33. package/dist/ghost-core/glossary.js.map +1 -1
  34. package/dist/ghost-core/index.d.ts +2 -2
  35. package/dist/ghost-core/index.d.ts.map +1 -1
  36. package/dist/ghost-core/index.js +1 -1
  37. package/dist/ghost-core/index.js.map +1 -1
  38. package/dist/ghost-core/package-manifest.d.ts +7 -0
  39. package/dist/ghost-core/package-manifest.d.ts.map +1 -1
  40. package/dist/ghost-core/package-manifest.js +10 -0
  41. package/dist/ghost-core/package-manifest.js.map +1 -1
  42. package/dist/init-payloads/median/median-tells.md +25 -25
  43. package/dist/init-payloads/skeleton/brand.md +22 -0
  44. package/dist/init-payloads/skeleton/context.conversation.md +24 -0
  45. package/dist/init-payloads/skeleton/foundation.color.md +39 -0
  46. package/dist/init-payloads/skeleton/foundation.composition.md +30 -0
  47. package/dist/init-payloads/skeleton/foundation.controls.md +29 -0
  48. package/dist/init-payloads/skeleton/foundation.layout.md +45 -0
  49. package/dist/init-payloads/skeleton/foundation.motion.md +34 -0
  50. package/dist/init-payloads/skeleton/foundation.type.md +44 -0
  51. package/dist/init-payloads/skeleton/foundation.voice.md +29 -0
  52. package/dist/init-payloads/skeleton/glossary.md +27 -32
  53. package/dist/init-payloads/vessel-light/anti-goal.tells.md +5 -4
  54. package/dist/init-payloads/vessel-light/checks/shape-matches-job.md +43 -0
  55. package/dist/init-payloads/vessel-light/glossary.md +0 -1
  56. package/dist/init-payloads/vessel-light/grammar.color-roles.md +2 -2
  57. package/dist/init-payloads/vessel-light/grammar.deletion.md +35 -0
  58. package/dist/init-payloads/vessel-light/grammar.hierarchy.md +13 -3
  59. package/dist/init-payloads/vessel-light/grammar.job.md +54 -0
  60. package/dist/init-payloads/vessel-light/index.md +20 -24
  61. package/dist/init-payloads/vessel-light/manifest.yml +1 -0
  62. package/dist/init-payloads/vessel-light/materials/primitives.css +15 -52
  63. package/dist/init-payloads/vessel-light/materials/ref/composition.editorial.html +12 -7
  64. package/dist/init-payloads/vessel-light/materials/ref/composition.overlay.html +8 -2
  65. package/dist/init-payloads/vessel-light/materials/ref/composition.table.html +3 -3
  66. package/dist/init-payloads/vessel-light/materials/tokens.css +27 -78
  67. package/dist/init-payloads/vessel-light/signature.temperature.md +7 -0
  68. package/dist/init-payloads/vessel-light/signature.type.md +6 -5
  69. package/dist/observability-events.d.ts +0 -3
  70. package/dist/observability-events.d.ts.map +1 -1
  71. package/dist/observability-events.js.map +1 -1
  72. package/dist/review/resolve.d.ts +1 -2
  73. package/dist/review/resolve.d.ts.map +1 -1
  74. package/dist/review/resolve.js +4 -5
  75. package/dist/review/resolve.js.map +1 -1
  76. package/dist/review/review-packet.d.ts +0 -1
  77. package/dist/review/review-packet.d.ts.map +1 -1
  78. package/dist/review/review-packet.js +0 -19
  79. package/dist/review/review-packet.js.map +1 -1
  80. package/dist/scan/check-files.d.ts.map +1 -1
  81. package/dist/scan/check-files.js +0 -15
  82. package/dist/scan/check-files.js.map +1 -1
  83. package/dist/scan/check-scaffold.js +2 -2
  84. package/dist/scan/check-scaffold.js.map +1 -1
  85. package/dist/scan/fingerprint-package-lint.d.ts +8 -0
  86. package/dist/scan/fingerprint-package-lint.d.ts.map +1 -0
  87. package/dist/scan/fingerprint-package-lint.js +284 -0
  88. package/dist/scan/fingerprint-package-lint.js.map +1 -0
  89. package/dist/scan/fingerprint-package-loader.d.ts.map +1 -1
  90. package/dist/scan/fingerprint-package-loader.js +2 -29
  91. package/dist/scan/fingerprint-package-loader.js.map +1 -1
  92. package/dist/scan/fingerprint-package.d.ts +9 -7
  93. package/dist/scan/fingerprint-package.d.ts.map +1 -1
  94. package/dist/scan/fingerprint-package.js +18 -231
  95. package/dist/scan/fingerprint-package.js.map +1 -1
  96. package/dist/scan/node-files.d.ts.map +1 -1
  97. package/dist/scan/node-files.js +1 -3
  98. package/dist/scan/node-files.js.map +1 -1
  99. package/dist/scan/templates.d.ts.map +1 -1
  100. package/dist/scan/templates.js +43 -35
  101. package/dist/scan/templates.js.map +1 -1
  102. package/dist/skill-bundle/SKILL.md +15 -13
  103. package/dist/skill-bundle/references/adapting-a-starter.md +62 -60
  104. package/dist/skill-bundle/references/authoring-scenarios.md +6 -8
  105. package/dist/skill-bundle/references/brief.md +5 -6
  106. package/dist/skill-bundle/references/capture.md +47 -36
  107. package/dist/skill-bundle/references/concrete-tiers.md +95 -0
  108. package/dist/skill-bundle/references/recall.md +6 -12
  109. package/dist/skill-bundle/references/schema.md +15 -24
  110. package/dist/skill-bundle/references/self-check.md +2 -2
  111. package/dist/skill-bundle/references/steering-audit.md +7 -10
  112. package/package.json +1 -1
  113. package/dist/init-payloads/skeleton/grammar.color-roles.md +0 -26
  114. package/dist/init-payloads/skeleton/grammar.conversation.md +0 -23
  115. package/dist/init-payloads/skeleton/grammar.hierarchy.md +0 -39
  116. package/dist/init-payloads/skeleton/grammar.motion.md +0 -24
  117. package/dist/init-payloads/skeleton/grammar.rhythm.md +0 -23
  118. package/dist/init-payloads/skeleton/grammar.surfaces.md +0 -26
  119. package/dist/init-payloads/skeleton/index.md +0 -27
  120. package/dist/init-payloads/skeleton/signature.palette.md +0 -24
  121. package/dist/init-payloads/skeleton/signature.shape.md +0 -19
  122. package/dist/init-payloads/skeleton/signature.temperature.md +0 -20
  123. package/dist/init-payloads/skeleton/signature.type.md +0 -22
  124. package/dist/skill-bundle/references/wild.md +0 -30
  125. /package/dist/init-payloads/median/{anti-goal.median.md → cliche.median.md} +0 -0
@@ -1,5 +1,5 @@
1
1
  <!-- ghost ref annotations
2
- normative-for: register.editorial — display-scale hero with the single sanctioned kicker (one per page — repeating it on every section is the median tell), --section-padding-vertical rhythm, the sanctioned full-bleed dark band via --surface-dark-*, the pull quote as visual punctuation, one primary action per page. signature.type — the editorial heading scale (--heading-display-*, --heading-section-*) used where the words are the composition, product text variants (title, label, body) inside the features. grammar.hierarchy — the inverse tone on the dark surface. signature.palette — the editorial volume: exactly two expression hues per page (periwinkle tinting the dark band, amber accenting the pull quote), controls monochrome.
2
+ normative-for: register.editorial — display-scale hero with the single sanctioned kicker (one per page — repeating it on every section is the median tell), --section-padding-vertical rhythm, the sanctioned full-bleed dark band via --surface-dark-*, the pull quote as visual punctuation, one primary action per page at button--size-lg. signature.type — the editorial heading scale (text--display for the hero, --heading-section-* and --heading-sub-* composed locally) used where the words are the composition, product text variants (title, label, body) inside the features. grammar.rhythm — the hero takes the largest gap step (stack--gap-xl) because display scale earns it. grammar.motion — the sanctioned editorial entrance: one staged reveal at --duration-slow with the one ease, opacity and small transform only. grammar.hierarchy — the inverse tone on the dark surface. signature.palette — the editorial volume: exactly two expression hues per page (periwinkle tinting the dark band, amber accenting the pull quote), controls monochrome.
3
3
  incidental: all copy; the specific hue assignments (any two of the five expression hues satisfy the budget); the three-feature grid count; content max-widths.
4
4
  -->
5
5
  <!doctype html>
@@ -14,11 +14,15 @@
14
14
  body { margin: 0; }
15
15
  .page { width: min(calc(100% - (var(--page-container-side-gutter) * 2)), var(--page-container-max-width)); margin-inline: auto; }
16
16
  .section { padding-block: var(--section-padding-vertical); }
17
- .hero { min-height: calc(var(--section-padding-vertical) * 5); justify-content: center; }
17
+ .hero { min-height: calc(var(--section-padding-vertical) * 5); }
18
+ /* editorial entrance: one staged reveal, opacity + small transform, --duration-slow with the one ease */
19
+ .hero > * { animation: hero-enter var(--duration-slow) var(--ease-spring) both; }
20
+ @keyframes hero-enter { from { opacity: 0; transform: translateY(8px); } }
18
21
  .label-kicker { text-transform: uppercase; }
19
- .display-heading { max-width: calc(var(--page-container-side-gutter) * 48); font-size: var(--heading-display-font-size); font-weight: var(--heading-display-font-weight); line-height: var(--heading-display-line-height); letter-spacing: var(--heading-display-letter-spacing); }
22
+ .display-heading { max-width: calc(var(--page-container-side-gutter) * 48); }
20
23
  .reading-line { max-width: calc(var(--page-container-side-gutter) * 32); font-size: var(--body-reading-size); line-height: var(--body-reading-line-height); letter-spacing: var(--body-reading-letter-spacing); }
21
24
  .section-heading { max-width: calc(var(--page-container-side-gutter) * 36); margin-bottom: var(--section-heading-margin-bottom); font-size: var(--heading-section-font-size); font-weight: var(--heading-section-font-weight); line-height: var(--heading-section-line-height); letter-spacing: var(--heading-section-letter-spacing); }
25
+ .note-heading { max-width: calc(var(--page-container-side-gutter) * 36); margin-bottom: var(--page-container-side-gutter); font-size: var(--heading-sub-font-size); font-weight: var(--heading-sub-font-weight); line-height: var(--heading-sub-line-height); letter-spacing: var(--heading-sub-letter-spacing); }
22
26
  /* expression budget: two hues per page — periwinkle tints the dark band, amber accents the pull quote */
23
27
  .dark-band { width: 100vw; margin-left: calc(50% - 50vw); background: color-mix(in srgb, var(--expression-2) 12%, var(--surface-dark)); color: var(--surface-dark-text); }
24
28
  .dark-inner { width: min(calc(100% - (var(--page-container-side-gutter) * 2)), var(--page-container-max-width)); margin-inline: auto; padding-block: var(--section-padding-vertical); }
@@ -31,11 +35,11 @@
31
35
  </head>
32
36
  <body>
33
37
  <main>
34
- <section class="page section hero stack stack--gap-lg stack--align-start" aria-labelledby="hero-title">
38
+ <section class="page section hero stack stack--gap-xl stack--align-start stack--justify-center" aria-labelledby="hero-title">
35
39
  <p class="text text--label text--muted label-kicker">Independent review layer</p>
36
- <h1 class="text display-heading" id="hero-title">Make every generated screen answer to the same brand memory.</h1>
40
+ <h1 class="text text--display display-heading" id="hero-title">Make every generated screen answer to the same brand memory.</h1>
37
41
  <p class="text reading-line text--muted">Vessel keeps interface materials plain, inspectable, and close to the repo so agents can preserve the feel behind the product, not just the surface.</p>
38
- <a class="button button--primary" href="#material-system">Review materials</a>
42
+ <a class="button button--primary button--size-lg" href="#material-system">Review materials</a>
39
43
  </section>
40
44
 
41
45
  <section class="dark-band" id="material-system" aria-labelledby="system-title">
@@ -61,7 +65,8 @@
61
65
  </div>
62
66
  </section>
63
67
 
64
- <section class="page section" aria-label="Editorial note">
68
+ <section class="page section" aria-labelledby="note-title">
69
+ <h2 class="text note-heading" id="note-title">Why authorship survives generation</h2>
65
70
  <blockquote class="pullquote">The interface should feel authored even when an agent produced the first pass.</blockquote>
66
71
  </section>
67
72
  </main>
@@ -1,5 +1,5 @@
1
1
  <!-- ghost ref annotations
2
- normative-for: grammar.surfaces — the interrupting end of the elevation set: the modal tier (scrim, --shadow-modal, --radius-surface, compact header, clear footer) and the popover tier (an anchored menu floating above the flow with --shadow-popover). The card tier's home is composition.form.html and composition.table.html; together the three refs cover the closed elevation set. grammar.hierarchy — one primary confirm, ghost escape, menu items as ghost-weight actions; the info tone carrying a state-meaning note. signature.shape — surface radius on both overlay surfaces.
2
+ normative-for: grammar.surfaces — the interrupting end of the elevation set: the modal tier (scrim, --shadow-modal, --radius-surface, compact header, clear footer) and the popover tier (an anchored menu floating above the flow with --shadow-popover). The card tier's home is composition.form.html and composition.table.html; together the three refs cover the closed elevation set. grammar.motion — the dialog reveal at --duration-normal with the one ease, opacity and small transform only. grammar.hierarchy — one primary confirm, ghost escape as button--icon close plus a cancel, menu items as ghost-weight actions; the info tone carrying a state-meaning note. signature.shape — surface radius on both overlay surfaces, the pill (--radius-control) on the icon close.
3
3
  incidental: showing the popover and the modal in the same frame (a demonstration convenience — in a live UI the menu closes when the dialog interrupts); all copy and counts; the 512px dialog width; the specific menu items.
4
4
  -->
5
5
  <!doctype html>
@@ -17,6 +17,9 @@
17
17
  .menu-item { justify-content: flex-start; width: 100%; height: 32px; padding: 6px 12px; }
18
18
  .scrim { position: fixed; inset: 0; display: grid; place-items: center; padding: 16px; }
19
19
  section[role="dialog"] { width: min(100%, 512px); }
20
+ /* dialog reveal: --duration-normal with the one ease, opacity + small transform */
21
+ section[role="dialog"] { animation: dialog-reveal var(--duration-normal) var(--ease-spring) both; }
22
+ @keyframes dialog-reveal { from { opacity: 0; transform: translateY(4px) scale(0.98); } }
20
23
  </style>
21
24
  </head>
22
25
  <body>
@@ -39,7 +42,10 @@
39
42
  <div class="scrim" role="presentation">
40
43
  <section class="surface surface--popover surface--pad-lg surface--radius-surface surface--border surface--elevation-modal stack stack--gap-lg" role="dialog" aria-modal="true" aria-labelledby="dialog-title" aria-describedby="dialog-description">
41
44
  <header class="stack stack--gap-sm">
42
- <h2 class="text text--title" id="dialog-title">Publish fingerprint changes?</h2>
45
+ <div class="stack stack--row stack--justify-between stack--align-center stack--gap-md">
46
+ <h2 class="text text--title" id="dialog-title">Publish fingerprint changes?</h2>
47
+ <button class="button button--ghost button--icon" type="button" aria-label="Close">&#215;</button>
48
+ </div>
43
49
  <p class="text text--muted" id="dialog-description">This will make the selected brand truths available to agents working in this repo. Review the diff before confirming.</p>
44
50
  </header>
45
51
 
@@ -1,5 +1,5 @@
1
1
  <!-- ghost ref annotations
2
- normative-for: register.data-density — the two smallest gap steps (--gap-xs, --gap-sm) as cell padding, mono tabular numerals right-aligned, muted-first hierarchy, hairline row borders with no zebra striping, small radius on the data surface, status as a text label in one functional color family, hover confirmation at --duration-fast. grammar.hierarchy — label + title header pairing, secondary export action stepping down the ladder.
2
+ normative-for: register.data-density — the two smallest gap steps (--gap-xs, --gap-sm) as cell padding, mono tabular numerals right-aligned, muted-first hierarchy, hairline row borders with no zebra striping, small radius on the data surface (surface--radius-sm), status as a text label in one functional color family, hover confirmation at --duration-fast. grammar.hierarchy — label + title header pairing, secondary export action stepping down the ladder.
3
3
  incidental: all customer names, emails, invoice ids, and amounts; the four-row count; the billing domain; the max content width.
4
4
  -->
5
5
  <!doctype html>
@@ -13,7 +13,7 @@
13
13
  <style>
14
14
  body { margin: 0; min-height: 100vh; padding: var(--page-container-side-gutter); }
15
15
  main { width: min(100%, calc(var(--page-container-side-gutter) * 56)); margin-inline: auto; }
16
- .table-surface { overflow: hidden; border-radius: var(--radius-sm); }
16
+ .table-surface { overflow: hidden; }
17
17
  table { width: 100%; border-collapse: collapse; }
18
18
  th, td { padding: var(--gap-xs) var(--gap-sm); border-bottom: 1px solid var(--border); text-align: left; font-size: var(--text-body-size); line-height: 1.5; }
19
19
  th { color: var(--muted-foreground); font-weight: 500; }
@@ -36,7 +36,7 @@
36
36
  <button class="button button--secondary button--size-sm" type="button">Export CSV</button>
37
37
  </header>
38
38
 
39
- <section class="surface surface--card surface--border table-surface" aria-label="Recent payments table">
39
+ <section class="surface surface--card surface--border surface--radius-sm table-surface" aria-label="Recent payments table">
40
40
  <table>
41
41
  <thead>
42
42
  <tr>
@@ -61,35 +61,27 @@
61
61
  --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
62
62
 
63
63
  --color-white: #ffffff;
64
- --color-black: #000000;
65
64
 
66
- --color-gray-50: #f5f5f5;
67
65
  --color-gray-100: #f0f0f0;
68
66
  --color-gray-200: #e8e8e8;
69
67
  --color-gray-300: #e5e5e5;
70
68
  --color-gray-400: #cccccc;
71
69
  --color-gray-500: #999999;
72
- --color-gray-600: #666666;
73
- --color-gray-700: #333333;
74
- --color-gray-800: #232323;
75
70
  --color-gray-900: #1a1a1a;
76
71
 
77
- --color-red-100: #ff6b6b;
78
72
  --color-red-200: #f94b4b;
79
- --color-blue-100: #7cacff;
80
73
  --color-blue-200: #5c98f9;
81
- --color-green-100: #a3d795;
82
74
  --color-green-200: #91cb80;
83
- --color-yellow-100: #ffd966;
84
75
  --color-yellow-200: #fbcd44;
85
76
 
86
- --radius: 20px;
87
- --radius-sm: calc(var(--radius) - 4px);
88
- --radius-md: calc(var(--radius) - 2px);
89
- --radius-lg: var(--radius);
77
+ /* Radius dials: --radius-surface on what contains, --radius-control on what
78
+ you click. Everything else derives from these two answers. */
90
79
  --radius-surface: 20px;
91
80
  --radius-control: 999px;
92
- --radius-input: 999px;
81
+ --radius: var(--radius-surface);
82
+ --radius-sm: calc(var(--radius) - 4px);
83
+ --radius-md: calc(var(--radius) - 2px);
84
+ --radius-input: var(--radius-control);
93
85
 
94
86
  --gap-xs: 4px;
95
87
  --gap-sm: 8px;
@@ -98,8 +90,10 @@
98
90
  --gap-xl: 32px;
99
91
 
100
92
  --text-body-size: 14px;
93
+ --text-body-line-height: 1.625;
101
94
  --text-title-size: 18px;
102
95
  --text-headline-size: 24px;
96
+ --text-heading-letter-spacing: -0.025em;
103
97
 
104
98
  --control-height: 36px;
105
99
 
@@ -115,32 +109,23 @@
115
109
  --secondary-foreground: var(--foreground);
116
110
  --muted: var(--color-gray-100);
117
111
  --muted-foreground: var(--color-gray-500);
118
- --accent: var(--color-gray-100);
119
- --accent-foreground: var(--foreground);
120
112
  --destructive: var(--color-red-200);
121
113
  --destructive-foreground: var(--color-white);
122
114
  --success: var(--color-green-200);
123
- --success-foreground: var(--color-gray-900);
124
115
  --warning: var(--color-yellow-200);
125
- --warning-foreground: var(--color-gray-900);
126
116
  --info: var(--color-blue-200);
127
- --info-foreground: var(--color-gray-900);
128
117
  --border: var(--color-gray-200);
129
118
  --input: var(--color-gray-300);
130
119
  --ring: var(--color-gray-400);
131
120
 
132
- --dark-10: rgba(26, 26, 26, 0.1);
133
121
  --dark-40: rgba(26, 26, 26, 0.4);
134
- --dark-04: rgba(26, 26, 26, 0.04);
135
122
 
136
- --shadow-mini: 0 2px 8px rgba(76, 76, 76, 0.15);
137
- --shadow-mini-inset: 0 1px 4px rgba(76, 76, 76, 0.1) inset;
123
+ /* Elevation is a closed set of three tiers (card, popover, modal);
124
+ --shadow-btn belongs to the button primitive, not the tiers. */
138
125
  --shadow-btn: 0 2px 8px rgba(76, 76, 76, 0.15);
139
126
  --shadow-card: 0 2px 8px rgba(76, 76, 76, 0.15);
140
- --shadow-elevated: 0 3px 12px rgba(76, 76, 76, 0.22);
141
127
  --shadow-popover: 0 8px 30px rgba(0, 0, 0, 0.12);
142
128
  --shadow-modal: 0 20px 60px rgba(0, 0, 0, 0.2);
143
- --shadow-kbd: 0 2px 8px rgba(76, 76, 76, 0.15);
144
129
 
145
130
  --surface-dark: #0a0a0a;
146
131
  --surface-dark-text: #f5f5f5;
@@ -159,14 +144,7 @@
159
144
  --heading-sub-line-height: 1;
160
145
  --heading-sub-letter-spacing: -0.02em;
161
146
  --heading-sub-font-weight: 700;
162
- --heading-card-font-size: clamp(20px, 2vw, 28px);
163
- --heading-card-line-height: 1.1;
164
- --heading-card-letter-spacing: -0.01em;
165
- --heading-card-font-weight: 600;
166
-
167
- --display-size: clamp(3rem, 12vw, 12rem);
168
- --display-line-height: 0.85;
169
- --display-letter-spacing: -0.05em;
147
+
170
148
  --body-reading-size: clamp(1rem, 1.3vw, 1.25rem);
171
149
  --body-reading-line-height: 1.65;
172
150
  --body-reading-letter-spacing: -0.01em;
@@ -185,58 +163,29 @@
185
163
  --section-heading-margin-bottom: 75px;
186
164
 
187
165
  --ease-spring: cubic-bezier(0.33, 1, 0.68, 1);
188
- --duration-fast: 0.15s;
189
- --duration-normal: 0.2s;
190
- --duration-slow: 0.4s;
166
+ --duration-fast: 0.15s; /* hover and press — confirmation, not performance */
167
+ --duration-normal: 0.2s; /* reveals, fades, small state changes */
168
+ --duration-slow: 0.4s; /* spatial transitions only; editorial entrances */
169
+
170
+ /* Budgets — countable rules, checked per view, not moods.
171
+ A budget of one means at most one; zero is a valid spend. */
172
+ --primary-budget: 1; /* primary actions per view — and some views honestly earn none */
173
+ --expression-budget-product: 0; /* expression hues in product UI — charts only, never the chrome */
174
+ --expression-budget-email: 1; /* expressive moments per message, one hue */
175
+ --expression-budget-editorial: 2; /* expression hues per page, atmosphere allowed */
176
+
177
+ /* Numerals in data — tabular figures so columns align and deltas read. */
178
+ --numeric-tabular: "tnum" 1;
191
179
 
192
180
  /* Expression palette — the brand's five hues, volume-gated by register.
193
181
  Product: charts only. Data-density: one hue family for status.
194
182
  Email: exactly one expressive moment. Editorial: atmosphere, max two
195
- hues per page. Never on interactive controls in any register. */
183
+ hues per page. Never on interactive controls in any register.
184
+ The refs demonstrate hues 1 and 2; hues 3-5 are declared inventory —
185
+ no register renders all five at once (see signature.palette). */
196
186
  --expression-1: #f6b44a; /* amber */
197
187
  --expression-2: #7585ff; /* periwinkle */
198
188
  --expression-3: #d76a6a; /* clay */
199
189
  --expression-4: #d185e0; /* orchid */
200
190
  --expression-5: #91cb80; /* sage */
201
191
  }
202
-
203
- .dark {
204
- --background: var(--color-black);
205
- --foreground: var(--color-white);
206
- --card: var(--color-gray-800);
207
- --card-foreground: var(--foreground);
208
- --popover: var(--color-gray-800);
209
- --popover-foreground: var(--foreground);
210
- --primary: var(--color-white);
211
- --primary-foreground: var(--color-black);
212
- --secondary: var(--color-gray-700);
213
- --secondary-foreground: var(--foreground);
214
- --muted: var(--color-gray-800);
215
- --muted-foreground: var(--color-gray-500);
216
- --accent: var(--color-gray-800);
217
- --accent-foreground: var(--foreground);
218
- --destructive: var(--color-red-100);
219
- --destructive-foreground: var(--color-black);
220
- --success: var(--color-green-100);
221
- --success-foreground: var(--color-black);
222
- --warning: var(--color-yellow-100);
223
- --warning-foreground: var(--color-black);
224
- --info: var(--color-blue-100);
225
- --info-foreground: var(--color-black);
226
- --border: var(--color-gray-700);
227
- --input: var(--color-gray-700);
228
- --ring: var(--color-gray-400);
229
-
230
- --dark-10: rgba(242, 242, 242, 0.1);
231
- --dark-40: rgba(242, 242, 242, 0.4);
232
- --dark-04: rgba(242, 242, 242, 0.04);
233
-
234
- --shadow-mini: 0 2px 8px rgba(0, 0, 0, 0.4);
235
- --shadow-mini-inset: 0 1px 4px rgba(0, 0, 0, 0.5) inset;
236
- --shadow-btn: 0 2px 8px rgba(0, 0, 0, 0.3);
237
- --shadow-card: 0 2px 8px rgba(0, 0, 0, 0.4);
238
- --shadow-elevated: 0 3px 12px rgba(0, 0, 0, 0.5);
239
- --shadow-popover: 0 8px 30px rgba(0, 0, 0, 0.4);
240
- --shadow-modal: 0 20px 60px rgba(0, 0, 0, 0.6);
241
- --shadow-kbd: 0 2px 8px rgba(0, 0, 0, 0.4);
242
- }
@@ -21,6 +21,13 @@ Destructive copy is direct because the risk is direct; softening the verb
21
21
  makes the interface less honest. Vessel never celebrates at the user. Trust
22
22
  comes from precision, restraint, and naming the truth plainly.
23
23
 
24
+ The voice is a mechanical edit, not a mood — apply it as transformations:
25
+ "Sorry, nothing here yet!" → "Nothing yet". "Awesome, your changes have been
26
+ saved!" → "Changes saved". "Oops! Something went wrong" → "Payment failed —
27
+ card expired". "You might want to consider updating your billing info" →
28
+ "Update your billing info". Strip the apology, the applause, and the hedge;
29
+ keep the fact and the fix.
30
+
24
31
  Vessel's current answer in motion: three durations — `--duration-fast`,
25
32
  `--duration-normal`, `--duration-slow` — and one ease, `--ease-spring`, which
26
33
  should feel resolved without feeling elastic. Hover confirms with color and
@@ -16,11 +16,12 @@ in one view.
16
16
  Vessel's current answer: HK Grotesk. vessel-light ships it as its embedded
17
17
  voice — here, `tokens.css` is canonical.
18
18
 
19
- The heading scale is editorial: display, section, sub, and card each carry
20
- their own rhythm (`--heading-display-*`, `--heading-section-*`,
21
- `--heading-sub-*`, `--heading-card-*`). Display sizes use tight tracking and
22
- sub-1 line heights because the words behave like composition, not paragraph
23
- text.
19
+ The heading scale is editorial: display, section, and sub each carry their
20
+ own rhythm (`--heading-display-*`, `--heading-section-*`, `--heading-sub-*`).
21
+ Display sizes use tight tracking and sub-1 line heights because the words
22
+ behave like composition, not paragraph text. Card-level headings inside
23
+ editorial features use the product `title` variant — the scale does not reach
24
+ below sub.
24
25
 
25
26
  Labels are small, semibold, and tracked wide. They should feel precise, never
26
27
  loud. Body text keeps the established reading sizes with relaxed line height;
@@ -4,8 +4,6 @@ export type GatherObservabilityEvent = {
4
4
  ask?: string;
5
5
  menu: string[];
6
6
  materials?: string[];
7
- wild?: boolean;
8
- wildIds?: string[];
9
7
  };
10
8
  export type PullMiss = {
11
9
  requested: string;
@@ -15,7 +13,6 @@ export type PullObservabilityEvent = {
15
13
  ts: string;
16
14
  event: "pull";
17
15
  ids: string[];
18
- wildIds?: string[];
19
16
  missed?: PullMiss[];
20
17
  inlinedMaterials?: number;
21
18
  omittedMaterials?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"observability-events.d.ts","sourceRoot":"","sources":["../src/observability-events.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,QAAQ,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAC/B,wBAAwB,GACxB,sBAAsB,CAAC;AAE3B,MAAM,MAAM,0BAA0B,GAClC,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,GACpC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;AAEvC,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAmBpC"}
1
+ {"version":3,"file":"observability-events.d.ts","sourceRoot":"","sources":["../src/observability-events.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,QAAQ,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAC/B,wBAAwB,GACxB,sBAAsB,CAAC;AAE3B,MAAM,MAAM,0BAA0B,GAClC,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,GACpC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;AAEvC,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAmBpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"observability-events.js","sourceRoot":"","sources":["../src/observability-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,kBAAkB,GAAG,qDAAqD,qBAAqB,2EAA2E,CAAC;AAmCjL,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,UAAkB,EAClB,KAAiC;IAEjC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;IAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC9C,GAAG,EAAE,CAAC,KAAK,EACX,GAAG,EAAE,CAAC,IAAI,CACX,CAAC;QACF,MAAM,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,YAAY,EAAE,CAAC;YACjB,gEAAgE;YAChE,wDAAwD;YACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,kBAAkB,IAAI,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;IACtE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAkB;IAElB,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,SAAS;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;YAC3C,IAAI,YAAY,CAAC,MAAM,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,oEAAoE;QACtE,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,KAAK,GAAG,KAAgC,CAAC;IAC/C,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/D,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"observability-events.js","sourceRoot":"","sources":["../src/observability-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,kBAAkB,GAAG,qDAAqD,qBAAqB,2EAA2E,CAAC;AAgCjL,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,UAAkB,EAClB,KAAiC;IAEjC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;IAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC9C,GAAG,EAAE,CAAC,KAAK,EACX,GAAG,EAAE,CAAC,IAAI,CACX,CAAC;QACF,MAAM,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,YAAY,EAAE,CAAC;YACjB,gEAAgE;YAChE,wDAAwD;YACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,kBAAkB,IAAI,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;IACtE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAkB;IAElB,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,SAAS;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;YAC3C,IAAI,YAAY,CAAC,MAAM,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,oEAAoE;QACtE,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,KAAK,GAAG,KAAgC,CAAC;IAC/C,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/D,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -13,7 +13,7 @@ export interface OfferedCheck {
13
13
  via: string[];
14
14
  }
15
15
  export interface CoverageGap {
16
- kind: "unmatched-file" | "unguarded-material";
16
+ kind: "unmatched-file" | "unchecked-material";
17
17
  detail: string;
18
18
  files?: string[];
19
19
  nodes?: string[];
@@ -21,7 +21,6 @@ export interface CoverageGap {
21
21
  export interface ReviewResolution {
22
22
  touchedFiles: TouchedFile[];
23
23
  materialNodes: MatchedMaterialNode[];
24
- guardNodes: MatchedMaterialNode[];
25
24
  offeredChecks: OfferedCheck[];
26
25
  gaps: CoverageGap[];
27
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/review/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAG9B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC9B,GAAG,EAAE,MAAM,EAAE,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,gBAAgB,GAAG,oBAAoB,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAChC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,wBAAwB,GAClC,gBAAgB,CAsGlB"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/review/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAG9B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC9B,GAAG,EAAE,MAAM,EAAE,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,gBAAgB,GAAG,oBAAoB,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAChC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,wBAAwB,GAClC,gBAAgB,CAmGlB"}
@@ -67,12 +67,12 @@ export function resolveReview(catalog, checks, diffText, transport) {
67
67
  files: unmatched,
68
68
  });
69
69
  }
70
- const unguarded = [...touchedMaterialNodes].filter((id) => !referencedMaterialNodes.has(id));
71
- if (unguarded.length > 0) {
70
+ const unchecked = [...touchedMaterialNodes].filter((id) => !referencedMaterialNodes.has(id));
71
+ if (unchecked.length > 0) {
72
72
  gaps.push({
73
- kind: "unguarded-material",
73
+ kind: "unchecked-material",
74
74
  detail: "touched material-backed nodes have no check referencing them — review coverage is missing",
75
- nodes: unguarded,
75
+ nodes: unchecked,
76
76
  });
77
77
  }
78
78
  const matchedNodes = [...matched].map(([id, entry]) => ({
@@ -83,7 +83,6 @@ export function resolveReview(catalog, checks, diffText, transport) {
83
83
  return {
84
84
  touchedFiles,
85
85
  materialNodes: matchedNodes,
86
- guardNodes: matchedNodes.filter((node) => catalog.nodes.get(node.id)?.guard),
87
86
  offeredChecks,
88
87
  gaps,
89
88
  };
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/review/resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/review/resolve.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,6 @@ export interface ReviewPacket {
25
25
  fingerprintId: string;
26
26
  touchedFiles: string[];
27
27
  materialNodes: PacketMaterialNode[];
28
- guardNodes: PacketMaterialNode[];
29
28
  checks: PacketCheck[];
30
29
  gaps: CoverageGap[];
31
30
  diff: string;
@@ -1 +1 @@
1
- {"version":3,"file":"review-packet.d.ts","sourceRoot":"","sources":["../../src/review/review-packet.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE/E,OAAO,EAAE,KAAK,aAAa,EAAmB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,KAAK,aAAa,EAAY,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAE7C,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC9B,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,kBAAkB,EAAE,CAAC;IACpC,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,wBAAwB;IACvC,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,wBAAwB,EACrC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,YAAY,CAAC,CAwDvB;AAoBD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA6G/D"}
1
+ {"version":3,"file":"review-packet.d.ts","sourceRoot":"","sources":["../../src/review/review-packet.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE/E,OAAO,EAAE,KAAK,aAAa,EAAmB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,KAAK,aAAa,EAAY,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAE7C,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC9B,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,kBAAkB,EAAE,CAAC;IACpC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,wBAAwB;IACvC,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,wBAAwB,EACrC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,YAAY,CAAC,CAmDvB;AAoBD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA8F/D"}
@@ -12,7 +12,6 @@ export async function buildReviewPacket(fingerprint, diffText, options = {}) {
12
12
  materialsDir: GHOST_MATERIALS_DIR,
13
13
  });
14
14
  const materialNodes = resolution.materialNodes.map((matched) => materialNodeFromMatch(fingerprint, matched));
15
- const guardNodes = resolution.guardNodes.map((matched) => materialNodeFromMatch(fingerprint, matched));
16
15
  const checks = await Promise.all(resolution.offeredChecks.map(async (offered) => {
17
16
  const check = fingerprint.checks.get(offered.id);
18
17
  const probeCommand = check?.doc.frontmatter.probe;
@@ -38,7 +37,6 @@ export async function buildReviewPacket(fingerprint, diffText, options = {}) {
38
37
  fingerprintId: fingerprint.manifest.id,
39
38
  touchedFiles: resolution.touchedFiles.map((file) => file.path),
40
39
  materialNodes,
41
- guardNodes,
42
40
  checks,
43
41
  gaps: resolution.gaps,
44
42
  diff: diffText,
@@ -85,23 +83,6 @@ export function formatReviewPacket(packet) {
85
83
  out.push("");
86
84
  }
87
85
  }
88
- if (packet.guardNodes.length > 0) {
89
- out.push("## Matched guard nodes — review-critical");
90
- for (const node of packet.guardNodes) {
91
- const kind = node.kind ? ` _(${node.kind})_` : "";
92
- out.push(`### \`${node.id}\`${kind}`);
93
- if (node.description)
94
- out.push(`_${node.description}_`, "");
95
- out.push(node.prose, "");
96
- out.push("Matched materials:");
97
- for (const locator of node.matchedMaterials)
98
- out.push(`- \`${locator}\``);
99
- out.push("Files:");
100
- for (const file of node.files)
101
- out.push(`- \`${file}\``);
102
- out.push("");
103
- }
104
- }
105
86
  out.push("## Offered checks — weigh which apply");
106
87
  if (packet.checks.length === 0) {
107
88
  out.push("_No checks were offered for this diff._", "");
@@ -1 +1 @@
1
- {"version":3,"file":"review-packet.js","sourceRoot":"","sources":["../../src/review/review-packet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review-packet.js","sourceRoot":"","sources":["../../src/review/review-packet.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"check-files.d.ts","sourceRoot":"","sources":["../../src/scan/check-files.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,aAAa,CAAC;AAErB,6DAA6D;AAC7D,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAOzC,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,kBAAkB,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACjC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC,CA4D3B"}
1
+ {"version":3,"file":"check-files.d.ts","sourceRoot":"","sources":["../../src/scan/check-files.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,aAAa,CAAC;AAErB,6DAA6D;AAC7D,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAIzC,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,kBAAkB,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACjC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC,CA0D3B"}
@@ -3,8 +3,6 @@ import { basename, join } from "node:path";
3
3
  import { lintGhostCheck, loadGhostCheck, parseCheckMarkdown, } from "#ghost-core";
4
4
  /** Reserved package-root directory holding review checks. */
5
5
  export const GHOST_CHECKS_DIR = "checks";
6
- /** Pre-flat location for checks; detected only to warn on stale packages. */
7
- const LEGACY_HAUNTS_DIR = "haunts";
8
6
  const CHECK_ID_PATTERN = /^[a-z0-9][a-z0-9._-]*$/;
9
7
  /**
10
8
  * Load the optional flat `.ghost/checks/` directory. Checks are feed-back
@@ -13,7 +11,6 @@ const CHECK_ID_PATTERN = /^[a-z0-9][a-z0-9._-]*$/;
13
11
  export async function loadCheckFiles(packageDir) {
14
12
  const checks = new Map();
15
13
  const invalid = [];
16
- await detectLegacyHauntsDir(packageDir, invalid);
17
14
  const checksDir = join(packageDir, GHOST_CHECKS_DIR);
18
15
  let entries;
19
16
  try {
@@ -65,18 +62,6 @@ export async function loadCheckFiles(packageDir) {
65
62
  }
66
63
  return { hasChecksDir: true, checks, invalid };
67
64
  }
68
- async function detectLegacyHauntsDir(packageDir, invalid) {
69
- try {
70
- await readdir(join(packageDir, LEGACY_HAUNTS_DIR));
71
- }
72
- catch {
73
- return;
74
- }
75
- invalid.push({
76
- file: LEGACY_HAUNTS_DIR,
77
- message: "the haunts/ directory is no longer supported; move haunts/checks/*.md to checks/ and delete haunts/",
78
- });
79
- }
80
65
  function referencesFromFrontmatter(frontmatter) {
81
66
  if (frontmatter === null)
82
67
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"check-files.js","sourceRoot":"","sources":["../../src/scan/check-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check-files.js","sourceRoot":"","sources":["../../src/scan/check-files.ts"],"names":[],"mappings":"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"}
@@ -26,12 +26,12 @@ export async function addChecksDir(packageDir) {
26
26
  const written = [];
27
27
  const skipped = [];
28
28
  await mkdir(checksDir, { recursive: true });
29
- if (await exists(join(packageDir, "anti-goal.median.md"))) {
29
+ if (await exists(join(packageDir, "cliche.median.md"))) {
30
30
  await writeFile(join(checksDir, MEDIAN_TELLS_FILENAME), await loadPayloadFile("median", MEDIAN_TELLS_FILENAME), "utf-8");
31
31
  written.push(MEDIAN_TELLS_FILENAME);
32
32
  }
33
33
  else {
34
- skipped.push(`${MEDIAN_TELLS_FILENAME} (no anti-goal.median node)`);
34
+ skipped.push(`${MEDIAN_TELLS_FILENAME} (no cliche.median node)`);
35
35
  }
36
36
  await writeFile(join(checksDir, EXAMPLE_CHECK_FILENAME), EXAMPLE_CHECK_CONTENT, "utf-8");
37
37
  written.push(EXAMPLE_CHECK_FILENAME);
@@ -1 +1 @@
1
- {"version":3,"file":"check-scaffold.js","sourceRoot":"","sources":["../../src/scan/check-scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AACpD,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AAEhD,MAAM,qBAAqB,GAAG;;;;;;;;;;;CAW7B,CAAC;AAQF,0EAA0E;AAC1E,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAAkB;IAElB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IACrD,IAAI,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,UAAU,CAAC,6BAA6B,SAAS,GAAG,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,SAAS,CACb,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,EACtC,MAAM,eAAe,CAAC,QAAQ,EAAE,qBAAqB,CAAC,EACtD,OAAO,CACR,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,GAAG,qBAAqB,6BAA6B,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,SAAS,CACb,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC,EACvC,qBAAqB,EACrB,OAAO,CACR,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAErC,OAAO;QACL,GAAG,EAAE,SAAS;QACd,OAAO;QACP,OAAO;KACR,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"check-scaffold.js","sourceRoot":"","sources":["../../src/scan/check-scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AACpD,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AAEhD,MAAM,qBAAqB,GAAG;;;;;;;;;;;CAW7B,CAAC;AAQF,0EAA0E;AAC1E,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAAkB;IAElB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IACrD,IAAI,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,UAAU,CAAC,6BAA6B,SAAS,GAAG,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,SAAS,CACb,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,EACtC,MAAM,eAAe,CAAC,QAAQ,EAAE,qBAAqB,CAAC,EACtD,OAAO,CACR,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,GAAG,qBAAqB,0BAA0B,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,SAAS,CACb,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC,EACvC,qBAAqB,EACrB,OAAO,CACR,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAErC,OAAO;QACL,GAAG,EAAE,SAAS;QACd,OAAO;QACP,OAAO;KACR,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { LintReport } from "./lint.js";
2
+ /**
3
+ * `validate` for a package: artifact shape, per-node validity, and the
4
+ * deterministic kind-prefix lint enabled by glossary.md. The catalog is flat;
5
+ * loading collects malformed nodes so they can be surfaced as structured issues.
6
+ */
7
+ export declare function lintFingerprintPackage(dirArg: string | undefined, cwd?: string): Promise<LintReport>;
8
+ //# sourceMappingURL=fingerprint-package-lint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fingerprint-package-lint.d.ts","sourceRoot":"","sources":["../../src/scan/fingerprint-package-lint.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAa,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,SAAgB,GAClB,OAAO,CAAC,UAAU,CAAC,CA4DrB"}