@design-intelligence/ghost 0.28.0 → 0.30.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 (135) hide show
  1. package/README.md +2 -2
  2. package/dist/cli.js +2 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/command-discovery.d.ts.map +1 -1
  5. package/dist/commands/command-discovery.js +10 -3
  6. package/dist/commands/command-discovery.js.map +1 -1
  7. package/dist/commands/gather-command.js +5 -5
  8. package/dist/commands/gather-command.js.map +1 -1
  9. package/dist/commands/init-command.d.ts.map +1 -1
  10. package/dist/commands/init-command.js +2 -2
  11. package/dist/commands/init-command.js.map +1 -1
  12. package/dist/commands/pull-command.d.ts.map +1 -1
  13. package/dist/commands/pull-command.js +8 -7
  14. package/dist/commands/pull-command.js.map +1 -1
  15. package/dist/commands/review-command.d.ts.map +1 -1
  16. package/dist/commands/review-command.js +1 -2
  17. package/dist/commands/review-command.js.map +1 -1
  18. package/dist/commands/skill-command.d.ts.map +1 -1
  19. package/dist/commands/skill-command.js +8 -1
  20. package/dist/commands/skill-command.js.map +1 -1
  21. package/dist/commands/stats-command.d.ts +3 -0
  22. package/dist/commands/stats-command.d.ts.map +1 -0
  23. package/dist/commands/{pulse-command.js → stats-command.js} +59 -39
  24. package/dist/commands/stats-command.js.map +1 -0
  25. package/dist/commands/stats-observations.d.ts +10 -0
  26. package/dist/commands/stats-observations.d.ts.map +1 -0
  27. package/dist/commands/stats-observations.js +47 -0
  28. package/dist/commands/stats-observations.js.map +1 -0
  29. package/dist/embed/gather.d.ts.map +1 -1
  30. package/dist/embed/gather.js +3 -4
  31. package/dist/embed/gather.js.map +1 -1
  32. package/dist/embed/pull.d.ts.map +1 -1
  33. package/dist/embed/pull.js +1 -3
  34. package/dist/embed/pull.js.map +1 -1
  35. package/dist/embed/types.d.ts +2 -6
  36. package/dist/embed/types.d.ts.map +1 -1
  37. package/dist/ghost-core/catalog/assemble.d.ts.map +1 -1
  38. package/dist/ghost-core/catalog/assemble.js +1 -5
  39. package/dist/ghost-core/catalog/assemble.js.map +1 -1
  40. package/dist/ghost-core/catalog/closest.d.ts +1 -1
  41. package/dist/ghost-core/catalog/closest.js +1 -1
  42. package/dist/ghost-core/catalog/menu.d.ts +7 -9
  43. package/dist/ghost-core/catalog/menu.d.ts.map +1 -1
  44. package/dist/ghost-core/catalog/menu.js +4 -6
  45. package/dist/ghost-core/catalog/menu.js.map +1 -1
  46. package/dist/ghost-core/catalog/types.d.ts +2 -6
  47. package/dist/ghost-core/catalog/types.d.ts.map +1 -1
  48. package/dist/ghost-core/node/schema.d.ts +4 -4
  49. package/dist/ghost-core/node/schema.d.ts.map +1 -1
  50. package/dist/ghost-core/node/schema.js +10 -4
  51. package/dist/ghost-core/node/schema.js.map +1 -1
  52. package/dist/ghost-core/node/serialize.d.ts +5 -7
  53. package/dist/ghost-core/node/serialize.d.ts.map +1 -1
  54. package/dist/ghost-core/node/serialize.js +9 -18
  55. package/dist/ghost-core/node/serialize.js.map +1 -1
  56. package/dist/ghost-core/node/types.d.ts +5 -7
  57. package/dist/ghost-core/node/types.d.ts.map +1 -1
  58. package/dist/init-payloads/median/cliche.median.md +1 -1
  59. package/dist/init-payloads/skeleton/brand.md +1 -1
  60. package/dist/init-payloads/skeleton/context.conversation.md +1 -1
  61. package/dist/init-payloads/skeleton/foundation.color.md +4 -1
  62. package/dist/init-payloads/skeleton/foundation.composition.md +4 -1
  63. package/dist/init-payloads/skeleton/foundation.controls.md +4 -1
  64. package/dist/init-payloads/skeleton/foundation.layout.md +4 -1
  65. package/dist/init-payloads/skeleton/foundation.motion.md +4 -1
  66. package/dist/init-payloads/skeleton/foundation.type.md +4 -1
  67. package/dist/init-payloads/skeleton/foundation.voice.md +4 -1
  68. package/dist/init-payloads/skeleton/glossary.md +3 -3
  69. package/dist/init-payloads/vessel-light/anti-goal.median.md +1 -1
  70. package/dist/init-payloads/vessel-light/anti-goal.tells.md +1 -1
  71. package/dist/init-payloads/vessel-light/checks/shape-matches-job.md +2 -2
  72. package/dist/init-payloads/vessel-light/glossary.md +3 -3
  73. package/dist/init-payloads/vessel-light/grammar.color-roles.md +1 -1
  74. package/dist/init-payloads/vessel-light/grammar.conversation.md +2 -2
  75. package/dist/init-payloads/vessel-light/grammar.deletion.md +1 -1
  76. package/dist/init-payloads/vessel-light/grammar.hierarchy.md +2 -2
  77. package/dist/init-payloads/vessel-light/grammar.job.md +14 -14
  78. package/dist/init-payloads/vessel-light/grammar.motion.md +1 -1
  79. package/dist/init-payloads/vessel-light/grammar.rhythm.md +1 -1
  80. package/dist/init-payloads/vessel-light/grammar.surfaces.md +2 -2
  81. package/dist/init-payloads/vessel-light/index.md +7 -12
  82. package/dist/init-payloads/vessel-light/materials/{ref → examples}/composition.conversation.html +3 -3
  83. package/dist/init-payloads/vessel-light/materials/{ref → examples}/composition.editorial.html +3 -3
  84. package/dist/init-payloads/vessel-light/materials/{ref → examples}/composition.form.html +3 -3
  85. package/dist/init-payloads/vessel-light/materials/{ref → examples}/composition.overlay.html +3 -3
  86. package/dist/init-payloads/vessel-light/materials/{ref → examples}/composition.table.html +3 -3
  87. package/dist/init-payloads/vessel-light/materials/{ref → examples}/email.html +3 -3
  88. package/dist/init-payloads/vessel-light/materials/tokens.css +1 -1
  89. package/dist/init-payloads/vessel-light/register.data-density.md +2 -2
  90. package/dist/init-payloads/vessel-light/register.editorial.md +2 -2
  91. package/dist/init-payloads/vessel-light/register.email.md +2 -2
  92. package/dist/init-payloads/vessel-light/signature.palette.md +1 -1
  93. package/dist/init-payloads/vessel-light/signature.shape.md +1 -1
  94. package/dist/init-payloads/vessel-light/signature.temperature.md +1 -1
  95. package/dist/init-payloads/vessel-light/signature.type.md +1 -1
  96. package/dist/observability-events.js +2 -2
  97. package/dist/review/baseline.d.ts +1 -1
  98. package/dist/review/baseline.d.ts.map +1 -1
  99. package/dist/review/baseline.js +2 -2
  100. package/dist/review/baseline.js.map +1 -1
  101. package/dist/review/review-packet.d.ts +2 -1
  102. package/dist/review/review-packet.d.ts.map +1 -1
  103. package/dist/review/review-packet.js +6 -4
  104. package/dist/review/review-packet.js.map +1 -1
  105. package/dist/scan/fingerprint-package-lint.d.ts.map +1 -1
  106. package/dist/scan/fingerprint-package-lint.js +9 -17
  107. package/dist/scan/fingerprint-package-lint.js.map +1 -1
  108. package/dist/scan/templates.d.ts +1 -1
  109. package/dist/scan/templates.js +1 -1
  110. package/dist/scan/templates.js.map +1 -1
  111. package/dist/skill-bundle/SKILL.md +30 -50
  112. package/dist/skill-bundle/references/authoring.md +145 -0
  113. package/dist/skill-bundle/references/ground.md +57 -0
  114. package/dist/skill-bundle/references/making.md +71 -104
  115. package/dist/skill-bundle/references/materials.md +131 -0
  116. package/dist/skill-bundle/references/nodes.md +139 -0
  117. package/dist/skill-bundle/references/schema.md +50 -58
  118. package/dist/skill-bundle/references/steering-audit.md +9 -24
  119. package/dist/untrusted-framing.d.ts +9 -0
  120. package/dist/untrusted-framing.d.ts.map +1 -0
  121. package/dist/untrusted-framing.js +15 -0
  122. package/dist/untrusted-framing.js.map +1 -0
  123. package/package.json +1 -1
  124. package/dist/commands/pulse-command.d.ts +0 -3
  125. package/dist/commands/pulse-command.d.ts.map +0 -1
  126. package/dist/commands/pulse-command.js.map +0 -1
  127. package/dist/skill-bundle/references/adapting-a-starter.md +0 -110
  128. package/dist/skill-bundle/references/authoring-scenarios.md +0 -187
  129. package/dist/skill-bundle/references/blocks.md +0 -179
  130. package/dist/skill-bundle/references/brief.md +0 -50
  131. package/dist/skill-bundle/references/capture.md +0 -422
  132. package/dist/skill-bundle/references/concrete-tiers.md +0 -95
  133. package/dist/skill-bundle/references/distill.md +0 -205
  134. package/dist/skill-bundle/references/recall.md +0 -36
  135. package/dist/skill-bundle/references/self-check.md +0 -65
