@design-intelligence/ghost 0.22.1 → 0.24.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 (146) hide show
  1. package/README.md +35 -29
  2. package/dist/commands/checks-command.js +3 -3
  3. package/dist/commands/checks-command.js.map +1 -1
  4. package/dist/commands/command-discovery.d.ts.map +1 -1
  5. package/dist/commands/command-discovery.js +5 -5
  6. package/dist/commands/command-discovery.js.map +1 -1
  7. package/dist/commands/export-command.d.ts.map +1 -1
  8. package/dist/commands/export-command.js +10 -10
  9. package/dist/commands/export-command.js.map +1 -1
  10. package/dist/commands/fingerprint-commands.d.ts +2 -2
  11. package/dist/commands/fingerprint-commands.d.ts.map +1 -1
  12. package/dist/commands/fingerprint-commands.js +7 -7
  13. package/dist/commands/fingerprint-commands.js.map +1 -1
  14. package/dist/commands/gather-command.d.ts.map +1 -1
  15. package/dist/commands/gather-command.js +86 -20
  16. package/dist/commands/gather-command.js.map +1 -1
  17. package/dist/commands/init-command.d.ts.map +1 -1
  18. package/dist/commands/init-command.js +6 -6
  19. package/dist/commands/init-command.js.map +1 -1
  20. package/dist/commands/pull-command.d.ts.map +1 -1
  21. package/dist/commands/pull-command.js +22 -9
  22. package/dist/commands/pull-command.js.map +1 -1
  23. package/dist/commands/pulse-command.js +6 -6
  24. package/dist/commands/pulse-command.js.map +1 -1
  25. package/dist/commands/review-command.js +7 -7
  26. package/dist/commands/review-command.js.map +1 -1
  27. package/dist/commands/skill-command.js +2 -2
  28. package/dist/fingerprint.d.ts +2 -1
  29. package/dist/fingerprint.d.ts.map +1 -1
  30. package/dist/fingerprint.js +1 -0
  31. package/dist/fingerprint.js.map +1 -1
  32. package/dist/ghost-core/catalog/assemble.d.ts.map +1 -1
  33. package/dist/ghost-core/catalog/assemble.js +2 -1
  34. package/dist/ghost-core/catalog/assemble.js.map +1 -1
  35. package/dist/ghost-core/catalog/menu.d.ts +6 -4
  36. package/dist/ghost-core/catalog/menu.d.ts.map +1 -1
  37. package/dist/ghost-core/catalog/menu.js +1 -0
  38. package/dist/ghost-core/catalog/menu.js.map +1 -1
  39. package/dist/ghost-core/catalog/types.d.ts +4 -2
  40. package/dist/ghost-core/catalog/types.d.ts.map +1 -1
  41. package/dist/ghost-core/check/index.d.ts +1 -1
  42. package/dist/ghost-core/check/index.js +1 -1
  43. package/dist/ghost-core/check/lint.d.ts +2 -2
  44. package/dist/ghost-core/check/lint.js +2 -2
  45. package/dist/ghost-core/check/load.d.ts +1 -1
  46. package/dist/ghost-core/check/load.js +3 -3
  47. package/dist/ghost-core/check/types.d.ts +3 -3
  48. package/dist/ghost-core/index.d.ts +9 -3
  49. package/dist/ghost-core/index.d.ts.map +1 -1
  50. package/dist/ghost-core/index.js +6 -2
  51. package/dist/ghost-core/index.js.map +1 -1
  52. package/dist/ghost-core/markdown.d.ts +1 -1
  53. package/dist/ghost-core/markdown.js +1 -1
  54. package/dist/ghost-core/node/index.d.ts +1 -1
  55. package/dist/ghost-core/node/index.d.ts.map +1 -1
  56. package/dist/ghost-core/node/index.js +1 -1
  57. package/dist/ghost-core/node/index.js.map +1 -1
  58. package/dist/ghost-core/node/schema.js +1 -1
  59. package/dist/ghost-core/node/serialize.d.ts +6 -5
  60. package/dist/ghost-core/node/serialize.d.ts.map +1 -1
  61. package/dist/ghost-core/node/serialize.js +25 -9
  62. package/dist/ghost-core/node/serialize.js.map +1 -1
  63. package/dist/ghost-core/node/steering.d.ts +1 -0
  64. package/dist/ghost-core/node/steering.d.ts.map +1 -1
  65. package/dist/ghost-core/node/steering.js +4 -1
  66. package/dist/ghost-core/node/steering.js.map +1 -1
  67. package/dist/ghost-core/node/types.d.ts +6 -5
  68. package/dist/ghost-core/node/types.d.ts.map +1 -1
  69. package/dist/ghost-core/package-manifest.d.ts +23 -13
  70. package/dist/ghost-core/package-manifest.d.ts.map +1 -1
  71. package/dist/ghost-core/package-manifest.js +20 -7
  72. package/dist/ghost-core/package-manifest.js.map +1 -1
  73. package/dist/ghost-core/skill-bundle-loader.d.ts +1 -1
  74. package/dist/ghost-core/skill-bundle-loader.js +1 -1
  75. package/dist/index.d.ts +3 -1
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +3 -1
  78. package/dist/index.js.map +1 -1
  79. package/dist/init-payloads/median/cliche.median.md +6 -6
  80. package/dist/init-payloads/median/median-tells.md +1 -1
  81. package/dist/init-payloads/skeleton/brand.md +4 -3
  82. package/dist/init-payloads/skeleton/glossary.md +1 -1
  83. package/dist/init-payloads/vessel-light/anti-goal.median.md +6 -6
  84. package/dist/init-payloads/vessel-light/checks/motion-restraint.md +1 -1
  85. package/dist/init-payloads/vessel-light/manifest.yml +1 -1
  86. package/dist/init-payloads/vessel-light/materials/ref/composition.form.html +2 -2
  87. package/dist/init-payloads/vessel-light/materials/ref/composition.overlay.html +3 -3
  88. package/dist/observability-events.d.ts +10 -0
  89. package/dist/observability-events.d.ts.map +1 -1
  90. package/dist/observability-events.js +12 -0
  91. package/dist/observability-events.js.map +1 -1
  92. package/dist/package.d.ts +7 -0
  93. package/dist/package.d.ts.map +1 -0
  94. package/dist/package.js +4 -0
  95. package/dist/package.js.map +1 -0
  96. package/dist/review/resolve.js +1 -1
  97. package/dist/review/resolve.js.map +1 -1
  98. package/dist/review/review-packet.d.ts +5 -3
  99. package/dist/review/review-packet.d.ts.map +1 -1
  100. package/dist/review/review-packet.js +12 -11
  101. package/dist/review/review-packet.js.map +1 -1
  102. package/dist/scan/constants.d.ts +6 -2
  103. package/dist/scan/constants.d.ts.map +1 -1
  104. package/dist/scan/constants.js +8 -4
  105. package/dist/scan/constants.js.map +1 -1
  106. package/dist/scan/file-kind.d.ts +1 -1
  107. package/dist/scan/file-kind.d.ts.map +1 -1
  108. package/dist/scan/file-kind.js +11 -11
  109. package/dist/scan/file-kind.js.map +1 -1
  110. package/dist/scan/fingerprint-package-lint.d.ts +3 -1
  111. package/dist/scan/fingerprint-package-lint.d.ts.map +1 -1
  112. package/dist/scan/fingerprint-package-lint.js +14 -12
  113. package/dist/scan/fingerprint-package-lint.js.map +1 -1
  114. package/dist/scan/fingerprint-package-loader.d.ts +7 -3
  115. package/dist/scan/fingerprint-package-loader.d.ts.map +1 -1
  116. package/dist/scan/fingerprint-package-loader.js +10 -6
  117. package/dist/scan/fingerprint-package-loader.js.map +1 -1
  118. package/dist/scan/fingerprint-package.d.ts +30 -14
  119. package/dist/scan/fingerprint-package.d.ts.map +1 -1
  120. package/dist/scan/fingerprint-package.js +17 -9
  121. package/dist/scan/fingerprint-package.js.map +1 -1
  122. package/dist/scan/index.d.ts +3 -1
  123. package/dist/scan/index.d.ts.map +1 -1
  124. package/dist/scan/index.js +3 -1
  125. package/dist/scan/index.js.map +1 -1
  126. package/dist/scan/tarball.d.ts +2 -2
  127. package/dist/scan/tarball.js +3 -3
  128. package/dist/scan/tarball.js.map +1 -1
  129. package/dist/scan/templates.d.ts +1 -1
  130. package/dist/scan/templates.d.ts.map +1 -1
  131. package/dist/scan/templates.js +15 -11
  132. package/dist/scan/templates.js.map +1 -1
  133. package/dist/skill-bundle/SKILL.md +39 -31
  134. package/dist/skill-bundle/references/adapting-a-starter.md +11 -11
  135. package/dist/skill-bundle/references/authoring-scenarios.md +33 -30
  136. package/dist/skill-bundle/references/blocks.md +19 -20
  137. package/dist/skill-bundle/references/brief.md +13 -11
  138. package/dist/skill-bundle/references/capture.md +65 -37
  139. package/dist/skill-bundle/references/concrete-tiers.md +7 -7
  140. package/dist/skill-bundle/references/distill.md +204 -0
  141. package/dist/skill-bundle/references/making.md +113 -0
  142. package/dist/skill-bundle/references/recall.md +11 -7
  143. package/dist/skill-bundle/references/schema.md +16 -12
  144. package/dist/skill-bundle/references/self-check.md +12 -12
  145. package/dist/skill-bundle/references/steering-audit.md +19 -9
  146. package/package.json +7 -3
