wand-decks-kit 0.8.0 → 0.8.1
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/SKILL.md +136 -0
- package/package.json +1 -1
- package/wand_kit.js +1 -1
package/SKILL.md
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wand-decks
|
|
3
|
+
description: Rebrand, merge, edit or author a PowerPoint deck on the Wand design system. Use when a .pptx is attached for restyling, or a deck is wanted from a brief. Outputs a client-ready .pptx and QA gates.
|
|
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
|
+
license: Proprietary - Wand AI
|
|
6
|
+
metadata:
|
|
7
|
+
version: "0.7.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
# Wand decks
|
|
12
|
+
|
|
13
|
+
## First: find the kit and stand in it
|
|
14
|
+
|
|
15
|
+
This file ships inside the kit, so if you are reading it you are close. The kit
|
|
16
|
+
arrives one of three ways — work out which, then `cd` into the kit's folder and
|
|
17
|
+
run everything from there:
|
|
18
|
+
|
|
19
|
+
1. **Installed from npm** (the usual way): it is at `node_modules/wand-decks-kit/`.
|
|
20
|
+
If it is not there yet: `npm install wand-decks-kit@latest --no-audit --no-fund`.
|
|
21
|
+
2. **Attached to the chat as a zip**: unzip it and enter the folder it makes.
|
|
22
|
+
3. **You are already inside it**: `wand.js` is next to this file.
|
|
23
|
+
|
|
24
|
+
Then confirm the ground you are standing on:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
node wand.js doctor
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
If none of the three work — npm unreachable, nothing attached — **stop and say
|
|
31
|
+
so, and ask the user to attach the kit zip.** Never improvise a deck, and never
|
|
32
|
+
report checks you did not run; the gates are the only reason to trust the
|
|
33
|
+
output.
|
|
34
|
+
|
|
35
|
+
Every path below is relative to the kit folder.
|
|
36
|
+
|
|
37
|
+
A deck engine: 28 layouts, real font metrics, embedded Geist, and six gates that
|
|
38
|
+
each catch something the others cannot.
|
|
39
|
+
|
|
40
|
+
**Read `PROMPT.md` before making any design decision.** It is the source of
|
|
41
|
+
truth on canvas, colour, type, layout choice and content rules. This file is
|
|
42
|
+
only the operating procedure.
|
|
43
|
+
|
|
44
|
+
## Available scripts
|
|
45
|
+
|
|
46
|
+
- **`wand.js`** — the front door - doctor, rebuild, layouts, glyphs, validate, check, preview, ship, spec, inspect
|
|
47
|
+
- **`build.js`** — spec -> .pptx, or --check, or --preview
|
|
48
|
+
- **`tools/extract.py`** — read a source deck: verbatim dump, geometry, analysis
|
|
49
|
+
- **`embed_fonts.py`** — embed Geist unsubsetted, and carry the spec inside the deck
|
|
50
|
+
- **`qa_coverage.py`** — diff the verbatim dump against the built deck
|
|
51
|
+
|
|
52
|
+
## Setup
|
|
53
|
+
|
|
54
|
+
None beyond the doctor check above. Dependencies come with the package —
|
|
55
|
+
npm resolves them on install, and the zip carries them vendored.
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
node wand.js doctor
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
If `node_modules` is somehow missing, `npm install` in this directory.
|
|
63
|
+
|
|
64
|
+
## The four jobs
|
|
65
|
+
|
|
66
|
+
### Rebrand a deck they attached
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
node wand.js rebuild <their-deck>.pptx # phases 0-3
|
|
70
|
+
# ...you write work/deck.json...
|
|
71
|
+
node wand.js ship work/deck.json # phases 4-6, prints the gate table
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
`rebuild` normalises the source onto the 10in grid, dumps every verbatim string
|
|
75
|
+
and writes `work/PLAN.md` — per slide: the source's shape, a layout shortlist
|
|
76
|
+
with reasons, the verbatim text grouped by frame, and a stub with the required
|
|
77
|
+
fields. Choose the layout yourself; the shortlist is ranked by shape and cannot
|
|
78
|
+
see meaning.
|
|
79
|
+
|
|
80
|
+
### Author from a brief
|
|
81
|
+
|
|
82
|
+
Skip `rebuild`. Write the spec against `node wand.js layouts` and
|
|
83
|
+
`examples/template.json`, then `ship`. Coverage is skipped — there is no source
|
|
84
|
+
to cover — and it says so.
|
|
85
|
+
|
|
86
|
+
### Merge several decks
|
|
87
|
+
|
|
88
|
+
`node wand.js rebuild` each one into its own work directory, then write a single
|
|
89
|
+
spec. Ask which deck leads if they have not said. Flag duplicates rather than
|
|
90
|
+
silently dropping them, and list every merge in the review note.
|
|
91
|
+
|
|
92
|
+
### Edit a deck this kit built
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
node wand.js spec <their-deck>.pptx work/deck.json
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Decks built here carry their own spec inside the file. Change only what was
|
|
99
|
+
asked, then `ship`. If the deck carries no spec it was not built here — treat it
|
|
100
|
+
as a rebrand.
|
|
101
|
+
|
|
102
|
+
## Rules that decide whether the output is usable
|
|
103
|
+
|
|
104
|
+
1. **Faithful means verbatim.** No consolidating slides, no paraphrasing to
|
|
105
|
+
tighten, no restructuring. Reflowing to fit is fine; rewording is not.
|
|
106
|
+
Paraphrase passes the schema check and passes the eye — only coverage catches
|
|
107
|
+
it.
|
|
108
|
+
2. **A spec has no coordinates, colours or font sizes.** If a slide needs
|
|
109
|
+
geometry the layouts do not have, add a layout. Never leak positioning into
|
|
110
|
+
content.
|
|
111
|
+
3. **Vary the layouts.** Three of the same in a row is a failure even if each is
|
|
112
|
+
correct. Across 15 slides aim for at least eight distinct ones, alternating
|
|
113
|
+
dark and light. `validate` warns when you do not.
|
|
114
|
+
4. **Icons are named.** `node wand.js glyphs` lists all 75. Pick by meaning.
|
|
115
|
+
They recolour to the theme, so there is no polarity to get wrong.
|
|
116
|
+
5. **Never invent content.** If the source is ambiguous, ask.
|
|
117
|
+
|
|
118
|
+
## Useful commands
|
|
119
|
+
|
|
120
|
+
| | |
|
|
121
|
+
|---|---|
|
|
122
|
+
| `node wand.js layouts [name]` | the catalog, and any layout's fields |
|
|
123
|
+
| `node wand.js glyphs [search]` | the named icon set |
|
|
124
|
+
| `node wand.js validate <spec>` | fields, types, item caps — run before building |
|
|
125
|
+
| `node wand.js check <spec>` | fit in real Geist, bounds, assets |
|
|
126
|
+
| `node wand.js preview <spec>` | writes `preview/trace.js` for the browser preview |
|
|
127
|
+
| `node wand.js inspect <deck>` | parts, relationships, embedded fonts |
|
|
128
|
+
|
|
129
|
+
## Deliver
|
|
130
|
+
|
|
131
|
+
The `.pptx` first, then a review note: every split or merge, every fallback
|
|
132
|
+
mapping, anything tight after fitting, and **everything dropped from the
|
|
133
|
+
verbatim dump**. A rebuild that drops a string without saying so is not done.
|
|
134
|
+
|
|
135
|
+
Tell them the gate table honestly. The visual gate is the one no script passes —
|
|
136
|
+
say plainly that nobody has looked at the slides yet if nobody has.
|
package/package.json
CHANGED
package/wand_kit.js
CHANGED
|
@@ -994,7 +994,7 @@ function productMap(pres, { tag, titleText, subtitleText, bandRow, cards, split,
|
|
|
994
994
|
|
|
995
995
|
|
|
996
996
|
module.exports = {
|
|
997
|
-
VERSION: "0.8.
|
|
997
|
+
VERSION: "0.8.1",
|
|
998
998
|
T, F, COLS, ASSETS, radius, theme, autoSize, measure: M,
|
|
999
999
|
background, chrome, footer, title, subtitle, kicker, contentTop,
|
|
1000
1000
|
card, iconTile, pill,
|