@orbweva/academy 0.2.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/CHANGELOG.md +40 -0
- package/CONTRIBUTING.md +77 -0
- package/LICENSE +43 -0
- package/LICENSE-DOCS +35 -0
- package/README.ja-JP.md +156 -0
- package/README.ko-KR.md +156 -0
- package/README.md +158 -0
- package/SECURITY.md +34 -0
- package/bin/install.js +8 -0
- package/docs/CLI-TOOLS.md +232 -0
- package/docs/MCP-SERVERS.md +116 -0
- package/docs/PACKS.md +136 -0
- package/docs/TRACKS.md +141 -0
- package/docs/TROUBLESHOOTING.md +108 -0
- package/docs/USER-GUIDE.md +188 -0
- package/docs/manual-update.md +88 -0
- package/manifest.json +78 -0
- package/package.json +37 -0
- package/src/banner.js +13 -0
- package/src/cli-tools.js +68 -0
- package/src/cli.js +207 -0
- package/src/color.js +13 -0
- package/src/exec.js +36 -0
- package/src/install.js +74 -0
- package/src/mcp.js +28 -0
- package/src/os.js +7 -0
- package/src/prompts.js +31 -0
package/SECURITY.md
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Reporting a vulnerability
|
|
4
|
+
|
|
5
|
+
Email **security@orbweva.com** with subject `[academy] <short summary>`. Please **do not** open a public GitHub issue.
|
|
6
|
+
|
|
7
|
+
We aim to acknowledge within 72 hours.
|
|
8
|
+
|
|
9
|
+
## What this installer does (threat model)
|
|
10
|
+
|
|
11
|
+
`@orbweva/academy` performs a narrow set of operations on your machine:
|
|
12
|
+
|
|
13
|
+
1. **Shells out to `git`** to shallow-clone public GitHub repos under `https://github.com/ORBWEVA/*` into a temp directory.
|
|
14
|
+
2. **Reads files from the cloned temp dirs** and copies `skills/<name>/` folders into either `~/.claude/skills/` (global) or `./.claude/skills/` (project-local).
|
|
15
|
+
3. **Prints suggested shell commands** for CLI tool installs (`brew`, `winget`, `scoop`, `npm -g`) and MCP server setup (`claude mcp add …`). **These are not executed automatically** — you must copy/paste them.
|
|
16
|
+
4. **Removes the temp directory** after copying.
|
|
17
|
+
|
|
18
|
+
It does not: write to `~/.claude.json`, edit shell dotfiles, run arbitrary commands from any repo, reach any server besides GitHub, or transmit telemetry.
|
|
19
|
+
|
|
20
|
+
## Trust boundaries
|
|
21
|
+
|
|
22
|
+
- **Source of skills** — only repos listed in `manifest.json` under the `ORBWEVA/*` namespace. A malicious PR attempting to add a third-party repo must pass review.
|
|
23
|
+
- **Runtime dependencies** — none (beyond Node 18+ and system `git`). Zero `node_modules`.
|
|
24
|
+
- **`npx` trust** — running `npx @orbweva/academy` executes arbitrary npm-published code. Audit the published version by running `npm view @orbweva/academy` before installing, or `git clone` this repo and run `node bin/install.js` directly.
|
|
25
|
+
|
|
26
|
+
## Disclosure timeline
|
|
27
|
+
|
|
28
|
+
We follow coordinated disclosure:
|
|
29
|
+
|
|
30
|
+
1. Reporter emails security@orbweva.com.
|
|
31
|
+
2. We triage within 72 hours.
|
|
32
|
+
3. Fix developed privately; release candidate shared with reporter.
|
|
33
|
+
4. Patch released + CVE filed if applicable.
|
|
34
|
+
5. Public advisory 7–30 days after patch release, depending on severity.
|
package/bin/install.js
ADDED
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
# CLI Tools Reference
|
|
2
|
+
|
|
3
|
+
The `@orbweva/academy` installer prints platform-specific CLI install commands at the end of every run. This doc is the expanded version with every gotcha.
|
|
4
|
+
|
|
5
|
+
**The installer never executes these for you.** Copy and run them yourself.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## macOS
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Node version manager + GitHub CLI + Supabase CLI
|
|
13
|
+
brew install fnm gh supabase/tap/supabase
|
|
14
|
+
|
|
15
|
+
# Switch to LTS Node
|
|
16
|
+
fnm install --lts
|
|
17
|
+
fnm default lts-latest
|
|
18
|
+
|
|
19
|
+
# Package managers
|
|
20
|
+
npm install -g pnpm vercel
|
|
21
|
+
|
|
22
|
+
# Sign in to GitHub
|
|
23
|
+
gh auth login
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
That's the whole thing. Total time: ~5 min on a reasonable connection.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Windows
|
|
31
|
+
|
|
32
|
+
Windows has three gotchas that will each cost you 30 minutes if you don't know them. Read these before running anything:
|
|
33
|
+
|
|
34
|
+
### Gotcha 1: You need TWO PowerShell windows at the same time
|
|
35
|
+
|
|
36
|
+
| Window | How to open | What it's for |
|
|
37
|
+
|---|---|---|
|
|
38
|
+
| **Admin PowerShell** | Start → type `powershell` → right-click **Windows PowerShell** → **Run as administrator** | `winget install` commands *only* |
|
|
39
|
+
| **Regular PowerShell** | Start → type `powershell` → left-click | `scoop`, `npm install -g`, `gh auth login`, `claude`, day-to-day work |
|
|
40
|
+
|
|
41
|
+
**Why:** `winget` needs admin. `scoop` *refuses* to install as admin (it'll print `Running the installer as administrator is disabled by default`).
|
|
42
|
+
|
|
43
|
+
Keep both open — you'll use admin for ~2 minutes, then close it.
|
|
44
|
+
|
|
45
|
+
### Gotcha 2: New CLIs don't work until PATH refreshes
|
|
46
|
+
|
|
47
|
+
After any `winget install` or `scoop install`, the current window has a stale PATH. If you run `gh --version` right after installing gh and see `gh : The term 'gh' is not recognized`, the install worked — PATH just hasn't refreshed.
|
|
48
|
+
|
|
49
|
+
**Fix (one-liner):**
|
|
50
|
+
|
|
51
|
+
```powershell
|
|
52
|
+
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
(Or just close and reopen the window.)
|
|
56
|
+
|
|
57
|
+
You'll use this a few times. Keep it handy.
|
|
58
|
+
|
|
59
|
+
### Gotcha 3: `EBADENGINE` warnings on `npm install -g` are harmless
|
|
60
|
+
|
|
61
|
+
If you have Node v25 (or any odd-numbered / non-LTS version), `pnpm` and `vercel` will print:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
npm WARN EBADENGINE Unsupported engine
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
They still install and work fine — pnpm/vercel haven't declared support for experimental Node versions. **Ignore the warning.** Step 2 below switches you to LTS Node anyway, which makes them disappear.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
### Step 1 — In Admin PowerShell, install winget tools
|
|
72
|
+
|
|
73
|
+
```powershell
|
|
74
|
+
winget install Schniz.fnm
|
|
75
|
+
winget install GitHub.cli
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Refresh PATH in the admin window:
|
|
79
|
+
|
|
80
|
+
```powershell
|
|
81
|
+
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
|
|
82
|
+
fnm --version
|
|
83
|
+
gh --version
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Both should print version numbers. **You can close Admin PowerShell now** — everything else runs in regular PowerShell.
|
|
87
|
+
|
|
88
|
+
### Step 2 — In regular PowerShell, install Node LTS
|
|
89
|
+
|
|
90
|
+
```powershell
|
|
91
|
+
fnm install --lts
|
|
92
|
+
fnm default lts-latest
|
|
93
|
+
node --version
|
|
94
|
+
npm --version
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
`node --version` should show **v22.x** (the current LTS).
|
|
98
|
+
|
|
99
|
+
> If you see a higher number like v25, that's a stray Node install from nodejs.org. It'll still work for the ORBWEVA curriculum, but every `npm install` will print `EBADENGINE` warnings. Clean up: Windows Settings → "Apps & features" → search "Node" → uninstall, then reopen PowerShell.
|
|
100
|
+
|
|
101
|
+
### Step 3 — Install Scoop (for Supabase CLI)
|
|
102
|
+
|
|
103
|
+
Scoop **must** be installed in regular (non-admin) PowerShell.
|
|
104
|
+
|
|
105
|
+
```powershell
|
|
106
|
+
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Press **Y** and Enter if prompted.
|
|
110
|
+
|
|
111
|
+
```powershell
|
|
112
|
+
irm get.scoop.sh | iex
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Wait ~20 seconds until you see `Scoop was installed successfully!`. Refresh PATH:
|
|
116
|
+
|
|
117
|
+
```powershell
|
|
118
|
+
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
|
|
119
|
+
scoop --version
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Step 4 — Install the remaining CLIs
|
|
123
|
+
|
|
124
|
+
```powershell
|
|
125
|
+
# Supabase CLI (via scoop)
|
|
126
|
+
scoop install supabase
|
|
127
|
+
|
|
128
|
+
# pnpm — fast package manager, cross-platform via npm
|
|
129
|
+
npm install -g pnpm
|
|
130
|
+
|
|
131
|
+
# Vercel CLI — deploy and manage from terminal
|
|
132
|
+
npm install -g vercel
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Verify:
|
|
136
|
+
|
|
137
|
+
```powershell
|
|
138
|
+
supabase --version
|
|
139
|
+
pnpm --version
|
|
140
|
+
vercel --version
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Step 5 — Log in to GitHub
|
|
144
|
+
|
|
145
|
+
```powershell
|
|
146
|
+
gh auth login
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
You'll be asked four questions. Answers in order:
|
|
150
|
+
|
|
151
|
+
1. **"Where do you use GitHub?"** → **GitHub.com** (Enter)
|
|
152
|
+
2. **"Preferred protocol for Git operations?"** → **HTTPS** (Enter)
|
|
153
|
+
*Why HTTPS, not SSH: no key management, works through any firewall, `gh` handles credentials via Windows Credential Manager.*
|
|
154
|
+
3. **"Authenticate Git with your GitHub credentials?"** → **Y** (Enter)
|
|
155
|
+
*This wires `git push` / `git pull` to reuse your gh token. Skip this and you'll be typing usernames and passwords forever.*
|
|
156
|
+
4. **"How would you like to authenticate GitHub CLI?"** → **Login with a web browser** (Enter)
|
|
157
|
+
|
|
158
|
+
PowerShell then prints something like:
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
! First copy your one-time code: ABCD-1234
|
|
162
|
+
Press Enter to open https://github.com/login/device in your browser...
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
> **⚠ The 8-character code is in your PowerShell window, NOT the browser.** First-timers always miss this. Copy it (or write it down), *then* press Enter. The browser opens a page with 8 boxes — paste the code, click **Continue**, sign in to GitHub if asked, click **Authorize GitHub CLI**. The browser says "Congratulations", and PowerShell shows `✓ Authentication complete.`
|
|
166
|
+
|
|
167
|
+
Verify:
|
|
168
|
+
|
|
169
|
+
```powershell
|
|
170
|
+
gh auth status
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Step 6 — Sanity check
|
|
174
|
+
|
|
175
|
+
```powershell
|
|
176
|
+
fnm --version
|
|
177
|
+
node --version
|
|
178
|
+
npm --version
|
|
179
|
+
pnpm --version
|
|
180
|
+
vercel --version
|
|
181
|
+
gh --version
|
|
182
|
+
supabase --version
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
All seven should return version numbers.
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Linux
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
# Node version manager
|
|
193
|
+
curl -fsSL https://fnm.vercel.app/install | bash
|
|
194
|
+
fnm install --lts
|
|
195
|
+
fnm default lts-latest
|
|
196
|
+
|
|
197
|
+
# GitHub CLI — varies by distro
|
|
198
|
+
sudo apt install gh # Debian/Ubuntu
|
|
199
|
+
# or: brew install gh (if you use Homebrew on Linux)
|
|
200
|
+
|
|
201
|
+
# Package managers
|
|
202
|
+
npm install -g pnpm vercel
|
|
203
|
+
|
|
204
|
+
# Supabase CLI — see https://supabase.com/docs/guides/local-development/cli/getting-started
|
|
205
|
+
|
|
206
|
+
# Sign in to GitHub
|
|
207
|
+
gh auth login
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Phase 2 tools (install later, not now)
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
# Stripe CLI — for testing webhooks locally (Week 8 of the Accelerator)
|
|
216
|
+
# macOS
|
|
217
|
+
brew install stripe/stripe-cli/stripe
|
|
218
|
+
# Windows
|
|
219
|
+
scoop install stripe
|
|
220
|
+
# Linux — see https://docs.stripe.com/stripe-cli#install
|
|
221
|
+
|
|
222
|
+
# ngrok — expose localhost for webhook testing (Week 6)
|
|
223
|
+
# macOS
|
|
224
|
+
brew install ngrok
|
|
225
|
+
# Windows
|
|
226
|
+
winget install Ngrok.Ngrok
|
|
227
|
+
|
|
228
|
+
# Playwright — browser testing (Week 6). Runs in any project folder
|
|
229
|
+
npm install -D @playwright/test
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
For the full list of CLIs, MCPs, and IDE extensions at each phase, see the **[ORBWEVA Accelerator Skills Reference](https://orbweva.com/en/accelerator/skills)**.
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# MCP Servers
|
|
2
|
+
|
|
3
|
+
After the installer prints the CLI tools section, it prints a list of MCP (Model Context Protocol) servers to wire into Claude Code. This doc covers what each one does and how to configure it.
|
|
4
|
+
|
|
5
|
+
**The installer prints `claude mcp add ...` commands — it doesn't run them.** Copy and run them yourself, after setting any required environment variables.
|
|
6
|
+
|
|
7
|
+
## What MCP is
|
|
8
|
+
|
|
9
|
+
MCP lets Claude Code talk directly to external services (Supabase, GitHub, Playwright, your filesystem) without leaving the session. Instead of Claude telling you to "open a new terminal and run X", Claude just calls the tool.
|
|
10
|
+
|
|
11
|
+
Full docs: https://docs.claude.com/en/docs/claude-code/mcp
|
|
12
|
+
|
|
13
|
+
## Recommended servers
|
|
14
|
+
|
|
15
|
+
### `supabase`
|
|
16
|
+
|
|
17
|
+
Required for: `accelerator`, `mentoring`, `founder`, any track that builds web apps.
|
|
18
|
+
|
|
19
|
+
**What it does:** Query your Supabase databases, run migrations, deploy edge functions, read logs.
|
|
20
|
+
|
|
21
|
+
**Setup:**
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# 1. Get your Supabase access token from https://supabase.com/dashboard/account/tokens
|
|
25
|
+
export SUPABASE_ACCESS_TOKEN=sbp_...
|
|
26
|
+
|
|
27
|
+
# 2. Add to Claude Code
|
|
28
|
+
claude mcp add supabase npx -y @supabase/mcp-server-supabase
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
On Windows PowerShell, use `$env:SUPABASE_ACCESS_TOKEN = "sbp_..."` instead of `export`.
|
|
32
|
+
|
|
33
|
+
### `context7`
|
|
34
|
+
|
|
35
|
+
Required for all tracks — heavily used by skills for fetching current library docs.
|
|
36
|
+
|
|
37
|
+
**What it does:** Fetches up-to-date documentation for libraries, frameworks, SDKs (React, Next.js, Prisma, etc.) so Claude doesn't rely on training-data-era knowledge.
|
|
38
|
+
|
|
39
|
+
**Setup:**
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
claude mcp add context7 npx -y @upstash/context7-mcp
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
No API key required.
|
|
46
|
+
|
|
47
|
+
### `playwright`
|
|
48
|
+
|
|
49
|
+
Optional. Required if you're doing web app testing (Week 6 of Accelerator).
|
|
50
|
+
|
|
51
|
+
**What it does:** Browser automation — take screenshots, run E2E tests, inspect rendered pages.
|
|
52
|
+
|
|
53
|
+
**Setup:**
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
claude mcp add playwright npx -y @playwright/mcp
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
No API key required.
|
|
60
|
+
|
|
61
|
+
### `memory`
|
|
62
|
+
|
|
63
|
+
Optional. Useful for long-running projects with persistent knowledge graphs.
|
|
64
|
+
|
|
65
|
+
**What it does:** Stores entities + relations across sessions. Used by some skills for retaining project context.
|
|
66
|
+
|
|
67
|
+
**Setup:**
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
claude mcp add memory npx -y @modelcontextprotocol/server-memory
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
No API key required.
|
|
74
|
+
|
|
75
|
+
## Per-track recommendations
|
|
76
|
+
|
|
77
|
+
| Track | Recommended MCPs |
|
|
78
|
+
|---|---|
|
|
79
|
+
| `accelerator` | supabase, context7, playwright, memory |
|
|
80
|
+
| `course` | context7 (others optional) |
|
|
81
|
+
| `mentoring` | supabase, context7, memory |
|
|
82
|
+
| `founder` | context7 (supabase if client builds on it) |
|
|
83
|
+
| `full` | all four |
|
|
84
|
+
|
|
85
|
+
## Adding more MCPs
|
|
86
|
+
|
|
87
|
+
MCP servers not listed here that are useful at various points:
|
|
88
|
+
|
|
89
|
+
- **GitHub MCP** — repo/PR/issue operations (`@modelcontextprotocol/server-github`)
|
|
90
|
+
- **Stripe MCP** — billing integration work (`@stripe/mcp`)
|
|
91
|
+
- **Figma MCP** — design-to-code workflows (`figma-developer-mcp`)
|
|
92
|
+
- **n8n MCP** — workflow automation integration
|
|
93
|
+
|
|
94
|
+
See the [ORBWEVA Accelerator Skills Reference](https://orbweva.com/en/accelerator/skills) for the full list of MCPs used in the curriculum.
|
|
95
|
+
|
|
96
|
+
## Verifying your MCP setup
|
|
97
|
+
|
|
98
|
+
In Claude Code:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
/mcp
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Lists all registered MCP servers and their connection status.
|
|
105
|
+
|
|
106
|
+
If a server shows as disconnected, check:
|
|
107
|
+
|
|
108
|
+
1. The command in `claude mcp list` matches the docs (no typos).
|
|
109
|
+
2. Required env vars are set in the shell where you started Claude Code.
|
|
110
|
+
3. The npm package exists — `npm view <package-name>` should succeed.
|
|
111
|
+
|
|
112
|
+
## Removing an MCP server
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
claude mcp remove <name>
|
|
116
|
+
```
|
package/docs/PACKS.md
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Specialization Packs
|
|
2
|
+
|
|
3
|
+
Packs are **stackable add-ons** to tracks. They layer vertical-specific skills on top of any base track so a student building a marketing agency gets the same founder foundation as a student building a web-video studio — plus their specialization.
|
|
4
|
+
|
|
5
|
+
## How packs compose
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
final skill set = track.required
|
|
9
|
+
∪ track.optional (the ones you approve)
|
|
10
|
+
∪ pack1.required
|
|
11
|
+
∪ pack1.optional (approved)
|
|
12
|
+
∪ pack2 ...
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Shared repos are **deduped automatically**. If both the track and a pack reference `gtm-skills`, it's installed once.
|
|
16
|
+
|
|
17
|
+
You can stack any number of packs:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npx @orbweva/academy@latest --track accelerator --pack marketing --pack web-video
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Available packs
|
|
24
|
+
|
|
25
|
+
> **Status note**: The three packs below are defined in `manifest.json` with `status: "planned"`. Their GitHub repos haven't been published yet, so the installer warns and skips them gracefully. They'll work automatically once the repos go live.
|
|
26
|
+
|
|
27
|
+
### `loka`
|
|
28
|
+
|
|
29
|
+
**For:** Founders building a business on the Loka living-textbook + LoLA avatar platform. Example user: Kyubin Park (Kora Lingo).
|
|
30
|
+
|
|
31
|
+
**Required repo:** `ORBWEVA/loka-pack` → skill `loka-integration`
|
|
32
|
+
|
|
33
|
+
Content covers Loka API integration, LoLA avatar configuration, living-textbook content management, Hooks/webhook patterns, persistent learner profiles.
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npx @orbweva/academy@latest --track accelerator --pack loka
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
### `marketing`
|
|
42
|
+
|
|
43
|
+
**For:** Solo operators or small-team marketing agencies. Content marketing, SEO, brand work, client delivery.
|
|
44
|
+
|
|
45
|
+
**Required repo:** `ORBWEVA/marketing-pack` → skill `marketing-agency`
|
|
46
|
+
**Optional (inherited):** `solo`, `agents`
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npx @orbweva/academy@latest --track accelerator --pack marketing
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
### `web-video`
|
|
55
|
+
|
|
56
|
+
**For:** Design studios delivering web design + video editing as a service.
|
|
57
|
+
|
|
58
|
+
**Required repo:** `ORBWEVA/web-video-pack` → skills `web-design`, `video-editing`
|
|
59
|
+
**Optional (inherited):** `solo`
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
npx @orbweva/academy@latest --track accelerator --pack web-video
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Adding a new pack
|
|
68
|
+
|
|
69
|
+
The pack system is designed so new verticals can be added without touching code. Everything lives in `manifest.json`.
|
|
70
|
+
|
|
71
|
+
### Step 1 — Add the skill repo
|
|
72
|
+
|
|
73
|
+
If the pack has its own repo:
|
|
74
|
+
|
|
75
|
+
```json
|
|
76
|
+
{
|
|
77
|
+
"skillRepos": {
|
|
78
|
+
...
|
|
79
|
+
"my-pack": {
|
|
80
|
+
"repo": "ORBWEVA/my-pack",
|
|
81
|
+
"skills": ["my-skill-name"]
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
If the repo doesn't exist yet, add `"status": "planned"` so the installer skips it gracefully:
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
"my-pack": {
|
|
91
|
+
"repo": "ORBWEVA/my-pack",
|
|
92
|
+
"skills": ["my-skill-name"],
|
|
93
|
+
"status": "planned"
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Step 2 — Define the pack
|
|
98
|
+
|
|
99
|
+
```json
|
|
100
|
+
{
|
|
101
|
+
"packs": {
|
|
102
|
+
...
|
|
103
|
+
"my-pack-key": {
|
|
104
|
+
"label": "My Pack",
|
|
105
|
+
"tagline": "One-line description for the menu",
|
|
106
|
+
"required": ["my-pack"],
|
|
107
|
+
"optional": ["solo-skills"]
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
`required` and `optional` reference **repo keys** (from `skillRepos`), not skill names.
|
|
114
|
+
|
|
115
|
+
### Step 3 — Verify
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
node bin/install.js --help
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Your new pack should appear in the help listing.
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
node bin/install.js --track accelerator --pack my-pack-key --dry-run --yes --global
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Step 4 — Update the CHANGELOG
|
|
128
|
+
|
|
129
|
+
Add an entry under `[Unreleased]`.
|
|
130
|
+
|
|
131
|
+
## When to use a pack vs. a new track
|
|
132
|
+
|
|
133
|
+
- **New track** — the audience uses a *different base program*. Founder base for Leanne's clients is a track because the engagement model is different from the Accelerator.
|
|
134
|
+
- **New pack** — the audience uses the *same base program* but needs vertical-specific skills on top. A marketing founder running through the Accelerator needs the Accelerator skills *and* marketing-specific ones.
|
|
135
|
+
|
|
136
|
+
In most cases: **pack**. Tracks change rarely.
|
package/docs/TRACKS.md
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Tracks
|
|
2
|
+
|
|
3
|
+
A **track** is a base program — one per install. Pick the one that matches how you're engaging with ORBWEVA.
|
|
4
|
+
|
|
5
|
+
## Track summary
|
|
6
|
+
|
|
7
|
+
| Track | For | Skills | Typical duration |
|
|
8
|
+
|---|---|---|---|
|
|
9
|
+
| [`accelerator`](#accelerator) | 12-week cohort — zero-to-one founders | 15 | 12 weeks |
|
|
10
|
+
| [`course`](#course) | Self-paced founder fundamentals | 9 | ~8 weeks |
|
|
11
|
+
| [`mentoring`](#mentoring) | 1:1 operator support for existing businesses | 13 | Ongoing |
|
|
12
|
+
| [`founder`](#founder) | Partner-delivered lean base | 10 | Varies |
|
|
13
|
+
| [`full`](#full) | Everything — no tradeoffs | 15 | — |
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Accelerator
|
|
18
|
+
|
|
19
|
+
**Who:** Founders going zero-to-one with direct mentor access from Ryan Ahamer.
|
|
20
|
+
**Format:** 12-week cohort, daily meetings, fortnightly reviews, graduation criteria at week 12.
|
|
21
|
+
**Cost:** $2,500–$5,000 one-time (no equity).
|
|
22
|
+
|
|
23
|
+
### Skills (15)
|
|
24
|
+
|
|
25
|
+
**Required (7 repos, 9 skills):**
|
|
26
|
+
- `secure-setup` — git-ignore rules, credential hygiene
|
|
27
|
+
- `core` — ORBWEVA CORE Method (/core:assess, /core:arc, /core:aer, /core:grow)
|
|
28
|
+
- `resume` — `/resume` for session continuity
|
|
29
|
+
- `discovery` — customer discovery, Mom Test interviews, JTBD
|
|
30
|
+
- `design-thinking` — 5-stage design thinking exercises
|
|
31
|
+
- `startup-metrics` — PMF, unit economics, churn, runway
|
|
32
|
+
- `geo`, `gtm-launch`, `seo-toolkit` — all three from gtm-skills
|
|
33
|
+
|
|
34
|
+
**Optional (4 repos, 6 skills):**
|
|
35
|
+
- `pitch` — investor outreach, deck, financials
|
|
36
|
+
- `hiring`, `legal-essentials`, `retention` — from founder-ops
|
|
37
|
+
- `solo` — solopreneur toolkit
|
|
38
|
+
- `agents` — AI agent design recipes
|
|
39
|
+
|
|
40
|
+
### Command
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npx @orbweva/academy@latest --track accelerator
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Related
|
|
47
|
+
|
|
48
|
+
- [ORBWEVA Accelerator Curriculum](https://github.com/ORBWEVA/accelerator-template) — 12-week week-by-week program guide
|
|
49
|
+
- [Graduation Criteria](https://github.com/ORBWEVA/accelerator-template/blob/main/docs/GRADUATION_CRITERIA.md)
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Course
|
|
54
|
+
|
|
55
|
+
**Who:** Self-paced learners who want the foundational skills without the cohort commitment.
|
|
56
|
+
**Format:** No cohort, no meetings. Ryan is unavailable for direct support; community-only.
|
|
57
|
+
**Cost:** $497–$997 one-time.
|
|
58
|
+
|
|
59
|
+
### Skills (9)
|
|
60
|
+
|
|
61
|
+
**Required (5 repos, 5 skills):** `secure-setup`, `core`, `resume`, `discovery`, `design-thinking`
|
|
62
|
+
|
|
63
|
+
**Optional (2 repos, 4 skills):** `startup-metrics`, `geo`, `gtm-launch`, `seo-toolkit`
|
|
64
|
+
|
|
65
|
+
### Command
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
npx @orbweva/academy@latest --track course
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Mentoring
|
|
74
|
+
|
|
75
|
+
**Who:** Operators of existing businesses (not zero-to-one) who want 1:1 strategic support.
|
|
76
|
+
**Format:** Weekly or biweekly 1:1s, quarterly CORE reviews.
|
|
77
|
+
**Cost:** $1,500–$3,500 per month.
|
|
78
|
+
|
|
79
|
+
### Skills (13)
|
|
80
|
+
|
|
81
|
+
**Required (5 repos, 7 skills):**
|
|
82
|
+
- `secure-setup`, `core`, `resume`
|
|
83
|
+
- `startup-metrics`
|
|
84
|
+
- `hiring`, `legal-essentials`, `retention` (all three from `founder-ops`)
|
|
85
|
+
|
|
86
|
+
**Optional (4 repos, 6 skills):** `pitch`, `geo`, `gtm-launch`, `seo-toolkit`, `solo`, `agents`
|
|
87
|
+
|
|
88
|
+
### Command
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
npx @orbweva/academy@latest --track mentoring
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Founder
|
|
97
|
+
|
|
98
|
+
**Who:** Clients of partners who resell an ORBWEVA-powered founder base (e.g. Leanne Knowles / Headswitch clients).
|
|
99
|
+
**Format:** Delivered by the partner; ORBWEVA provides skills + occasional escalation.
|
|
100
|
+
**Cost:** Set by the partner.
|
|
101
|
+
|
|
102
|
+
### Skills (10)
|
|
103
|
+
|
|
104
|
+
**Required (5 repos, 5 skills):** `secure-setup`, `core`, `resume`, `discovery`, `design-thinking`
|
|
105
|
+
|
|
106
|
+
**Optional (3 repos, 5 skills):** `startup-metrics`, `pitch`, `geo`, `gtm-launch`, `seo-toolkit`
|
|
107
|
+
|
|
108
|
+
Notably excludes `founder-ops` (hiring/legal/retention — partner handles those), `solo`, and `agents`. Leaner than Accelerator.
|
|
109
|
+
|
|
110
|
+
### Command
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
npx @orbweva/academy@latest --track founder
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Who uses this track
|
|
117
|
+
|
|
118
|
+
Partners who want a consistent ORBWEVA foundation across their client base without the 12-week cohort structure. Example: Headswitch running its own coaching methodology on top of the ORBWEVA CORE method.
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Full
|
|
123
|
+
|
|
124
|
+
**Who:** ORBWEVA staff, contributors, power users, curious explorers.
|
|
125
|
+
**Format:** Everything, no tradeoffs.
|
|
126
|
+
|
|
127
|
+
### Skills (15)
|
|
128
|
+
|
|
129
|
+
All 11 public ORBWEVA skill repos, all 15 skills.
|
|
130
|
+
|
|
131
|
+
### Command
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
npx @orbweva/academy@latest --track full --yes --global
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Adding a new track
|
|
140
|
+
|
|
141
|
+
See [CONTRIBUTING.md](../CONTRIBUTING.md). In short: add an entry under `tracks` in `manifest.json`. No code changes needed.
|