app-growth-design 1.0.0 → 1.0.2

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 CHANGED
@@ -1,11 +1,14 @@
1
1
  # app-growth-design
2
2
 
3
+ [![npm](https://img.shields.io/npm/v/app-growth-design)](https://www.npmjs.com/package/app-growth-design)
4
+ [![license](https://img.shields.io/npm/l/app-growth-design)](LICENSE)
5
+
3
6
  A Claude Code skill for the decisions that actually move an app: **onboarding, paywalls, pricing, retention, gamification, growth loops and screen-level craft.**
4
7
 
5
8
  It is not another "be a helpful product expert" prompt. It is a knowledge base — 5.7 hours of teardowns from [Tim Gabe's YouTube channel](https://www.youtube.com/@TimGabe) compressed into six playbooks where every non-obvious claim carries a `[NN]` marker back to the video it came from, and every case study keeps its numbers.
6
9
 
7
10
  ```bash
8
- npx github:bixxter/app-growth-design
11
+ npx app-growth-design
9
12
  ```
10
13
 
11
14
  That's it. Pick user-wide or project-only, restart Claude Code, and the skill loads itself whenever you're working on one of those problems.
@@ -41,18 +44,21 @@ Same for the rest:
41
44
 
42
45
  ```bash
43
46
  # interactive — asks user-wide or project-only
44
- npx github:bixxter/app-growth-design
47
+ npx app-growth-design
45
48
 
46
49
  # non-interactive
47
- npx github:bixxter/app-growth-design --user # ~/.claude/skills/app-growth-design
48
- npx github:bixxter/app-growth-design --project # ./.claude/skills/app-growth-design
49
- npx github:bixxter/app-growth-design --dir ~/some/skills
50
+ npx app-growth-design --user # ~/.claude/skills/app-growth-design
51
+ npx app-growth-design --project # ./.claude/skills/app-growth-design
52
+ npx app-growth-design --dir ~/some/skills
50
53
 
51
54
  # later
52
- npx github:bixxter/app-growth-design --force # update in place
53
- npx github:bixxter/app-growth-design --uninstall
55
+ npx app-growth-design --force # update in place
56
+ npx app-growth-design --uninstall
54
57
  ```
55
58
 
59
+ Straight from the repo works too, if you'd rather skip the registry:
60
+ `npx github:bixxter/app-growth-design`
61
+
56
62
  Node 18+. No dependencies — the installer is one file that copies `skill/` into your skills directory and nothing else.
57
63
 
58
64
  Prefer to do it by hand? `cp -r skill ~/.claude/skills/app-growth-design`. It works in anything that reads the [Agent Skills](https://code.claude.com/docs/en/skills) format.
@@ -67,34 +73,13 @@ The problem with turning a YouTube channel into agent knowledge is that the naiv
67
73
 
68
74
  So the pipeline is built around one idea: **the frames are not decoration, they are the missing half of the content.**
69
75
 
70
- ```
71
- 30 videos (5.7 h)
72
-
73
- 1 ──┤ yt-dlp: captions only, 6-wide → 2.6 MB VTT / 220,498 words
74
-
75
- 2 ──┤ dedupe rolling captions, regroup → 49,629 words, ~30s blocks
76
- │ into ~30s timestamped blocks (4.4× smaller, addressable)
77
-
78
- 3 ──┤ yt-dlp: 480p video, 3-wide → 510 MB, deleted after stage 4
79
-
80
- 4 ──┤ ONE AGENT PER VIDEO, in parallel: → 30 notes / 118,660 words
81
- │ read transcript → find the moments 1,161 frames extracted
82
- │ where meaning is on screen, not in 476 described in-line
83
- │ the audio → ffmpeg those timestamps
84
- │ → actually LOOK at the frames →
85
- │ write a structured note
86
- │ ↓
87
- │ second agent re-reads each note against the transcript and
88
- │ fixes what's missing — unresolved "this screen", dropped numbers,
89
- │ verbatim bloat, vague filler rules
90
-
91
- 5 ──┤ SIX AGENTS, one per theme, each → 6 playbooks / 55,241 words
92
- │ reading across all 30 notes: + SKILL.md router (2,378 words)
93
- │ merge, resolve contradictions,
94
- │ keep every number and product name
95
- ```
76
+ <!-- generated — edit docs/diagrams.mjs and run `node docs/diagrams.mjs`, don't hand-edit the SVG -->
77
+ <picture>
78
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/bixxter/app-growth-design/main/docs/flow-dark.svg">
79
+ <img alt="Two streams enter: captions, deduped from 220,498 to 49,629 words, and 510 MB of 480p video. Both feed an enrich agent that runs once per video — read the transcript, find where meaning is on screen, cut those frames and look at them, write a structured note — followed by a verify agent. Out come 30 notes, 118,660 words and 1,161 frames, which six theme agents turn into six playbooks and a SKILL.md router." src="https://raw.githubusercontent.com/bixxter/app-growth-design/main/docs/flow-light.svg">
80
+ </picture>
96
81
 
97
- Note what happens to the word count at stage 4: the notes come out **more than twice the size of the speech**. That's the whole point — 1,161 screenshots put back what the captions lost.
82
+ Note what happens to the word count in the middle: the notes come out **more than twice the size of the speech**. That's the whole point — 1,161 screenshots put back what the captions lost.
98
83
 
99
84
  Three details that turned out to matter more than expected:
100
85
 
package/bin/install.mjs CHANGED
@@ -23,9 +23,9 @@ const red = s => c('31', s)
23
23
  const HELP = `
24
24
  ${bold('app-growth-design')} — install the skill into Claude Code
25
25
 
26
- ${cyan('npx github:bixxter/app-growth-design')} pick a target interactively
27
- ${cyan('npx github:bixxter/app-growth-design --user')} ~/.claude/skills/${SKILL}
28
- ${cyan('npx github:bixxter/app-growth-design --project')} ./.claude/skills/${SKILL}
26
+ ${cyan('npx app-growth-design')} pick a target interactively
27
+ ${cyan('npx app-growth-design --user')} ~/.claude/skills/${SKILL}
28
+ ${cyan('npx app-growth-design --project')} ./.claude/skills/${SKILL}
29
29
 
30
30
  Options
31
31
  --user, --global install for every project on this machine (default)
@@ -130,7 +130,7 @@ async function main() {
130
130
  ${cyan('"design a streak that does not backfire"')}
131
131
 
132
132
  The skill loads itself when the topic matches. To force it: ${cyan(`/${SKILL}`)}
133
- ${dim('Uninstall: npx github:bixxter/app-growth-design --uninstall')}
133
+ ${dim(`Uninstall: npx ${SKILL} --uninstall`)}
134
134
  `)
135
135
  }
136
136
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "app-growth-design",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Claude Code skill: app onboarding, paywalls, pricing, retention, gamification and growth — distilled from 30 Tim Gabe teardowns into six source-marked playbooks.",
5
5
  "type": "module",
6
6
  "bin": {