spirewise 1.7.1 → 1.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.
Files changed (210) hide show
  1. package/README.md +0 -15
  2. package/bin/cli.js +63 -44
  3. package/install.sh +8 -8
  4. package/package.json +2 -4
  5. package/skills/README.md +0 -1
  6. package/skills/ai-agent-os-design-system/README.md +105 -0
  7. package/skills/ai-agent-os-design-system/SKILL.md +195 -0
  8. package/skills/ai-agent-os-design-system/accessibility-system.md +67 -0
  9. package/skills/ai-agent-os-design-system/color-system.md +102 -0
  10. package/skills/ai-agent-os-design-system/component-library.md +147 -0
  11. package/skills/ai-agent-os-design-system/design-principles.md +79 -0
  12. package/skills/ai-agent-os-design-system/example-page-structures.md +93 -0
  13. package/skills/ai-agent-os-design-system/layout-system.md +74 -0
  14. package/skills/ai-agent-os-design-system/motion-system.md +85 -0
  15. package/skills/ai-agent-os-design-system/spacing-system.md +87 -0
  16. package/skills/ai-agent-os-design-system/typography-system.md +91 -0
  17. package/skills/ai-agent-os-design-system/website-generation-rules.md +192 -0
  18. package/skills/ai-dark-futuristic-design-system/README.md +91 -0
  19. package/skills/ai-dark-futuristic-design-system/SKILL.md +179 -0
  20. package/skills/ai-dark-futuristic-design-system/accessibility-system.md +61 -0
  21. package/skills/ai-dark-futuristic-design-system/color-system.md +99 -0
  22. package/skills/ai-dark-futuristic-design-system/component-library.md +140 -0
  23. package/skills/ai-dark-futuristic-design-system/design-principles.md +66 -0
  24. package/skills/ai-dark-futuristic-design-system/example-page-structures.md +124 -0
  25. package/skills/ai-dark-futuristic-design-system/layout-system.md +85 -0
  26. package/skills/ai-dark-futuristic-design-system/motion-system.md +76 -0
  27. package/skills/ai-dark-futuristic-design-system/spacing-system.md +73 -0
  28. package/skills/ai-dark-futuristic-design-system/typography-system.md +89 -0
  29. package/skills/ai-dark-futuristic-design-system/website-generation-rules.md +220 -0
  30. package/skills/apple-premium-minimal-design-system/README.md +95 -0
  31. package/skills/apple-premium-minimal-design-system/SKILL.md +166 -0
  32. package/skills/apple-premium-minimal-design-system/accessibility-system.md +60 -0
  33. package/skills/apple-premium-minimal-design-system/color-system.md +100 -0
  34. package/skills/apple-premium-minimal-design-system/component-library.md +136 -0
  35. package/skills/apple-premium-minimal-design-system/design-principles.md +65 -0
  36. package/skills/apple-premium-minimal-design-system/example-page-structures.md +90 -0
  37. package/skills/apple-premium-minimal-design-system/layout-system.md +89 -0
  38. package/skills/apple-premium-minimal-design-system/motion-system.md +75 -0
  39. package/skills/apple-premium-minimal-design-system/spacing-system.md +73 -0
  40. package/skills/apple-premium-minimal-design-system/typography-system.md +86 -0
  41. package/skills/apple-premium-minimal-design-system/website-generation-rules.md +207 -0
  42. package/skills/bento-grid-design-system/README.md +97 -0
  43. package/skills/bento-grid-design-system/SKILL.md +185 -0
  44. package/skills/bento-grid-design-system/accessibility-system.md +54 -0
  45. package/skills/bento-grid-design-system/color-system.md +98 -0
  46. package/skills/bento-grid-design-system/component-library.md +138 -0
  47. package/skills/bento-grid-design-system/design-principles.md +72 -0
  48. package/skills/bento-grid-design-system/example-page-structures.md +91 -0
  49. package/skills/bento-grid-design-system/layout-system.md +93 -0
  50. package/skills/bento-grid-design-system/motion-system.md +81 -0
  51. package/skills/bento-grid-design-system/spacing-system.md +77 -0
  52. package/skills/bento-grid-design-system/typography-system.md +85 -0
  53. package/skills/bento-grid-design-system/website-generation-rules.md +193 -0
  54. package/skills/brutalist-tech-design-system/README.md +100 -0
  55. package/skills/brutalist-tech-design-system/SKILL.md +185 -0
  56. package/skills/brutalist-tech-design-system/accessibility-system.md +61 -0
  57. package/skills/brutalist-tech-design-system/color-system.md +101 -0
  58. package/skills/brutalist-tech-design-system/component-library.md +117 -0
  59. package/skills/brutalist-tech-design-system/design-principles.md +73 -0
  60. package/skills/brutalist-tech-design-system/example-page-structures.md +92 -0
  61. package/skills/brutalist-tech-design-system/layout-system.md +74 -0
  62. package/skills/brutalist-tech-design-system/motion-system.md +80 -0
  63. package/skills/brutalist-tech-design-system/spacing-system.md +86 -0
  64. package/skills/brutalist-tech-design-system/typography-system.md +94 -0
  65. package/skills/brutalist-tech-design-system/website-generation-rules.md +195 -0
  66. package/skills/crunchbase-profile-generator/README.md +64 -0
  67. package/skills/crunchbase-profile-generator/SKILL.md +189 -0
  68. package/skills/editorial-luxury-design-system/README.md +98 -0
  69. package/skills/editorial-luxury-design-system/SKILL.md +187 -0
  70. package/skills/editorial-luxury-design-system/accessibility-system.md +63 -0
  71. package/skills/editorial-luxury-design-system/color-system.md +95 -0
  72. package/skills/editorial-luxury-design-system/component-library.md +131 -0
  73. package/skills/editorial-luxury-design-system/design-principles.md +77 -0
  74. package/skills/editorial-luxury-design-system/example-page-structures.md +94 -0
  75. package/skills/editorial-luxury-design-system/layout-system.md +80 -0
  76. package/skills/editorial-luxury-design-system/motion-system.md +82 -0
  77. package/skills/editorial-luxury-design-system/spacing-system.md +77 -0
  78. package/skills/editorial-luxury-design-system/typography-system.md +107 -0
  79. package/skills/editorial-luxury-design-system/website-generation-rules.md +194 -0
  80. package/skills/enterprise-data-viz-design-system/README.md +98 -0
  81. package/skills/enterprise-data-viz-design-system/SKILL.md +195 -0
  82. package/skills/enterprise-data-viz-design-system/accessibility-system.md +68 -0
  83. package/skills/enterprise-data-viz-design-system/color-system.md +112 -0
  84. package/skills/enterprise-data-viz-design-system/component-library.md +142 -0
  85. package/skills/enterprise-data-viz-design-system/design-principles.md +75 -0
  86. package/skills/enterprise-data-viz-design-system/example-page-structures.md +89 -0
  87. package/skills/enterprise-data-viz-design-system/layout-system.md +75 -0
  88. package/skills/enterprise-data-viz-design-system/motion-system.md +86 -0
  89. package/skills/enterprise-data-viz-design-system/spacing-system.md +85 -0
  90. package/skills/enterprise-data-viz-design-system/typography-system.md +100 -0
  91. package/skills/enterprise-data-viz-design-system/website-generation-rules.md +196 -0
  92. package/skills/f6s-copywriting/README.md +16 -6
  93. package/skills/f6s-copywriting/SKILL.md +162 -46
  94. package/skills/glassmorphism-design-system/README.md +98 -0
  95. package/skills/glassmorphism-design-system/SKILL.md +190 -0
  96. package/skills/glassmorphism-design-system/accessibility-system.md +62 -0
  97. package/skills/glassmorphism-design-system/color-system.md +128 -0
  98. package/skills/glassmorphism-design-system/component-library.md +120 -0
  99. package/skills/glassmorphism-design-system/design-principles.md +77 -0
  100. package/skills/glassmorphism-design-system/example-page-structures.md +92 -0
  101. package/skills/glassmorphism-design-system/layout-system.md +81 -0
  102. package/skills/glassmorphism-design-system/motion-system.md +86 -0
  103. package/skills/glassmorphism-design-system/spacing-system.md +73 -0
  104. package/skills/glassmorphism-design-system/typography-system.md +90 -0
  105. package/skills/glassmorphism-design-system/website-generation-rules.md +195 -0
  106. package/skills/linkedin-copywriting/README.md +15 -8
  107. package/skills/linkedin-copywriting/SKILL.md +129 -51
  108. package/skills/motion-storytelling-design-system/README.md +100 -0
  109. package/skills/motion-storytelling-design-system/SKILL.md +191 -0
  110. package/skills/motion-storytelling-design-system/accessibility-system.md +71 -0
  111. package/skills/motion-storytelling-design-system/color-system.md +101 -0
  112. package/skills/motion-storytelling-design-system/component-library.md +122 -0
  113. package/skills/motion-storytelling-design-system/design-principles.md +81 -0
  114. package/skills/motion-storytelling-design-system/example-page-structures.md +91 -0
  115. package/skills/motion-storytelling-design-system/layout-system.md +79 -0
  116. package/skills/motion-storytelling-design-system/motion-system.md +116 -0
  117. package/skills/motion-storytelling-design-system/spacing-system.md +83 -0
  118. package/skills/motion-storytelling-design-system/typography-system.md +89 -0
  119. package/skills/motion-storytelling-design-system/website-generation-rules.md +200 -0
  120. package/skills/nvidia-inception-idea-booster/README.md +43 -24
  121. package/skills/nvidia-inception-idea-booster/SKILL.md +260 -116
  122. package/skills/nvidia-inception-starter/README.md +6 -5
  123. package/skills/nvidia-inception-starter/SKILL.md +80 -43
  124. package/skills/nvidia-product-inventor/README.md +44 -40
  125. package/skills/nvidia-product-inventor/SKILL.md +265 -247
  126. package/skills/nvidia-startup-idea-founder/README.md +66 -26
  127. package/skills/nvidia-startup-idea-founder/SKILL.md +245 -189
  128. package/skills/product-demo-first-design-system/README.md +96 -0
  129. package/skills/product-demo-first-design-system/SKILL.md +185 -0
  130. package/skills/product-demo-first-design-system/accessibility-system.md +58 -0
  131. package/skills/product-demo-first-design-system/color-system.md +109 -0
  132. package/skills/product-demo-first-design-system/component-library.md +142 -0
  133. package/skills/product-demo-first-design-system/design-principles.md +66 -0
  134. package/skills/product-demo-first-design-system/example-page-structures.md +95 -0
  135. package/skills/product-demo-first-design-system/layout-system.md +76 -0
  136. package/skills/product-demo-first-design-system/motion-system.md +82 -0
  137. package/skills/product-demo-first-design-system/spacing-system.md +74 -0
  138. package/skills/product-demo-first-design-system/typography-system.md +87 -0
  139. package/skills/product-demo-first-design-system/website-generation-rules.md +194 -0
  140. package/skills/website-design-skills/01-proof/README.md +0 -47
  141. package/skills/website-design-skills/01-proof/SKILL.md +0 -303
  142. package/skills/website-design-skills/02-kajabi/README.md +0 -42
  143. package/skills/website-design-skills/02-kajabi/SKILL.md +0 -272
  144. package/skills/website-design-skills/03-lattice/README.md +0 -42
  145. package/skills/website-design-skills/03-lattice/SKILL.md +0 -271
  146. package/skills/website-design-skills/04-petal/README.md +0 -42
  147. package/skills/website-design-skills/04-petal/SKILL.md +0 -271
  148. package/skills/website-design-skills/05-dropbox-sign/README.md +0 -42
  149. package/skills/website-design-skills/05-dropbox-sign/SKILL.md +0 -271
  150. package/skills/website-design-skills/06-distributional/README.md +0 -42
  151. package/skills/website-design-skills/06-distributional/SKILL.md +0 -271
  152. package/skills/website-design-skills/07-appcues/README.md +0 -42
  153. package/skills/website-design-skills/07-appcues/SKILL.md +0 -271
  154. package/skills/website-design-skills/08-memberstack/README.md +0 -42
  155. package/skills/website-design-skills/08-memberstack/SKILL.md +0 -271
  156. package/skills/website-design-skills/09-flank/README.md +0 -42
  157. package/skills/website-design-skills/09-flank/SKILL.md +0 -275
  158. package/skills/website-design-skills/10-slidebean/README.md +0 -42
  159. package/skills/website-design-skills/10-slidebean/SKILL.md +0 -275
  160. package/skills/website-design-skills/11-formstack/README.md +0 -42
  161. package/skills/website-design-skills/11-formstack/SKILL.md +0 -275
  162. package/skills/website-design-skills/12-thalamus/README.md +0 -42
  163. package/skills/website-design-skills/12-thalamus/SKILL.md +0 -275
  164. package/skills/website-design-skills/13-grow/README.md +0 -42
  165. package/skills/website-design-skills/13-grow/SKILL.md +0 -275
  166. package/skills/website-design-skills/14-gemnote/README.md +0 -42
  167. package/skills/website-design-skills/14-gemnote/SKILL.md +0 -275
  168. package/skills/website-design-skills/15-draftbit/README.md +0 -42
  169. package/skills/website-design-skills/15-draftbit/SKILL.md +0 -275
  170. package/skills/website-design-skills/16-payman/README.md +0 -42
  171. package/skills/website-design-skills/16-payman/SKILL.md +0 -273
  172. package/skills/website-design-skills/17-effortel/README.md +0 -42
  173. package/skills/website-design-skills/17-effortel/SKILL.md +0 -272
  174. package/skills/website-design-skills/18-adopt/README.md +0 -42
  175. package/skills/website-design-skills/18-adopt/SKILL.md +0 -273
  176. package/skills/website-design-skills/19-kraftful/README.md +0 -42
  177. package/skills/website-design-skills/19-kraftful/SKILL.md +0 -273
  178. package/skills/website-design-skills/20-greenhouse/README.md +0 -42
  179. package/skills/website-design-skills/20-greenhouse/SKILL.md +0 -273
  180. package/skills/website-design-skills/21-weavy/README.md +0 -42
  181. package/skills/website-design-skills/21-weavy/SKILL.md +0 -273
  182. package/skills/website-design-skills/22-safetykit/README.md +0 -42
  183. package/skills/website-design-skills/22-safetykit/SKILL.md +0 -273
  184. package/skills/website-design-skills/23-modulify/README.md +0 -42
  185. package/skills/website-design-skills/23-modulify/SKILL.md +0 -270
  186. package/skills/website-design-skills/24-realm/README.md +0 -42
  187. package/skills/website-design-skills/24-realm/SKILL.md +0 -270
  188. package/skills/website-design-skills/25-modyfi/README.md +0 -42
  189. package/skills/website-design-skills/25-modyfi/SKILL.md +0 -269
  190. package/skills/website-design-skills/26-altitude/README.md +0 -42
  191. package/skills/website-design-skills/26-altitude/SKILL.md +0 -270
  192. package/skills/website-design-skills/27-way/README.md +0 -42
  193. package/skills/website-design-skills/27-way/SKILL.md +0 -270
  194. package/skills/website-design-skills/28-zentail/README.md +0 -42
  195. package/skills/website-design-skills/28-zentail/SKILL.md +0 -270
  196. package/skills/website-design-skills/29-zams/README.md +0 -42
  197. package/skills/website-design-skills/29-zams/SKILL.md +0 -270
  198. package/skills/website-design-skills/30-user-interviews/README.md +0 -44
  199. package/skills/website-design-skills/30-user-interviews/SKILL.md +0 -273
  200. package/skills/website-design-skills/31-bland/README.md +0 -44
  201. package/skills/website-design-skills/31-bland/SKILL.md +0 -273
  202. package/skills/website-design-skills/32-nauto/README.md +0 -44
  203. package/skills/website-design-skills/32-nauto/SKILL.md +0 -273
  204. package/skills/website-design-skills/33-bill/README.md +0 -44
  205. package/skills/website-design-skills/33-bill/SKILL.md +0 -273
  206. package/skills/website-design-skills/34-localyzer/README.md +0 -44
  207. package/skills/website-design-skills/34-localyzer/SKILL.md +0 -273
  208. package/skills/website-design-skills/35-jasper/README.md +0 -44
  209. package/skills/website-design-skills/35-jasper/SKILL.md +0 -273
  210. package/skills/website-design-skills/README.md +0 -108