@@ -1,7 +1,10 @@
1
1
  ---
2
- context: Any transition, animation, or hover treatment.
2
+ for: Any transition, animation, or hover treatment.
3
3
  ---
4
4
 
5
+ Starter guidance the brand owner has not yet reviewed. Cite it as provisional
6
+ until a human edits or confirms this chapter.
7
+
5
8
  ## Usage
6
9
 
7
10
  Motion is evidence of a state change. It confirms hover, press, reveal,
@@ -1,7 +1,10 @@
1
1
  ---
2
- context: Any view containing text.
2
+ for: Any view containing text.
3
3
  ---
4
4
 
5
+ Starter guidance the brand owner has not yet reviewed. Cite it as provisional
6
+ until a human edits or confirms this chapter.
7
+
5
8
  ## Usage
6
9
 
7
10
  Hierarchy is a closed vocabulary, not a size slider. Every piece of text
@@ -1,7 +1,10 @@
1
1
  ---
2
- context: Writing or editing any copy.
2
+ for: Writing or editing any copy.
3
3
  ---
4
4
 
5
+ Starter guidance the brand owner has not yet reviewed. Cite it as provisional
6
+ until a human edits or confirms this chapter.
7
+
5
8
  ## Usage
6
9
 
7
10
  Copy states what happened, what is possible, or what the user must decide.
