spirewise 1.7.1 → 1.8.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 +65 -37
  3. package/install.sh +3 -3
  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,37 @@ 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
+ // Vertical wizard stepper. Each step is a rounded number square (#01, #02, #03)
215
+ // with a vertical connector line dropping from the centre of each square to the
216
+ // next a left-rail "stepper" rendered above every wizard screen.
217
+ function stepper(current, steps) {
218
+ const out = [];
219
+ const PAD = ' ';
220
+ for (let i = 0; i < steps.length; i++) {
221
+ const n = i + 1;
222
+ const num = '#' + String(n).padStart(2, '0'); // #01, #02, #03
223
+ const state = n < current ? 'done' : n === current ? 'active' : 'pending';
224
+ const color = state === 'done' ? RAW.green : state === 'active' ? RAW.cyan : RAW.dim;
225
+ const label = state === 'active' ? paint(RAW.bold, steps[i])
226
+ : state === 'done' ? paint(RAW.dim, steps[i] + ' ✓')
227
+ : paint(RAW.dim, steps[i]);
228
+ // rounded square (≈10–15% corner radius via ╭╮╰╯) holding the step number
229
+ out.push(PAD + paint(color, '╭─────╮'));
230
+ out.push(PAD + paint(color, '│ ' + num + ' │') + ' ' + label);
231
+ out.push(PAD + paint(color, '╰─────╯'));
232
+ if (n < steps.length) out.push(PAD + ' ' + paint(RAW.dim, '│')); // centred connector
233
+ }
234
+ return out;
223
235
  }
224
236
 
237
+ // Single, in-place updating status line (collapses the install/remove progress
238
+ // so the whole "done process" lives on one line instead of streaming many rows).
239
+ const IS_TTY = !!process.stdout.isTTY;
240
+ const live = (s) => { if (IS_TTY) process.stdout.write('\r\x1b[2K ' + s); };
241
+ const liveEnd = (s) => { if (IS_TTY) process.stdout.write('\r\x1b[2K ' + s + '\n'); else console.log(' ' + s); };
242
+
225
243
  // --- Interactive full-width selector ---------------------------------------
