spirewise 1.6.0 → 1.6.3

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 (80) hide show
  1. package/README.md +18 -2
  2. package/bin/cli.js +61 -10
  3. package/install.sh +46 -22
  4. package/package.json +5 -2
  5. package/skills/README.md +2 -0
  6. package/skills/nvidia-product-inventor/README.md +17 -4
  7. package/skills/nvidia-product-inventor/SKILL.md +154 -47
  8. package/skills/nvidia-startup-idea-founder/README.md +36 -0
  9. package/skills/nvidia-startup-idea-founder/SKILL.md +211 -0
  10. package/skills/website-design-skills/01-proof/README.md +47 -0
  11. package/skills/website-design-skills/01-proof/SKILL.md +303 -0
  12. package/skills/website-design-skills/02-kajabi/README.md +42 -0
  13. package/skills/website-design-skills/02-kajabi/SKILL.md +272 -0
  14. package/skills/website-design-skills/03-lattice/README.md +42 -0
  15. package/skills/website-design-skills/03-lattice/SKILL.md +271 -0
  16. package/skills/website-design-skills/04-petal/README.md +42 -0
  17. package/skills/website-design-skills/04-petal/SKILL.md +271 -0
  18. package/skills/website-design-skills/05-dropbox-sign/README.md +42 -0
  19. package/skills/website-design-skills/05-dropbox-sign/SKILL.md +271 -0
  20. package/skills/website-design-skills/06-distributional/README.md +42 -0
  21. package/skills/website-design-skills/06-distributional/SKILL.md +271 -0
  22. package/skills/website-design-skills/07-appcues/README.md +42 -0
  23. package/skills/website-design-skills/07-appcues/SKILL.md +271 -0
  24. package/skills/website-design-skills/08-memberstack/README.md +42 -0
  25. package/skills/website-design-skills/08-memberstack/SKILL.md +271 -0
  26. package/skills/website-design-skills/09-flank/README.md +42 -0
  27. package/skills/website-design-skills/09-flank/SKILL.md +275 -0
  28. package/skills/website-design-skills/10-slidebean/README.md +42 -0
  29. package/skills/website-design-skills/10-slidebean/SKILL.md +275 -0
  30. package/skills/website-design-skills/11-formstack/README.md +42 -0
  31. package/skills/website-design-skills/11-formstack/SKILL.md +275 -0
  32. package/skills/website-design-skills/12-thalamus/README.md +42 -0
  33. package/skills/website-design-skills/12-thalamus/SKILL.md +275 -0
  34. package/skills/website-design-skills/13-grow/README.md +42 -0
  35. package/skills/website-design-skills/13-grow/SKILL.md +275 -0
  36. package/skills/website-design-skills/14-gemnote/README.md +42 -0
  37. package/skills/website-design-skills/14-gemnote/SKILL.md +275 -0
  38. package/skills/website-design-skills/15-draftbit/README.md +42 -0
  39. package/skills/website-design-skills/15-draftbit/SKILL.md +275 -0
  40. package/skills/website-design-skills/16-payman/README.md +42 -0
  41. package/skills/website-design-skills/16-payman/SKILL.md +273 -0
  42. package/skills/website-design-skills/17-effortel/README.md +42 -0
  43. package/skills/website-design-skills/17-effortel/SKILL.md +272 -0
  44. package/skills/website-design-skills/18-adopt/README.md +42 -0
  45. package/skills/website-design-skills/18-adopt/SKILL.md +273 -0
  46. package/skills/website-design-skills/19-kraftful/README.md +42 -0
  47. package/skills/website-design-skills/19-kraftful/SKILL.md +273 -0
  48. package/skills/website-design-skills/20-greenhouse/README.md +42 -0
  49. package/skills/website-design-skills/20-greenhouse/SKILL.md +273 -0
  50. package/skills/website-design-skills/21-weavy/README.md +42 -0
  51. package/skills/website-design-skills/21-weavy/SKILL.md +273 -0
  52. package/skills/website-design-skills/22-safetykit/README.md +42 -0
  53. package/skills/website-design-skills/22-safetykit/SKILL.md +273 -0
  54. package/skills/website-design-skills/23-modulify/README.md +42 -0
  55. package/skills/website-design-skills/23-modulify/SKILL.md +270 -0
  56. package/skills/website-design-skills/24-realm/README.md +42 -0
  57. package/skills/website-design-skills/24-realm/SKILL.md +270 -0
  58. package/skills/website-design-skills/25-modyfi/README.md +42 -0
  59. package/skills/website-design-skills/25-modyfi/SKILL.md +269 -0
  60. package/skills/website-design-skills/26-altitude/README.md +42 -0
  61. package/skills/website-design-skills/26-altitude/SKILL.md +270 -0
  62. package/skills/website-design-skills/27-way/README.md +42 -0
  63. package/skills/website-design-skills/27-way/SKILL.md +270 -0
  64. package/skills/website-design-skills/28-zentail/README.md +42 -0
  65. package/skills/website-design-skills/28-zentail/SKILL.md +270 -0
  66. package/skills/website-design-skills/29-zams/README.md +42 -0
  67. package/skills/website-design-skills/29-zams/SKILL.md +270 -0
  68. package/skills/website-design-skills/30-user-interviews/README.md +44 -0
  69. package/skills/website-design-skills/30-user-interviews/SKILL.md +273 -0
  70. package/skills/website-design-skills/31-bland/README.md +44 -0
  71. package/skills/website-design-skills/31-bland/SKILL.md +273 -0
  72. package/skills/website-design-skills/32-nauto/README.md +44 -0
  73. package/skills/website-design-skills/32-nauto/SKILL.md +273 -0
  74. package/skills/website-design-skills/33-bill/README.md +44 -0
  75. package/skills/website-design-skills/33-bill/SKILL.md +273 -0
  76. package/skills/website-design-skills/34-localyzer/README.md +44 -0
  77. package/skills/website-design-skills/34-localyzer/SKILL.md +273 -0
  78. package/skills/website-design-skills/35-jasper/README.md +44 -0
  79. package/skills/website-design-skills/35-jasper/SKILL.md +273 -0
  80. package/skills/website-design-skills/README.md +108 -0