@@ -1,19 +1,19 @@
1
1
  ---
2
2
  name: schema
3
- description: The Ghost fingerprint package shape: flat nodes, derived concreteness, Skeletons, probes, and checks.
3
+ description: The ghost package shape: flat nodes, derived concreteness, Skeletons, probes, and checks.
4
4
  ---
5
5
 
6
- # Ghost Fingerprint Package Reference
6
+ # ghost Package Reference
7
7
 
8
8
  Canonical package:
9
9
 
10
10
  ```text
11
11
  .ghost/
12
- manifest.yml ghost.fingerprint-package/v1: schema + id + optional cover
12
+ manifest.yml ghost.package/v1: schema + id + optional cover
13
13
  glossary.md kind vocabulary + meanings
14
14
  materials/ bundled materials; never a node source
15
- <kind>.<slug>.md a brand truth of a declared kind
16
- <slug>.md a brand truth without a kind
15
+ <kind>.<slug>.md guidance of a declared kind
16
+ <slug>.md guidance without a kind
17
17
  checks/ optional review assertions; never a node source
18
18
  ```
19
19
 
@@ -48,13 +48,17 @@ Use the full lockup when recognition matters.
48
48
 
49
49
  - Identity is the filename minus `.md`.
50
50
  - Kind is the first dotted segment of the filename.
