@tickernelz/paperclip-pro-skills-catalog 2026.925.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/LICENSE +22 -0
- package/catalog/bundled/docs/doc-maintenance/SKILL.md +75 -0
- package/catalog/bundled/paperclip-operations/issue-triage/SKILL.md +74 -0
- package/catalog/bundled/paperclip-operations/reflection-coach/SKILL.md +202 -0
- package/catalog/bundled/paperclip-operations/status-card-query/SKILL.md +137 -0
- package/catalog/bundled/paperclip-operations/summarize-status/SKILL.md +121 -0
- package/catalog/bundled/paperclip-operations/task-planning/SKILL.md +84 -0
- package/catalog/bundled/product/paperclip-capsules/SKILL.md +99 -0
- package/catalog/bundled/product/paperclip-capsules/references/generator-workflows.md +120 -0
- package/catalog/bundled/product/paperclip-capsules/references/hero-capsule-bank.md +189 -0
- package/catalog/bundled/product/paperclip-capsules/references/identicon-prototyper.md +213 -0
- package/catalog/bundled/product/paperclip-capsules/references/individual-status-capsules.md +113 -0
- package/catalog/bundled/product/wireframe/SKILL.md +193 -0
- package/catalog/bundled/product/wireframe/assets/site-template.html +356 -0
- package/catalog/bundled/product/wireframe/assets/template-mobile.svg +21 -0
- package/catalog/bundled/product/wireframe/assets/template.svg +24 -0
- package/catalog/bundled/product/wireframe/references/components.md +482 -0
- package/catalog/bundled/product/wireframe/references/examples.md +362 -0
- package/catalog/bundled/product/wireframe/references/grid-system.md +107 -0
- package/catalog/bundled/quality/qa-acceptance/SKILL.md +93 -0
- package/catalog/bundled/software-development/github-pr-workflow/SKILL.md +93 -0
- package/catalog/optional/browser/agent-browser/SKILL.md +93 -0
- package/catalog/optional/content/release-announcement/SKILL.md +218 -0
- package/catalog/optional/content/simplified-english/SKILL.md +40 -0
- package/catalog/optional/finance/ramp/SKILL.md +98 -0
- package/catalog/optional/product/design-critique/SKILL.md +121 -0
- package/catalog/optional/research/last30days/catalog-ref.json +44 -0
- package/catalog/optional/software-development/prepare-mcp-integration/SKILL.md +230 -0
- package/catalog/optional/software-development/prepare-mcp-integration/examples/notion-mcp-research-gate.md +43 -0
- package/dist/generated/catalog.json +1165 -0
- package/dist/scripts/build-catalog-manifest.d.ts +2 -0
- package/dist/scripts/build-catalog-manifest.d.ts.map +1 -0
- package/dist/scripts/build-catalog-manifest.js +15 -0
- package/dist/scripts/build-catalog-manifest.js.map +1 -0
- package/dist/scripts/validate-catalog.d.ts +2 -0
- package/dist/scripts/validate-catalog.d.ts.map +1 -0
- package/dist/scripts/validate-catalog.js +15 -0
- package/dist/scripts/validate-catalog.js.map +1 -0
- package/dist/src/catalog-builder.d.ts +16 -0
- package/dist/src/catalog-builder.d.ts.map +1 -0
- package/dist/src/catalog-builder.js +688 -0
- package/dist/src/catalog-builder.js.map +1 -0
- package/dist/src/catalog-builder.test.d.ts +2 -0
- package/dist/src/catalog-builder.test.d.ts.map +1 -0
- package/dist/src/catalog-builder.test.js +355 -0
- package/dist/src/catalog-builder.test.js.map +1 -0
- package/dist/src/frontmatter.d.ts +3 -0
- package/dist/src/frontmatter.d.ts.map +1 -0
- package/dist/src/frontmatter.js +3 -0
- package/dist/src/frontmatter.js.map +1 -0
- package/dist/src/frontmatter.test.d.ts +2 -0
- package/dist/src/frontmatter.test.d.ts.map +1 -0
- package/dist/src/frontmatter.test.js +31 -0
- package/dist/src/frontmatter.test.js.map +1 -0
- package/dist/src/index.d.ts +7 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +21 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/packaged-artifacts.test.d.ts +2 -0
- package/dist/src/packaged-artifacts.test.d.ts.map +1 -0
- package/dist/src/packaged-artifacts.test.js +48 -0
- package/dist/src/packaged-artifacts.test.js.map +1 -0
- package/dist/src/release-content-cases-contract.test.d.ts +2 -0
- package/dist/src/release-content-cases-contract.test.d.ts.map +1 -0
- package/dist/src/release-content-cases-contract.test.js +37 -0
- package/dist/src/release-content-cases-contract.test.js.map +1 -0
- package/dist/src/shipped-catalog.test.d.ts +2 -0
- package/dist/src/shipped-catalog.test.d.ts.map +1 -0
- package/dist/src/shipped-catalog.test.js +179 -0
- package/dist/src/shipped-catalog.test.js.map +1 -0
- package/dist/src/types.d.ts +54 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/generated/catalog.json +1165 -0
- package/package.json +54 -0
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
# Identicon Prototyper
|
|
2
|
+
|
|
3
|
+
Use this reference when generating or reviewing deterministic Paperclip capsule identicons/profile pills. Prototype source paths, when the Paperclip content repository is available:
|
|
4
|
+
|
|
5
|
+
- `paperclip-content/design/PAP-11825/paperclip-capsule-identicon-prototyper/README.md`
|
|
6
|
+
- `paperclip-content/design/PAP-11825/paperclip-capsule-identicon-prototyper/src/identicon.ts`
|
|
7
|
+
- `paperclip-content/design/PAP-11825/paperclip-capsule-identicon-prototyper/src/App.tsx`
|
|
8
|
+
|
|
9
|
+
These are individual agent marks. They do not replace product UI status capsules or the canonical hero capsule bank.
|
|
10
|
+
|
|
11
|
+
## Determinism Contract
|
|
12
|
+
|
|
13
|
+
The renderer scopes deterministic output by:
|
|
14
|
+
|
|
15
|
+
```txt
|
|
16
|
+
normalized seed + variant + density + theme
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Additional options such as color space, color scheme, motion, and manual angle affect the rendered SVG and must still be recorded for reproducibility.
|
|
20
|
+
|
|
21
|
+
Default app state:
|
|
22
|
+
|
|
23
|
+
- Seed: `paperclip capsule bank`
|
|
24
|
+
- Variant: `gradient-smooth`
|
|
25
|
+
- Size control: `48` in the UI; renderer often uses `512` for the primary preview and `256` for samples.
|
|
26
|
+
- Density: `56`
|
|
27
|
+
- Theme: `charcoal`
|
|
28
|
+
- Color space/scheme: `oklch` / `Golden`
|
|
29
|
+
- Angle: seeded auto angle unless manually set.
|
|
30
|
+
- Motion: on.
|
|
31
|
+
|
|
32
|
+
Geometry:
|
|
33
|
+
|
|
34
|
+
- SVG viewBox: `0 0 120 292`
|
|
35
|
+
- Capsule body: `x=18`, `y=16`, `w=84`, `h=248`, `rx=42`
|
|
36
|
+
- Output width is approximately `size * 0.43`; output height is `size`.
|
|
37
|
+
- Capsule SVG includes `data-capsule="individual"` and an agent-oriented aria label.
|
|
38
|
+
|
|
39
|
+
## Variants
|
|
40
|
+
|
|
41
|
+
Gradient variants use smooth color only, not dot or stripe patterns:
|
|
42
|
+
|
|
43
|
+
| Variant id | UI label | Use |
|
|
44
|
+
| --- | --- | --- |
|
|
45
|
+
| `gradient-smooth` | Smooth | Clean two-tone linear gradient. |
|
|
46
|
+
| `gradient-soft` | Sheen | Linear gradient plus a soft radial white highlight near the top. |
|
|
47
|
+
| `gradient-mesh` | Mesh | Base gradient plus overlapping seeded radial color blobs. |
|
|
48
|
+
| `gradient-aurora` | Aurora | Multi-stop diagonal ribbon using three hues plus a broad soft band. |
|
|
49
|
+
|
|
50
|
+
Dither variants quantize the gradient ramp and emit one SVG path per tone level:
|
|
51
|
+
|
|
52
|
+
| Variant id | UI label | Algorithm |
|
|
53
|
+
| --- | --- | --- |
|
|
54
|
+
| `dither-floyd` | Floyd | Floyd-Steinberg error diffusion; compact classic grain. |
|
|
55
|
+
| `dither-atkinson` | Atkinson | Atkinson error diffusion; crisp Mac-era contrast. |
|
|
56
|
+
| `dither-jjn` | JJN | Jarvis-Judice-Ninke wide-kernel diffusion; smoother photographic grain. |
|
|
57
|
+
| `dither-bayer4` | Bayer 4 | Ordered dithering with a 4x4 Bayer matrix. |
|
|
58
|
+
| `dither-bayer8` | Bayer 8 | Ordered dithering with a recursively built 8x8 Bayer matrix. |
|
|
59
|
+
| `dither-bluenoise` | Blue Noise | Hash-based void-and-cluster-style threshold mask; avoids visible grid structure. |
|
|
60
|
+
|
|
61
|
+
## Color Systems
|
|
62
|
+
|
|
63
|
+
Supported color spaces:
|
|
64
|
+
|
|
65
|
+
- `hsl`
|
|
66
|
+
- `oklch`
|
|
67
|
+
|
|
68
|
+
HSL color schemes:
|
|
69
|
+
|
|
70
|
+
- `Triadic`
|
|
71
|
+
- `Complement`
|
|
72
|
+
- `Analogous`
|
|
73
|
+
- `Mono`
|
|
74
|
+
- `Split`
|
|
75
|
+
- `Tetrad`
|
|
76
|
+
|
|
77
|
+
OKLCH color schemes:
|
|
78
|
+
|
|
79
|
+
- `Mono`
|
|
80
|
+
- `Triadic`
|
|
81
|
+
- `Golden`
|
|
82
|
+
- `Complement`
|
|
83
|
+
- `Analogous`
|
|
84
|
+
- `Split`
|
|
85
|
+
- `Tetrad`
|
|
86
|
+
- `Warm-Cool`
|
|
87
|
+
- `Vivid`
|
|
88
|
+
- `Pastel`
|
|
89
|
+
- `Cinema`
|
|
90
|
+
- `Sunset`
|
|
91
|
+
- `Earth`
|
|
92
|
+
|
|
93
|
+
Scheme behavior:
|
|
94
|
+
|
|
95
|
+
- HSL defaults to `Triadic`.
|
|
96
|
+
- OKLCH defaults to `Golden`.
|
|
97
|
+
- OKLCH `Pastel` lowers chroma and raises lightness.
|
|
98
|
+
- OKLCH `Earth` uses lower chroma.
|
|
99
|
+
- OKLCH `Vivid` uses higher chroma.
|
|
100
|
+
- OKLCH `Cinema`, `Sunset`, and `Earth` intentionally bias lightness/hue for more authored looks.
|
|
101
|
+
- Manual angle is `0..360`; auto angle is seeded and normally falls in a diagonal range.
|
|
102
|
+
|
|
103
|
+
## Density And Dither Behavior
|
|
104
|
+
|
|
105
|
+
UI density presets are `32`, `56`, and `80`, but the renderer accepts numeric density.
|
|
106
|
+
|
|
107
|
+
Dither tone levels:
|
|
108
|
+
|
|
109
|
+
- Density `< 45`: 2 tones
|
|
110
|
+
- Density `45..67`: 3 tones
|
|
111
|
+
- Density `>= 68`: 4 tones
|
|
112
|
+
|
|
113
|
+
Dither grid:
|
|
114
|
+
|
|
115
|
+
- Column count is clamped from roughly `size / 8`, with a minimum of `14` and maximum of `34`.
|
|
116
|
+
- Row count follows capsule height/cell width so the cells stay proportional.
|
|
117
|
+
- Error diffusion kernels:
|
|
118
|
+
- Floyd-Steinberg divisor `16`
|
|
119
|
+
- Atkinson divisor `8`
|
|
120
|
+
- Jarvis-Judice-Ninke divisor `48`
|
|
121
|
+
- Ordered dithers shift the target ramp by threshold before rounding to the nearest tone.
|
|
122
|
+
|
|
123
|
+
Use lower density for bolder two-tone marks, mid density for readable profile icons, and high density for richer dither studies. Avoid using dither algorithms for product status indicators; those are a different capsule family.
|
|
124
|
+
|
|
125
|
+
## Recommended Combinations
|
|
126
|
+
|
|
127
|
+
The prototype's study sections provide known-good pairings:
|
|
128
|
+
|
|
129
|
+
- Smooth gradient + OKLCH `Golden`
|
|
130
|
+
- Soft sheen + OKLCH `Sunset`
|
|
131
|
+
- Mesh gradient + OKLCH `Vivid`
|
|
132
|
+
- Aurora gradient + OKLCH `Cinema`
|
|
133
|
+
- Gradient mix + HSL `Triadic`
|
|
134
|
+
- Floyd-Steinberg + OKLCH `Golden`
|
|
135
|
+
- Atkinson + OKLCH `Sunset`
|
|
136
|
+
- JJN + OKLCH `Earth`
|
|
137
|
+
- Bayer 4 or Bayer 8 + HSL `Complement`
|
|
138
|
+
- Blue noise + OKLCH `Vivid`
|
|
139
|
+
- Dither mix + OKLCH `Cinema`
|
|
140
|
+
|
|
141
|
+
Use these combinations first when a prompt asks for sophisticated capsule marks. Explore other schemes only when the request is explicitly exploratory.
|
|
142
|
+
|
|
143
|
+
## Themes, Motion, And Randomization
|
|
144
|
+
|
|
145
|
+
Themes:
|
|
146
|
+
|
|
147
|
+
- `charcoal`: dark brand lab setting with parchment ink.
|
|
148
|
+
- `paper`: white/paper setting with black ink.
|
|
149
|
+
- `ink`: near-black setting with white ink.
|
|
150
|
+
|
|
151
|
+
Motion:
|
|
152
|
+
|
|
153
|
+
- Motion adds a subtle vertical SVG `animateTransform` translate wave: `0 -3; 0 3; 0 -3` over `4s`, repeating indefinitely.
|
|
154
|
+
- Turn motion off for static exports, grid previews, and reduced-motion contexts.
|
|
155
|
+
- Keyboard `Space` replays motion in the prototype.
|
|
156
|
+
|
|
157
|
+
Randomize behavior:
|
|
158
|
+
|
|
159
|
+
- Randomizes style, color space/scheme, gradient angle, density, motion, and seed.
|
|
160
|
+
- Keeps Size and Theme stable.
|
|
161
|
+
- Seed words include `atlas`, `budget`, `capsule`, `delta`, `forge`, `governance`, `hermes`, `ledger`, `signal`, and `thread`.
|
|
162
|
+
|
|
163
|
+
## Export And Share
|
|
164
|
+
|
|
165
|
+
Supported actions:
|
|
166
|
+
|
|
167
|
+
- Copy SVG
|
|
168
|
+
- Download SVG
|
|
169
|
+
- Download PNG
|
|
170
|
+
- Copy data URI
|
|
171
|
+
- Copy React snippet
|
|
172
|
+
- Share standalone card URL
|
|
173
|
+
- Restore settings from URL hash
|
|
174
|
+
|
|
175
|
+
URL hash fields:
|
|
176
|
+
|
|
177
|
+
- `s`: seed
|
|
178
|
+
- `v`: variant id
|
|
179
|
+
- `z`: UI size
|
|
180
|
+
- `d`: density
|
|
181
|
+
- `t`: theme
|
|
182
|
+
- `c`: color space
|
|
183
|
+
- `p`: color scheme
|
|
184
|
+
- `a`: manual angle, omitted for seeded auto angle
|
|
185
|
+
- `m`: motion, `1` or `0`
|
|
186
|
+
|
|
187
|
+
When attaching an identicon artifact, record at least:
|
|
188
|
+
|
|
189
|
+
```md
|
|
190
|
+
Capsule identicon
|
|
191
|
+
|
|
192
|
+
- Seed:
|
|
193
|
+
- Variant id:
|
|
194
|
+
- Theme:
|
|
195
|
+
- Color space / scheme:
|
|
196
|
+
- Density:
|
|
197
|
+
- Size / output dimensions:
|
|
198
|
+
- Motion:
|
|
199
|
+
- Angle: seeded auto | <degrees>
|
|
200
|
+
- Export: SVG | PNG | data URI | React snippet | card URL
|
|
201
|
+
- Source: PAP-11825 identicon prototyper
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## Smoke Checks
|
|
205
|
+
|
|
206
|
+
Before treating an identicon artifact as complete:
|
|
207
|
+
|
|
208
|
+
- Same seed and settings produce the same SVG.
|
|
209
|
+
- Changing the seed changes the SVG.
|
|
210
|
+
- All selected variant ids render nonblank SVG.
|
|
211
|
+
- SVG and PNG exports are non-empty and inspectable.
|
|
212
|
+
- Shared URL hash restores the intended seed, variant, density, theme, color space, color scheme, angle, and motion.
|
|
213
|
+
- Motion can be turned off for static/reduced-motion delivery.
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Individual and Status Capsules
|
|
2
|
+
|
|
3
|
+
Use this reference for product UI, onboarding, org surfaces, and heartbeat status indicators.
|
|
4
|
+
|
|
5
|
+
## Source Precedence
|
|
6
|
+
|
|
7
|
+
1. `ui/src/components/AgentCapsule.tsx` - React API, states, sizes, accessibility, gradient wrapping.
|
|
8
|
+
2. `ui/src/index.css` - animation timings, reduced-motion behavior, agent gradient token values.
|
|
9
|
+
3. `ui/src/lib/status-colors.ts` - heartbeat status color/motion mapping.
|
|
10
|
+
4. `ui/src/components/OnboardingWizard.tsx` and `ui/src/pages/DesignGuide.tsx` - accepted usage examples.
|
|
11
|
+
5. Website brand guide files under `paperclip-website/src/components/brand/sections/*` - marketing rules and the 12-preset website palette.
|
|
12
|
+
|
|
13
|
+
## Individual Agent Capsule
|
|
14
|
+
|
|
15
|
+
One tall capsule represents one agent. Do not use this component for decoration or generic status chips.
|
|
16
|
+
|
|
17
|
+
States:
|
|
18
|
+
|
|
19
|
+
| State | Meaning | Rendering |
|
|
20
|
+
| --- | --- | --- |
|
|
21
|
+
| `slot` | Empty agent slot | Dashed outline, gentle pulse |
|
|
22
|
+
| `configured` | Agent named/model picked, not live | Solid stroke, no fill |
|
|
23
|
+
| `online` | Agent online | Gradient liquid rise, then breathing pulse |
|
|
24
|
+
|
|
25
|
+
Implementation rules:
|
|
26
|
+
|
|
27
|
+
- Keep the same DOM node through lifecycle flows when the story is "this agent comes to life".
|
|
28
|
+
- Use stacked layers with opacity transitions for dashed-to-solid; CSS cannot animate `border-style`.
|
|
29
|
+
- Online default pulse is green. The blue pulse is a specific onboarding wizard variant, not the default app-wide live state.
|
|
30
|
+
- Product sizes are `sm` 24x60, `md` 34x84, `lg` 46x116. Custom sizes should keep height at least twice width.
|
|
31
|
+
- The capsule radius is full stadium/pill radius.
|
|
32
|
+
- Accessibility label should describe the represented agent or state.
|
|
33
|
+
|
|
34
|
+
Motion:
|
|
35
|
+
|
|
36
|
+
| Motion | Timing |
|
|
37
|
+
| --- | --- |
|
|
38
|
+
| Slot pulse | `1.6s ease-in-out infinite` |
|
|
39
|
+
| Liquid rise | `1.4s cubic-bezier(0.16, 1, 0.3, 1) forwards` |
|
|
40
|
+
| Online pulse | `1.8s ease-in-out infinite` |
|
|
41
|
+
| Layer transition | `opacity 0.5s ease` |
|
|
42
|
+
|
|
43
|
+
Reduced motion:
|
|
44
|
+
|
|
45
|
+
- Remove slot pulse and online pulse.
|
|
46
|
+
- Remove layer transition.
|
|
47
|
+
- Render the online liquid at full height without rise animation.
|
|
48
|
+
|
|
49
|
+
## App Agent Gradient Tokens
|
|
50
|
+
|
|
51
|
+
The app component currently exposes 10 gradient pairs. `AgentCapsule` wraps out-of-range gradient indexes back into `1..10`.
|
|
52
|
+
|
|
53
|
+
| Index | Top token | Top | Bottom token | Bottom |
|
|
54
|
+
| --- | --- | --- | --- | --- |
|
|
55
|
+
| 1 | `--agent-1a` | `#f7cfdc` | `--agent-1b` | `#1f7a3a` |
|
|
56
|
+
| 2 | `--agent-2a` | `#c9a9e8` | `--agent-2b` | `#ee79a1` |
|
|
57
|
+
| 3 | `--agent-3a` | `#28164b` | `--agent-3b` | `#7a1530` |
|
|
58
|
+
| 4 | `--agent-4a` | `#f3e6c4` | `--agent-4b` | `#e3a21a` |
|
|
59
|
+
| 5 | `--agent-5a` | `#1f4dd6` | `--agent-5b` | `#3aa35c` |
|
|
60
|
+
| 6 | `--agent-6a` | `#e94b27` | `--agent-6b` | `#5a1122` |
|
|
61
|
+
| 7 | `--agent-7a` | `#7eb6e3` | `--agent-7b` | `#ee79a1` |
|
|
62
|
+
| 8 | `--agent-8a` | `#9ce8a7` | `--agent-8b` | `#bd7ff0` |
|
|
63
|
+
| 9 | `--agent-9a` | `#f3b49e` | `--agent-9b` | `#1f4ed4` |
|
|
64
|
+
| 10 | `--agent-10a` | `#f2d95f` | `--agent-10b` | `#4fbcba` |
|
|
65
|
+
|
|
66
|
+
Do not treat these as the universal Paperclip capsule palette. The website brand guide exposes 12 presets, the video references have a separate 12-gradient palette, and the hero bank has 45 gradients.
|
|
67
|
+
|
|
68
|
+
## Website Marketing Capsule Palette
|
|
69
|
+
|
|
70
|
+
The website palette extends the app's first 10 gradients with two more presets:
|
|
71
|
+
|
|
72
|
+
| Index | Top | Bottom | Description |
|
|
73
|
+
| --- | --- | --- | --- |
|
|
74
|
+
| 11 | `#C2C2E8` | `#5E3450` | peri -> mauve |
|
|
75
|
+
| 12 | `#4DB9B7` | `#3AA35C` | teal -> green |
|
|
76
|
+
|
|
77
|
+
Marketing capsule rules:
|
|
78
|
+
|
|
79
|
+
- Capsule visuals are reserved for agent representation: capsule fields, org-chart nodes, status indicators, avatars.
|
|
80
|
+
- Never use capsules on chrome, buttons, or generic pills.
|
|
81
|
+
- Use a `1 : >= 2` proportion and a top-to-bottom gradient for gradient capsules.
|
|
82
|
+
- Flat single-color capsules are allowed only where a solid mark is needed.
|
|
83
|
+
- The guide names a semantic `--r-capsule`, but current `brand.css` does not export a concrete `--r-capsule` variable. Do not cite it as a live CSS token without checking.
|
|
84
|
+
|
|
85
|
+
## Heartbeat Status Capsule
|
|
86
|
+
|
|
87
|
+
Heartbeat status capsules are small solid pills. They are a different surface from individual gradient capsules.
|
|
88
|
+
|
|
89
|
+
Status mapping:
|
|
90
|
+
|
|
91
|
+
| Agent status | Color | Fill | Motion |
|
|
92
|
+
| --- | --- | --- | --- |
|
|
93
|
+
| `idle` | gray | `#A8AEB2` light, `#6E6960` dark | none |
|
|
94
|
+
| `active` | gray | same as idle | none |
|
|
95
|
+
| `running` | blue | `#2563EB` | `hb-pulse` |
|
|
96
|
+
| `paused` | amber | `#F59E0B` | none |
|
|
97
|
+
| `error` | red | `#DC2626` | `hb-blink` |
|
|
98
|
+
|
|
99
|
+
Motion timings:
|
|
100
|
+
|
|
101
|
+
- `hb-pulse`: `1.6s ease-in-out infinite`
|
|
102
|
+
- `hb-blink`: `1.2s step-end infinite`
|
|
103
|
+
- Reduced motion removes both.
|
|
104
|
+
|
|
105
|
+
Website guide geometry for the heartbeat pill is 8x16 with radius 4. Larger brand-page display examples may use 14x28.
|
|
106
|
+
|
|
107
|
+
## Common Mistakes
|
|
108
|
+
|
|
109
|
+
- Using capsule gradients for generic badges or buttons.
|
|
110
|
+
- Using a full gradient agent capsule where a small status capsule is required.
|
|
111
|
+
- Treating the onboarding blue glow as the default online state.
|
|
112
|
+
- Merging the 10 app gradients, 12 website gradients, 12 video gradients, and 45 hero-bank gradients into one palette.
|
|
113
|
+
- Animating status or lifecycle motion without reduced-motion fallbacks.
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wireframe
|
|
3
|
+
description: Produce low-fidelity black-and-white UI wireframes as SVGs or viewer pages. Use when asked to wireframe, sketch a screen, draft a layout, make a low-fi mockup, or publish wireframes.
|
|
4
|
+
key: paperclipai/bundled/product/wireframe
|
|
5
|
+
recommendedForRoles:
|
|
6
|
+
- designer
|
|
7
|
+
- product
|
|
8
|
+
- engineer
|
|
9
|
+
tags:
|
|
10
|
+
- design
|
|
11
|
+
- wireframe
|
|
12
|
+
- ux
|
|
13
|
+
- prototyping
|
|
14
|
+
- svg
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Wireframe
|
|
18
|
+
|
|
19
|
+
Produce low-fidelity, black-and-white UI wireframes as **standalone SVG files**. The goal is to communicate **structure** — what goes where, in what order, at roughly what size — without committing to colour, brand, or polish.
|
|
20
|
+
|
|
21
|
+
## When to use
|
|
22
|
+
|
|
23
|
+
Trigger on phrases like:
|
|
24
|
+
|
|
25
|
+
- "wireframe a [screen / page / flow] for X"
|
|
26
|
+
- "low-fi / lo-fi mockup of X"
|
|
27
|
+
- "draft a layout for X"
|
|
28
|
+
- "rough sketch of the [dashboard / settings / login / ...] page"
|
|
29
|
+
- "show me how X would lay out before I build it"
|
|
30
|
+
|
|
31
|
+
Skip and defer to `frontend-design` (or similar) when the request mentions: brand, polish, real components, "production-ready", colour palettes, hi-fi, Figma export, or actual code/HTML/React deliverables.
|
|
32
|
+
|
|
33
|
+
## House style — non-negotiable
|
|
34
|
+
|
|
35
|
+
Wireframes are diagnostic, not decorative. Lock these tokens on every output:
|
|
36
|
+
|
|
37
|
+
| Token | Value | Notes |
|
|
38
|
+
| ---------------- | ------------------------------------------------- | -------------------------------------- |
|
|
39
|
+
| Stroke | `#000` width `1.5` | All borders, dividers, outlines |
|
|
40
|
+
| Fill (boxes) | `#fff` | Default for cards/containers |
|
|
41
|
+
| Placeholder fill | `#e6e6e6` | Image/avatar/empty-state regions |
|
|
42
|
+
| Text colour | `#000` for labels, `#666` for placeholder text | No other colours |
|
|
43
|
+
| Accent | `#d33` (dashed) — annotation layer ONLY | Never inside real UI elements |
|
|
44
|
+
| Font | `font-family="-apple-system, system-ui, sans-serif"` | Single typeface across the whole file |
|
|
45
|
+
| Type scale | `12` caption · `14` body · `20` heading · `28` title | No other sizes |
|
|
46
|
+
| Grid | 8px snap, 24px gutter | All x/y/w/h must be multiples of 8 |
|
|
47
|
+
| Default canvas | `1280×800` desktop, `375×812` mobile, `768×1024` tablet | Pick one and state it in the comment |
|
|
48
|
+
|
|
49
|
+
If you need to highlight a specific region for a callout, use the **annotation layer** (red dashed). Never colourise the wireframe itself.
|
|
50
|
+
|
|
51
|
+
## Workflow
|
|
52
|
+
|
|
53
|
+
1. **Confirm scope.** What screen(s)? Which viewport (desktop / tablet / mobile)? Single screen or multi-screen flow? If unclear, ask one question, then proceed with the most likely default.
|
|
54
|
+
2. **Pick a canvas** from the table above. State the viewport in your reply.
|
|
55
|
+
3. **Compose from primitives.** Read `references/components.md` and assemble the screen from the primitive snippets. Snap every coordinate to 8px.
|
|
56
|
+
4. **Write the SVG to a file.** Default path: `wireframes/<slug>.svg` in the working directory. Filename slug describes the screen (`login.svg`, `dashboard.svg`, `settings-account.svg`).
|
|
57
|
+
5. **Emit a textual annotation list** in your reply, mapping each numbered region in the SVG to a one-line description ("1 — primary nav, 2 — search input, 3 — list of recent items"). This makes the wireframe accessible, queryable, and reviewable in text-only channels.
|
|
58
|
+
6. **For multi-screen flows**, produce one SVG per screen and a summary `flow.svg` that arranges thumbnails left-to-right with arrows between them.
|
|
59
|
+
|
|
60
|
+
## Quick start — minimal SVG
|
|
61
|
+
|
|
62
|
+
```svg
|
|
63
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1280" height="800" viewBox="0 0 1280 800"
|
|
64
|
+
font-family="-apple-system, system-ui, sans-serif" fill="#fff" stroke="#000" stroke-width="1.5">
|
|
65
|
+
<!-- canvas border -->
|
|
66
|
+
<rect x="0" y="0" width="1280" height="800" />
|
|
67
|
+
|
|
68
|
+
<!-- example: a button -->
|
|
69
|
+
<g transform="translate(48, 48)">
|
|
70
|
+
<rect width="120" height="40" rx="4" />
|
|
71
|
+
<text x="60" y="25" font-size="14" text-anchor="middle" stroke="none" fill="#000">Continue</text>
|
|
72
|
+
</g>
|
|
73
|
+
</svg>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Two house-style gotchas worth memorising:
|
|
77
|
+
|
|
78
|
+
- Always set `stroke="none"` on `<text>` elements (text inherits the parent stroke and gets a halo otherwise).
|
|
79
|
+
- Always wrap text fill explicitly (`fill="#000"`) since the parent group fill is `#fff` for boxes.
|
|
80
|
+
|
|
81
|
+
## Primitive library
|
|
82
|
+
|
|
83
|
+
The full set of reusable primitives lives in `references/components.md`. Load it whenever you need a primitive whose exact markup you do not have in working memory. Do not re-derive primitives from scratch — copy the snippet and adjust coordinates.
|
|
84
|
+
|
|
85
|
+
Primitives provided:
|
|
86
|
+
|
|
87
|
+
- **Inputs:** button (filled, outlined, icon), text input, textarea, dropdown, checkbox, radio, toggle, search input
|
|
88
|
+
- **Layout:** card, section divider, sidebar, two-column, three-column
|
|
89
|
+
- **Navigation:** navbar, tab bar, breadcrumb, pagination, sidebar nav
|
|
90
|
+
- **Content:** heading, paragraph block, list row, table, key-value pair, metric tile
|
|
91
|
+
- **Media:** image placeholder, avatar (circle/square), video placeholder
|
|
92
|
+
- **Overlay:** modal, drawer, toast, tooltip, dropdown menu (open state)
|
|
93
|
+
- **Annotation:** numbered callout, dashed region highlight, arrow connector
|
|
94
|
+
|
|
95
|
+
## Grid, palette, and type scale
|
|
96
|
+
|
|
97
|
+
For exact pixel values, palette tokens, and type sizes, see `references/grid-system.md`.
|
|
98
|
+
|
|
99
|
+
## Worked examples
|
|
100
|
+
|
|
101
|
+
`references/examples.md` contains four complete wireframes you can copy and adapt:
|
|
102
|
+
|
|
103
|
+
1. Login screen (mobile, 375×812)
|
|
104
|
+
2. Admin dashboard (desktop, 1280×800)
|
|
105
|
+
3. Settings page with form (desktop, 1280×800)
|
|
106
|
+
4. Modal confirmation overlay (desktop, 1280×800)
|
|
107
|
+
|
|
108
|
+
When the user's request is close to one of these, start from the example and modify, rather than building from blank.
|
|
109
|
+
|
|
110
|
+
## Output convention
|
|
111
|
+
|
|
112
|
+
Every wireframe response should include:
|
|
113
|
+
|
|
114
|
+
1. The SVG file written to disk (path stated explicitly).
|
|
115
|
+
2. The SVG inlined in your reply (so it renders in markdown previews).
|
|
116
|
+
3. A short numbered annotation list mapping regions to intent.
|
|
117
|
+
4. Any explicit assumption you made (viewport, signed-in state, empty/populated, dark/light not applicable since monochrome).
|
|
118
|
+
|
|
119
|
+
## If the user requests a website / viewer page
|
|
120
|
+
|
|
121
|
+
Trigger on phrases like "make a page that shows the screens", "single page I can scroll", "build a viewer", "let me click through the wireframes", "show them all on one page", or any request to bundle multiple wireframes into a browsable artifact (not a production site).
|
|
122
|
+
|
|
123
|
+
Build **one static `index.html`** that loads the SVG wireframes directly. Do not turn this into a React app or component library — it's a review surface, not product UI.
|
|
124
|
+
|
|
125
|
+
**File layout** (default):
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
design/<task-slug>/
|
|
129
|
+
index.html
|
|
130
|
+
wireframes/ # the SVGs from this skill
|
|
131
|
+
screenshots/ # any reference screenshots
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**Page anatomy** (start from `assets/site-template.html` and adjust — do not re-derive the CSS):
|
|
135
|
+
|
|
136
|
+
- **Sticky sidebar TOC** (240px on desktop) listing every screen with anchor links. Group by Flow / Screens / Open questions.
|
|
137
|
+
- **Hero header** at the top: crumb (issue id), title, one-paragraph summary, pill row of meta tags (`12 screens`, `Lo-fi · monochrome`, `Click any wireframe to zoom`).
|
|
138
|
+
- **One section per screen** with a 2-column grid: wireframe on the left, reference image + numbered annotations + a "Why this changes" callout on the right. The wireframe `<img>` points to the SVG file directly — do not inline it.
|
|
139
|
+
- **Click-to-zoom lightbox** for any element marked `[data-zoom]`. Esc and backdrop click both close.
|
|
140
|
+
- **Flow diagram** section near the top that loads `wireframes/flow.svg` full-width.
|
|
141
|
+
- **Open questions** section at the bottom for unresolved decisions.
|
|
142
|
+
|
|
143
|
+
**House style for the viewer** (matches the wireframes themselves):
|
|
144
|
+
|
|
145
|
+
- Palette: `--bg: #fafaf8`, `--panel: #fff`, `--ink: #111`, `--muted: #666`, `--line: #e5e5e0`, `--accent: #d33` (red dashed callouts only).
|
|
146
|
+
- System font stack only: `-apple-system, system-ui, "Segoe UI", sans-serif`. No web fonts.
|
|
147
|
+
- 8px-based spacing, `border-radius: 8px` on cards, 1px `--line` borders, no shadows except the hover lift on `.wire`.
|
|
148
|
+
- The viewer chrome is allowed to be slightly more polished than the wireframes (subtle hover, rounded cards) — but never colourful. The wireframes themselves stay strictly monochrome.
|
|
149
|
+
|
|
150
|
+
**Responsive** (verify before reporting done):
|
|
151
|
+
|
|
152
|
+
- ≥980px: two-column grid, sidebar TOC visible.
|
|
153
|
+
- 900–980px: grid stacks to one column, TOC still sidebar.
|
|
154
|
+
- <900px (tablet/phone): TOC collapses to a sticky `<details>` disclosure at the top of the page, defaults closed; tapping a link auto-closes it. Sections get `scroll-margin-top: 80px` so anchor jumps clear the sticky bar.
|
|
155
|
+
- <560px (phone): tighter type/spacing scale, hero shrinks, lightbox switches from flex-centered to block layout at full viewport width with `touch-action: pinch-zoom` so users can pinch in further.
|
|
156
|
+
|
|
157
|
+
**Verification** before handing off: open the file in a browser and walk it at 1440×900, 768×1024, and 390×844. Confirm anchor jumps land cleanly, lightbox opens/closes, and SVGs render at the right aspect.
|
|
158
|
+
|
|
159
|
+
## If the user asks to deploy / publish / host the wireframes
|
|
160
|
+
|
|
161
|
+
Defer to the **`here-now` skill** — it owns publishing, anonymous vs. permanent sites, claim tokens, and credentials. Do not roll your own hosting.
|
|
162
|
+
|
|
163
|
+
Load the `here-now` skill and follow its `publish.sh` recipe. The shape is:
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
cd design/<task-slug>
|
|
167
|
+
{path-to-here-now}/scripts/publish.sh .
|
|
168
|
+
# → https://{adjective-noun-suffix}.here.now/
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
If `here-now` isn't installed for the current agent, install it (`npx skills add heredotnow/skill --skill here-now -g`) or escalate to whoever owns the agent's skill set. Do not roll your own hosting.
|
|
172
|
+
|
|
173
|
+
Things to remember when invoking it:
|
|
174
|
+
|
|
175
|
+
- Publish the **directory containing `index.html` at its root**, not the parent. `index.html` must be at the root of the published tree.
|
|
176
|
+
- Without saved credentials the site is **anonymous and expires in 24 hours**. With a saved API key, it's permanent. If the user wants a permanent URL, follow the `here-now` skill's sign-in-code flow — don't fake your way around it.
|
|
177
|
+
- For an update, pass `--slug {existing-slug}` so the URL stays stable across review rounds (the script auto-loads the claim token from `.herenow/state.json`).
|
|
178
|
+
- Read `publish_result.*` lines from script stderr to determine `auth_mode` and the claim URL — do not read `.herenow/state.json` and present its contents as the source of truth.
|
|
179
|
+
- Always share the `siteUrl` from the current run; if anonymous, also share the claim URL and the 24h expiry warning.
|
|
180
|
+
|
|
181
|
+
## What this skill is NOT for
|
|
182
|
+
|
|
183
|
+
- **Production UI code** — use `frontend-design` or write React/HTML directly.
|
|
184
|
+
- **Hi-fi or branded mockups** — use Figma or a design tool, not this.
|
|
185
|
+
- **Interactive prototypes** — SVG is static; export multi-screen flows as a flow.svg.
|
|
186
|
+
- **Diagrams of system architecture, sequence flows, or data models** — use mermaid or plantuml.
|
|
187
|
+
- **Illustrations or art** — use `example-skills:canvas-design` or `algorithmic-art`.
|
|
188
|
+
|
|
189
|
+
## Bundled assets
|
|
190
|
+
|
|
191
|
+
- `assets/template.svg` — blank desktop canvas with hidden 8px-grid guides; copy as a starting point.
|
|
192
|
+
- `assets/template-mobile.svg` — same for 375×812 mobile.
|
|
193
|
+
- `assets/site-template.html` — minimal review-viewer page (sticky TOC + responsive collapse + lightbox). Copy to `design/<task-slug>/index.html` and fill in the sections when the user requests a website.
|