@@ -33,7 +33,7 @@ checks at review.
33
33
 
34
34
  The cover node (`brand.md`, declared in the manifest) is the one page always
35
35
  in context: what the brand is, its temperature, and the refusals only it
36
- makes. The ghost skill's `adapting-a-starter` recipe is the procedure for
37
- growing this skeleton into a real ghost package: write the cover, answer each
36
+ makes. The ghost skill's `authoring` recipe explains how to grow this skeleton
37
+ into a real ghost package: write the cover, answer each
38
38
  chapter's open question, prune the cliches your chapters absorb, then add
39
- materials and refs.
39
+ materials and examples.
@@ -1,5 +1,5 @@
1
1
  ---
2
- context: Any greenfield visual surface or first-draft copy.
2
+ for: Any greenfield visual surface or first-draft copy.
3
3
  ---
4
4
 
5
5
  This is the model's median, not your brand. Each rule is reject→replace.
@@ -1,5 +1,5 @@
1
1
  ---
2
- context: Any work applying this brand's signature.
2
+ for: Any work applying this brand's signature.
3
3
  ---
4
4
 
5
5
  These are the near-misses of Vessel's own signature: outputs that got close
@@ -10,11 +10,11 @@ references:
10
10
 
11
11
  Apply this check to diffs that add or restructure a view. Classify the
12
12
  reader's job first — what they do next with the view — then judge the
13
- composition against the ref that job routes to. These flags catch the
13
+ composition against the example that job routes to. These flags catch the
14
14
  template-convergence failure: a plausible layout applied to a job it does
15
15
  not fit.
16
16
 
17
- Flag a view whose job routes to one ref but whose composition imitates
17
+ Flag a view whose job routes to one example but whose composition imitates
18
18
  another — a submit-and-done task laid out as a dashboard of cards, a
19
19
  records-scanning task rendered as prose sections, a stop-and-decide moment
20
20
  inlined into the page instead of interrupting it. (`grammar.job`)
@@ -38,7 +38,7 @@ anti-goals before styling anything greenfield.
38
38
 
39
39
  ---
40
40
 
41
- To adapt this package to another brand, follow the `adapting-a-starter`
42
- recipe in the ghost skill bundle. In short: new manifest id, prune the
41
+ To adapt this package to another brand, follow the starter section of the
42
+ `authoring` recipe in the ghost skill bundle. In short: new manifest id, prune the
43
43
  median rules your brand legitimately violates, answer each signature node,
44
- edit `materials/tokens.css`, regenerate the refs, rewrite the tells.
44
+ edit `materials/tokens.css`, regenerate the examples, rewrite the tells.
@@ -1,5 +1,5 @@
1
1
  ---
