wand-decks-kit 0.8.7 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/PROMPT.md +35 -0
- package/SKILL.md +31 -3
- package/assets/closing-art.png +0 -0
- package/assets/cover-art.png +0 -0
- package/assets/orb-glow.png +0 -0
- package/docs/LAYOUTS.md +5 -0
- package/examples/template.json +639 -126
- package/lib/schema.js +24 -1
- package/package.json +1 -1
- package/tools/brandlint.py +74 -0
- package/wand.js +12 -2
- package/wand_kit.js +241 -56
package/PROMPT.md
CHANGED
|
@@ -10,6 +10,41 @@ is the workflow and the design system; the skill is the source of truth for comm
|
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
+
|
|
14
|
+
## The guideline deck (0.9)
|
|
15
|
+
|
|
16
|
+
Since 2026-09-23 the design source of truth is a real deck —
|
|
17
|
+
`Vivicta_Session_Deck.pptx`, the standard Wand sales deck as it is actually sent
|
|
18
|
+
— not the earlier reference PDFs. Everything below was **measured from it**, and
|
|
19
|
+
`brand/BRAND.md` and the kit's `T` carry the counts:
|
|
20
|
+
|
|
21
|
+
- **Tokens.** Dark ground is `240F48`, flat. Titles `FFFFFF`, body `F5F5F5`,
|
|
22
|
+
captions `BBBBBB`, lists in cards `C6BFE4`. Cards: solid `2A1F5C`, muted
|
|
23
|
+
`1B1738`, stroke `5B4BB0`. Accent text on dark `9481FF`. The old
|
|
24
|
+
`0F0C26 / B7B0DC / 2C2460` set was the reference PDFs' rendering, not the deck.
|
|
25
|
+
- **Interior dark slides carry no art.** The gradient compositions belong to
|
|
26
|
+
the cover (`cover-art.png`, orb baked in) and the closing (`closing-art.png`
|
|
27
|
+
plus `orb-glow.png` centred). `background()` paints a flat colour.
|
|
28
|
+
- **Chrome.** Tag at `0.42, 0.24`; mark at `9.40, 0.26`; footer band at
|
|
29
|
+
`y 5.29, h 0.34`, 7pt: `WAND · <deck>` left, `<confidential> · nn/NN` right.
|
|
30
|
+
- **Cover.** Title at `0.42, 1.79`, 39pt shrinking to 30; body at `3.15`; a
|
|
31
|
+
`PRESENTED TO` block bottom-right (`presentedTo: [name, title]`).
|
|
32
|
+
- **Closing.** Orb at `3.98, 0.69, 2.03²`; the line at 33pt shrinking to 22 —
|
|
33
|
+
a real ask is a sentence, not "Thank You".
|
|
34
|
+
- **Five layouts the deck has and the kit did not:** `agenda`, `team` (with a
|
|
35
|
+
headshot slot), `fourCards`, `deliverColumns`, `coDelivery`. They are the
|
|
36
|
+
slides a sales session adds to the standard deck; a tester had to hand-build
|
|
37
|
+
all five.
|
|
38
|
+
- **The brand gate.** `wand.js audit` runs `tools/brandlint.py`: every text run
|
|
39
|
+
in Geist, every colour a token, the 10 × 5.625 canvas, a footer on every
|
|
40
|
+
content slide. On the guideline deck itself it names exactly the slides the
|
|
41
|
+
tester retexted by hand (Arial on S14, Calibri on S07) — which is the point:
|
|
42
|
+
an edit-only job reports those and asks, rather than restyling unasked.
|
|
43
|
+
|
|
44
|
+
`card()` variants are theme-aware now: `solid` on a light slide is a white
|
|
45
|
+
card with a hairline, not a dark purple box hiding light ink — the agenda in
|
|
46
|
+
the template rendered as four black boxes before that fix.
|
|
47
|
+
|
|
13
48
|
## 0. Ground truth: the reference decks
|
|
14
49
|
|
|
15
50
|
Two decks in Project knowledge define the target output. **They are the specification.** When this
|
package/SKILL.md
CHANGED
|
@@ -4,7 +4,7 @@ description: Rebrand, merge, edit or author a PowerPoint deck on the Wand design
|
|
|
4
4
|
compatibility: Requires Node.js 18+ and code execution enabled in claude.ai (Settings > Features). No network access needed - dependencies are bundled. Python 3 is used to read a source .pptx and to embed fonts; without it the kit can still author and check a deck, but the output will render in Arial on machines without Geist.
|
|
5
5
|
license: Proprietary - Wand AI
|
|
6
6
|
metadata:
|
|
7
|
-
version: "0.
|
|
7
|
+
version: "0.9.0"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
|
|
@@ -70,7 +70,7 @@ thing, and paid a full second pass. This is not optional for a rebuild, a merge
|
|
|
70
70
|
or an adaptation; only "author from a brief" with fewer than eight slides may
|
|
71
71
|
go straight to the spec.
|
|
72
72
|
|
|
73
|
-
## The
|
|
73
|
+
## The six jobs
|
|
74
74
|
|
|
75
75
|
### Rebrand a deck they attached
|
|
76
76
|
|
|
@@ -116,6 +116,27 @@ node wand.js audit <edited-deck>.pptx --dump work/visible_dump.txt # + coverag
|
|
|
116
116
|
has been checked by nobody. Say which slides were lifted unchanged, which were
|
|
117
117
|
retexted, and that the source's fonts (not Geist) carry through.
|
|
118
118
|
|
|
119
|
+
### Edit a deck they attached — not built here
|
|
120
|
+
|
|
121
|
+
"Change the date on the cover", "swap slide 4's title", "add our logo to the
|
|
122
|
+
partner slide". They want *that*, and nothing else touched.
|
|
123
|
+
|
|
124
|
+
1. Do exactly the edit, directly in the `.pptx` with the pptx tools. Do not
|
|
125
|
+
rebuild, do not restyle, do not "tidy" anything nearby.
|
|
126
|
+
2. Then run the guideline over the whole deck:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
node wand.js audit <their-deck>.pptx
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
The **brand** gate lists every slide where a text run is not Geist, a colour
|
|
133
|
+
is not a token, the canvas is not the 10 × 5.625 grid, or a content slide
|
|
134
|
+
has no footer.
|
|
135
|
+
3. Deliver the edited deck first. Then report the inconsistencies the gate
|
|
136
|
+
found — per slide, in one line each — and **ask whether to fix them**. Do not
|
|
137
|
+
fix them unasked: an edit-only job that comes back restyled is a broken
|
|
138
|
+
promise, even when the restyle is right.
|
|
139
|
+
|
|
119
140
|
### Edit a deck this kit built
|
|
120
141
|
|
|
121
142
|
```bash
|
|
@@ -151,6 +172,13 @@ optional — **sweep the entire spec for that pattern before re-running anything
|
|
|
151
172
|
Paying a full cycle per instance is the slow way to learn the same fact
|
|
152
173
|
repeatedly.
|
|
153
174
|
|
|
175
|
+
## One skill at a time
|
|
176
|
+
|
|
177
|
+
If `wand-decks` or `wand-docs` is installed beside `wand-design`, both may
|
|
178
|
+
fire on the same file. **`wand-design` leads; this file yields.** Do not run
|
|
179
|
+
two setups, and tell the user once: remove the older per-family skill, the
|
|
180
|
+
combined one covers it.
|
|
181
|
+
|
|
154
182
|
## Rules that decide whether the output is usable
|
|
155
183
|
|
|
156
184
|
1. **Faithful means verbatim.** No consolidating slides, no paraphrasing to
|
|
@@ -185,7 +213,7 @@ repeatedly.
|
|
|
185
213
|
| `node wand.js check <spec>` | fit in real Geist, bounds, assets |
|
|
186
214
|
| `node wand.js preview <spec>` | writes `preview/trace.js` for the browser preview |
|
|
187
215
|
| `node wand.js inspect <deck>` | parts, relationships, embedded fonts |
|
|
188
|
-
| `node wand.js audit <deck> [--dump f]` | every spec-free gate on any .pptx — use on decks edited outside the kit |
|
|
216
|
+
| `node wand.js audit <deck> [--dump f]` | every spec-free gate on any .pptx, including the **brand** gate (fonts, colours, canvas, footer) — use on decks edited outside the kit |
|
|
189
217
|
|
|
190
218
|
## Deliver
|
|
191
219
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/docs/LAYOUTS.md
CHANGED
|
@@ -24,6 +24,11 @@ full-bleed three) `deck` / `n` / `total` for the footer.
|
|
|
24
24
|
|
|
25
25
|
| Layout | Params | Use for |
|
|
26
26
|
|---|---|---|
|
|
27
|
+
| `agenda` | `items[{title,body}]` | What we'll cover — 2–5 numbered cards (guideline S03) |
|
|
28
|
+
| `team` | `items[{name,role,initials}]` | Who's in the room — headshot slot per person (guideline S02) |
|
|
29
|
+
| `fourCards` | `items[{title,body}]` | Demo objectives, pillars — four titled cards under a lede (S12) |
|
|
30
|
+
| `deliverColumns` | `columns[{heading,lead,body}]` | How we deliver — three flat columns with an accent bar (S14) |
|
|
31
|
+
| `coDelivery` | `items[{title,body}]` | Numbered rows in two columns, up to six (S13) |
|
|
27
32
|
| `threeUp` | `items[{eyebrow,title,pill,body,emph}], arrows` | 3 comparable things. `arrows: true` for a progression |
|
|
28
33
|
| `fourUpIcon` | `items[{icon,title,body}], kickerText` | 4 attributes or capabilities |
|
|
29
34
|
| `sixUpIcon` | `items[{icon,title,body}]` | 6 features. Don't use it three slides running |
|