package/README.md CHANGED
@@ -104,9 +104,25 @@ tidied up, and anything already absent is reported as skipped.
104
104
  | `nvidia-inception-starter` | `nvidia-inception/inception-readiness-report.md` | Scored NVIDIA Inception readiness audit + 90-day plan |
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
+ | `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 |
107
109
 
108
- Each skill keeps **every field below** the platform's character limit (with ~10%
109
- headroom) and verifies counts before finishing.
110
+ The copywriting skills keep **every field below** the platform's character limit
111
+ (with ~10% headroom) and verify counts before finishing.
112
+
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.
110
126
 
111
127
  ## Usage after install
112
128
 
package/bin/cli.js CHANGED
@@ -92,15 +92,59 @@ function resolveTarget(agent, scope) {
92
92
  return scope === 'project' ? path.resolve(process.cwd(), rel) : path.resolve(expandHome(rel));
93
93
  }
94
94
 
95
+ // Recursively find every skill folder (a dir containing SKILL.md) at any depth
96
+ // under skills/. Skill ids are POSIX-style relative paths, e.g.
97
+ // "f6s-copywriting" or "website-design-skills/01-proof".
98
+ function walkSkills(dir, baseDir, out) {
99
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
100
+ if (!entry.isDirectory()) continue;
101
+ const abs = path.join(dir, entry.name);
102
+ if (fs.existsSync(path.join(abs, 'SKILL.md'))) {
103
+ out.push(path.relative(baseDir, abs).split(path.sep).join('/'));
104
+ } else {
105
+ walkSkills(abs, baseDir, out); // descend into grouping folders
106
+ }
107
+ }
108
+ }
95
109
  function availableSkills() {
96
110
  if (!fs.existsSync(SKILLS_DIR)) return [];
97
- return fs.readdirSync(SKILLS_DIR, { withFileTypes: true })
98
- .filter((d) => d.isDirectory() && fs.existsSync(path.join(SKILLS_DIR, d.name, 'SKILL.md')))
99
- .map((d) => d.name).sort();
111
+ const out = [];
112
+ walkSkills(SKILLS_DIR, SKILLS_DIR, out);
113
+ return out.sort();
114
+ }
115
+
116
+ // Source dir and leaf base name for a skill id.
117
+ const skillSrc = (id) => path.join(SKILLS_DIR, ...id.split('/'));
118
+ const skillBase = (id) => id.split('/').pop();
119
+
120
+ // Map every skill id -> the folder/file name it installs as. Leaf basename is
121
+ // used when unique; colliding basenames fall back to the flattened path so two
122
+ // skills never overwrite each other.
123
+ function buildInstallNames(ids) {
124
+ const counts = Object.create(null);
125
+ for (const id of ids) { const b = skillBase(id); counts[b] = (counts[b] || 0) + 1; }
126
+ const map = new Map();
127
+ for (const id of ids) {
128
+ const b = skillBase(id);
129
+ map.set(id, counts[b] > 1 ? id.split('/').join('-') : b);
130
+ }
131
+ return map;
132
+ }
133
+ let NAME_BY_ID = new Map();
134
+ const installName = (id) => NAME_BY_ID.get(id) || skillBase(id);
135
+
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").
138
+ function resolveSkillToken(tok, available) {
139
+ if (available.includes(tok)) return tok;
140
+ const matches = available.filter((id) => skillBase(id) === tok);
141
+ if (matches.length === 1) return matches[0];
142
+ if (matches.length > 1) die(`Ambiguous skill '${tok}': matches ${matches.join(', ')}. Use the full path.`);
143
+ return null;
100
144
  }
101
145
 
102
146
  function readSkill(name) {
103
- const raw = fs.readFileSync(path.join(SKILLS_DIR, name, 'SKILL.md'), 'utf8');
147
+ const raw = fs.readFileSync(path.join(skillSrc(name), 'SKILL.md'), 'utf8');
104
148
  let description = name, body = raw;
105
149
  const m = raw.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/);
106
150
  if (m) {
@@ -130,14 +174,15 @@ function installToAgent(agentKey, agent, scope, skills) {
130
174
  const targetDir = resolveTarget(agent, scope);
131
175
  fs.mkdirSync(targetDir, { recursive: true });
132
176
  for (const skill of skills) {
177
+ const name = installName(skill);
133
178
  if (agent.format === 'skill') {
134
- const dest = path.join(targetDir, skill);
135
- copyDir(path.join(SKILLS_DIR, skill), dest);
179
+ const dest = path.join(targetDir, name);
180
+ copyDir(skillSrc(skill), dest);
136
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}`);
137
182
  } else {
138
183
  const { description, body } = readSkill(skill);
139
184
  const front = `---\ndescription: ${description}\nalwaysApply: false\n---\n\n`;
140
- const file = path.join(targetDir, skill + (agent.ext || '.md'));
185
+ const file = path.join(targetDir, name + (agent.ext || '.md'));
141
186
  fs.writeFileSync(file, front + body);
142
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}`);
143
188
  }
@@ -150,9 +195,10 @@ function removeFromAgent(agentKey, agent, scope, skills) {
150
195
  const tag = scope === 'project' ? 'workspace' : scope;
151
196
  let removed = 0;
152
197
  for (const skill of skills) {
198
+ const name = installName(skill);
153
199
  const target = agent.format === 'skill'
154
- ? path.join(targetDir, skill)
155
- : path.join(targetDir, skill + (agent.ext || '.md'));
200
+ ? path.join(targetDir, name)
201
+ : path.join(targetDir, name + (agent.ext || '.md'));
156
202
  if (fs.existsSync(target)) {
157
203
  fs.rmSync(target, { recursive: true, force: true });
158
204
  removed++;
@@ -312,6 +358,7 @@ async function main() {
312
358
 
313
359
  const available = availableSkills();
314
360
  if (available.length === 0) die('No skills found in package.');
361
+ NAME_BY_ID = buildInstallNames(available);
315
362
 
316
363
  if (command === 'list') {
317
364
  info('Available skills:'); available.forEach((s) => console.log(' - ' + s)); return;
@@ -335,7 +382,11 @@ async function main() {
335
382
  // 1) SKILLS
336
383
  let skills = o.skills;
337
384
  if (skills) {
338
- for (const s of skills) if (!available.includes(s)) die(`Unknown skill '${s}'. Run "spirewise list".`);
385
+ skills = skills.map((s) => {
386
+ const id = resolveSkillToken(s, available);
387
+ if (!id) die(`Unknown skill '${s}'. Run "spirewise list".`);
388
+ return id;
389
+ });
339
390
  } else if (tty) {
340
391
  skills = await interactiveSelect({
341
392
  title: `Step 1/3 · Select skills to ${verb}`,
package/install.sh CHANGED
@@ -101,23 +101,40 @@ ensure_skills_dir() {
101
101
  }
102
102
 
103
103
  list_remote_skills() {
104
- curl -fsSL "$API_BASE" \
105
- | grep '"name"' | sed -E 's/.*"name": *"([^"]+)".*/\1/' \
106
- | while read -r n; do
107
- curl -fsI "${RAW_BASE}/${SKILLS_SUBDIR}/${n}/SKILL.md" >/dev/null 2>&1 && echo "$n"
108
- done
104
+ # Walk the full git tree and surface every "<id>/SKILL.md" under skills/.
105
+ curl -fsSL "https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/git/trees/${REPO_BRANCH}?recursive=1" \
106
+ | grep -oE "\"path\": *\"${SKILLS_SUBDIR}/[^\"]+/SKILL.md\"" \
107
+ | sed -E "s/.*\"${SKILLS_SUBDIR}\/(.+)\/SKILL.md\"/\1/" \
108
+ | sort -u
109
109
  }
110
110
 
111
111
  available_skills() {
112
112
  if [[ -n "$LOCAL_SKILLS_DIR" ]]; then
113
- find "$LOCAL_SKILLS_DIR" -maxdepth 2 -name SKILL.md -print0 \
114
- | xargs -0 -n1 dirname | xargs -n1 basename | sort
113
+ # Any folder containing SKILL.md, at any depth, as a relative id.
114
+ find "$LOCAL_SKILLS_DIR" -name SKILL.md -print \
115
+ | sed -e "s#^${LOCAL_SKILLS_DIR}/##" -e 's#/SKILL.md$##' \
116
+ | sort
115
117
  else
116
118
  list_remote_skills | sort
117
119
  fi
118
120
  }
119
121
 
120
- # Fetch a single SKILL.md into $BASE/<skill>/SKILL.md when remote.
122
+ # Leaf base name a skill id installs as (e.g. website-design-skills/01-proof -> 01-proof).
123
+ skill_base() { printf '%s' "${1##*/}"; }
124
+
125
+ # Resolve a user token to a full id: exact id, else unique leaf-name match.
126
+ resolve_skill_token() {
127
+ local tok="$1" id match count=0
128
+ for id in "${AVAILABLE[@]}"; do [[ "$id" == "$tok" ]] && { printf '%s' "$id"; return 0; }; done
129
+ for id in "${AVAILABLE[@]}"; do
130
+ if [[ "$(skill_base "$id")" == "$tok" ]]; then match="$id"; count=$((count+1)); fi
131
+ done
132
+ [[ $count -eq 1 ]] && { printf '%s' "$match"; return 0; }
133
+ [[ $count -gt 1 ]] && die "Ambiguous skill '$tok'. Use the full path."
134
+ return 1
135
+ }
136
+
137
+ # Fetch a single SKILL.md into $BASE/<id>/SKILL.md when remote.
121
138
  fetch_skill() {
122
139
  local skill="$1" base="$2"
123
140
  [[ -n "$LOCAL_SKILLS_DIR" ]] && return 0
@@ -162,16 +179,17 @@ resolve_dir() {
162
179
  install_for_agent() {
163
180
  local key="$1" label="$2" fmt="$3" ext="$4" dir="$5" scope="$6" base="$7"; shift 7
164
181
  local skills=("$@")
165
- local s
182
+ local s iname
166
183
  if [[ "$MODE" == "remove" ]]; then
167
184
  for s in "${skills[@]}"; do
185
+ iname="$(skill_base "$s")"
168
186
  local target
169
- if [[ "$fmt" == "skill" ]]; then target="$dir/$s"; else target="$dir/$s$ext"; fi
187
+ if [[ "$fmt" == "skill" ]]; then target="$dir/$iname"; else target="$dir/$iname$ext"; fi
170
188
  if [[ -e "$target" ]]; then
171
189
  rm -rf "$target"; REMOVED=$((REMOVED+1))
172
- substep "$label ($scope) $s removed <- $target"
190
+ substep "$label ($scope) $iname removed <- $target"
173
191
  else
174
- substep "$label ($scope) $s — not found, skipped"
192
+ substep "$label ($scope) $iname — not found, skipped"
175
193
  fi
176
194
  done
177
195
  [[ -d "$dir" ]] && rmdir "$dir" 2>/dev/null || true
@@ -179,17 +197,18 @@ install_for_agent() {
179
197
  fi
180
198
  mkdir -p "$dir"
181
199
  for s in "${skills[@]}"; do
200
+ iname="$(skill_base "$s")"
182
201
  fetch_skill "$s" "$base"
183
202
  if [[ "$fmt" == "skill" ]]; then
184
- mkdir -p "$dir/$s"
185
- cp -R "$base/$s/." "$dir/$s/"
186
- substep "$label ($scope) $s -> $dir/$s"
203
+ mkdir -p "$dir/$iname"
204
+ cp -R "$base/$s/." "$dir/$iname/"
205
+ substep "$label ($scope) $iname -> $dir/$iname"
187
206
  else
188
207
  local desc body file
189
208
  desc="$(skill_description "$base/$s/SKILL.md")"
190
- file="$dir/$s$ext"
209
+ file="$dir/$iname$ext"
191
210
  { printf -- '---\ndescription: %s\nalwaysApply: false\n---\n\n' "$desc"; skill_body "$base/$s/SKILL.md"; } >"$file"
192
- substep "$label ($scope) $s -> $file"
211
+ substep "$label ($scope) $iname -> $file"
193
212
  fi
194
213
  done
195
214
  }
@@ -237,11 +256,16 @@ banner
237
256
 
238
257
  # Step 1: skills (default all).
239
258
  step 1 "Scanning available skills"
240
- [[ ${#SELECTED[@]} -eq 0 ]] && SELECTED=("${AVAILABLE[@]}")
241
- for s in "${SELECTED[@]}"; do
242
- found=false; for a in "${AVAILABLE[@]}"; do [[ "$s" == "$a" ]] && found=true && break; done
243
- $found || die "Unknown skill '$s'. Use --list."
244
- done
259
+ if [[ ${#SELECTED[@]} -eq 0 ]]; then
260
+ SELECTED=("${AVAILABLE[@]}")
261
+ else
262
+ RESOLVED=()
263
+ for s in "${SELECTED[@]}"; do
264
+ id="$(resolve_skill_token "$s")" || die "Unknown skill '$s'. Use --list."
265
+ RESOLVED+=("$id")
266
+ done
267
+ SELECTED=("${RESOLVED[@]}")
268
+ fi
245
269
  substep "${#SELECTED[@]} skill(s): ${SELECTED[*]}"
246
270
 
247
271
  # Step 2: agents
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "spirewise",
3
- "version": "1.6.0",
4
- "description": "Installable Agent Skills for copywriting (F6S & LinkedIn company pages) for GitHub Copilot, Claude Code, and Cursor.",
3
+ "version": "1.6.3",
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.",
5
5
  "bin": {
6
6
  "spirewise": "bin/cli.js"
7
7
  },
@@ -19,6 +19,9 @@
19
19
  "copywriting",
20
20
  "f6s",
21
21
  "linkedin",
22
+ "nvidia-inception",
23
+ "website-design",
24
+ "design-system",
22
25
  "github-copilot",
23
26
  "claude-code",
24
27
  "cursor",
package/skills/README.md CHANGED
@@ -12,6 +12,8 @@ ready-to-paste copy for company profile pages, with strict character-limit safet
12
12
  | `nvidia-inception-starter` | `nvidia-inception/inception-readiness-report.md` | Scored NVIDIA Inception readiness audit + 90-day plan |
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
+ | `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) |
15
17
 