2
- context: Choosing or applying color.
2
+ for: Choosing or applying color.
3
3
  materials:
4
4
  - materials/tokens.css
5
5
  ---
@@ -1,7 +1,7 @@
1
1
  ---
2
- context: Any AI thread, agent console, review assistant, or prompt composer.
2
+ for: Any AI thread, agent console, review assistant, or prompt composer.
3
3
  materials:
4
- - materials/ref/composition.conversation.html
4
+ - materials/examples/composition.conversation.html
5
5
  ---
6
6
 
7
7
  Conversation UI is not chat cosplay. The assistant speaks on the page surface
@@ -1,5 +1,5 @@
1
1
  ---
2
- context: The final pass over any composition, or whenever a view feels crowded, busy, or dressed up.
2
+ for: The final pass over any composition, or whenever a view feels crowded, busy, or dressed up.
3
3
  ---
4
4
 
5
5
  Restraint is not a mood; it is a test every element has to pass. Before a
@@ -1,8 +1,8 @@
1
1
  ---
2
- context: Any view containing text or actions.
2
+ for: Any view containing text or actions.
3
3
  materials:
4
4
  - materials/primitives.css
5
- - materials/ref/composition.form.html
5
+ - materials/examples/composition.form.html
6
6
  ---
7
7
 
8
8
  Hierarchy is a closed vocabulary, not a size slider. Every piece of text and
@@ -1,12 +1,12 @@
1
1
  ---
2
- context: Any new view before its structure or register is chosen.
2
+ for: Any new view before its structure or register is chosen.
3
3
  materials:
4
- - materials/ref/composition.form.html
5
- - materials/ref/composition.table.html
6
- - materials/ref/composition.editorial.html
7
- - materials/ref/composition.overlay.html
8
- - materials/ref/composition.conversation.html
9
- - materials/ref/email.html
4
+ - materials/examples/composition.form.html
5
+ - materials/examples/composition.table.html
6
+ - materials/examples/composition.editorial.html
7
+ - materials/examples/composition.overlay.html
8
+ - materials/examples/composition.conversation.html
9
+ - materials/examples/email.html
10
10
  ---
11
11
 
12
12
  Before any structure exists, name what the reader does next with the view.
@@ -19,17 +19,17 @@ misleads.
19
19
  The jobs and where they route:
20
20
 
21
21
  - **Fill something in** — settings, signup, any submit-and-done task → the
22
- form ref. Stacked labels and fields, one submit, secondary escape.
22
+ form example. Stacked labels and fields, one submit, secondary escape.
23
23
  - **Scan and compare records** — lists, audits, anything with rows and
24
- figures → the table ref, in the data-density register.
24
+ figures → the table example, in the data-density register.
25
25
  - **Read a narrative** — a landing page, an announcement, a story → the
26
- editorial ref, in the editorial register.
26
+ editorial example, in the editorial register.
27
27
  - **Stop and decide** — a confirmation, a destructive act, a choice that
28
- interrupts the task → the overlay ref. The decision is the view.
28
+ interrupts the task → the overlay example. The decision is the view.
29
29
  - **Converse with the system** — an AI thread, an agent console, a prompt
30
- composer → the conversation ref.
30
+ composer → the conversation example.
31
31
  - **Be notified elsewhere** — receipts, alerts, anything that lands in an
32
- inbox → the email ref, in the email register.
32
+ inbox → the email example, in the email register.
33
33
 
34
34
  Read the request's verbs, not its nouns: "edit / set up / submit" routes to
35
35
  form; "compare / list / review the records" to table; "announce / tell the
@@ -37,7 +37,7 @@ story" to editorial; "confirm / are you sure" to overlay; "ask / draft with
37
37
  me" to conversation. When two jobs fold into one request, build for the job
38
38
  the reader performs on this view, now — the other job is the next view. When
39
39
  a job fits none of these, compose from the grammar and say so; do not force
40
- the nearest ref.
40
+ the nearest example.
41
41
 
42
42
  Three shapes lie about the job, and we refuse them everywhere:
43
43
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- context: Any transition, animation, or hover treatment.
2
+ for: Any transition, animation, or hover treatment.
3
3
  materials:
4
4
  - materials/tokens.css
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- context: Laying out any view.
2
+ for: Laying out any view.
3
3
  materials:
4
4
  - materials/primitives.css
5
5
  ---
@@ -1,8 +1,8 @@
1
1
  ---
2
- context: Any card, popover, modal, dialog, scrim, or bordered container.
2
+ for: Any card, popover, modal, dialog, scrim, or bordered container.
3
3
  materials:
