@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
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Installer Troubleshooting
|
|
2
|
+
|
|
3
|
+
Issues specific to `@orbweva/academy`. For non-installer issues (a skill works but behaves unexpectedly, an MCP server won't connect, API key problems), see the [ORBWEVA program-level troubleshooting guide](https://github.com/ORBWEVA/accelerator-template/blob/main/docs/TROUBLESHOOTING.md).
|
|
4
|
+
|
|
5
|
+
## `npx @orbweva/academy` — command not found
|
|
6
|
+
|
|
7
|
+
You probably don't have Node installed, or it's too old.
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
node --version
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
If this fails or shows v17 or lower, install Node LTS from [nodejs.org](https://nodejs.org/) or via `fnm`/`nvm`.
|
|
14
|
+
|
|
15
|
+
## `npx` hangs on first use
|
|
16
|
+
|
|
17
|
+
First-time `npx` has to download the package. On slow connections this can take 30–60 seconds before any output appears. If it's still silent after 2 minutes, try:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm cache clean --force
|
|
21
|
+
npx @orbweva/academy@latest
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## `clone failed` for one or more repos
|
|
25
|
+
|
|
26
|
+
Output shows:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
[3/11] ORBWEVA/resume-skill ... clone failed
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Causes and fixes
|
|
33
|
+
|
|
34
|
+
**Network / firewall** — corporate proxies sometimes block `github.com`. Test:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
git clone --depth 1 https://github.com/ORBWEVA/resume-skill.git /tmp/test-clone
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
If that also fails, the issue is your network, not the installer. Try via a VPN or personal hotspot.
|
|
41
|
+
|
|
42
|
+
**Rate-limited** — unauthenticated clone is subject to GitHub's IP-based limits. If you've cloned a lot in the last hour, wait 15 minutes or authenticate: `gh auth login` then re-run.
|
|
43
|
+
|
|
44
|
+
**Repo renamed / made private** — unlikely but possible. Open an issue at https://github.com/ORBWEVA/academy/issues.
|
|
45
|
+
|
|
46
|
+
## "Permission denied" writing to `~/.claude/skills`
|
|
47
|
+
|
|
48
|
+
The install path has wrong ownership. Check:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
ls -la ~/.claude/
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
If `~/.claude/` is owned by root (rare but happens when a tool was run with `sudo`), fix it:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
sudo chown -R $(whoami) ~/.claude
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Then re-run the installer.
|
|
61
|
+
|
|
62
|
+
## `Unknown skill: discovery` in Claude Code after install
|
|
63
|
+
|
|
64
|
+
The installer completed but Claude Code isn't seeing the skills.
|
|
65
|
+
|
|
66
|
+
1. **Restart Claude Code.** Skills are loaded at startup. Close and reopen.
|
|
67
|
+
2. **Confirm the install scope** — did you use `--local`? Local installs only show up when Claude Code is started *from that project directory*. Run `cd` to your project first, then `claude`.
|
|
68
|
+
3. **Check the folder** — `ls ~/.claude/skills/discovery/SKILL.md` should exist. If not, the install silently skipped that skill. Re-run:
|
|
69
|
+
```bash
|
|
70
|
+
npx @orbweva/academy@latest --track accelerator --yes --global
|
|
71
|
+
```
|
|
72
|
+
4. **Claude Code version** — very old versions of Claude Code may not autoload `~/.claude/skills/`. Update: `npm install -g @anthropic-ai/claude-code`.
|
|
73
|
+
|
|
74
|
+
## `Unknown skill: X — Create a new one?` appears when you type `/discovery`
|
|
75
|
+
|
|
76
|
+
This is Claude Code's built-in behavior when a command doesn't resolve. If you see this:
|
|
77
|
+
|
|
78
|
+
- **Press `Esc`. Don't press Enter.** Pressing Enter creates a fake skill in `~/.claude/skills/X/` that masks future installs.
|
|
79
|
+
- Check if you actually have the skill installed: `ls ~/.claude/skills/`.
|
|
80
|
+
- If the skill directory exists but Claude still says Unknown, restart Claude Code.
|
|
81
|
+
|
|
82
|
+
## "Planned" pack warnings
|
|
83
|
+
|
|
84
|
+
Output shows:
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
⚠ Some pack repos are planned but not yet published:
|
|
88
|
+
• ORBWEVA/loka-pack (loka-integration)
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
This is expected. Pack repos are listed in `manifest.json` ahead of being published so the CLI's architecture stays stable. The installer skips planned repos gracefully. Once the repo is public, re-run the installer.
|
|
92
|
+
|
|
93
|
+
## Installer crashes with a cryptic error
|
|
94
|
+
|
|
95
|
+
Set the debug env var and re-run:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
ORBWEVA_DEBUG=1 npx @orbweva/academy@latest
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
This prints a full stack trace. Include it when opening an issue at https://github.com/ORBWEVA/academy/issues.
|
|
102
|
+
|
|
103
|
+
## Still stuck?
|
|
104
|
+
|
|
105
|
+
- **Email:** support@orbweva.com
|
|
106
|
+
- **GitHub issues:** https://github.com/ORBWEVA/academy/issues
|
|
107
|
+
|
|
108
|
+
For non-installer program-level issues: https://github.com/ORBWEVA/accelerator-template/blob/main/docs/TROUBLESHOOTING.md
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# User Guide
|
|
2
|
+
|
|
3
|
+
Long-form walkthrough of the `@orbweva/academy` installer.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
Before running `npx @orbweva/academy`, you need:
|
|
8
|
+
|
|
9
|
+
| Requirement | Verify with | If missing |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| **Node.js 18+** | `node --version` | Install LTS from [nodejs.org](https://nodejs.org/), or via `fnm`/`nvm` |
|
|
12
|
+
| **git** | `git --version` | macOS: `xcode-select --install`; Windows: [git-scm.com](https://git-scm.com/download/win); Linux: `apt install git` |
|
|
13
|
+
| **Claude Code** | `claude --version` | `npm install -g @anthropic-ai/claude-code` |
|
|
14
|
+
|
|
15
|
+
That's it. The installer itself has **zero runtime dependencies** — everything else it needs, it shells out to.
|
|
16
|
+
|
|
17
|
+
## The interactive flow
|
|
18
|
+
|
|
19
|
+
Running `npx @orbweva/academy` (no flags) walks you through a short menu.
|
|
20
|
+
|
|
21
|
+
### 1. Track selection
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
Which Academy track?:
|
|
25
|
+
1) Accelerator — 12-week cohort program — zero-to-one founders
|
|
26
|
+
2) Course — Self-paced founder fundamentals
|
|
27
|
+
3) Mentoring — 1:1 operator support for existing businesses
|
|
28
|
+
4) Founder — Lean founder base — for partner-delivered programs
|
|
29
|
+
5) Full Academy — All 11 ORBWEVA skill repos — no tradeoffs
|
|
30
|
+
Choice [1-5, default 1]: _
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Press `Enter` for Accelerator, or type a number. One track per install.
|
|
34
|
+
|
|
35
|
+
### 2. Specialization packs (stackable)
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
Add specialization packs? (optional, stackable)
|
|
39
|
+
Loka / LoLA — Build a business on the Loka living-textbook + LoLA avatar platform? [y/N]
|
|
40
|
+
Marketing Agency — Run a one-person (or small team) marketing agency? [y/N]
|
|
41
|
+
Web + Video Studio — Web design + video editing studio? [y/N]
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Each prompt defaults to **N**. Answer `y` for the ones you want.
|
|
45
|
+
|
|
46
|
+
### 3. Install scope
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
Install scope:
|
|
50
|
+
1) Global — ~/.claude/skills/ (recommended, all projects)
|
|
51
|
+
2) Local — ./.claude/skills/ (current project only)
|
|
52
|
+
Choice [1-2, default 1]: _
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Global** is right for almost everyone. Use **Local** only if you want a specific project's Claude Code session to see different skills than your other projects.
|
|
56
|
+
|
|
57
|
+
### 4. Required vs optional skills
|
|
58
|
+
|
|
59
|
+
For every track, some skills are **required** (auto-installed) and some are **optional** (you're prompted).
|
|
60
|
+
|
|
61
|
+
Required = always installed for that track. Optional = `Install <skill name> [Y/n]` per skill.
|
|
62
|
+
|
|
63
|
+
### 5. Confirmation
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Ready to install: 15 skills from 11 repos → ~/.claude/skills/
|
|
67
|
+
Proceed? [Y/n] _
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Press `Enter`.
|
|
71
|
+
|
|
72
|
+
### 6. Clone + copy
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
[1/11] ORBWEVA/secure-setup ... ✓ 1 skill
|
|
76
|
+
[2/11] ORBWEVA/orbweva-method ... ✓ 1 skill
|
|
77
|
+
...
|
|
78
|
+
[11/11] ORBWEVA/solo-agents ... ✓ 1 skill
|
|
79
|
+
|
|
80
|
+
✓ Installed to /Users/you/.claude/skills
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### 7. CLI tools
|
|
84
|
+
|
|
85
|
+
The installer lists the CLI tools for your OS (brew on macOS, winget+scoop on Windows, apt on Linux) and prompts `Run now? [Y/n]` per command. Approved commands execute live in your terminal with full output; interactive commands like `gh auth login` work because child processes inherit your terminal.
|
|
86
|
+
|
|
87
|
+
Use `--yes` to auto-approve every CLI command. Use `--no-run` to print them without executing, then run them yourself. Use `--skills-only` to skip CLI + MCP entirely.
|
|
88
|
+
|
|
89
|
+
See [CLI-TOOLS.md](CLI-TOOLS.md) for per-OS detail and gotchas (Windows admin/non-admin PowerShell, EBADENGINE warnings, etc).
|
|
90
|
+
|
|
91
|
+
### 8. MCP servers
|
|
92
|
+
|
|
93
|
+
Same pattern — prompt per `claude mcp add <name> <command>`, run the approved ones. Servers needing env vars (e.g. Supabase's `SUPABASE_ACCESS_TOKEN`) register fine without the variable; you set the env var later in whatever shell you launch Claude Code from.
|
|
94
|
+
|
|
95
|
+
See [MCP-SERVERS.md](MCP-SERVERS.md) for full reference.
|
|
96
|
+
|
|
97
|
+
## Non-interactive mode
|
|
98
|
+
|
|
99
|
+
Chain `--track`, `--pack`, `--yes`, `--global` to skip every prompt:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
npx @orbweva/academy@latest --track accelerator --yes --global
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Full examples:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# Accelerator, everything, global
|
|
109
|
+
npx @orbweva/academy@latest --track accelerator --yes --global
|
|
110
|
+
|
|
111
|
+
# Accelerator + Loka, everything, global
|
|
112
|
+
npx @orbweva/academy@latest --track accelerator --pack loka --yes --global
|
|
113
|
+
|
|
114
|
+
# Stack multiple packs
|
|
115
|
+
npx @orbweva/academy@latest --track accelerator --pack marketing --pack web-video --yes --global
|
|
116
|
+
|
|
117
|
+
# Partner-delivered, project-local
|
|
118
|
+
npx @orbweva/academy@latest --track founder --yes --local
|
|
119
|
+
|
|
120
|
+
# See what would happen without touching disk
|
|
121
|
+
npx @orbweva/academy@latest --track full --dry-run --yes --global
|
|
122
|
+
|
|
123
|
+
# Skip the post-install guidance prints (for CI / scripts)
|
|
124
|
+
npx @orbweva/academy@latest --track accelerator --yes --global --skills-only
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## All flags
|
|
128
|
+
|
|
129
|
+
| Flag | Meaning |
|
|
130
|
+
|---|---|
|
|
131
|
+
| `-t, --track <name>` | Track: `accelerator`, `course`, `mentoring`, `founder`, `full` |
|
|
132
|
+
| `-p, --pack <name>` | Pack: `loka`, `marketing`, `web-video` (repeatable) |
|
|
133
|
+
| `-g, --global` | Install to `~/.claude/skills/` (all Claude Code projects) |
|
|
134
|
+
| `-l, --local` | Install to `./.claude/skills/` (this project only) |
|
|
135
|
+
| `-y, --yes` | Non-interactive: accept all defaults and install every optional skill |
|
|
136
|
+
| `--skills-only` | Skip post-install CLI / MCP guidance prints |
|
|
137
|
+
| `--dry-run` | Show the plan, touch nothing on disk |
|
|
138
|
+
| `-h, --help` | Show help + list of available tracks and packs |
|
|
139
|
+
|
|
140
|
+
## Verify your install
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
ls ~/.claude/skills/
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
You should see directories: `secure-setup/`, `core/`, `discovery/`, `design-thinking/`, `pitch/`, etc.
|
|
147
|
+
|
|
148
|
+
In Claude Code:
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
/discovery:help
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
If this prints the customer-discovery command menu, you're done.
|
|
155
|
+
|
|
156
|
+
If Claude says `Unknown skill` — see [TROUBLESHOOTING.md](TROUBLESHOOTING.md).
|
|
157
|
+
|
|
158
|
+
## Update cycle
|
|
159
|
+
|
|
160
|
+
Skills change. To refresh:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
npx @orbweva/academy@latest
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Same command. It re-clones each repo and overwrites existing `~/.claude/skills/<name>/` folders. Your per-project skills (in `./.claude/skills/`) are untouched unless you re-run with `--local`.
|
|
167
|
+
|
|
168
|
+
## What the installer does NOT do
|
|
169
|
+
|
|
170
|
+
- **Does not install Node, Git, or Claude Code.** You need those first.
|
|
171
|
+
- **Does not run the CLI-tool `brew`/`winget`/`scoop` commands.** It prints them; you copy them.
|
|
172
|
+
- **Does not run `claude mcp add` for you.** Same deal — prints, doesn't execute.
|
|
173
|
+
- **Does not edit `~/.claude.json`** (the Claude Code config). Skills are read from `~/.claude/skills/` at the filesystem level — no config changes needed.
|
|
174
|
+
- **Does not send any telemetry.**
|
|
175
|
+
|
|
176
|
+
## Uninstall
|
|
177
|
+
|
|
178
|
+
The installer doesn't provide an uninstall command. Skills are just directories — delete the ones you don't want:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
rm -rf ~/.claude/skills/discovery
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
To remove everything the installer added:
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
rm -rf ~/.claude/skills/{secure-setup,core,resume,discovery,design-thinking,startup-metrics,pitch,hiring,legal-essentials,retention,geo,gtm-launch,seo-toolkit,solo,agents}
|
|
188
|
+
```
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Manual Install / Update
|
|
2
|
+
|
|
3
|
+
If you can't run `npx @orbweva/academy` — air-gapped machine, npm blocked by corporate proxy, offline laptop — you can install the skills by hand. It's just `git clone` + copy.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
- `git`
|
|
8
|
+
- A shell (bash, zsh, or PowerShell)
|
|
9
|
+
|
|
10
|
+
## One-time setup
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
mkdir -p ~/.claude/skills
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
On Windows: `~/.claude/skills` resolves to `%USERPROFILE%\.claude\skills\`.
|
|
17
|
+
|
|
18
|
+
## Install all 11 public ORBWEVA skill repos
|
|
19
|
+
|
|
20
|
+
Paste this whole block into your shell:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
cd /tmp
|
|
24
|
+
for repo in secure-setup orbweva-method resume-skill founder-discovery dt-skill founder-metrics founder-pitch founder-ops gtm-skills solo-skills solo-agents; do
|
|
25
|
+
git clone --depth 1 "https://github.com/ORBWEVA/$repo.git" "/tmp/orbweva-$repo"
|
|
26
|
+
# Each repo may contain one or more skills under skills/
|
|
27
|
+
for skill_dir in /tmp/orbweva-$repo/skills/*/; do
|
|
28
|
+
skill_name=$(basename "$skill_dir")
|
|
29
|
+
rm -rf ~/.claude/skills/$skill_name
|
|
30
|
+
cp -r "$skill_dir" ~/.claude/skills/$skill_name
|
|
31
|
+
echo "installed: $skill_name"
|
|
32
|
+
done
|
|
33
|
+
rm -rf "/tmp/orbweva-$repo"
|
|
34
|
+
done
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
PowerShell equivalent:
|
|
38
|
+
|
|
39
|
+
```powershell
|
|
40
|
+
cd $env:TEMP
|
|
41
|
+
$repos = @('secure-setup','orbweva-method','resume-skill','founder-discovery','dt-skill','founder-metrics','founder-pitch','founder-ops','gtm-skills','solo-skills','solo-agents')
|
|
42
|
+
foreach ($repo in $repos) {
|
|
43
|
+
git clone --depth 1 "https://github.com/ORBWEVA/$repo.git" "$env:TEMP\orbweva-$repo"
|
|
44
|
+
Get-ChildItem "$env:TEMP\orbweva-$repo\skills" -Directory | ForEach-Object {
|
|
45
|
+
$dst = "$env:USERPROFILE\.claude\skills\$($_.Name)"
|
|
46
|
+
if (Test-Path $dst) { Remove-Item $dst -Recurse -Force }
|
|
47
|
+
Copy-Item $_.FullName $dst -Recurse
|
|
48
|
+
Write-Host "installed: $($_.Name)"
|
|
49
|
+
}
|
|
50
|
+
Remove-Item "$env:TEMP\orbweva-$repo" -Recurse -Force
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Update
|
|
55
|
+
|
|
56
|
+
The manual install command is idempotent — re-run it. It overwrites each skill directory with the latest clone.
|
|
57
|
+
|
|
58
|
+
## Uninstall a specific skill
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
rm -rf ~/.claude/skills/<skill-name>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Install only specific repos
|
|
65
|
+
|
|
66
|
+
Trim the `repos` array to what you want. For the Accelerator track specifically:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# Accelerator required + optional (skip founder-ops if you don't need hiring/legal/retention)
|
|
70
|
+
secure-setup orbweva-method resume-skill founder-discovery dt-skill \
|
|
71
|
+
founder-metrics gtm-skills founder-pitch founder-ops solo-skills solo-agents
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
For per-track skill lists, see [TRACKS.md](TRACKS.md).
|
|
75
|
+
|
|
76
|
+
## Verify
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
ls ~/.claude/skills/
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
In Claude Code:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
/discovery:help
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Should show the customer-discovery command menu.
|
package/manifest.json
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"skillRepos": {
|
|
4
|
+
"secure-setup": { "repo": "ORBWEVA/secure-setup", "skills": ["secure-setup"] },
|
|
5
|
+
"orbweva-method": { "repo": "ORBWEVA/orbweva-method", "skills": ["core"] },
|
|
6
|
+
"resume-skill": { "repo": "ORBWEVA/resume-skill", "skills": ["resume"] },
|
|
7
|
+
"founder-discovery": { "repo": "ORBWEVA/founder-discovery", "skills": ["discovery"] },
|
|
8
|
+
"dt-skill": { "repo": "ORBWEVA/dt-skill", "skills": ["design-thinking"] },
|
|
9
|
+
"founder-metrics": { "repo": "ORBWEVA/founder-metrics", "skills": ["startup-metrics"] },
|
|
10
|
+
"founder-pitch": { "repo": "ORBWEVA/founder-pitch", "skills": ["pitch"] },
|
|
11
|
+
"founder-ops": { "repo": "ORBWEVA/founder-ops", "skills": ["hiring", "legal-essentials", "retention"] },
|
|
12
|
+
"gtm-skills": { "repo": "ORBWEVA/gtm-skills", "skills": ["geo", "gtm-launch", "seo-toolkit"] },
|
|
13
|
+
"solo-skills": { "repo": "ORBWEVA/solo-skills", "skills": ["solo"] },
|
|
14
|
+
"solo-agents": { "repo": "ORBWEVA/solo-agents", "skills": ["agents"] },
|
|
15
|
+
|
|
16
|
+
"loka-pack": { "repo": "ORBWEVA/loka-pack", "skills": ["loka-integration"], "status": "planned" },
|
|
17
|
+
"marketing-pack": { "repo": "ORBWEVA/marketing-pack", "skills": ["marketing-agency"], "status": "planned" },
|
|
18
|
+
"web-video-pack": { "repo": "ORBWEVA/web-video-pack", "skills": ["web-design", "video-editing"], "status": "planned" }
|
|
19
|
+
},
|
|
20
|
+
"tracks": {
|
|
21
|
+
"accelerator": {
|
|
22
|
+
"label": "Accelerator",
|
|
23
|
+
"tagline": "12-week cohort program — zero-to-one founders",
|
|
24
|
+
"required": ["secure-setup", "orbweva-method", "resume-skill", "founder-discovery", "dt-skill", "founder-metrics", "gtm-skills"],
|
|
25
|
+
"optional": ["founder-pitch", "founder-ops", "solo-skills", "solo-agents"]
|
|
26
|
+
},
|
|
27
|
+
"course": {
|
|
28
|
+
"label": "Course",
|
|
29
|
+
"tagline": "Self-paced founder fundamentals",
|
|
30
|
+
"required": ["secure-setup", "orbweva-method", "resume-skill", "founder-discovery", "dt-skill"],
|
|
31
|
+
"optional": ["founder-metrics", "gtm-skills"]
|
|
32
|
+
},
|
|
33
|
+
"mentoring": {
|
|
34
|
+
"label": "Mentoring",
|
|
35
|
+
"tagline": "1:1 operator support for existing businesses",
|
|
36
|
+
"required": ["secure-setup", "orbweva-method", "resume-skill", "founder-metrics", "founder-ops"],
|
|
37
|
+
"optional": ["founder-pitch", "gtm-skills", "solo-skills", "solo-agents"]
|
|
38
|
+
},
|
|
39
|
+
"founder": {
|
|
40
|
+
"label": "Founder",
|
|
41
|
+
"tagline": "Lean founder base — for partner-delivered programs (e.g. Headswitch)",
|
|
42
|
+
"required": ["secure-setup", "orbweva-method", "resume-skill", "founder-discovery", "dt-skill"],
|
|
43
|
+
"optional": ["founder-metrics", "founder-pitch", "gtm-skills"]
|
|
44
|
+
},
|
|
45
|
+
"full": {
|
|
46
|
+
"label": "Full Academy",
|
|
47
|
+
"tagline": "All 11 ORBWEVA skill repos — no tradeoffs",
|
|
48
|
+
"required": ["secure-setup", "orbweva-method", "resume-skill", "founder-discovery", "dt-skill", "founder-metrics", "founder-pitch", "founder-ops", "gtm-skills", "solo-skills", "solo-agents"],
|
|
49
|
+
"optional": []
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"packs": {
|
|
53
|
+
"loka": {
|
|
54
|
+
"label": "Loka / LoLA",
|
|
55
|
+
"tagline": "Build a business on the Loka living-textbook + LoLA avatar platform",
|
|
56
|
+
"required": ["loka-pack"],
|
|
57
|
+
"optional": []
|
|
58
|
+
},
|
|
59
|
+
"marketing": {
|
|
60
|
+
"label": "Marketing Agency",
|
|
61
|
+
"tagline": "Run a one-person (or small team) marketing agency",
|
|
62
|
+
"required": ["marketing-pack"],
|
|
63
|
+
"optional": ["solo-skills", "solo-agents"]
|
|
64
|
+
},
|
|
65
|
+
"web-video": {
|
|
66
|
+
"label": "Web + Video Studio",
|
|
67
|
+
"tagline": "Web design + video editing studio",
|
|
68
|
+
"required": ["web-video-pack"],
|
|
69
|
+
"optional": ["solo-skills"]
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"mcpServers": {
|
|
73
|
+
"supabase": { "cmd": "npx -y @supabase/mcp-server-supabase", "envKey": "SUPABASE_ACCESS_TOKEN", "required": true },
|
|
74
|
+
"context7": { "cmd": "npx -y @upstash/context7-mcp", "envKey": null, "required": true },
|
|
75
|
+
"playwright": { "cmd": "npx -y @playwright/mcp", "envKey": null, "required": false },
|
|
76
|
+
"memory": { "cmd": "npx -y @modelcontextprotocol/server-memory", "envKey": null, "required": false }
|
|
77
|
+
}
|
|
78
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@orbweva/academy",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "One-command installer for ORBWEVA Academy — skills, MCP configs, and CLI tool guidance for Claude Code.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"orbweva-academy": "bin/install.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"bin",
|
|
11
|
+
"src",
|
|
12
|
+
"docs",
|
|
13
|
+
"manifest.json",
|
|
14
|
+
"README.md",
|
|
15
|
+
"README.ja-JP.md",
|
|
16
|
+
"README.ko-KR.md",
|
|
17
|
+
"LICENSE",
|
|
18
|
+
"LICENSE-DOCS",
|
|
19
|
+
"CHANGELOG.md",
|
|
20
|
+
"CONTRIBUTING.md",
|
|
21
|
+
"SECURITY.md"
|
|
22
|
+
],
|
|
23
|
+
"homepage": "https://github.com/ORBWEVA/academy#readme",
|
|
24
|
+
"bugs": {
|
|
25
|
+
"url": "https://github.com/ORBWEVA/academy/issues"
|
|
26
|
+
},
|
|
27
|
+
"keywords": ["orbweva", "academy", "claude-code", "skills"],
|
|
28
|
+
"author": "ORBWEVA",
|
|
29
|
+
"license": "(MIT AND CC-BY-NC-SA-4.0)",
|
|
30
|
+
"engines": {
|
|
31
|
+
"node": ">=18"
|
|
32
|
+
},
|
|
33
|
+
"repository": {
|
|
34
|
+
"type": "git",
|
|
35
|
+
"url": "https://github.com/ORBWEVA/academy.git"
|
|
36
|
+
}
|
|
37
|
+
}
|
package/src/banner.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { c } from './color.js';
|
|
2
|
+
|
|
3
|
+
export function banner() {
|
|
4
|
+
const art = [
|
|
5
|
+
'█████ ████ ████ █ █ █████ █ █ ███ ',
|
|
6
|
+
'█ █ █ █ █ █ █ █ █ █ █ █ █',
|
|
7
|
+
'█ █ ████ ████ █ █ █ ████ █ █ █████',
|
|
8
|
+
'█ █ █ █ █ █ ██ ██ █ █ █ █ █',
|
|
9
|
+
'█████ █ █ ████ █ █ █████ █ █ █',
|
|
10
|
+
].join('\n');
|
|
11
|
+
|
|
12
|
+
return `\n${c.cyan(art)}\n\n${c.bold('ORBWEVA Academy')} — Claude Code skills installer\n`;
|
|
13
|
+
}
|
package/src/cli-tools.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { c } from './color.js';
|
|
2
|
+
import { promptAndRun, summary } from './exec.js';
|
|
3
|
+
|
|
4
|
+
const MAC = {
|
|
5
|
+
label: 'macOS',
|
|
6
|
+
steps: [
|
|
7
|
+
{ cmd: 'brew install fnm gh supabase/tap/supabase', desc: 'Node manager + GitHub CLI + Supabase CLI (brew)' },
|
|
8
|
+
{ cmd: 'fnm install --lts && fnm default lts-latest', desc: 'Install and default to LTS Node' },
|
|
9
|
+
{ cmd: 'npm install -g pnpm vercel', desc: 'Install pnpm + Vercel CLI globally' },
|
|
10
|
+
{ cmd: 'gh auth login', desc: 'Sign in to GitHub (interactive)', note: 'This is interactive — follow the browser prompts.' },
|
|
11
|
+
],
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const WIN = {
|
|
15
|
+
label: 'Windows',
|
|
16
|
+
intro: [
|
|
17
|
+
`${c.yellow('⚠ Read before running:')}`,
|
|
18
|
+
' 1. These commands assume you are in PowerShell.',
|
|
19
|
+
' 2. winget commands need Admin PowerShell. If a winget step fails, re-run in an Admin PowerShell window.',
|
|
20
|
+
' 3. scoop commands need regular (non-Admin) PowerShell.',
|
|
21
|
+
' 4. After each install, PATH may be stale — restart the window if you see "command not recognized".',
|
|
22
|
+
' 5. EBADENGINE warnings on "npm install -g" are harmless; ignore them.',
|
|
23
|
+
].join('\n'),
|
|
24
|
+
steps: [
|
|
25
|
+
{ cmd: 'winget install --id Schniz.fnm -e', desc: 'Install fnm (Node version manager)', note: 'Needs Admin PowerShell.' },
|
|
26
|
+
{ cmd: 'winget install --id GitHub.cli -e', desc: 'Install GitHub CLI', note: 'Needs Admin PowerShell.' },
|
|
27
|
+
{ cmd: 'fnm install --lts; fnm default lts-latest', desc: 'Install and default to LTS Node' },
|
|
28
|
+
{ cmd: 'Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force; irm get.scoop.sh | iex', desc: 'Install Scoop package manager' },
|
|
29
|
+
{ cmd: 'scoop install supabase', desc: 'Install Supabase CLI via Scoop' },
|
|
30
|
+
{ cmd: 'npm install -g pnpm vercel', desc: 'Install pnpm + Vercel CLI globally' },
|
|
31
|
+
{ cmd: 'gh auth login', desc: 'Sign in to GitHub (interactive)', note: 'This is interactive — follow the browser prompts.' },
|
|
32
|
+
],
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const LINUX = {
|
|
36
|
+
label: 'Linux',
|
|
37
|
+
steps: [
|
|
38
|
+
{ cmd: 'curl -fsSL https://fnm.vercel.app/install | bash', desc: 'Install fnm (Node version manager)' },
|
|
39
|
+
{ cmd: 'fnm install --lts && fnm default lts-latest', desc: 'Install and default to LTS Node' },
|
|
40
|
+
{ cmd: 'sudo apt install -y gh', desc: 'Install GitHub CLI (Debian/Ubuntu)', note: 'If not Debian-based, see https://cli.github.com/manual/installation' },
|
|
41
|
+
{ cmd: 'npm install -g pnpm vercel', desc: 'Install pnpm + Vercel CLI globally' },
|
|
42
|
+
{ cmd: 'gh auth login', desc: 'Sign in to GitHub (interactive)', note: 'This is interactive — follow the browser prompts.' },
|
|
43
|
+
],
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
function profileFor(os) {
|
|
47
|
+
if (os.platform === 'darwin') return MAC;
|
|
48
|
+
if (os.platform === 'win32') return WIN;
|
|
49
|
+
return LINUX;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export async function runCliSetup(os, { assumeYes, interactive }) {
|
|
53
|
+
const profile = profileFor(os);
|
|
54
|
+
console.log(`\n${c.bold('─── CLI tools')} ${c.dim(`(${profile.label})`)}`);
|
|
55
|
+
if (profile.intro) console.log(profile.intro);
|
|
56
|
+
|
|
57
|
+
if (!interactive) {
|
|
58
|
+
// Fallback to print-only mode (for --skills-only-ish callers).
|
|
59
|
+
for (const s of profile.steps) console.log(` ${c.cyan('$')} ${s.cmd}`);
|
|
60
|
+
console.log(c.dim(`\n Full reference: https://orbweva.com/en/accelerator/skills`));
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const result = await promptAndRun(profile.steps, { assumeYes });
|
|
65
|
+
console.log(`\n ${c.bold('CLI tools:')} ${summary(result)}`);
|
|
66
|
+
console.log(c.dim(` Full reference: https://orbweva.com/en/accelerator/skills`));
|
|
67
|
+
return result;
|
|
68
|
+
}
|