16
18
  Each skill writes one plain-text file and keeps **every field below** the
17
19
  platform's character limit (with ~10% headroom).
@@ -51,16 +51,29 @@ products_raw/
51
51
  Each `product.md` covers the problem, what it does, **why GPU compute is
52
52
  essential**, the NVIDIA stack (hardware → SDKs → software), physical/edge angle,
53
53
  moat, market, Inception fit, and MVP scope. Each product also ships a **real
54
- 1080×1080 PNG logo** on a solid background.
54
+ 1080×1080 PNG logo mark** (abstract symbol only, no letters, centered) on a solid background.
55
55
 
56
56
  ## Rules it enforces
57
57
 
58
+ - **Same space only** — all products share the startup's industry, category, core
59
+ idea, and users (variations/components of the one idea), never new categories or
60
+ unrelated businesses.
61
+ - **Dual 10/10 gate** — every product must self-score **10/10 on NVIDIA Inception
62
+ approval fit AND 10/10 on same-space fit** (both recorded in `product.md` and
63
+ `_overview.md`); redesign or discard anything below 10 on either axis.
64
+ - **Research-backed approval criteria** — products are engineered to the qualities
65
+ NVIDIA-approved startups share (deep-tech & GPU-essential core, authentic NVIDIA
66
+ platform alignment, physical/agentic AI lean, defensible moat, real market +
67
+ scalability) and trip **zero disqualifiers** (no AI wrappers, consulting, crypto,
68
+ or reseller plays).
58
69
  - **3–6 products**, each in its own folder under `products_raw/`.