4
4
  - materials/primitives.css
5
- - materials/ref/composition.overlay.html
5
+ - materials/examples/composition.overlay.html
6
6
  ---
7
7
 
8
8
  Surface is the only way an element gets a background, border, radius, or
@@ -1,5 +1,5 @@
1
1
  ---
2
- context: Any task using the complete Vessel design language.
2
+ for: Any task using the complete Vessel design language.
3
3
  materials:
4
4
  - materials/tokens.css
5
5
  ---
@@ -7,9 +7,8 @@ materials:
7
7
  vessel-light is Vessel without the React package: the design language as a
8
8
  steering packet for agents writing raw HTML and CSS.
9
9
 
10
- The contract is narrow. Style only with the tokens. Compose only with the
11
- closed sets the grammar enumerates. Imitate the refs when the task matches
12
- worked examples to copy from, not a framework to import.
10
+ Style only with the tokens. Compose only with the closed sets the grammar
11
+ enumerates. Use the examples when the task matches; they are not a framework.
13
12
 
14
13
  Grammar and the median floor are safe verbatim, unchanged by any adaptation.
15
14
  Signature nodes state Vessel's current answer and stand until you replace
@@ -23,11 +22,7 @@ success, warning, information — never atmosphere. Atmosphere is catered: a
23
22
  five-hue expression palette whose volume rises with the register, from
24
23
  charts-only in product to two hues in editorial, and never on controls.
25
24
 
26
- It protects the taste that disappears when an agent freehands: quiet
27
- surfaces, deliberate spacing, one obvious action, restrained motion.
28
-
29
- Name the reader's job before composing anything the job picks the ref and
30
- the register, never the topic. When a requested UI is not covered by a ref,
31
- compose from the grammar; do not invent a new styling system. Before
32
- anything ships, run the deletion pass: every element names what breaks if
33
- it goes, and the view arrives settled.
25
+ Name the reader's job before composing anything. The job picks the example and
26
+ the register, never the topic. When no example fits, compose from the grammar;
27
+ do not invent a new styling system. Before anything ships, run the deletion
28
+ pass: every element names what breaks if it goes, and the view arrives settled.
@@ -1,6 +1,6 @@
1
- <!-- ghost ref annotations
2
- normative-for: grammar.conversation — the whole grammar: assistant turns as plain text on the page surface (no bubble, border, or fill), user turns as compact muted surfaces aligned right, tool calls collapsed to a one-line labeled summary with status (mono detail only after expansion), one bordered prompt surface with an empty writing region and a single control row below, exactly one primary send. grammar.surfaces — no borders as decoration around assistant text. signature.shape — surface radius on the prompt surface and user turns.
3
- incidental: all copy; the 720px thread width and turn max-widths; the specific attach/mention controls; the billing subject matter.
1
+ <!-- How to use this example
2
+ Keep: grammar.conversation — the whole grammar: assistant turns as plain text on the page surface (no bubble, border, or fill), user turns as compact muted surfaces aligned right, tool calls collapsed to a one-line labeled summary with status (mono detail only after expansion), one bordered prompt surface with an empty writing region and a single control row below, exactly one primary send. grammar.surfaces — no borders as decoration around assistant text. signature.shape — surface radius on the prompt surface and user turns.
3
+ Change: all copy; the 720px thread width and turn max-widths; the specific attach/mention controls; the billing subject matter.
4
4
  -->
5
5
  <!doctype html>
6
6
  <html lang="en">
@@ -1,6 +1,6 @@
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 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
- 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.
1
+ <!-- How to use this example
2
+ Keep: 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
+ Change: 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>
6
6
  <html lang="en">
@@ -1,6 +1,6 @@
1
- <!-- ghost ref annotations
2
- normative-for: grammar.hierarchy — the complete control emphasis ladder (primary, secondary, outline, ghost, link) working one coherent view with one primary; destructive as a meaning, not a rung; field/label/error anatomy; the product text variants headline, title, body, label, mono; the warning and destructive tones. grammar.rhythm — column stacks with named gap steps, rows only for controls and paired label/value moments. grammar.surfaces — card tier with structural border. signature.shape — --radius-control on every control, --radius-surface on the card.
3
- incidental: all copy, field values, and key strings; the 560px column width; which specific action occupies each ladder rung; the settings domain itself.
1
+ <!-- How to use this example
2
+ Keep: grammar.hierarchy — the complete control emphasis ladder (primary, secondary, outline, ghost, link) working one coherent view with one primary; destructive as a meaning, not a rung; field/label/error anatomy; the product text variants headline, title, body, label, mono; the warning and destructive tones. grammar.rhythm — column stacks with named gap steps, rows only for controls and paired label/value moments. grammar.surfaces — card tier with structural border. signature.shape — --radius-control on every control, --radius-surface on the card.
3
+ Change: all copy, field values, and key strings; the 560px column width; which specific action occupies each ladder rung; the settings domain itself.
4
4
  -->
