@orbweva/academy 0.2.0 → 0.3.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 +16 -0
- package/docs/PUBLISHING.md +138 -0
- package/manifest.json +18 -17
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,22 @@ All notable changes to `@orbweva/academy` will be documented here. Format based
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.3.0] — 2026-04-14
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- **`web-build` pack** — 5 quality-audit skills for websites: `web-audit`, `web-perf`, `web-a11y`, `web-copy`, `web-brand`. Positioned as the quality layer on top of generation tools (Anthropic's app factory, Lovable, v0, Bolt). Repo: https://github.com/ORBWEVA/web-build-pack
|
|
11
|
+
- **`ai-media` pack** — 6 skills for AI-generated video/image/voice pipelines via kie.ai: `ai-media-setup`, `ai-media-video` (Veo 3), `ai-media-image` (Nano Banana / Flux), `ai-media-voice` (ElevenLabs), `ai-media-pipeline` (n8n workflow template), `ai-media-cost` (pre-flight budget). Repo: https://github.com/ORBWEVA/ai-media-pack
|
|
12
|
+
- `full` track now includes `web-build-pack` and `ai-media-pack`.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
- `marketing` pack removed from manifest (replaced by `ai-media`, which better matches the "automation via AI tools" framing).
|
|
16
|
+
- `web-video` pack removed (replaced by `web-build`, which separates web-quality audits from future video work; video-gen work now lives under `ai-media`).
|
|
17
|
+
- `web-build` pack optionally includes `gtm-skills` (for deeper SEO tooling).
|
|
18
|
+
- `ai-media` pack optionally includes `solo-agents` (for workflow/agent design).
|
|
19
|
+
|
|
20
|
+
### Notes
|
|
21
|
+
- `loka` pack stays as `status: "planned"` — repo not yet scaffolded.
|
|
22
|
+
|
|
7
23
|
## [0.2.0] — 2026-04-14
|
|
8
24
|
|
|
9
25
|
### Added
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# Publishing `@orbweva/academy` to npm
|
|
2
|
+
|
|
3
|
+
Maintainer reference. Follow this any time you need to generate a new npm token or publish a new version.
|
|
4
|
+
|
|
5
|
+
## Why tokens (not OTP)
|
|
6
|
+
|
|
7
|
+
Our npm account uses a **security key / passkey** for 2FA. Security keys can't be used from the CLI, so `npm publish --otp=<code>` won't work. Instead we use a **granular access token with "Bypass 2FA"** enabled.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Generate a new publish token
|
|
12
|
+
|
|
13
|
+
Do this when your current token expires (you'll get a `401 Unauthorized` on `npm publish`) or whenever you want to rotate.
|
|
14
|
+
|
|
15
|
+
### 1. Revoke the old token first (optional but tidy)
|
|
16
|
+
|
|
17
|
+
https://www.npmjs.com/settings/orbweva/tokens → find the old `academy-publish` → **Revoke**
|
|
18
|
+
|
|
19
|
+
### 2. Generate a new token
|
|
20
|
+
|
|
21
|
+
https://www.npmjs.com/settings/orbweva/tokens → **Generate New Token** → **Granular Access Token**
|
|
22
|
+
|
|
23
|
+
Fill in exactly:
|
|
24
|
+
|
|
25
|
+
| Field | Value |
|
|
26
|
+
|---|---|
|
|
27
|
+
| **Token name** | `academy-publish` (or `academy-publish-YYYYMM` to track age) |
|
|
28
|
+
| **Description** | `CLI publish for @orbweva/academy` (optional) |
|
|
29
|
+
| **Bypass two-factor authentication (2FA)** | ✅ **checked** — required for our security-key 2FA setup |
|
|
30
|
+
| **Allowed IP ranges** | leave empty |
|
|
31
|
+
| **Permissions** | **Read and write** |
|
|
32
|
+
| **Select packages** | ✅ **All packages** (covers `@orbweva/*` current + future) |
|
|
33
|
+
| **Organizations → Permissions** | **No access** (we publish under user scope, not org) |
|
|
34
|
+
| **Expiration** | **90 days** (the max for write tokens) |
|
|
35
|
+
|
|
36
|
+
Click **Generate Token**. Copy the `npm_…` value — **you only see it once.**
|
|
37
|
+
|
|
38
|
+
### 3. Install the token locally
|
|
39
|
+
|
|
40
|
+
In your terminal:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# If you already have a line for registry.npmjs.org in ~/.npmrc,
|
|
44
|
+
# edit it instead of appending a duplicate.
|
|
45
|
+
echo "//registry.npmjs.org/:_authToken=npm_PASTE_YOUR_NEW_TOKEN" >> ~/.npmrc
|
|
46
|
+
chmod 600 ~/.npmrc
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Verify:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npm whoami
|
|
53
|
+
# should print: orbweva
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Done. No terminal restart needed — npm reads `~/.npmrc` fresh on every command.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Publishing a new version
|
|
61
|
+
|
|
62
|
+
Flow from clean checkout:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
cd /Users/ryno/orbweva-academy/academy
|
|
66
|
+
|
|
67
|
+
# 1. Edit code / docs / manifest
|
|
68
|
+
# 2. Update CHANGELOG.md under [Unreleased]
|
|
69
|
+
|
|
70
|
+
# 3. Bump version (rewrites package.json, commits, tags)
|
|
71
|
+
npm version patch # 0.2.0 → 0.2.1 (bug fixes)
|
|
72
|
+
# or:
|
|
73
|
+
npm version minor # 0.2.0 → 0.3.0 (new features, backwards-compat)
|
|
74
|
+
# or:
|
|
75
|
+
npm version major # 0.2.0 → 1.0.0 (breaking changes)
|
|
76
|
+
|
|
77
|
+
# 4. Push code + tag
|
|
78
|
+
git push origin main --follow-tags
|
|
79
|
+
|
|
80
|
+
# 5. Publish
|
|
81
|
+
npm publish --access public
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Expected output ends with:
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
+ @orbweva/academy@0.2.1
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Sanity check after publish
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
cd /tmp && rm -rf verify && mkdir verify && cd verify
|
|
94
|
+
npx --yes @orbweva/academy@latest --help
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Should show the help output from the new version.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Troubleshooting
|
|
102
|
+
|
|
103
|
+
### `401 Unauthorized` on `npm publish`
|
|
104
|
+
|
|
105
|
+
Token expired (or got revoked). Generate a new one (see top of this doc).
|
|
106
|
+
|
|
107
|
+
### `403 Forbidden — Two-factor authentication required`
|
|
108
|
+
|
|
109
|
+
The token doesn't have **Bypass 2FA** enabled. Revoke it and generate a new one with that box checked.
|
|
110
|
+
|
|
111
|
+
### `403 Forbidden — You cannot publish over the previously published versions`
|
|
112
|
+
|
|
113
|
+
You tried to re-publish the same version number. Bump the version first with `npm version patch` (or `minor` / `major`).
|
|
114
|
+
|
|
115
|
+
### `npm WARN publish npm auto-corrected some errors`
|
|
116
|
+
|
|
117
|
+
Harmless — npm is just normalizing the `repository.url` format. No action needed.
|
|
118
|
+
|
|
119
|
+
### I pasted my token into a chat / Slack / email
|
|
120
|
+
|
|
121
|
+
Revoke immediately at https://www.npmjs.com/settings/orbweva/tokens and generate a new one. Never share a live token.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## What lives where
|
|
126
|
+
|
|
127
|
+
| Thing | Location |
|
|
128
|
+
|---|---|
|
|
129
|
+
| Token (current) | `~/.npmrc` (owner-readable only) |
|
|
130
|
+
| Token management | https://www.npmjs.com/settings/orbweva/tokens |
|
|
131
|
+
| Package page | https://www.npmjs.com/package/@orbweva/academy |
|
|
132
|
+
| Source repo | https://github.com/ORBWEVA/academy |
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Why not Trusted Publishing?
|
|
137
|
+
|
|
138
|
+
npm's [Trusted Publishers](https://docs.npmjs.com/trusted-publishers) lets you publish from GitHub Actions with no tokens at all. Worth setting up when we move to CI-based releases. Skipped for now because manual publishes are infrequent enough that token management isn't painful.
|
package/manifest.json
CHANGED
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
"solo-skills": { "repo": "ORBWEVA/solo-skills", "skills": ["solo"] },
|
|
14
14
|
"solo-agents": { "repo": "ORBWEVA/solo-agents", "skills": ["agents"] },
|
|
15
15
|
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
|
|
16
|
+
"web-build-pack": { "repo": "ORBWEVA/web-build-pack", "skills": ["web-audit", "web-perf", "web-a11y", "web-copy", "web-brand"] },
|
|
17
|
+
"ai-media-pack": { "repo": "ORBWEVA/ai-media-pack", "skills": ["ai-media-setup", "ai-media-video", "ai-media-image", "ai-media-voice", "ai-media-pipeline", "ai-media-cost"] },
|
|
18
|
+
|
|
19
|
+
"loka-pack": { "repo": "ORBWEVA/loka-pack", "skills": ["loka-integration"], "status": "planned" }
|
|
19
20
|
},
|
|
20
21
|
"tracks": {
|
|
21
22
|
"accelerator": {
|
|
@@ -44,29 +45,29 @@
|
|
|
44
45
|
},
|
|
45
46
|
"full": {
|
|
46
47
|
"label": "Full Academy",
|
|
47
|
-
"tagline": "All
|
|
48
|
-
"required": ["secure-setup", "orbweva-method", "resume-skill", "founder-discovery", "dt-skill", "founder-metrics", "founder-pitch", "founder-ops", "gtm-skills", "solo-skills", "solo-agents"],
|
|
48
|
+
"tagline": "All ORBWEVA skill repos — no tradeoffs",
|
|
49
|
+
"required": ["secure-setup", "orbweva-method", "resume-skill", "founder-discovery", "dt-skill", "founder-metrics", "founder-pitch", "founder-ops", "gtm-skills", "solo-skills", "solo-agents", "web-build-pack", "ai-media-pack"],
|
|
49
50
|
"optional": []
|
|
50
51
|
}
|
|
51
52
|
},
|
|
52
53
|
"packs": {
|
|
54
|
+
"web-build": {
|
|
55
|
+
"label": "Web Build (Quality Audit Layer)",
|
|
56
|
+
"tagline": "Audit and improve websites — SEO, perf, accessibility, copy, brand",
|
|
57
|
+
"required": ["web-build-pack"],
|
|
58
|
+
"optional": ["gtm-skills"]
|
|
59
|
+
},
|
|
60
|
+
"ai-media": {
|
|
61
|
+
"label": "AI Media",
|
|
62
|
+
"tagline": "AI-generated video, image, and voice pipelines via kie.ai",
|
|
63
|
+
"required": ["ai-media-pack"],
|
|
64
|
+
"optional": ["solo-agents"]
|
|
65
|
+
},
|
|
53
66
|
"loka": {
|
|
54
67
|
"label": "Loka / LoLA",
|
|
55
68
|
"tagline": "Build a business on the Loka living-textbook + LoLA avatar platform",
|
|
56
69
|
"required": ["loka-pack"],
|
|
57
70
|
"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
|
}
|
|
71
72
|
},
|
|
72
73
|
"mcpServers": {
|