226
- function interactiveSelect({ title, subtitle, items, multi = true, preselected = [], pageSize = 5 }) {
244
+ function interactiveSelect({ title, subtitle, items, multi = true, preselected = [], pageSize = 5, step, steps }) {
227
245
  return new Promise((resolve) => {
228
246
  const stdin = process.stdin, stdout = process.stdout;
229
247
  if (!stdin.isTTY) { resolve(null); return; }
@@ -252,7 +270,8 @@ function interactiveSelect({ title, subtitle, items, multi = true, preselected =
252
270
  if (start > items.length - PAGE) start = items.length - PAGE;
253
271
  const end = start + PAGE;
254
272
 
255
- const lines = ['', bar(title)];
273
+ const head = (step && steps) ? stepper(step, steps) : [bar(title)];
274
+ const lines = ['', ...head, ''];
256
275
  if (subtitle) lines.push(paint(RAW.dim, ' ' + subtitle));
257
276
  if (items.length > PAGE) {
258
277
  const above = start > 0 ? '▲ more' : ' ';
@@ -393,7 +412,7 @@ async function main() {
393
412
  const o = parseArgs(argv);
394
413
  const tty = process.stdin.isTTY;
395
414
  const verb = action === 'remove' ? 'remove' : 'install';
396
- const Verb = action === 'remove' ? 'Remove' : 'Install';
415
+ const Ving = action === 'remove' ? 'Removing' : 'Installing';
397
416
  banner();
398
417
 
399
418
  // 1) SKILLS
@@ -406,7 +425,8 @@ async function main() {
406
425
  });
407
426
  } else if (tty) {
408
427
  skills = await interactiveSelect({
409
- title: `Step 1/3 · Select skills to ${verb}`,
428
+ title: `Select skills to ${verb}`,
429
+ step: 1, steps: ['Select skills', 'Select agents', 'Select scope'],
410
430
  subtitle: action === 'remove' ? 'These will be deleted from the chosen agents' : 'Copy templates to install into your agents',
411
431
  items: available.map((s) => ({ value: s, label: s, hint: skillHint(s) })),
412
432
  multi: true, preselected: [],
@@ -421,7 +441,8 @@ async function main() {
421
441
  for (const k of agentKeys) if (!AGENTS[k]) die(`Unknown agent '${k}'. Run "spirewise agents".`);
422
442
  } else if (tty) {
423
443
  agentKeys = await interactiveSelect({
424
- title: `Step 2/3 · Select agents`,
444
+ title: `Select agents`,
445
+ step: 2, steps: ['Select skills', 'Select agents', 'Select scope'],
425
446
  subtitle: action === 'remove' ? 'Skills are removed from each agent’s folder' : 'Each agent gets the skills in its own folder + format',
426
447
  items: Object.entries(AGENTS).map(([k, a]) => ({ value: k, label: a.label, hint: `(${k}) · ${a.format}` })),
427
448
  multi: true, preselected: [],
@@ -434,7 +455,8 @@ async function main() {
434
455
  let scope = o.scope;
435
456
  if (!scope && tty) {
436
457
  scope = await interactiveSelect({
437
- title: 'Step 3/3 · Select scope',
458
+ title: 'Select scope',
459
+ step: 3, steps: ['Select skills', 'Select agents', 'Select scope'],
438
460
  subtitle: action === 'remove' ? 'Where to remove the skills from?' : 'Where should the skills live?',
439
461
  items: [
440
462
  { value: 'project', label: 'Workspace', hint: 'this folder only — the current project' },
@@ -450,27 +472,33 @@ async function main() {
450
472
 
451
473
  // ACTION
452
474
  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)}`);
475
+ info(`${Ving} ${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)}`);
454
476
 
455
477
  let count = 0;
478
+ const totalOps = scopes.length * agentKeys.length * skills.length;
479
+ let seen = 0;
480
+ const progress = (agent, skill, removed) => {
481
+ seen++;
482
+ const pct = totalOps ? Math.round((seen / totalOps) * 100) : 100;
483
+ live(`${paint(RAW.cyan, '⟳')} ${Ving}… ${paint(RAW.bold, String(seen))}/${totalOps} (${pct}%) ${c.dim}${agent.label} · ${skill}${c.reset}`);
484
+ };
456
485
  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; }
486
+ if (action === 'remove') count += removeFromAgent(k, AGENTS[k], sc, skills, progress);
487
+ else { installToAgent(k, AGENTS[k], sc, skills, progress); count += skills.length; }
488
+ }
489
+ // Collapse the whole done process into one final line.
490
+ const scopeLabel = scopes.map((s) => (s === 'project' ? 'workspace' : s)).join(' + ');
491
+ if (action === 'remove') {
492
+ liveEnd(`${count === 0 ? paint(RAW.yellow, '·') : paint(RAW.green, '✓')} Removed ${paint(RAW.bold, String(count))} item(s) from ${paint(RAW.bold, String(agentKeys.length))} agent(s) ${c.dim}· ${scopeLabel}${c.reset}`);
493
+ } else {
494
+ liveEnd(`${paint(RAW.green, '✓')} Installed ${paint(RAW.bold, String(skills.length))} skill(s) × ${paint(RAW.bold, String(agentKeys.length))} agent(s) ${c.dim}· ${count} file(s) · ${scopeLabel}${c.reset}`);
459
495
  }
460
496
 
461
- console.log('');
462
497
  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
- ]);
498
+ if (count === 0) liveEnd(paint(RAW.dim, ' nothing matched — already clean'));
468
499
  } 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
- ]);
500
+ console.log('');
501
+ info(`next: open your agent and say ${paint(RAW.bold, '"write our F6S profile copy"')}`);
474
502
  }
475
503
  console.log('');
476
504
  }
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 %s\n' "$(color '1;36' ' >')" "$(color '1;36' "[ #$(printf '%02d' "$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.
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.8.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.