5
5
  <!doctype html>
6
6
  <html lang="en">
@@ -1,6 +1,6 @@
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.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
- 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.
1
+ <!-- How to use this example
2
+ Keep: 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 examples 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
+ Change: 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>
6
6
  <html lang="en">
@@ -1,6 +1,6 @@
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 (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
- incidental: all customer names, emails, invoice ids, and amounts; the four-row count; the billing domain; the max content width.
1
+ <!-- How to use this example
2
+ Keep: 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
+ Change: 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>
6
6
  <html lang="en">
@@ -1,7 +1,7 @@
1
1
  <!doctype html>
2
- <!-- ghost ref annotations
3
- normative-for: register.email — the inverted material contract: table layout, 600px wrapper, inline styles, system font stack, hardcoded hex hand-transcribed from tokens.css (each annotated below with its source token), bulletproof pill button, surface radius on the card, exactly one expressive moment in one hue (the amber header band). signature.shape — the radius values (20px surface, 999px control) surviving without token names. signature.palette — monochrome spine, one hue, quiet factual copy, no celebration.
4
- incidental: all copy, amounts, dates, and receipt numbers; the choice of amber for the one expressive moment (any single expression hue qualifies); the receipt subject matter.
2
+ <!-- How to use this example
3
+ Keep: register.email — the inverted material contract: table layout, 600px wrapper, inline styles, system font stack, hardcoded hex hand-transcribed from tokens.css (each annotated below with its source token), bulletproof pill button, surface radius on the card, exactly one expressive moment in one hue (the amber header band). signature.shape — the radius values (20px surface, 999px control) surviving without token names. signature.palette — monochrome spine, one hue, quiet factual copy, no celebration.
4
+ Change: all copy, amounts, dates, and receipt numbers; the choice of amber for the one expressive moment (any single expression hue qualifies); the receipt subject matter.
5
5
 
6
6
  hex transcription map (single source: materials/tokens.css — re-transcribe if a token changes):
7
7
  #ffffff = --color-white (background)
@@ -181,7 +181,7 @@
181
181
  Product: charts only. Data-density: one hue family for status.
182
182
  Email: exactly one expressive moment. Editorial: atmosphere, max two
183
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 —
184
+ The examples demonstrate hues 1 and 2; hues 3-5 are declared inventory —
185
185
  no register renders all five at once (see signature.palette). */
186
186
  --expression-1: #f6b44a; /* amber */
187
187
  --expression-2: #7585ff; /* periwinkle */
@@ -1,7 +1,7 @@
1
1
  ---
2
- context: Tables, dashboards, logs, monitoring, or other data-dense consoles.
2
+ for: Tables, dashboards, logs, monitoring, or other data-dense consoles.
3
3
  materials:
4
- - materials/ref/composition.table.html
4
+ - materials/examples/composition.table.html
5
5
  - materials/primitives.css
6
6
  ---
7
7
 
@@ -1,7 +1,7 @@
1
1
  ---
2
- context: Heroes, marketing pages, pull quotes, or full-bleed dark moments.
2
+ for: Heroes, marketing pages, pull quotes, or full-bleed dark moments.
3
3
  materials:
4
- - materials/ref/composition.editorial.html
4
+ - materials/examples/composition.editorial.html
5
5
  - materials/tokens.css
6
6
  ---
7
7
 
@@ -1,7 +1,7 @@
1
1
  ---
2
- context: Transactional email only.
2
+ for: Transactional email only.
3
3
  materials:
4
- - materials/ref/email.html
4
+ - materials/examples/email.html
5
5
  ---
6
6
 
7
7
  Condition: this node applies only to email. In any other medium, everything
@@ -1,5 +1,5 @@
1
1
  ---
2
- context: Color beyond the base roles, in any register.
2
+ for: Color beyond the base roles, in any register.
3
3
  materials:
4
4
  - materials/tokens.css
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- context: Choosing or implementing any radius or corner treatment.
2
+ for: Choosing or implementing any radius or corner treatment.
3
3
  materials:
4
4
  - materials/tokens.css
5
5
  - materials/primitives.css
@@ -1,5 +1,5 @@
1
1
  ---
2
- context: Writing any copy or choosing the character of motion.
2
+ for: Writing any copy or choosing the character of motion.
3
3
  materials:
4
4
  - materials/tokens.css
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- context: Any text, hero, landing page, or editorial moment.
2
+ for: Any text, hero, landing page, or editorial moment.
3
3
  materials:
4
4
  - materials/tokens.css
5
5
  - materials/fonts/HKGrotesk-Black.woff2
@@ -1,7 +1,7 @@
1
1
  import { access, appendFile, readFile } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
3
  import { GHOST_EVENTS_FILENAME } from "./scan/constants.js";
4
- const FIRST_WRITE_NOTICE = `ghost: logging selection events locally to .ghost/${GHOST_EVENTS_FILENAME} (gitignored; never leaves your machine). Summarize with \`ghost pulse\`.`;
4
+ const FIRST_WRITE_NOTICE = `ghost: logging selection events locally to .ghost/${GHOST_EVENTS_FILENAME} (gitignored; never leaves your machine). Summarize with \`ghost stats\`.`;
5
5
  /**
6
6
  * Resolve the run identifier for event attribution: explicit --run flag
7
7
  * wins, then GHOST_RUN_ID from the environment. Returns undefined when
@@ -51,7 +51,7 @@ export async function readGhostEvents(packageDir) {
51
51
  events.push(parsed);
52
52
  }
53
53
  catch {
54
- // Ignore malformed events tape lines; pulse should still be useful.
54
+ // Ignore malformed events tape lines; stats should still be useful.
55
55
  }
56
56
  }
57
57
  return events;
@@ -3,7 +3,7 @@ export interface BaselineProse {
3
3
  ref: string;
4
4
  nodeId: string;
5
5
  heading?: string;
6
- context?: string;
6
+ for?: string;
7
7
  body: string;
8
8
  warning?: string;
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../src/review/baseline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EAGlB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,YAAY,GACpB,aAAa,GAAG,IAAI,CA0BtB"}
1
+ {"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../src/review/baseline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EAGlB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,YAAY,GACpB,aAAa,GAAG,IAAI,CA0BtB"}
@@ -10,7 +10,7 @@ export function resolveBaseline(raw, catalog) {
10
10
  return {
11
11
  ref: raw,
12
12
  nodeId: ref.nodeId,
13
- ...(node.context !== undefined ? { context: node.context } : {}),
13
+ ...(node.for !== undefined ? { for: node.for } : {}),
14
14
  body: node.body,
15
15
  };
16
16
  }
@@ -19,7 +19,7 @@ export function resolveBaseline(raw, catalog) {
19
19
  ref: raw,
20
20
  nodeId: ref.nodeId,
21
21
  heading: ref.heading,
22
- ...(node.context !== undefined ? { context: node.context } : {}),
22
+ ...(node.for !== undefined ? { for: node.for } : {}),
23
23
  body: section ?? node.body,
24
24
  ...(section === null
25
25
  ? {
@@ -1 +1 @@
1
- {"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/review/baseline.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAWrB,MAAM,UAAU,eAAe,CAC7B,GAAW,EACX,OAAqB;IAErB,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO;YACL,GAAG,EAAE,GAAG;YACR,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACzD,OAAO;QACL,GAAG,EAAE,GAAG;QACR,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,IAAI;QAC1B,GAAG,CAAC,OAAO,KAAK,IAAI;YAClB,CAAC,CAAC;gBACE,OAAO,EAAE,YAAY,GAAG,CAAC,OAAO,wBAAwB,GAAG,CAAC,MAAM,8BAA8B;aACjG;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/review/baseline.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAWrB,MAAM,UAAU,eAAe,CAC7B,GAAW,EACX,OAAqB;IAErB,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO;YACL,GAAG,EAAE,GAAG;YACR,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACzD,OAAO;QACL,GAAG,EAAE,GAAG;QACR,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,IAAI;QAC1B,GAAG,CAAC,OAAO,KAAK,IAAI;YAClB,CAAC,CAAC;gBACE,OAAO,EAAE,YAAY,GAAG,CAAC,OAAO,wBAAwB,GAAG,CAAC,MAAM,8BAA8B;aACjG;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC"}
@@ -6,7 +6,7 @@ export type { BaselineProse };
6
6
  export interface PacketMaterialNode {
7
7
  id: string;
8
8
  kind?: string;
9
- context?: string;
9
+ for?: string;
10
10
  prose: string;
11
11
  materials: GhostMaterial[];
12
12
  matchedMaterials: string[];
@@ -29,6 +29,7 @@ export interface ReviewPacket {
29
29
  checks: PacketCheck[];
30
30
  gaps: CoverageGap[];
31
31
  diff: string;
32
+ untrusted: true;
32
33
  }
33
34
  export interface BuildReviewPacketOptions {
34
35
  /** Absolute path of the ghost package directory (default: cwd/.ghost). */
@@ -1 +1 @@
1
- {"version":3,"file":"review-packet.d.ts","sourceRoot":"","sources":["../../src/review/review-packet.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,aAAa,EAGnB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAE,KAAK,aAAa,EAAmB,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,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;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,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,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,iBAAiB,CACrC,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,YAAY,CAAC,CAyCvB;AAkBD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAoF/D"}
1
+ {"version":3,"file":"review-packet.d.ts","sourceRoot":"","sources":["../../src/review/review-packet.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,aAAa,EAGnB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAOzE,OAAO,EAAE,KAAK,aAAa,EAAmB,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,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;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,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;IACb,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,iBAAiB,CACrC,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,YAAY,CAAC,CA0CvB;AAkBD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA4F/D"}
@@ -2,6 +2,7 @@ import { join } from "node:path";
2
2
  import { materialLocator, normalizeMaterial, } from "#ghost-core";
3
3
  import { GHOST_MATERIALS_DIR } from "../scan/constants.js";
4
4
  import { resolveGitRoot } from "../scan/package-paths.js";
5
+ import { neutralizeSentinels, untrustedBegin, untrustedEnd, } from "../untrusted-framing.js";
5
6
  import { resolveBaseline } from "./baseline.js";
6
7
  import { resolveReview } from "./resolve.js";
7
8
  export async function buildReviewPacket(ghostPackage, diffText, options = {}) {
@@ -33,6 +34,7 @@ export async function buildReviewPacket(ghostPackage, diffText, options = {}) {
33
34
  checks,
34
35
  gaps: resolution.gaps,
35
36
  diff: diffText,
37
+ untrusted: true,
36
38
  };
37
39
  }
38
40
  function materialNodeFromMatch(ghostPackage, matched) {
@@ -40,7 +42,7 @@ function materialNodeFromMatch(ghostPackage, matched) {
40
42
  return {
41
43
  id: node.id,
42
44
  ...(node.kind !== undefined ? { kind: node.kind } : {}),
43
- ...(node.context !== undefined ? { context: node.context } : {}),
45
+ ...(node.for !== undefined ? { for: node.for } : {}),
44
46
  prose: node.body,
45
47
  materials: node.materials ?? [],
46
48
  matchedMaterials: matched.locators,
@@ -62,8 +64,8 @@ export function formatReviewPacket(packet) {
62
64
  for (const node of packet.materialNodes) {
63
65
  const kind = node.kind ? ` _(${node.kind})_` : "";
64
66
  out.push(`### \`${node.id}\`${kind}`);
65
- if (node.context)
66
- out.push(`_${node.context}_`, "");
67
+ if (node.for)
68
+ out.push(`_${node.for}_`, "");
67
69
  out.push(node.prose, "");
68
70
  out.push("Matched materials:");
69
71
  for (const locator of node.matchedMaterials) {
@@ -113,7 +115,7 @@ export function formatReviewPacket(packet) {
113
115
  }
114
116
  out.push("");
115
117
  }
116
- out.push("## Diff", "```diff", packet.diff.trimEnd(), "```", "");
118
+ out.push("## Diff", untrustedBegin("diff"), "```diff", neutralizeSentinels(packet.diff.trimEnd()), "```", untrustedEnd("diff"), "");
117
119
  out.push("## Produce findings");
118
120
  out.push("For each applicable check, emit findings with severity, location, baseline,", "observable, and smallest coherent fix. If nothing drifts, say so plainly.");
119
121
  return `${out.join("\n")}\n`;
@@ -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":"fingerprint-package-lint.d.ts","sourceRoot":"","sources":["../../src/scan/fingerprint-package-lint.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAa,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvD;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,SAAgB,GAClB,OAAO,CAAC,UAAU,CAAC,CA4DrB;AAkRD,0CAA0C;AAC1C,eAAO,MAAM,sBAAsB,yBAAmB,CAAC"}
1
+ {"version":3,"file":"fingerprint-package-lint.d.ts","sourceRoot":"","sources":["../../src/scan/fingerprint-package-lint.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAa,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvD;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,SAAgB,GAClB,OAAO,CAAC,UAAU,CAAC,CA4DrB;AA0QD,0CAA0C;AAC1C,eAAO,MAAM,sBAAsB,yBAAmB,CAAC"}