59
70
  - Product names are **4–10 letters, letters only**, brandable; folder name = product name.
60
71
  - NVIDIA stack ordered **physical/GPU first**, then SDKs, then software.
61
72
  - Every product must genuinely need accelerated compute (no AI wrappers).
62
- - Each product gets a **proper designed logo** — 1080×1080 PNG, **solid background**
63
- (primary/white/black/other, no transparency or gradient), a wordmark/lettermark/
64
- combination mark (not an SVG/UI icon or emoji), saved in the product's folder.
73
+ - Each product gets a **proper designed logo MARK** — 1080×1080 PNG, **mark/symbol
74
+ only and center-aligned** (no full wordmark or name text, **no letters,
75
+ initials, or monogram**), **solid background** (primary/white/black/other, no
76
+ transparency or gradient), a letter-free custom brand symbol (not an SVG/UI icon
77
+ or emoji), saved in the product's folder.
65
78
 
66
79
  See `SKILL.md` for the full method and the per-product template.
@@ -2,14 +2,17 @@
2
2
  name: nvidia-product-inventor
3
3
  description: >-
4
4
  Read a startup's existing idea/notes files and invent 3–6 concrete PRODUCTS
5
- (not marketing copy) engineered to fit NVIDIA Inception preferences. Each product
6
- gets a short brandable name (4–10 letters) and an explicit NVIDIA stack —
7
- physical/compute hardware (GPUs, Jetson, DGX…) first, then SDKs, then software.
8
- Use when the user asks to "invent products", "ideate products for NVIDIA",
9
- "what should we build for Inception", or "turn our idea into products". Writes a
10
- `products_raw/` folder with one subfolder per product. Builds on
11
- nvidia-inception-idea-booster (preference levers) and nvidia-inception-starter
12
- (acceptance lens). Products only no website/landing copy.
5
+ (not marketing copy) that all stay in the SAME industry, category, and core idea
6
+ as the startup variations/components of the one idea, never new categories.
7
+ Each product is engineered to score a perfect 10/10 on NVIDIA Inception
8
+ approval fit AND 10/10 on same-space alignment, gets a short
9
+ brandable name (4–10 letters), an explicit NVIDIA stack (physical/compute
10
+ hardware like GPUs first, then SDKs, then software), and a real 1080×1080 PNG
11
+ logo MARK (abstract symbol only — no letters, no wordmark, centered) on a solid background. Use when the user asks to "invent products", "ideate
12
+ products for NVIDIA", "what should we build for Inception", or "turn our idea
13
+ into products". Writes a `products_raw/` folder with one subfolder per product.
14
+ Builds on nvidia-inception-idea-booster and nvidia-inception-starter. Products
15
+ only — no website/landing copy.
13
16
  ---