51
- - `description` is the retrieval payload shown by `ghost gather`.
51
+ - `description` is the retrieval payload shown by `ghost gather`: what the node
52
+ governs, the observable condition under which it applies, and what it
53
+ contributes where useful. Avoid broad universal wording unless universal
54
+ retrieval is intended.
52
55
  - `materials` accepts repo-relative paths/globs plus absolute HTTPS URLs. It is
53
56
  a locator list, not guidance.
54
57
 
55
- Ghost derives whether a node carries concrete material from structure: non-empty
56
- `materials`, a fenced code block of at least 3 lines, or a `## Skeleton` section.
57
- This is reported in gather/pulse and used for pull ordering.
58
+ ghost derives whether a node carries concrete material from structure:
59
+ non-empty `materials`, a fenced code block of at least 3 lines, or a
60
+ `## Skeleton` section. `gather` reports these payload labels for clarity; they
61
+ are not ranking signals.
58
62
 
59
63
  ## Skeleton convention
60
64
 
@@ -96,13 +100,13 @@ Grade whether the change preserves the logo guidance in `asset.logo`.
96
100
  `references` are node ids with optional heading anchors. `probe` is optional: a
97
101
  repo-root shell command that `ghost review` runs for offered checks by default
98
102
  (timeout 30s; stdout/stderr truncated). Probe output is evidence only, never a
99
- Ghost pass/fail verdict. Use `ghost review --no-probes` to skip. Trust model:
103
+ ghost pass/fail verdict. Use `ghost review --no-probes` to skip. Trust model:
100
104
  probes are the same class as npm scripts; Git review is the boundary.
101
105
 
102
106
  ## Gather / Pull / Review
103
107
 
104
- - `ghost gather` emits the cover above the node menu, then coverage counts.
105
- Checks are invisible.
108
+ - `ghost gather` emits the cover above Available guidance, then coverage counts.
109
+ The guidance list is complete, unfiltered, and unranked. Checks are invisible.
106
110
  - `ghost pull` emits selected nodes in steering order and inlines small local
107
111
  materials. Binary local materials become inspect-pointers.
108
112
  - `ghost review` matches diff files to local node materials, offers relevant
@@ -1,30 +1,30 @@
1
1
  ---
