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.
- package/README.md +0 -15
- package/bin/cli.js +63 -44
- package/install.sh +8 -8
- package/package.json +2 -4
- package/skills/README.md +0 -1
- package/skills/ai-agent-os-design-system/README.md +105 -0
- package/skills/ai-agent-os-design-system/SKILL.md +195 -0
- package/skills/ai-agent-os-design-system/accessibility-system.md +67 -0
- package/skills/ai-agent-os-design-system/color-system.md +102 -0
- package/skills/ai-agent-os-design-system/component-library.md +147 -0
- package/skills/ai-agent-os-design-system/design-principles.md +79 -0
- package/skills/ai-agent-os-design-system/example-page-structures.md +93 -0
- package/skills/ai-agent-os-design-system/layout-system.md +74 -0
- package/skills/ai-agent-os-design-system/motion-system.md +85 -0
- package/skills/ai-agent-os-design-system/spacing-system.md +87 -0
- package/skills/ai-agent-os-design-system/typography-system.md +91 -0
- package/skills/ai-agent-os-design-system/website-generation-rules.md +192 -0
- package/skills/ai-dark-futuristic-design-system/README.md +91 -0
- package/skills/ai-dark-futuristic-design-system/SKILL.md +179 -0
- package/skills/ai-dark-futuristic-design-system/accessibility-system.md +61 -0
- package/skills/ai-dark-futuristic-design-system/color-system.md +99 -0
- package/skills/ai-dark-futuristic-design-system/component-library.md +140 -0
- package/skills/ai-dark-futuristic-design-system/design-principles.md +66 -0
- package/skills/ai-dark-futuristic-design-system/example-page-structures.md +124 -0
- package/skills/ai-dark-futuristic-design-system/layout-system.md +85 -0
- package/skills/ai-dark-futuristic-design-system/motion-system.md +76 -0
- package/skills/ai-dark-futuristic-design-system/spacing-system.md +73 -0
- package/skills/ai-dark-futuristic-design-system/typography-system.md +89 -0
- package/skills/ai-dark-futuristic-design-system/website-generation-rules.md +220 -0
- package/skills/apple-premium-minimal-design-system/README.md +95 -0
- package/skills/apple-premium-minimal-design-system/SKILL.md +166 -0
- package/skills/apple-premium-minimal-design-system/accessibility-system.md +60 -0
- package/skills/apple-premium-minimal-design-system/color-system.md +100 -0
- package/skills/apple-premium-minimal-design-system/component-library.md +136 -0
- package/skills/apple-premium-minimal-design-system/design-principles.md +65 -0
- package/skills/apple-premium-minimal-design-system/example-page-structures.md +90 -0
- package/skills/apple-premium-minimal-design-system/layout-system.md +89 -0
- package/skills/apple-premium-minimal-design-system/motion-system.md +75 -0
- package/skills/apple-premium-minimal-design-system/spacing-system.md +73 -0
- package/skills/apple-premium-minimal-design-system/typography-system.md +86 -0
- package/skills/apple-premium-minimal-design-system/website-generation-rules.md +207 -0
- package/skills/bento-grid-design-system/README.md +97 -0
- package/skills/bento-grid-design-system/SKILL.md +185 -0
- package/skills/bento-grid-design-system/accessibility-system.md +54 -0
- package/skills/bento-grid-design-system/color-system.md +98 -0
- package/skills/bento-grid-design-system/component-library.md +138 -0
- package/skills/bento-grid-design-system/design-principles.md +72 -0
- package/skills/bento-grid-design-system/example-page-structures.md +91 -0
- package/skills/bento-grid-design-system/layout-system.md +93 -0
- package/skills/bento-grid-design-system/motion-system.md +81 -0
- package/skills/bento-grid-design-system/spacing-system.md +77 -0
- package/skills/bento-grid-design-system/typography-system.md +85 -0
- package/skills/bento-grid-design-system/website-generation-rules.md +193 -0
- package/skills/brutalist-tech-design-system/README.md +100 -0
- package/skills/brutalist-tech-design-system/SKILL.md +185 -0
- package/skills/brutalist-tech-design-system/accessibility-system.md +61 -0
- package/skills/brutalist-tech-design-system/color-system.md +101 -0
- package/skills/brutalist-tech-design-system/component-library.md +117 -0
- package/skills/brutalist-tech-design-system/design-principles.md +73 -0
- package/skills/brutalist-tech-design-system/example-page-structures.md +92 -0
- package/skills/brutalist-tech-design-system/layout-system.md +74 -0
- package/skills/brutalist-tech-design-system/motion-system.md +80 -0
- package/skills/brutalist-tech-design-system/spacing-system.md +86 -0
- package/skills/brutalist-tech-design-system/typography-system.md +94 -0
- package/skills/brutalist-tech-design-system/website-generation-rules.md +195 -0
- package/skills/crunchbase-profile-generator/README.md +64 -0
- package/skills/crunchbase-profile-generator/SKILL.md +189 -0
- package/skills/editorial-luxury-design-system/README.md +98 -0
- package/skills/editorial-luxury-design-system/SKILL.md +187 -0
- package/skills/editorial-luxury-design-system/accessibility-system.md +63 -0
- package/skills/editorial-luxury-design-system/color-system.md +95 -0
- package/skills/editorial-luxury-design-system/component-library.md +131 -0
- package/skills/editorial-luxury-design-system/design-principles.md +77 -0
- package/skills/editorial-luxury-design-system/example-page-structures.md +94 -0
- package/skills/editorial-luxury-design-system/layout-system.md +80 -0
- package/skills/editorial-luxury-design-system/motion-system.md +82 -0
- package/skills/editorial-luxury-design-system/spacing-system.md +77 -0
- package/skills/editorial-luxury-design-system/typography-system.md +107 -0
- package/skills/editorial-luxury-design-system/website-generation-rules.md +194 -0
- package/skills/enterprise-data-viz-design-system/README.md +98 -0
- package/skills/enterprise-data-viz-design-system/SKILL.md +195 -0
- package/skills/enterprise-data-viz-design-system/accessibility-system.md +68 -0
- package/skills/enterprise-data-viz-design-system/color-system.md +112 -0
- package/skills/enterprise-data-viz-design-system/component-library.md +142 -0
- package/skills/enterprise-data-viz-design-system/design-principles.md +75 -0
- package/skills/enterprise-data-viz-design-system/example-page-structures.md +89 -0
- package/skills/enterprise-data-viz-design-system/layout-system.md +75 -0
- package/skills/enterprise-data-viz-design-system/motion-system.md +86 -0
- package/skills/enterprise-data-viz-design-system/spacing-system.md +85 -0
- package/skills/enterprise-data-viz-design-system/typography-system.md +100 -0
- package/skills/enterprise-data-viz-design-system/website-generation-rules.md +196 -0
- package/skills/f6s-copywriting/README.md +16 -6
- package/skills/f6s-copywriting/SKILL.md +162 -46
- package/skills/glassmorphism-design-system/README.md +98 -0
- package/skills/glassmorphism-design-system/SKILL.md +190 -0
- package/skills/glassmorphism-design-system/accessibility-system.md +62 -0
- package/skills/glassmorphism-design-system/color-system.md +128 -0
- package/skills/glassmorphism-design-system/component-library.md +120 -0
- package/skills/glassmorphism-design-system/design-principles.md +77 -0
- package/skills/glassmorphism-design-system/example-page-structures.md +92 -0
- package/skills/glassmorphism-design-system/layout-system.md +81 -0
- package/skills/glassmorphism-design-system/motion-system.md +86 -0
- package/skills/glassmorphism-design-system/spacing-system.md +73 -0
- package/skills/glassmorphism-design-system/typography-system.md +90 -0
- package/skills/glassmorphism-design-system/website-generation-rules.md +195 -0
- package/skills/linkedin-copywriting/README.md +15 -8
- package/skills/linkedin-copywriting/SKILL.md +129 -51
- package/skills/motion-storytelling-design-system/README.md +100 -0
- package/skills/motion-storytelling-design-system/SKILL.md +191 -0
- package/skills/motion-storytelling-design-system/accessibility-system.md +71 -0
- package/skills/motion-storytelling-design-system/color-system.md +101 -0
- package/skills/motion-storytelling-design-system/component-library.md +122 -0
- package/skills/motion-storytelling-design-system/design-principles.md +81 -0
- package/skills/motion-storytelling-design-system/example-page-structures.md +91 -0
- package/skills/motion-storytelling-design-system/layout-system.md +79 -0
- package/skills/motion-storytelling-design-system/motion-system.md +116 -0
- package/skills/motion-storytelling-design-system/spacing-system.md +83 -0
- package/skills/motion-storytelling-design-system/typography-system.md +89 -0
- package/skills/motion-storytelling-design-system/website-generation-rules.md +200 -0
- package/skills/nvidia-inception-idea-booster/README.md +43 -24
- package/skills/nvidia-inception-idea-booster/SKILL.md +260 -116
- package/skills/nvidia-inception-starter/README.md +6 -5
- package/skills/nvidia-inception-starter/SKILL.md +80 -43
- package/skills/nvidia-product-inventor/README.md +44 -40
- package/skills/nvidia-product-inventor/SKILL.md +265 -247
- package/skills/nvidia-startup-idea-founder/README.md +66 -26
- package/skills/nvidia-startup-idea-founder/SKILL.md +245 -189
- package/skills/product-demo-first-design-system/README.md +96 -0
- package/skills/product-demo-first-design-system/SKILL.md +185 -0
- package/skills/product-demo-first-design-system/accessibility-system.md +58 -0
- package/skills/product-demo-first-design-system/color-system.md +109 -0
- package/skills/product-demo-first-design-system/component-library.md +142 -0
- package/skills/product-demo-first-design-system/design-principles.md +66 -0
- package/skills/product-demo-first-design-system/example-page-structures.md +95 -0
- package/skills/product-demo-first-design-system/layout-system.md +76 -0
- package/skills/product-demo-first-design-system/motion-system.md +82 -0
- package/skills/product-demo-first-design-system/spacing-system.md +74 -0
- package/skills/product-demo-first-design-system/typography-system.md +87 -0
- package/skills/product-demo-first-design-system/website-generation-rules.md +194 -0
- package/skills/website-design-skills/01-proof/README.md +0 -47
- package/skills/website-design-skills/01-proof/SKILL.md +0 -303
- package/skills/website-design-skills/02-kajabi/README.md +0 -42
- package/skills/website-design-skills/02-kajabi/SKILL.md +0 -272
- package/skills/website-design-skills/03-lattice/README.md +0 -42
- package/skills/website-design-skills/03-lattice/SKILL.md +0 -271
- package/skills/website-design-skills/04-petal/README.md +0 -42
- package/skills/website-design-skills/04-petal/SKILL.md +0 -271
- package/skills/website-design-skills/05-dropbox-sign/README.md +0 -42
- package/skills/website-design-skills/05-dropbox-sign/SKILL.md +0 -271
- package/skills/website-design-skills/06-distributional/README.md +0 -42
- package/skills/website-design-skills/06-distributional/SKILL.md +0 -271
- package/skills/website-design-skills/07-appcues/README.md +0 -42
- package/skills/website-design-skills/07-appcues/SKILL.md +0 -271
- package/skills/website-design-skills/08-memberstack/README.md +0 -42
- package/skills/website-design-skills/08-memberstack/SKILL.md +0 -271
- package/skills/website-design-skills/09-flank/README.md +0 -42
- package/skills/website-design-skills/09-flank/SKILL.md +0 -275
- package/skills/website-design-skills/10-slidebean/README.md +0 -42
- package/skills/website-design-skills/10-slidebean/SKILL.md +0 -275
- package/skills/website-design-skills/11-formstack/README.md +0 -42
- package/skills/website-design-skills/11-formstack/SKILL.md +0 -275
- package/skills/website-design-skills/12-thalamus/README.md +0 -42
- package/skills/website-design-skills/12-thalamus/SKILL.md +0 -275
- package/skills/website-design-skills/13-grow/README.md +0 -42
- package/skills/website-design-skills/13-grow/SKILL.md +0 -275
- package/skills/website-design-skills/14-gemnote/README.md +0 -42
- package/skills/website-design-skills/14-gemnote/SKILL.md +0 -275
- package/skills/website-design-skills/15-draftbit/README.md +0 -42
- package/skills/website-design-skills/15-draftbit/SKILL.md +0 -275
- package/skills/website-design-skills/16-payman/README.md +0 -42
- package/skills/website-design-skills/16-payman/SKILL.md +0 -273
- package/skills/website-design-skills/17-effortel/README.md +0 -42
- package/skills/website-design-skills/17-effortel/SKILL.md +0 -272
- package/skills/website-design-skills/18-adopt/README.md +0 -42
- package/skills/website-design-skills/18-adopt/SKILL.md +0 -273
- package/skills/website-design-skills/19-kraftful/README.md +0 -42
- package/skills/website-design-skills/19-kraftful/SKILL.md +0 -273
- package/skills/website-design-skills/20-greenhouse/README.md +0 -42
- package/skills/website-design-skills/20-greenhouse/SKILL.md +0 -273
- package/skills/website-design-skills/21-weavy/README.md +0 -42
- package/skills/website-design-skills/21-weavy/SKILL.md +0 -273
- package/skills/website-design-skills/22-safetykit/README.md +0 -42
- package/skills/website-design-skills/22-safetykit/SKILL.md +0 -273
- package/skills/website-design-skills/23-modulify/README.md +0 -42
- package/skills/website-design-skills/23-modulify/SKILL.md +0 -270
- package/skills/website-design-skills/24-realm/README.md +0 -42
- package/skills/website-design-skills/24-realm/SKILL.md +0 -270
- package/skills/website-design-skills/25-modyfi/README.md +0 -42
- package/skills/website-design-skills/25-modyfi/SKILL.md +0 -269
- package/skills/website-design-skills/26-altitude/README.md +0 -42
- package/skills/website-design-skills/26-altitude/SKILL.md +0 -270
- package/skills/website-design-skills/27-way/README.md +0 -42
- package/skills/website-design-skills/27-way/SKILL.md +0 -270
- package/skills/website-design-skills/28-zentail/README.md +0 -42
- package/skills/website-design-skills/28-zentail/SKILL.md +0 -270
- package/skills/website-design-skills/29-zams/README.md +0 -42
- package/skills/website-design-skills/29-zams/SKILL.md +0 -270
- package/skills/website-design-skills/30-user-interviews/README.md +0 -44
- package/skills/website-design-skills/30-user-interviews/SKILL.md +0 -273
- package/skills/website-design-skills/31-bland/README.md +0 -44
- package/skills/website-design-skills/31-bland/SKILL.md +0 -273
- package/skills/website-design-skills/32-nauto/README.md +0 -44
- package/skills/website-design-skills/32-nauto/SKILL.md +0 -273
- package/skills/website-design-skills/33-bill/README.md +0 -44
- package/skills/website-design-skills/33-bill/SKILL.md +0 -273
- package/skills/website-design-skills/34-localyzer/README.md +0 -44
- package/skills/website-design-skills/34-localyzer/SKILL.md +0 -273
- package/skills/website-design-skills/35-jasper/README.md +0 -44
- package/skills/website-design-skills/35-jasper/SKILL.md +0 -273
- 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 "
|
|
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
|
-
// ("
|
|
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
|
-
|
|
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
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
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
|
|
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
|
|
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: `
|
|
410
|
-
|
|
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: `
|
|
425
|
-
|
|
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: '
|
|
438
|
-
|
|
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: '
|
|
441
|
-
{ value: 'global', label: '
|
|
442
|
-
{ value: 'both', label: 'Both',
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
470
|
-
|
|
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
|
|
47
|
-
substep() {
|
|
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.
|
|
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 "
|
|
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 "
|
|
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 "
|
|
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
|
|
311
|
+
ok "Removed $REMOVED."
|
|
312
312
|
else
|
|
313
|
-
ok "
|
|
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.
|
|
4
|
-
"description": "Installable Agent Skills for GitHub Copilot, Claude Code, and Cursor — copywriting (F6S & LinkedIn)
|
|
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.
|