14
17
 
15
18
  # NVIDIA Product Inventor
@@ -27,6 +30,57 @@ marketing copy.
27
30
  (AI strength, technical innovation, NVIDIA alignment, market, moat). Keep only
28
31
  products that would plausibly score well; discard weak/"AI-wrapper" ones.
29
32
 
33
+ ## What NVIDIA Inception actually approves (research-backed)
34
+
35
+ NVIDIA Inception is free, non-dilutive, rolling-admission, and **industry-agnostic
36
+ within emerging/accelerated-computing tech**. Engineer every product so it would
37
+ read as an obvious **accept** to a reviewer. Approved startups consistently show:
38
+
39
+ 1. **Deep-tech, GPU-essential core.** The product solves a hard technical problem
40
+ (computer vision, LLMs/agents, RL, simulation, graphics, robotics, genomics,
41
+ edge AI) that **substantially benefits from — or is impossible without — GPU
42
+ acceleration**. State plainly why it can't be built (or would be far worse) on
43
+ CPUs alone.
44
+ 2. **Authentic NVIDIA-platform alignment.** Concrete, credible use of NVIDIA
45
+ hardware + SDKs (CUDA, TensorRT, Triton/NIM, Isaac, Omniverse, Metropolis,
46
+ Holoscan, NeMo, Riva, RAPIDS…). The product should **drive demand for NVIDIA
47
+ compute** and act as a reference workload.
48
+ 3. **Physical AI / Agentic AI lean.** Robotics, autonomous systems, industrial
49
+ automation, digital twins, embodied AI (physical AI) and/or autonomous
50
+ decision-making agents/copilots (agentic AI). NVIDIA strongly favors these.
51
+ 4. **Defensible moat.** Proprietary IP, unique/large proprietary datasets, deep
52
+ technical barriers, or hardware integration — not easily replicated.
53
+ 5. **Real market + scalability.** Clear customer ROI, a sharp wedge, and a model
54
+ that scales on GPU cloud or edge fleets. Pilots/traction are a plus to note.
55
+ 6. **Research-to-product trajectory.** Credible technical depth (papers/SOTA
56
+ methods) paired with a concrete, buildable product — not a science project.
57
+
58
+ ### Hard disqualifiers — never generate products that read as these
59
+ - **AI wrappers / thin API resellers** with no GPU-essential core or moat.
60
+ - **Consulting / outsourced-dev** offerings (sell a product, not services).
61
+ - **Crypto/mining/trading**, pure **cloud-reselling**, or generic
62
+ **reseller/distributor** plays.
63
+ - Anything where the GPU is a "nice-to-have," not a must-have.
64
+
65
+ ## The dual 10/10 bar (mandatory gate)
66
+
67
+ Every shipped product MUST score a self-assessed **10/10 on BOTH** axes — this is
68
+ a hard gate, not an average:
69
+
70
+ - **Inception Approval Fit (target 10/10):** maximally hits the six approval
71
+ qualities above, trips **zero** disqualifiers, and would plausibly land at the
72
+ top of the `nvidia-inception-starter` acceptance score.
73
+ - **Same-Space Fit (target 10/10):** stays entirely inside the startup's locked
74
+ industry, category, core idea, and target users (see Step 2) — a variation,
75
+ component, tier, or adjacent feature of the one idea, never a new business.
76
+
77
+ Rules:
78
+ - If a candidate scores **< 10 on either axis, redesign it until both hit 10, or
79
+ discard it.** Do not ship 8s or "good enough" products. Quality over quantity —
80
+ it is better to ship 3 dual-10/10 products than 6 mediocre ones.
81
+ - Record both scores (with a one-line justification each) in every `product.md`
82
+ and in `_overview.md`. Never inflate a score to be nice; be a tough reviewer.
83
+
30
84
  ## Step 1 — Read the existing idea