package/README.md CHANGED
@@ -105,25 +105,10 @@ tidied up, and anything already absent is reported as skipped.
105
105
  | `nvidia-inception-idea-booster` | `nvidia-inception/elevated-idea.md` | Reads your idea files and elevates them to NVIDIA's preferences |
106
106
  | `nvidia-product-inventor` | `products_raw/<Product>/product.md` | Invents 3–6 GPU-essential products (4–10 letter names) from your idea |
107
107
  | `nvidia-startup-idea-founder` | `nvidia-inception/startup-ideas/<Idea>.md` | Crawls NVIDIA RFS + recently funded/accepted Inception startups and invents 10/10-acceptance startup ideas |
108
- | `website-design-skills/01-proof` … `35-jasper` | `websites/<NN-slug>/` | **35 Website Design System Architect skills**, each modeled on a real, live-scraped SaaS site — generates a production-grade HTML/CSS/JS site with that brand's tokens, components, and pages |
109
108
 
110
109
  The copywriting skills keep **every field below** the platform's character limit
111
110
  (with ~10% headroom) and verify counts before finishing.
112
111
 
113
- ### Website-design skills (grouped)
114
-
115
- The 35 website-design skills live in `skills/website-design-skills/` as numbered
116
- folders (`01-proof` … `35-jasper`). They are discovered automatically and can be
117
- installed by their **short leaf name** or full path:
118
-
119
- ```bash
120
- npx spirewise -s 01-proof -a claude --workspace # short name
121
- npx spirewise -s website-design-skills/35-jasper -a cursor # full path
122
- ```
123
-
124
- Each installs into the agent's folder as `NN-slug` (e.g. `.claude/skills/01-proof`).
125
- See `skills/website-design-skills/README.md` for the full index.
126
-
127
112
  ## Usage after install