2
2
  name: self-check
3
- description: A pre-generation probe that reveals whether you have actually gathered and reasoned about the brand fingerprint, before you build.
3
+ description: A pre-generation probe that reveals whether you have actually gathered and reasoned about the brand guidance, before you build.
4
4
  ---
5
5
 
6
6
  # Recipe: Self-Check Before Generating
7
7
 
8
8
  Before writing UI, copy, email, or any output, check whether you are grounded in
9
- the fingerprint or about to fall back on generic instincts. These questions test
10
- your **grounding and provenance**, not the fingerprint's contents, so they hold
11
- for any fingerprint, however sparse, whatever the medium, whoever authored it.
9
+ the guidance or about to fall back on generic instincts. These questions test
10
+ your **grounding and provenance**, not the package's contents, so they hold
11
+ for any ghost package, however sparse, whatever the medium, whoever authored it.
12
12
 
13
13
  Ask yourself:
14
14
 
15
- 1. **What did you gather?** Which Ghost nodes did you pull for this task (from
15
+ 1. **What did you gather?** Which ghost nodes did you pull for this task (from
16
16
  `ghost gather`), and can you cite them by id? If you have not gathered, you
17
17
  are not grounded. Gather first.
18
- 2. **What is Ghost-backed vs. provisional?** For each claim you are about to
18
+ 2. **What is ghost-backed vs. provisional?** For each claim you are about to
19
19
  encode, is it backed by a gathered node (cite the id), or is it your own
20
20
  provisional local reasoning? You must be able to label every claim as one or
21
21
  the other.
22
- 3. **Do the conditions apply?** For each conditional truth you pulled, does its
22
+ 3. **Do the conditions apply?** For each conditional node you pulled, does its
23
23
  stated situation actually hold for this task? For each kind with conditional
24
24
  or scoped meaning **per the glossary**, apply it only when its stated
25
25
  situation holds; do not apply it where it does not, and do not ignore it
26
26
  where it does.
27
- 4. **Where is the fingerprint silent?** What does the fingerprint not cover for
27
+ 4. **Where is the package silent?** What does the package not cover for
28
28
  your task, and what will carry the reasoning in those gaps? Naming the silence
29
29
  is part of being grounded; pretending coverage you do not have is not.
30
30
 
@@ -40,11 +40,11 @@ Before generating, can you cite:
40
40
  - the hard invariants?
41
41
  - the conditions that apply or do not apply?
42
42
  - any decision trace for ambiguous tradeoffs?
43
- - where the fingerprint is silent?
43
+ - where the package is silent?
44
44
 
45
45
  Classify readiness:
46
46
 
47
- - **Green:** enough Ghost-backed guidance and concrete material for this surface
47
+ - **Green:** enough ghost-backed guidance and concrete material for this surface
48
48
  to generate.
49
49
  - **Yellow:** generation is safe, but some reasoning must be labeled
50
50
  provisional; if there is no concrete material for this surface, readiness is
@@ -58,8 +58,8 @@ When you cannot answer the grounding questions:
58
58
  work to nodes by their descriptions.
59
59
  2. Read the selected nodes' bodies and re-ask the questions, citing node ids.
60
60
 
61
- A genuinely silent fingerprint is an expected state, not a blocker. When it does
61
+ A genuinely silent package is an expected state, not a blocker. When it does
62
62
  not cover the task, say so plainly and proceed with provisional local reasoning
63
- when safe; label it non-Ghost-backed. If the fingerprint's cover declares a stricter
63
+ when safe; label it non-ghost-backed. If the package's cover declares a stricter
64
64
  silence posture, honor it over this default. Ask a human before
65
65
  high-risk or brand-defining choices.
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: steering-audit
3
- description: Audit a Ghost fingerprint for concrete steering coverage.
3
+ description: Audit a ghost package for concrete steering coverage.
4
4
  ---
5
5
 
6
6
  # Recipe: Audit Steering Coverage
7
7
 
8
- A steering audit asks whether a fingerprint can move generation away from the
8
+ A steering audit asks whether a ghost package can move generation away from the
9
9
  generic median. It is not a validation pass; `ghost validate` handles package
10
10
  shape.
11
11
 
@@ -25,31 +25,41 @@ Report first:
25
25
 
26
26
  - **Concreteness coverage:** total nodes, concrete-material nodes, prose-only
27
27
  nodes. Concrete means non-empty `materials`, a fenced code block of at least 3
28
- lines, or a `## Skeleton` section.
29
- - **Pulse by concreteness:** concrete exposure/pull rate vs prose-only
30
- exposure/pull rate. This is the tuning instrument: if concrete nodes are not
31
- pulled, descriptions or task selection are failing.
28
+ lines, or a `## Skeleton` section. `ghost gather` also breaks out materials,
29
+ substantial fenced examples, and Skeletons as payload labels.
30
+ - **Pulse by concreteness:** concrete-material exposure/pull rate vs prose-only
31
+ exposure/pull rate. In markdown this is the `Concrete material` row. This is
32
+ the tuning instrument: if concrete nodes are not pulled when applicable,
33
+ descriptions or task selection are failing.
32
34
 
33
35
  ## Corpus-level table
34
36
 
35
37
  | Row | Status | Evidence | Next move |
36
38
  | --- | --- | --- | --- |
37
- | Retrieval | strong / weak | descriptions, ids, cover | sharpen descriptions or move universal truth to the cover |
39
+ | Retrieval | strong / weak | descriptions, ids, cover | sharpen descriptions or move universal guidance to the cover |
38
40
  | Concreteness | strong / thin | materials, fenced examples, Skeletons | add concrete locators, exemplars, or opening structures |
39
41
  | Anti-goals | present / missing / vague | `anti-goal.*`, review packet | write not-X-instead-Y replacements and material locators |
40
42
  | Consistency | clean / conflicting | concrete bodies vs rules | update stale examples; examples average with rules |
41
43
  | Stance | present / missing | cover, `principle.*` | write forced-choice principles |
42
44
  | Materials | present / missing | `materials`, inspect-pointers | point at real assets/components/tokens |
43
- | Exemplars | annotated / unannotated / missing | fenced samples, screenshots | say what to copy and what is incidental |
45
+ | Exemplars | annotated / unannotated / converging / missing | fenced samples, screenshots, repeated runs | say what to copy and what is incidental; tighten applicability when unrelated tasks converge |
44
46
  | Patterns | bound-open / loose / missing | `pattern.*`, Skeletons | state applies / bound / open and add a Skeleton when opening structure matters |
45
47
  | Checks | covered / partial / missing | checks/, probes, review packet | add checks/probes for high-risk invariants |
46
48
  | Silence posture | defined / missing | cover | say when to proceed provisionally or ask |
47
49
 
50
+ ## Exemplar convergence
51
+
52
+ When auditing repeated runs, compare unrelated asks that pulled the same
53
+ exemplar. If they reproduce the same composition, section order, or decorative
54
+ treatment without the exemplar's stated condition requiring it, the exemplar is
55
+ steering beyond its intent. The next move is to tighten applicability, add a
56
+ shape-appropriate exemplar, or remove the exemplar.
57
+
48
58
  ## Task-level readiness
49
59
 
50
60
  For a task, gather, pull, and report:
51
61
 
52
- - **Green:** enough Ghost-backed concrete guidance to generate.
62
+ - **Green:** enough ghost-backed concrete guidance to generate.
53
63
  - **Yellow:** safe to generate, but some reasoning is provisional. If there is
54
64
  no concrete material for this surface, readiness is at most Yellow.
55
65
  - **Red:** missing brand-defining, high-risk, irreversible, legal, privacy, or
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@design-intelligence/ghost",
3
- "version": "0.22.1",
4
- "description": "Ghost CLI for the brand fingerprint: a portable steering packet of prose truths your agent reads before it builds, with advisory review after",
3
+ "version": "0.24.0",
4
+ "description": "ghost CLI for portable .ghost/ packages of brand guidance your agent reads before it builds, with advisory review after",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Block, Inc.",
7
7
  "repository": {
@@ -13,7 +13,7 @@
13
13
  "url": "https://github.com/block/ghost/issues"
14
14
  },
15
15
  "keywords": [
16
- "fingerprint",
16
+ "brand-guidance",
17
17
  "product-surface",
18
18
  "surface-composition",
19
19
  "design-system",
@@ -48,6 +48,10 @@
48
48
  "types": "./dist/ghost-core/index.d.ts",
49
49
  "import": "./dist/ghost-core/index.js"
50
50
  },
51
+ "./package": {
52
+ "types": "./dist/package.d.ts",
53
+ "import": "./dist/package.js"
54
+ },
51
55
  "./fingerprint": {
52
56
  "types": "./dist/fingerprint.d.ts",
53
57
  "import": "./dist/fingerprint.js"