31
85
 
32
86
  Discover and read the startup files in the project: `idea*`, `README*`, `pitch*`,
@@ -35,10 +89,28 @@ Discover and read the startup files in the project: `idea*`, `README*`, `pitch*`
35
89
  If too little exists, ask 3–5 focused questions first. Mark gaps `[UNKNOWN]` —
36
90
  never fabricate. Stay anchored to the founder's domain and intent.
37
91
 
38
- ## Step 2 — Invent 3–6 products
92
+ ## Step 2 — Invent 3–6 products (stay in the SAME space)
93
+
94
+ **Same space means: every product is ONLY in the startup's same category /
95
+ industry and directly tied to its main idea — never random categories,
96
+ industries, or unrelated products.**
97
+
98
+ **Hard constraint — same space only.** Before inventing, lock the startup's
99
+ **industry, category, and core idea** from Step 1. Every product MUST stay inside
100
+ that exact space:
101
+ - Same **industry/vertical**, same **category**, same **core idea/problem space**,
102
+ same **target users**.
103
+ - Do **not** invent new categories, jump to a different industry, or generate
104
+ random/unrelated products. No "while we're at it" pivots.
105
+ - The 3–6 products are **variations, components, tiers, or adjacent features of
106
+ the one idea** — different angles on the same thing, not different businesses.
107
+ - If a concept only works by leaving the startup's space, drop it.
108
+ - State the locked space at the top of `_overview.md` and make every product
109
+ visibly trace back to it.
39
110
 
40
111
  Generate **between 3 and 6** product concepts that each:
41
- - Solve a sharp, real problem within the startup's domain.
112
+ - Solve a sharp, real problem **within the startup's locked domain** (same idea,
113
+ same industry, same category).
42
114
  - **Require GPU/accelerated compute** to exist (a must-have, not nice-to-have).
43
115
  - Lean into **physical / edge / agentic AI** where credible.
44
116
  - Have a defensible moat (proprietary data/model/hardware or NVIDIA integration).
@@ -80,6 +152,9 @@ Letters: <n> (must be 4–10)
80
152
  Tagline: <one line, what it is>
81
153
  Generated: <YYYY-MM-DD>
82
154
 
155
+ ## Same-space link
156
+ <one line: how this product is the SAME industry/category/core idea as the startup>
157
+
83
158
  ## Problem
84
159
  ## Target user
85
160
  ## What it does (product, not marketing)
@@ -97,71 +172,103 @@ Generated: <YYYY-MM-DD>
97
172
  ## Defensibility / moat
98
173
  ## Market & wedge
99
174
  ## Inception fit (1–2 lines: why this scores well)
175
+ ## Scorecard (must be 10/10 on both)
176
+ - Inception Approval Fit: 10/10 — <one-line justification vs. the six approval qualities>
177
+ - Same-Space Fit: 10/10 — <one-line justification it stays in the locked space>
100
178
  ## Build notes / MVP scope
101
- ## Logo (see logo-brief.md + <ProductName>-logo-1080x1080.png)
179
+ ## Logo (mark only) (see logo-brief.md + <ProductName>-logo-1080x1080.png)
102
180
  ## Open questions / [UNKNOWN]