128
113
 
129
114
  Once installed, just ask your agent:
package/bin/cli.js CHANGED
@@ -94,7 +94,7 @@ function resolveTarget(agent, scope) {
94
94
 
95
95
  // Recursively find every skill folder (a dir containing SKILL.md) at any depth
96
96
  // under skills/. Skill ids are POSIX-style relative paths, e.g.
97
- // "f6s-copywriting" or "website-design-skills/01-proof".
97
+ // "f6s-copywriting" or "nvidia-product-inventor".
98
98
  function walkSkills(dir, baseDir, out) {
99
99
  for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
100
100
  if (!entry.isDirectory()) continue;
@@ -134,7 +134,7 @@ let NAME_BY_ID = new Map();
134
134
  const installName = (id) => NAME_BY_ID.get(id) || skillBase(id);
135
135
 
136
136
  // Resolve a user-supplied token to a full skill id. Accepts the full path
137
- // ("website-design-skills/01-proof") or the unique leaf name ("01-proof").
137
+ // ("nvidia-inception-idea-booster") or the unique leaf name.
138
138
  function resolveSkillToken(tok, available) {
139
139
  if (available.includes(tok)) return tok;
140
140
  const matches = available.filter((id) => skillBase(id) === tok);
@@ -170,7 +170,7 @@ function copyDir(src, dest) {
170
170
  }
171
171
  }
172
172
 
173
- function installToAgent(agentKey, agent, scope, skills) {
173
+ function installToAgent(agentKey, agent, scope, skills, onItem) {
174
174
  const targetDir = resolveTarget(agent, scope);
175
175
  fs.mkdirSync(targetDir, { recursive: true });
176
176
  for (const skill of skills) {
@@ -178,34 +178,31 @@ function installToAgent(agentKey, agent, scope, skills) {
178
178
  if (agent.format === 'skill') {
179
179
  const dest = path.join(targetDir, name);
180
180
  copyDir(skillSrc(skill), dest);
181
- console.log(` ${paint(RAW.green, '✓')} ${paint(RAW.bold, agent.label)} ${c.dim}(${scope === 'project' ? 'workspace' : scope})${c.reset} ${skill} ${c.dim}→ ${dest}${c.reset}`);
182
181
  } else {
183
182
  const { description, body } = readSkill(skill);
184
183
  const front = `---\ndescription: ${description}\nalwaysApply: false\n---\n\n`;
185
184
  const file = path.join(targetDir, name + (agent.ext || '.md'));
186
185
  fs.writeFileSync(file, front + body);
187
- console.log(` ${paint(RAW.green, '✓')} ${paint(RAW.bold, agent.label)} ${c.dim}(${scope === 'project' ? 'workspace' : scope})${c.reset} ${skill} ${c.dim}→ ${file}${c.reset}`);
188
186
  }
187
+ if (onItem) onItem(agent, skill);
189
188
  }
190
189
  }
191
190
 
192
191
  // Returns the number of items actually removed.
193
- function removeFromAgent(agentKey, agent, scope, skills) {
192
+ function removeFromAgent(agentKey, agent, scope, skills, onItem) {
194
193
  const targetDir = resolveTarget(agent, scope);
195
- const tag = scope === 'project' ? 'workspace' : scope;
196
194
  let removed = 0;
197
195
  for (const skill of skills) {
198
196
  const name = installName(skill);
199
197
  const target = agent.format === 'skill'
200
198
  ? path.join(targetDir, name)
201
199
  : path.join(targetDir, name + (agent.ext || '.md'));
202
- if (fs.existsSync(target)) {
200
+ const existed = fs.existsSync(target);
201
+ if (existed) {
203
202
  fs.rmSync(target, { recursive: true, force: true });
204
203
  removed++;
205
- console.log(` ${paint(RAW.green, '✓')} ${paint(RAW.bold, agent.label)} ${c.dim}(${tag})${c.reset} ${skill} ${c.dim}removed ← ${target}${c.reset}`);
206
- } else {
207
- console.log(` ${paint(RAW.dim, '·')} ${agent.label} ${c.dim}(${tag})${c.reset} ${skill} ${c.dim}— not found, skipped${c.reset}`);
208
204
  }
205
+ if (onItem) onItem(agent, skill, existed);
209
206
  }
210
207
  // Tidy up the now-empty rules/skills dir we may have created.
211
208
  try {
@@ -214,16 +211,29 @@ function removeFromAgent(agentKey, agent, scope, skills) {
214
211
  return removed;
215
212
  }
216
213
 
217
- function box(lines) {
218
- const vis = (s) => s.replace(/\x1b\[[0-9;]*m/g, '');
219
- const width = Math.max(...lines.map((l) => vis(l).length));
220
- console.log(paint(RAW.green, '' + ''.repeat(width + 2) + ''));
221
- for (const l of lines) console.log(paint(RAW.green, ' ') + l + ' '.repeat(width - vis(l).length) + paint(RAW.green, ' '));
222
- console.log(paint(RAW.green, ' └' + '─'.repeat(width + 2) + '┘'));
214
+ // Clean single-line horizontal stepper (like a React UI-library Steps component):
215
+ // completed steps show a check, the active step is a filled, highlighted circle,
216
+ // upcoming steps are dim outline circles — joined by thin connectors.
217
+ const STEP_FILLED = ['', '', '❷', '', '❹', '❺', ''];
218
+ const STEP_OUTLINE = ['', '①', '②', '③', '④', '⑤', '⑥'];
219
+ function stepper(current, steps) {
220
+ const parts = steps.map((label, i) => {
221
+ const n = i + 1;
222
+ if (n < current) return `${paint(RAW.green, '✓')} ${paint(RAW.dim, label)}`; // done
223
+ if (n === current) return `${paint(RAW.cyan, STEP_FILLED[n])} ${paint(RAW.bold, label)}`; // active
224
+ return paint(RAW.dim, `${STEP_OUTLINE[n]} ${label}`); // upcoming
225
+ });
226
+ return [' ' + parts.join(paint(RAW.dim, ' ── '))];
223
227
  }
224
228
 
229
+ // Single, in-place updating status line (collapses the install/remove progress
230
+ // so the whole "done process" lives on one line instead of streaming many rows).
231
+ const IS_TTY = !!process.stdout.isTTY;
232
+ const live = (s) => { if (IS_TTY) process.stdout.write('\r\x1b[2K ' + s); };
233
+ const liveEnd = (s) => { if (IS_TTY) process.stdout.write('\r\x1b[2K ' + s + '\n'); else console.log(' ' + s); };
234
+
225
235
  // --- Interactive full-width selector ---------------------------------------
226
- function interactiveSelect({ title, subtitle, items, multi = true, preselected = [], pageSize = 5 }) {
236
+ function interactiveSelect({ title, subtitle, items, multi = true, preselected = [], pageSize = 5, step, steps }) {
227
237
  return new Promise((resolve) => {
228
238
  const stdin = process.stdin, stdout = process.stdout;
229
239
  if (!stdin.isTTY) { resolve(null); return; }
@@ -252,7 +262,8 @@ function interactiveSelect({ title, subtitle, items, multi = true, preselected =
252
262
  if (start > items.length - PAGE) start = items.length - PAGE;
253
263
  const end = start + PAGE;
254
264
 
255
- const lines = ['', bar(title)];
265
+ const head = (step && steps) ? stepper(step, steps) : [bar(title)];
266
+ const lines = ['', ...head, ''];
256
267
  if (subtitle) lines.push(paint(RAW.dim, ' ' + subtitle));
257
268
  if (items.length > PAGE) {
258
269
  const above = start > 0 ? '▲ more' : ' ';
@@ -392,8 +403,7 @@ async function main() {
392
403
 
393
404
  const o = parseArgs(argv);
394
405
  const tty = process.stdin.isTTY;
395
- const verb = action === 'remove' ? 'remove' : 'install';
396
- const Verb = action === 'remove' ? 'Remove' : 'Install';
406
+ const Ving = action === 'remove' ? 'Removing' : 'Installing';
397
407
  banner();
398
408
 
399
409
  // 1) SKILLS
@@ -406,8 +416,9 @@ async function main() {
406
416
  });
407
417
  } else if (tty) {
408
418
  skills = await interactiveSelect({
409
- title: `Step 1/3 · Select skills to ${verb}`,
410
- subtitle: action === 'remove' ? 'These will be deleted from the chosen agents' : 'Copy templates to install into your agents',
419
+ title: `Skills`,
420
+ step: 1, steps: ['Skills', 'Tools', 'Where'],
421
+ subtitle: action === 'remove' ? 'Pick the skills to remove.' : 'Pick the skills you want.',
411
422
  items: available.map((s) => ({ value: s, label: s, hint: skillHint(s) })),
412
423
  multi: true, preselected: [],
413
424
  });
@@ -421,8 +432,9 @@ async function main() {
421
432
  for (const k of agentKeys) if (!AGENTS[k]) die(`Unknown agent '${k}'. Run "spirewise agents".`);
422
433
  } else if (tty) {
423
434
  agentKeys = await interactiveSelect({
424
- title: `Step 2/3 · Select agents`,
425
- subtitle: action === 'remove' ? 'Skills are removed from each agent’s folder' : 'Each agent gets the skills in its own folder + format',
435
+ title: `Tools`,
436
+ step: 2, steps: ['Skills', 'Tools', 'Where'],
437
+ subtitle: action === 'remove' ? 'Pick which tools to remove them from.' : 'Pick which tools to add them to.',
426
438
  items: Object.entries(AGENTS).map(([k, a]) => ({ value: k, label: a.label, hint: `(${k}) · ${a.format}` })),
427
439
  multi: true, preselected: [],
428
440
  });
@@ -434,12 +446,13 @@ async function main() {
434
446
  let scope = o.scope;
435
447
  if (!scope && tty) {
436
448
  scope = await interactiveSelect({
437
- title: 'Step 3/3 · Select scope',
438
- subtitle: action === 'remove' ? 'Where to remove the skills from?' : 'Where should the skills live?',
449
+ title: 'Where',
450
+ step: 3, steps: ['Skills', 'Tools', 'Where'],
451
+ subtitle: action === 'remove' ? 'Where to remove them from?' : 'Where should they go?',
439
452
  items: [
440
- { value: 'project', label: 'Workspace', hint: 'this folder only — the current project' },
441
- { value: 'global', label: 'Global', hint: 'your home folders — applies to all projects' },
442
- { value: 'both', label: 'Both', hint: 'workspace + global' },
453
+ { value: 'project', label: 'This project', hint: 'just this folder' },
454
+ { value: 'global', label: 'Everywhere', hint: 'all your projects' },
455
+ { value: 'both', label: 'Both', hint: 'this project + everywhere' },
443
456
  ],
444
457
  multi: false, preselected: [],
445
458
  });
@@ -450,27 +463,33 @@ async function main() {
450
463
 
451
464
  // ACTION
452
465
  console.log('');
453
- info(`${Verb}ing ${paint(RAW.bold, String(skills.length))} skill(s) ${action === 'remove' ? 'from' : 'into'} ${paint(RAW.bold, String(agentKeys.length))} agent(s) · scope ${paint(RAW.bold, scope === 'project' ? 'workspace' : scope)}`);
466
+
467
+ const pl = (n, w) => `${n} ${w}${n === 1 ? '' : 's'}`;
468
+ const where = { project: 'this project', global: 'everywhere', both: 'this project + everywhere' }[scope];
454
469
 
455
470
  let count = 0;
471
+ const totalOps = scopes.length * agentKeys.length * skills.length;
472
+ let seen = 0;
473
+ const progress = (agent, skill) => {
474
+ seen++;
475
+ live(`${paint(RAW.cyan, '⟳')} ${Ving}… ${paint(RAW.bold, `${seen}/${totalOps}`)} ${c.dim}${agent.label}${c.reset}`);
476
+ };
456
477
  for (const sc of scopes) for (const k of agentKeys) {
457
- if (action === 'remove') count += removeFromAgent(k, AGENTS[k], sc, skills);
458
- else { installToAgent(k, AGENTS[k], sc, skills); count += skills.length; }
478
+ if (action === 'remove') count += removeFromAgent(k, AGENTS[k], sc, skills, progress);
479
+ else { installToAgent(k, AGENTS[k], sc, skills, progress); count += skills.length; }
480
+ }
481
+ // Collapse the whole done process into one final line.
482
+ if (action === 'remove') {
483
+ liveEnd(`${count === 0 ? paint(RAW.yellow, '·') : paint(RAW.green, '✓')} Removed ${paint(RAW.bold, pl(count, 'skill'))} from ${pl(agentKeys.length, 'tool')} ${c.dim}(${where})${c.reset}`);
484
+ } else {
485
+ liveEnd(`${paint(RAW.green, '✓')} Added ${paint(RAW.bold, pl(skills.length, 'skill'))} to ${pl(agentKeys.length, 'tool')} ${c.dim}(${where})${c.reset}`);
459
486
  }
460
487
 
461
- console.log('');
462
488
  if (action === 'remove') {
463
- box([
464
- `Removed ${paint(RAW.bold, String(count))} item(s) from ${paint(RAW.bold, String(agentKeys.length))} agent(s)`,
465
- `scope: ${scopes.map((s) => (s === 'project' ? 'workspace' : s)).join(' + ')}`,
466
- count === 0 ? `nothing matched — already clean` : `done — skills removed`,
467
- ]);
489
+ if (count === 0) liveEnd(paint(RAW.dim, ' nothing to remove — already clean'));
468
490
  } else {
469
- box([
470
- `Installed ${paint(RAW.bold, String(skills.length))} skill(s) into ${paint(RAW.bold, String(agentKeys.length))} agent(s)`,
471
- `scope: ${scopes.map((s) => (s === 'project' ? 'workspace' : s)).join(' + ')} · ${count} item(s) written`,
472
- `next: open your agent and say "write our F6S profile copy"`,
473
- ]);
491
+ console.log('');
492
+ info(`Done. Open your tool and ask it to use a skill.`);
474
493
  }
475
494
  console.log('');
476
495
  }
package/install.sh CHANGED
@@ -43,8 +43,8 @@ info() { printf '%s %s\n' "$(color '1;34' '==>')" "$1"; }
43
43
  ok() { printf '%s %s\n' "$(color '1;32' ' ok')" "$1"; }
44
44
  warn() { printf '%s %s\n' "$(color '1;33' ' !')" "$1" >&2; }
45
45
  die() { printf '%s %s\n' "$(color '1;31' 'err')" "$1" >&2; exit 1; }
46
- step() { printf '%s %s %s\n' "$(color '1;36' ' >')" "$(color '1' "Step $1/4")" "$2"; }
47
- substep() { printf ' %s %s\n' "$(color '1;32' 'v')" "$1"; }
46
+ step() { printf '%s %s\n' "$(color '1;36' " $1.")" "$(color '1' "$2")"; }
47
+ substep() { :; } # per-item output collapses into the single final summary line
48
48
 
49
49
  banner() {
50
50
  printf '\n'
@@ -119,7 +119,7 @@ available_skills() {
119
119
  fi
120
120
  }
121
121
 
122
- # Leaf base name a skill id installs as (e.g. website-design-skills/01-proof -> 01-proof).
122
+ # Leaf base name a skill id installs as (e.g. group/sub-skill -> sub-skill).
123
123
  skill_base() { printf '%s' "${1##*/}"; }
124
124
 
125
125
  # Resolve a user token to a full id: exact id, else unique leaf-name match.
@@ -255,7 +255,7 @@ fi
255
255
  banner
256
256
 
257
257
  # Step 1: skills (default all).
258
- step 1 "Scanning available skills"
258
+ step 1 "Skills"
259
259
  if [[ ${#SELECTED[@]} -eq 0 ]]; then
260
260
  SELECTED=("${AVAILABLE[@]}")
261
261
  else
@@ -269,11 +269,11 @@ fi
269
269
  substep "${#SELECTED[@]} skill(s): ${SELECTED[*]}"
270
270
 
271
271
  # Step 2: agents
272
- step 2 "Selecting target agents"
272
+ step 2 "Tools"
273
273
  if [[ -n "$AGENT_FILTER" ]]; then substep "agents: $AGENT_FILTER"; else substep "agents: all supported"; fi
274
274
 
275
275
  # Step 3: scope — prompt if not given.
276
- step 3 "Choosing scope"
276
+ step 3 "Where"
277
277
  if [[ -z "$SCOPE" ]]; then
278
278
  if [[ -t 0 ]]; then
279
279
  [[ "$MODE" == "remove" ]] && info "Where should the skills be removed from?" || info "Where should the skills be installed?"
@@ -308,8 +308,8 @@ done
308
308
 
309
309
  printf '\n'
310
310
  if [[ "$MODE" == "remove" ]]; then
311
- ok "Removed $REMOVED item(s)."
311
+ ok "Removed $REMOVED."
312
312
  else
313
- ok "Installed ${#SELECTED[@]} skill(s). Next: open your agent and say \"write our F6S profile copy\"."
313
+ ok "Added ${#SELECTED[@]}. Open your tool and ask it to use a skill."
314
314
  fi
315
315
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "spirewise",
3
- "version": "1.7.1",
4
- "description": "Installable Agent Skills for GitHub Copilot, Claude Code, and Cursor — copywriting (F6S & LinkedIn), NVIDIA Inception tooling, and 35 website design-system architect skills modeled on real SaaS sites.",
3
+ "version": "1.9.0",
4
+ "description": "Installable Agent Skills for GitHub Copilot, Claude Code, and Cursor — copywriting (F6S & LinkedIn) and NVIDIA Inception tooling.",
5
5
  "bin": {
6
6
  "spirewise": "bin/cli.js"
7
7
  },
@@ -20,8 +20,6 @@
20
20
  "f6s",
21
21
  "linkedin",
22
22
  "nvidia-inception",
23
- "website-design",
24
- "design-system",
25
23
  "github-copilot",
26
24
  "claude-code",
27
25
  "cursor",
package/skills/README.md CHANGED
@@ -13,7 +13,6 @@ ready-to-paste copy for company profile pages, with strict character-limit safet
13
13
  | `nvidia-inception-idea-booster` | `nvidia-inception/elevated-idea.md` | Reads your idea files and elevates them to NVIDIA's preferences |
14
14
  | `nvidia-product-inventor` | `products_raw/<Product>/product.md` | Invents 3–6 GPU-essential products (4–10 letter names) from your idea |
15
15
  | `nvidia-startup-idea-founder` | `nvidia-inception/startup-ideas/<Idea>.md` | Crawls NVIDIA RFS + recently funded/accepted Inception startups and invents 10/10-acceptance startup ideas |
16
- | `website-design-skills/01-proof` … `35-jasper` | `websites/<NN-slug>/` | 35 design-system skills, each modeled on a real SaaS site (15+ pages, products + per-product pages) |
17
16
 
18
17
  Each skill writes one plain-text file and keeps **every field below** the
19
18
  platform's character limit (with ~10% headroom).
@@ -0,0 +1,105 @@
1
+ # ai-agent-os-design-system
2
+
3
+ A world-class, **AI agent operating-system design system** for building websites for **agentic-AI
4
+ products** — where the page renders the product's core mechanics: **agent orchestration graphs,
5
+ run/workflow timelines, tool-calling streams, multi-agent handoffs, reasoning traces, and command
6
+ palettes**, in a precise, trustworthy **"OS for agents"** aesthetic. The control-room clarity of
7
+ Cursor/Cognition/Sierra — built **accessibly in pure vanilla** (graphs/timelines as inline SVG/
8
+ Canvas/semantic HTML, every visual paired with a text/list equivalent). Distilled from Cursor,
9
+ Cognition/Devin, Sierra, Lindy, Manus, LangGraph, Replit, Linear, Vercel, and modern AI sites
10
+ (OpenAI, Anthropic, Perplexity).
11
+
12
+ It also ships a **production website-generation framework**: a multipage site (15+ pages, 10+
13
+ sections/page, **no borders/dividers between sections**) in **pure HTML/CSS/vanilla JS** — graphs/
14
+ timelines hand-built in inline SVG/Canvas (**no D3/Cytoscape/React Flow/any graph library**; no
15
+ React/Vue/Tailwind/Bootstrap/jQuery) — with **clean Vercel-ready URLs** (no `.html`), navigation,
16
+ and full SEO.
17
+
18
+ > The full design intelligence is **baked into the companion files** (live research optional, to
19
+ > save tokens). Outputs a generated site/system into a `website/` folder. Sibling skills:
20
+ > `ai-dark-futuristic-design-system`, `apple-premium-minimal-design-system`,
21
+ > `product-demo-first-design-system`, `bento-grid-design-system`, `glassmorphism-design-system`,
22
+ > `editorial-luxury-design-system`, `motion-storytelling-design-system`,
23
+ > `enterprise-data-viz-design-system`, `brutalist-tech-design-system`.
24
+
25
+ ## Install
26
+
27
+ ```bash
28
+ npx spirewise install -s ai-agent-os-design-system # pick agents + scope
29
+ npx spirewise install -s ai-agent-os-design-system -a claude,cursor -sc workspace
30
+ ```
31
+
32
+ ## Remove
33
+
34
+ ```bash
35
+ npx spirewise remove -s ai-agent-os-design-system # pick agents + scope
36
+ npx spirewise remove -s ai-agent-os-design-system -a claude,cursor -sc both
37
+ ```
38
+
39
+ (No Node? `./install.sh -s ai-agent-os-design-system` and `./install.sh remove -s ai-agent-os-design-system`.)
40
+
41
+ ## Use
42
+
43
+ After installing, ask your agent:
44
+
45
+ > "Build a website for our AI agent platform — show the orchestration"
46
+ > "Agent graph + run timeline + command palette, like Cursor/Cognition/Sierra"
47
+
48
+ It reads the companion files, locks the tokens (incl. the agent **status** system), storyboards a
49
+ coherent example run, builds the agent visuals in vanilla SVG/Canvas with text equivalents,
50
+ applies functional motion + accessibility, and emits **pure HTML + CSS + vanilla JS + tokens +
51
+ `vercel.json` + `sitemap.xml`** into a `website/` folder.
52
+
53
+ ## What's inside
54
+
55
+ | File | What it gives you |
56
+ |---|---|
57
+ | `SKILL.md` | Orchestrator: agent-OS philosophy, mandates, workflow, output, checklist |
58
+ | `design-principles.md` | "Show the agent thinking/acting", the **status language**, do/don'ts |
59
+ | `color-system.md` | Control-room palette + **agent status** + node/edge tokens (CSS vars) |
60
+ | `typography-system.md` | Mono + grotesk, fluid scale, log/trace/label/metric roles |
61
+ | `spacing-system.md` | 4/8-pt scale, **two densities** (marketing + control-room), containers |
62
+ | `layout-system.md` | Grid + agent-OS layouts (graph+inspector, run timeline, console, terminal) |
63
+ | `component-library.md` | 17 components + Agent Graph, Run Timeline, Tool-Call Stream, Command Palette |
64
+ | `motion-system.md` | Run progression, node activation, streaming, status pulse |
65
+ | `accessibility-system.md` | Graph/timeline **text equivalents**, status not-color-only, palette a11y |
66
+ | `website-generation-rules.md` | Pure-vanilla build (SVG/Canvas graphs), clean URLs, nav, SEO |
67
+ | `example-page-structures.md` | Agent-product page blueprints per site type |
68
+
69
+ ## The look
70
+
71
+ A calm **control-room dark** canvas with crisp panels, monospace accents, a clear **status color
72
+ system** (running/success/error/waiting/needs-approval/blocked), an agent graph with one accent
73
+ tracing the **active path**, run timelines with step states + durations, and streaming tool/log
74
+ output. Technical and trustworthy — dense but legible, never an "AI magic" cliché. Default dark;
75
+ light included.
76
+
77
+ ## Components (17 + agent toolkit)
78
+
79
+ Navbar (+ Cmd-K) · Workspace/Run Hero · Feature Grid · Agent Bento · Testimonials · Logos ·
80
+ Pricing · FAQ · CTA · Footer · Agent Console (Dashboard Preview) · Agent Workflow · Code Preview ·
81
+ Terminal Preview · Trust (status/metrics) · Security (guardrails/HITL) · Enterprise (governance) —
82
+ **plus** Agent Graph · Run Timeline · Tool-Call Stream · Reasoning Trace · Command Palette · Status
83
+ Chip · Inspector.
84
+
85
+ ## Rules it enforces
86
+
87
+ - **Render real mechanics, coherently** — graph/run-timeline/tool-stream/trace with **realistic
88
+ example runs** (no gibberish) and a consistent **status system** (color + icon + label).
89
+ - **Agent-UI accessibility (critical)** — **every graph/timeline/trace has a text/list equivalent**
90
+ + `aria` summary; **status never color-only**; streaming logs `role="log" aria-live="polite"` +
91
+ pause; the **command palette** is Cmd-K **and** button, dialog/combobox/listbox, Esc.
92
+ - **Multipage scale (mandatory)** — **15+ pages (≈20)**, **≥10 sections/page (≈12)**, and **no
93
+ borders/dividers between sections** (separation by whitespace + surface elevation + tone).
94
+ - **Pure vanilla stack** — HTML5 + CSS3 + vanilla JS; **graphs/timelines are inline SVG/Canvas/
95
+ semantic HTML — no D3/Cytoscape/React Flow/any graph library**; no React/Vue/Tailwind/Bootstrap/
96
+ jQuery; no build step.
97
+ - **Clean Vercel-ready URLs** — extensionless routes (`/pricing`), `vercel.json` (`cleanUrls`),
98
+ `sitemap.xml`, `robots.txt`; refresh + deep links work.
99
+ - **Full navigation + SEO** — desktop dropdowns + Cmd-K, mobile overlay, breadcrumbs; per-page
100
+ title/description, Open Graph, Twitter card, canonical, JSON-LD (SoftwareApplication).
101
+ - **Centralized tokens (incl. status), mono for the mechanics, mobile-first responsive** (workspace/
102
+ graph/console reflow), **functional motion** (run progression), reduced-motion fallback. **Zero
103
+ anti-patterns** — no AI-magic clichés, gibberish runs, color-only status, graph libraries, or template look.
104
+
105
+ See `SKILL.md` for the full workflow and the companion files for every token and spec.
@@ -0,0 +1,195 @@
1
+ ---
2
+ name: ai-agent-os-design-system
3
+ description: >-
4
+ A world-class, AI AGENT OPERATING SYSTEM design system for building websites for
5
+ agentic-AI products — where the page renders the product's core mechanics: agent
6
+ orchestration graphs, run/workflow timelines, tool-calling, multi-agent handoffs,
7
+ reasoning traces, and command palettes, in an "OS for agents" aesthetic. Distilled
8
+ from agentic/dev-tool references (Cursor, Cognition/Devin, Sierra, Lindy, Manus,
9
+ LangChain/LangGraph, Replit, Linear, Vercel) and modern AI sites (OpenAI, Anthropic,
10
+ Perplexity) for structure. It gives coding/design/UI/branding/website-generation
11
+ agents a complete, reusable system: design philosophy, a control-room color system,
12
+ mono+grotesk typography, spacing, grid, a 17+ -component library (Agent Graph, Run
13
+ Timeline, Tool-Call Stream, Command Palette, Reasoning Trace), a motion system,
14
+ accessibility, and a production website-generation framework. The framework builds a
15
+ multipage site (15+ pages, 10+ sections/page, NO borders/dividers between sections)
16
+ in PURE HTML/CSS/vanilla JS (graphs/timelines via inline SVG/Canvas — no libraries; no
17
+ React/Vue/Tailwind/Bootstrap/jQuery), with clean Vercel-ready URLs (no `.html`),
18
+ navigation, and full SEO. Use when the user asks for an "AI agent / agentic / agent OS
19
+ website", "agent orchestration UI", "workflow/run timeline", "make it like Cursor/
20
+ Cognition/Sierra", or "an agent design system / tokens". The full system is baked into
21
+ the companion files (live research optional). Outputs a generated site/system into a
22
+ `website/` folder.
23
+ ---
24
+
25
+ # AI Agent Operating System Design System
26
+
27
+ A complete, agent-ready design system for **agentic-AI product websites** — where the page
28
+ itself renders the product's core mechanics: **agent orchestration graphs, run/workflow
29
+ timelines, tool-calling streams, multi-agent handoffs, reasoning traces, and command
30
+ palettes**, in a precise, trustworthy **"operating system for agents"** aesthetic. The
31
+ control-room clarity of Cursor/Cognition/Sierra with a calm, technical polish — built
32
+ **accessibly in pure vanilla** (graphs/timelines as inline SVG/Canvas, every visual paired
33
+ with a text/list equivalent). Distilled from Cursor, Cognition/Devin, Sierra, Lindy, Manus,
34
+ LangGraph, Replit, Linear, Vercel, and modern AI sites (OpenAI, Anthropic, Perplexity).
35
+
36
+ This skill is the **single source of truth**. The detailed system lives in the companion
37
+ files in this folder — read the ones relevant to the task, then generate.
38
+
39
+ ## The core idea — show the agent thinking and acting
40
+
41
+ - **Render the mechanics.** Lead with the product's actual model: an **agent graph**
42
+ (nodes + edges, handoffs), a **run timeline** (steps with states), a **tool-call stream**
43
+ (the agent invoking tools), a **reasoning trace**, and a **command palette**.
44
+ - **Status is the language.** Agents have states — queued, running, waiting, succeeded,
45
+ failed, blocked-on-human. A consistent **status system** (color + icon + label) runs
46
+ through every component.
47
+ - **Trust through transparency.** Showing the plan, the steps, the tools, and the outcome
48
+ (with approvals/guardrails) is how an agent product earns enterprise trust.
49
+ - **Calm control room.** Dark, precise, monospace-accented UI that feels like tooling, not a
50
+ toy — dense but legible, with one accent that traces the active path.
51
+
52
+ ## Hard structural requirements (MANDATORY — never skip)
53
+
54
+ These are non-negotiable and override any conflicting guidance elsewhere:
55
+
56
+ 1. **Multipage — 15+ pages (≈20).** Always generate a **full multipage website with
57
+ more than 15 distinct pages** (not a single landing page) — a real site map.
58
+ 2. **10+ sections per page (≈12).** Every page contains **at least 10 full sections**,
59
+ composed from the layout + component library.
60
+ 3. **No borders/dividers between sections.** **Zero border widths, lines, rules, or
61
+ `<hr>` between sections.** Separate sections with **whitespace, surface elevation
62
+ (panels/cards), background tone, and type hierarchy** — never a section border. (A graph
63
+ node's border, a timeline's connector, or a card edge is *inside* a component, not a
64
+ divider between page sections.)
65
+ 4. **Pure HTML + CSS + vanilla JS — no frameworks/libraries.** The generated site uses
66
+ **only HTML5, CSS3, and vanilla JavaScript**. **Agent graphs, timelines, and traces are
67
+ hand-built with inline SVG / `<canvas>` / semantic HTML — no D3, Cytoscape, React Flow,
68
+ or any graph/charting/UI library.** No React/Vue/Angular/Svelte/Next, no Bootstrap/
69
+ Tailwind/any CSS framework, no jQuery, no build step. (Exporting `tokens.json` for other
70
+ agents is fine — that's data, not a framework.)
71
+ 5. **Clean, Vercel-ready URLs.** All routes are **extensionless** (`/pricing`, not
72
+ `/pricing.html`); ship a `vercel.json` (`cleanUrls: true`) plus `sitemap.xml` /
73
+ `robots.txt` so production refresh and deep links work.
74
+ 6. **Full navigation + SEO.** Desktop nav (dropdown/mega-menu where useful) + mobile menu +
75
+ breadcrumbs; per-page SEO (unique title/description, Open Graph, Twitter card, canonical,
76
+ JSON-LD). Every component: responsive, accessible, reusable, production-ready.
77
+
78
+ See `website-generation-rules.md` for the required page list, required sections, the
79
+ `vercel.json`, navigation, and SEO specifics. Enforce in code: `.section { border: 0 }` and
80
+ never place `<hr>`/divider elements between sections.
81
+
82
+ ## When to use
83
+
84
+ Building or designing a website for an **agentic-AI product** — agent platforms, AI
85
+ coworkers/copilots, automation/orchestration, agent infra/frameworks, AI SDR/support agents,
86
+ coding agents — Cursor/Cognition/Sierra/Lindy energy — or producing **design tokens / an
87
+ agent design system** for other agents.
88
+
89
+ ## The companion files (read what you need)
90
+
91
+ | File | What it gives you |
92
+ |---|---|
93
+ | `design-principles.md` | The agent-OS philosophy, status language, hierarchy, do/don'ts |
94
+ | `color-system.md` | Control-room palette + **agent status** + node/edge tokens (CSS vars) |
95
+ | `typography-system.md` | Mono + grotesk, fluid scale, log/trace/label roles |
96
+ | `spacing-system.md` | 4/8-pt scale, dense control-room rhythm, container widths |
97
+ | `layout-system.md` | Grid + agent-OS layouts (graph, timeline, console, split) |
98
+ | `component-library.md` | 17 components + Agent Graph, Run Timeline, Tool-Call Stream, Command Palette |
99
+ | `motion-system.md` | Run progression, node activation, streaming text, status pulses |
100
+ | `accessibility-system.md` | Graph/timeline a11y (text equivalents), status not-color-only, focus |
101
+ | `website-generation-rules.md` | Pure-vanilla build (SVG/Canvas graphs), clean URLs, nav, SEO |
102
+ | `example-page-structures.md` | Ready agent-product page blueprints |
103
+
104
+ All tokens use the same names across files, so they compose into one stylesheet.
105
+
106
+ ## Phase 1 — Research is baked in (live analysis OPTIONAL)
107
+
108
+ The design intelligence extracted from the reference sites is **already encoded in the
109
+ companion files** — patterns, palettes (incl. status), type, spacing, the agent components,
110
+ motion. **Do NOT re-scrape the references for the basics; use the baked-in system** (saves
111
+ tokens). Only browse live when the user wants a *current* look from a specific site, a
112
+ brand-new pattern not covered here, or to verify a font/feature.
113
+
114
+ What the baked-in system already captures (the Phase-1 extraction): design patterns, visual
115
+ hierarchy, typography/spacing/grid/layout systems, color + gradient systems, animation/
116
+ motion, navigation, CTA + hero patterns, trust/enterprise/social-proof components, footer/
117
+ pricing/feature structures, interactive + micro-interactions, glassmorphism usage,
118
+ accessibility, mobile responsiveness, developer-experience patterns, and AI-startup
119
+ conversion patterns — expressed through agent orchestration UI.
120
+
121
+ ## Phase 2 — Generate (the workflow)
122
+
123
+ 1. **Clarify intent:** what the agent product does, the key mechanic to show (graph / run
124
+ timeline / tool stream / reasoning trace), theme (default control-room dark), accent, pages.
125
+ 2. **Lock the tokens:** start from `color-system.md` + `typography-system.md` +
126
+ `spacing-system.md`. Emit them once as `:root` CSS variables (and `tokens.json`), incl.
127
+ the **agent status** tokens.
128
+ 3. **Storyboard the agent:** define a concrete example run (goal → plan → steps → tools →
129
+ handoffs → outcome) and render it through the components with realistic data.
130
+ 4. **Compose layouts + components:** Agent Graph, Run Timeline, Tool-Call Stream, Reasoning
131
+ Trace, Command Palette, plus the standard marketing components.
132
+ 5. **Build in vanilla + pair with text equivalents:** graphs/timelines as SVG/Canvas/semantic
133
+ lists; every visual has an `<ol>`/`<table>`/`aria` equivalent; status never color-only.
134
+ 6. **Apply motion + a11y:** run progression / node activation / streaming per `motion-system.md`,
135
+ gated by `prefers-reduced-motion`; meet every rule in `accessibility-system.md`.
136
+ 7. **Emit code:** follow `website-generation-rules.md` to produce clean, semantic, responsive
137
+ **pure HTML + CSS + vanilla JS** plus tokens, `vercel.json`, `sitemap.xml`, `robots.txt`.
138
+ 8. **Self-check** against the anti-patterns and the verification checklist below.
139
+
140
+ ## Output
141
+
142
+ Unless the user specifies otherwise, write the generated **multipage site (15+ pages, ~20)**
143
+ into a `website/` folder in the project root:
144
+ - `website/index.html` **plus 15+ additional pages** (≥10 sections each, agent-mechanic-led,
145
+ no inter-section borders), linked with **extensionless URLs** (`/pricing`)
146
+ - `website/css/tokens.css` + `website/css/styles.css`
147
+ - `website/js/main.js` (vanilla nav + the agent engine: graph/timeline renderers, command palette)
148
+ - `website/vercel.json`, `website/sitemap.xml`, `website/robots.txt`
149
+ - `website/assets/` + optional `website/data/*.json` (sample runs/graphs)
150
+ - `website/tokens.json` (machine-readable tokens for other agents)
151
+
152
+ When the user only wants the **system** (not a site), emit the tokens + component specs.
153
+
154
+ ## Default look (baked-in identity)
155
+
156
+ A calm, precise **control-room dark** canvas with crisp panels, monospace accents, a clear
157
+ **status color system** (running/success/error/waiting/blocked), an agent graph with one
158
+ accent tracing the **active path**, run timelines with step states, and streaming tool/log
159
+ output. Technical and trustworthy — dense but legible, never a flashy "AI magic" cliché.
160
+ (Default dark; light included. Siblings: the other `*-design-system` skills.)
161
+
162
+ ## Anti-patterns (never ship these)
163
+
164
+ Outdated startup designs · Bootstrap/template look · generic SaaS layouts · poor typography ·
165
+ weak visual hierarchy · overloaded gradients · excessive glassmorphism · poor accessibility ·
166
+ inconsistent spacing · **"AI magic" clichés (glowing brains/orbs, sci-fi nonsense UI) · fake/
167
+ nonsensical agent graphs or logs (gibberish steps) · status conveyed by color alone · graphs/
168
+ timelines with no text equivalent · over-animated chaotic motion that obscures the run ·
169
+ borders or dividers between sections · single-page sites or thin pages with fewer than 10
170
+ sections · any framework/graph library in the shipped site · `.html` in URLs**. The result
171
+ must feel like Cursor/Cognition/Sierra — a real, trustworthy agent OS — never a gimmick.
172
+
173
+ ## Verification checklist (run before finishing)
174
+
175
+ 0. **Multipage scale met:** the site has **> 15 pages** (≈20), each page has **≥ 10
176
+ sections** (≈12), and there are **no borders/dividers between sections**.
177
+ 0b. **Agent-mechanic led met:** the product's real mechanics are shown (graph / run timeline /
178
+ tool stream / reasoning trace) with **realistic, coherent** example data (no gibberish);
179
+ a consistent **status system** runs throughout.
180
+ 0c. **Agent-UI a11y met:** every graph/timeline/trace has a **text/list equivalent** (`<ol>`/
181
+ `<table>`) + `aria` summary; status is **never color-only**; keyboard-navigable.
182
+ 0d. **Pure vanilla + clean URLs:** graphs/timelines are inline SVG/Canvas/semantic HTML (no
183
+ library); routes extensionless with `vercel.json` (`cleanUrls`), `sitemap.xml`, `robots.txt`.
184
+ 0e. **Nav + SEO:** desktop nav/dropdowns + mobile menu + breadcrumbs; per-page SEO + JSON-LD;
185
+ a working **command palette** (Cmd/Ctrl-K) that's also keyboard/screen-reader accessible.
186
+ 1. Tokens emitted once (`:root`/`tokens.css`) and reused (incl. status) — no scattered hex.
187
+ 2. Type uses the fluid scale (mono for logs/traces/labels); spacing uses the 4/8-pt scale;
188
+ layout uses the grid + container widths — all from the companion files.
189
+ 3. Every section is a recognized layout; every component matches `component-library.md`.
190
+ 4. Body text ≥ 4.5:1, large ≥ 3:1; status colors ≥ 3:1 + paired with icon/label; visible focus;
191
+ semantic landmarks + alt text.
192
+ 5. Fully responsive (360 → 1440+): graphs/timelines/consoles reflow or scroll gracefully; no
193
+ horizontal page scroll; tap targets ≥ 44px.
194
+ 6. Trips **zero** anti-patterns; no AI-magic clichés; example runs are coherent.
195
+ 7. Output feels like Cursor/Cognition/Sierra — a precise, trustworthy agent operating system.