103
181
  ```
104
182
 
105
- 3. Also write `products_raw/_overview.md` listing every product: name, letter
106
- count, one-liner, and primary NVIDIA hardware.
183
+ 3. Also write `products_raw/_overview.md` starting with the **locked space**
184
+ (industry, category, core idea, target users), then list every product: name,
185
+ letter count, one-liner, primary NVIDIA hardware, its same-space link, and both
186
+ scores (Inception Approval Fit 10/10 + Same-Space Fit 10/10). Confirm every
187
+ listed product is a dual 10/10 — drop any that isn't.
107
188
 
108
189
  ## Logo for each product (required)
109
190
 
110
- Every product gets a **real, designed brand logo** — not an SVG icon, UI/material
111
- icon, emoji, or clip-art glyph. Treat it like a brand identity deliverable.
191
+ ## Logo MARK for each product (required)
192
+
193
+ Every product gets a **real, designed brand logo MARK** — a **custom abstract
194
+ symbol only**, not the full logo. Do **not** include any letters, initials,
195
+ monogram, or lettermark; do **not** include the full product name as a wordmark,
196
+ no tagline, no lockup. Just the **symbol mark**, **center-aligned** on the
197
+ canvas. It must be a proper designed brand mark — not an SVG icon, UI/material
198
+ icon, emoji, or clip-art glyph.
112
199
 
113
200
  ### Design (research first)
114
- - Briefly research 3–5 reference logos in the product's space; note the visual
115
- conventions, then design something distinct (don't copy).
116
- - Choose a logo type that fits the short name: **wordmark** (the full name in
117
- custom-styled type), **lettermark/monogram** (initials), or **combination mark**
118
- (a simple custom symbol + the name). Coherent, ownable, memorable.
119
- - Define a tiny brand spec: palette (hex), typography style, and the mark concept.
201
+ - Briefly research 3–5 reference brand marks in the product's space; note the
202
+ visual conventions, then design something distinct (don't copy).
203
+ - The mark must be a **distinctive custom brand symbol** tied to the concept
204
+ purely abstract/pictorial, containing **no letters or initials**. Ownable,
205
+ memorable, simple, and scalable.
206
+ - Define a tiny brand spec: palette (hex) and the mark concept (the symbol's
207
+ meaning and geometry). No typography — the mark contains no text.
120
208
 
121
209
  ### Hard output rules
122
210
  - Format **PNG**, exactly **1080 × 1080 px**.
123
211
  - **Solid background** — a single flat color with NO transparency and NO gradient.
124
212
  Use the brand **primary color**, or white, or black, or another solid color that
125
213
  gives strong contrast with the mark. State the exact bg hex in the brief.
126
- - The logo must be a proper logo (typographic wordmark/lettermark/combination
127
- mark), centered with safe padding — not a tiny icon on a big canvas.
214
+ - **Mark only**, **center-aligned** both horizontally and vertically, sized large
215
+ with balanced safe padding — not a tiny icon on a big canvas, and not the full
216
+ name spelled out. The mark must contain **no letters or initials**.
128
217
  - Save it **inside that product's folder**:
129
218
  `products_raw/<ProductName>/<ProductName>-logo-1080x1080.png`
130
- - Also write `products_raw/<ProductName>/logo-brief.md` with: logo type, concept,
131
- background hex, foreground/accent hex, typography, and references consulted.
219
+ - Also write `products_raw/<ProductName>/logo-brief.md` with: symbol concept,
220
+ background hex, mark/accent hex, and references consulted. (No monogram/
221
+ lettermark option and no typography — the mark is a letter-free symbol.)
132
222
 
133
223
  ### How to generate it
134
224
  1. **Preferred:** if an image-generation tool/model is available, prompt it for a
135
- *professional brand logo* (specify: wordmark/lettermark, the exact name, color
136
- palette, solid background, flat vector-style, no photographic texture), then
137
- ensure the saved file is a 1080×1080 PNG on a solid background.
138
- 2. **Fallback (always works):** render a deliberate typographic logo
139
- programmatically e.g. Python + Pillow drawing the wordmark/monogram in a
140
- chosen font and color on a solid-color 1080×1080 canvas, with optional simple
141
- geometric accent. This must look designed (kerning, weight, composition), not
142
- like a stock icon. Verify dimensions and that the background is fully solid.
143
-
144
- Do **not** ship: transparent PNGs, gradients, generic icon-font glyphs, stock
145
- emoji, or screenshots. One clean branded logo per product.
225
+ *professional brand logo mark / symbol* (specify: abstract symbol only no
226
+ letters, no initials, no text, no wordmark — the concept, color palette, solid
227
+ background, flat vector-style, centered, no photographic texture), then ensure
228
+ the saved file is a 1080×1080 PNG on a solid background with the mark centered.
229
+ 2. **Fallback (always works):** render a deliberate brand mark programmatically
230
+ e.g. Python + Pillow drawing a custom geometric/abstract symbol (no letters
231
+ or initials), centered on a solid-color 1080×1080 canvas. This must look
232
+ designed (composition, weight, balance), not like a stock icon. Verify
233
+ dimensions, that the mark is centered, and that the background is fully solid.
234
+
235
+ Do **not** ship: lettermarks/monograms/initials, full wordmarks/the spelled-out
236
+ name, taglines, transparent PNGs, gradients, generic icon-font glyphs, stock
237
+ emoji, or screenshots. One clean, centered letter-free brand **symbol** per product.
146
238
 
147
239
  ## Quality bar
148
240
 
241
+ - **Dual 10/10 gate.** Every shipped product scores 10/10 on Inception Approval
242
+ Fit AND 10/10 on Same-Space Fit. Redesign or discard anything below 10 on
243
+ either axis — quality over quantity.
244
+ - **Same space only.** All products share the startup's industry, category, core
245
+ idea, and users — variations/components/tiers of the one idea, never new
246
+ categories or unrelated businesses.
149
247
  - **Products, not copy.** No website/landing/marketing text — concrete product
150
248
  concepts and technical plans only.
151
249
  - Every product must be GPU-essential and NVIDIA-aligned, with the stack ordered
152
- physical → SDK → software.
250
+ physical → SDK → software, and trip **zero** Inception disqualifiers (no AI
251
+ wrappers, consulting, crypto, or reseller plays).
153
252
  - Names obey the 4–10 letter rule (verified) and folder names match.
154
253
  - Stay within the founder's domain; elevate, don't fabricate.
155
254
 
156
255
  ## Verification checklist (run before finishing)
157
256
 
158
- 1. Read the existing idea files (and reflected the founder's domain).
159
- 2. `products_raw/` exists with **3–6** product subfolders, each with `product.md`.
160
- 3. Every product name is **4–10 letters, letters only**, and matches its folder.
161
- 4. Each product lists NVIDIA hardware (GPU/physical) first, then SDKs, then software.
162
- 5. Each product justifies why GPU/accelerated compute is essential.
163
- 6. `products_raw/_overview.md` summarizes all products.
164
- 7. Every product folder has a **1080×1080 PNG logo on a solid (non-transparent,
165
- non-gradient) background**, plus `logo-brief.md`a real wordmark/lettermark/
166
- combination mark, not an SVG/UI icon or emoji. Verify file dimensions.
167
- 8. No marketing/website copy; unknowns marked `[UNKNOWN]`, not invented.
257
+ 1. Read the existing idea files; locked the startup's industry, category, core idea.
258
+ 2. **All 3–6 products stay in that same space** no new categories or unrelated
259
+ ideas and each `product.md` has a "Same-space link" tracing back to it.
260
+ 3. `products_raw/` exists with **3–6** product subfolders, each with `product.md`.
261
+ 4. Every product name is **4–10 letters, letters only**, and matches its folder.
262
+ 5. Each product lists NVIDIA hardware (GPU/physical) first, then SDKs, then software.
263
+ 6. Each product justifies why GPU/accelerated compute is essential.
264
+ 7. **Every product is a dual 10/10** Inception Approval Fit 10/10 and Same-Space
265
+ Fit 10/10, both scored with a justification in `product.md` and `_overview.md`,
266
+ and trips none of the hard disqualifiers (AI wrapper, consulting, crypto, reseller).
267
+ 8. `products_raw/_overview.md` opens with the locked space, then summarizes all
268
+ products with both scores.
269
+ 9. Every product folder has a **1080×1080 PNG logo MARK on a solid
270
+ (non-transparent, non-gradient) background**, the **mark centered** with no full
271
+ wordmark/name text and **no letters, initials, or monogram**, plus
272
+ `logo-brief.md` — a real letter-free custom symbol, not an SVG/UI icon or
273
+ emoji. Verify dimensions and that the mark is centered.
274
+ 10. No marketing/website copy; unknowns marked `[UNKNOWN]`, not invented.
@@ -0,0 +1,36 @@
1
+ # NVIDIA Startup Idea Founder
2
+
3
+ A **founder-in-residence** skill for NVIDIA Inception. It **crawls live signals**
4
+ — Requests for Startups (RFS), NVIDIA stated priorities, NVentures investments,
5
+ and the most recently funded / newly accepted Inception startups — then **invents
6
+ brand-new startup ideas** at the intersection of those signals, each engineered
7
+ to clear eligibility and hit a **10/10 acceptance chance**.
8
+
9
+ ## What it produces
10
+
11
+ Writes to an `nvidia-inception/` folder in the project root:
12
+
13
+ - `rfs-research.md` — crawl digest: ranked hot themes, recently funded/accepted
14
+ startups (with sources + dates), common acceptance patterns, and white space.
15
+ - `eligibility.md` — the NVIDIA Inception eligibility checklist + go/no-go gate.
16
+ - `startup-ideas/_index.md` — locked themes + a table of every 10/10 idea.
17
+ - `startup-ideas/<IdeaName>.md` — **one full file per idea** (4–10 letter name)
18
+ with problem, deep-tech solution, GPU-essential rationale, moat, market, NVIDIA
19
+ stack, eligibility fit, and an **Acceptance Chance Scorecard summing to 10/10**.
20
+
21
+ ## How it works
22
+
23
+ 1. **Crawl** NVIDIA RFS/priorities and recently funded/accepted Inception
24
+ startups (last 6–12 months), citing dated source URLs.
25
+ 2. **Lock eligibility** (incorporated, <10yr, ≥1 dev, website, business email, AI
26
+ product, no excluded categories).
27
+ 3. **Invent 3–6 ideas** at the intersection of a hot RFS theme and a recently
28
+ funded analog, attacking distinct white space — each scored to **10/10
29
+ acceptance** or redesigned/dropped.
30
+
31
+ ## Sibling skills
32
+
33
+ Found the idea here → elevate with `nvidia-inception-idea-booster` → score with
34
+ `nvidia-inception-starter` → turn into products with `nvidia-product-inventor`.
35
+
36
+ See `SKILL.md` for the full method, output templates, and the 10/10 gate.