major-ai-skills 2.4.0 → 2.4.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.
@@ -5,7 +5,7 @@
5
5
  },
6
6
  "metadata": {
7
7
  "description": "Installable agentic skills for Claude Code - professional apps, token efficiency, and common-sense prompting.",
8
- "version": "2.4.0"
8
+ "version": "2.4.2"
9
9
  },
10
10
  "plugins": [
11
11
  {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "major-ai-skills",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "Major AI Skills - product-depth agentic SKILL.md library for Claude Code.",
5
5
  "author": {
6
6
  "name": "Ali Virgo"
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.4.2 - 2026-10-06
4
+
5
+ - Point terminal tip, npm `funding`, and README at the live Whop product: https://whop.com/major-ai-skills/products/buy-ali-a-coffee/
6
+ - Drop Buy Me a Coffee / `bmc.link` (not available for Pakistan payouts)
7
+
8
+ ## 2.4.1 - 2026-10-06
9
+
10
+ - Terminal tip after install/search/list: Buy Ali a coffee → https://whop.com/major-ai-skills/products/buy-ali-a-coffee/
11
+ - npm `funding` field and README community link for the same Whop product URL (Pakistan-friendly payouts)
12
+
3
13
  ## 2.4.0 - 2026-10-06
4
14
 
5
15
  - Deepened **50 high-impact skills** across Days 1–5 of the skill improvement backlog (AI workflow stubs, core DevOps, data platforms, app/automation stack, and creative/CAD/video tools).
package/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  > **Installable GitHub library of agentic skills / AI agent skills (`SKILL.md` playbooks) for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more - focused on professional apps, token efficiency, and practical prompting habits.**
10
10
 
11
- **Current release: [V2.4.0](https://github.com/alivirgo/Major-AI-Skills/releases/latest) · 412 Canonical Skills · Zero-Config Agent Discovery**
11
+ **Current release: [V2.4.2](https://github.com/alivirgo/Major-AI-Skills/releases/latest) · 412 Canonical Skills · Zero-Config Agent Discovery**
12
12
 
13
13
  ---
14
14
 
@@ -185,7 +185,7 @@ npx major-ai-skills@latest --search "JSON schema business rules" --json --limit
185
185
  | **npm** (primary) | `npx major-ai-skills --<host> --skills <ids>` | Direct interactive/scripted CLI installer · [npmjs.com/package/major-ai-skills](https://www.npmjs.com/package/major-ai-skills) |
186
186
  | **jsDelivr CDN** | `https://cdn.jsdelivr.net/npm/major-ai-skills@latest/` | Instant global CDN mirror & raw skill access · [jsdelivr.com/package/npm/major-ai-skills](https://www.jsdelivr.com/package/npm/major-ai-skills) |
187
187
  | **GitHub Packages** | `@alivirgo/major-ai-skills` | Scoped package [`@alivirgo/major-ai-skills`](https://github.com/alivirgo/Major-AI-Skills/pkgs/npm/major-ai-skills) (fills repo sidebar) |
188
- | **GitHub Release** | Download `major-ai-skills-2.4.0.tgz` | Verified tarball from [V2.4.0 Release](https://github.com/alivirgo/Major-AI-Skills/releases/latest) |
188
+ | **GitHub Release** | Download `major-ai-skills-2.4.2.tgz` | Verified tarball from [V2.4.2 Release](https://github.com/alivirgo/Major-AI-Skills/releases/latest) |
189
189
  | **skills.sh / Vercel** | `npx skills add alivirgo/Major-AI-Skills` | Discovery via install telemetry |
190
190
  | **Claude Code Marketplace** | `.claude-plugin/marketplace.json` | Add this repo as a marketplace, then install a specialized plugin |
191
191
  | **Gemini CLI Extension** | `gemini extensions install https://github.com/alivirgo/Major-AI-Skills` | [Gallery listing verified September 11, 2026](https://geminicli.com/extensions) |
@@ -435,6 +435,7 @@ Machine-readable discovery for answer engines and agents:
435
435
 
436
436
  ## 👥 Community
437
437
 
438
+ - ☕ **Buy Ali a coffee** → [whop.com/major-ai-skills/products/buy-ali-a-coffee](https://whop.com/major-ai-skills/products/buy-ali-a-coffee/) (also shown after `npx major-ai-skills` installs)
438
439
  - 💬 [Discussions](https://github.com/alivirgo/Major-AI-Skills/discussions) for ideas
439
440
  - 🐛 [Issues](https://github.com/alivirgo/Major-AI-Skills/issues) for bugs
440
441
  - 📝 [Medium Article](https://medium.com/@alithetechguy/what-are-ai-agent-skills-claude-code-cursor-skill-md-explained-plus-392-skill-library-to-instal-a4218fa6f0b5) - Agent skills FAQ for SEO / GEO / AI
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "major-ai-skills",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "412+ installable agent skills (SKILL.md) for professional apps, token efficiency, and common-sense prompting. Compatible with Gemini CLI skills discovery.",
5
5
  "contextFileName": "GEMINI.md"
6
6
  }
package/package.json CHANGED
@@ -1,12 +1,16 @@
1
1
  {
2
2
  "name": "major-ai-skills",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "Installable agentic skills / AI agent skills (SKILL.md) for Claude Code, Cursor, Codex CLI, Gemini CLI & Antigravity - 412+ professional app, token-efficiency, and common-sense skills. SEO/GEO ready.",
5
5
  "license": "MIT",
6
6
  "author": {
7
7
  "name": "Ali Virgo",
8
8
  "url": "https://github.com/alivirgo"
9
9
  },
10
+ "funding": {
11
+ "type": "whop",
12
+ "url": "https://whop.com/major-ai-skills/products/buy-ali-a-coffee/"
13
+ },
10
14
  "homepage": "https://alivirgo.github.io/Major-AI-Skills/",
11
15
  "bugs": {
12
16
  "url": "https://github.com/alivirgo/Major-AI-Skills/issues"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mas-3d-games",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "3D DCC and game engines: Cinema 4D, Houdini, ZBrush, Substance, Blender, Unity, Unreal, Godot.",
5
5
  "author": {
6
6
  "name": "Ali Virgo",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mas-3d-games",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "3D DCC and game engines: Cinema 4D, Houdini, ZBrush, Substance, Blender, Unity, Unreal, Godot.",
5
5
  "author": {
6
6
  "name": "Ali Virgo",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mas-ai-workflows",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "Focused AI evaluation, retrieval, privacy, tool testing, and human review workflows.",
5
5
  "author": {
6
6
  "name": "Ali Virgo",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mas-ai-workflows",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "Focused AI evaluation, retrieval, privacy, tool testing, and human review workflows.",
5
5
  "author": {
6
6
  "name": "Ali Virgo",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mas-cad-studio",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "CAD-focused skills: SolidWorks, Fusion 360, CATIA, NX, Rhino, Blender.",
5
5
  "author": {
6
6
  "name": "Ali Virgo",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mas-cad-studio",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "CAD-focused skills: SolidWorks, Fusion 360, CATIA, NX, Rhino, Blender.",
5
5
  "author": {
6
6
  "name": "Ali Virgo",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mas-common-sense-pack",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "Everyday prompting habits and practical AI hygiene.",
5
5
  "author": {
6
6
  "name": "Ali Virgo",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mas-common-sense-pack",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "Everyday prompting habits and practical AI hygiene.",
5
5
  "author": {
6
6
  "name": "Ali Virgo",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mas-design-knowledge",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "Design and knowledge apps: Figma, Photoshop, Obsidian, Notion, Linear.",
5
5
  "author": {
6
6
  "name": "Ali Virgo",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mas-design-knowledge",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "Design and knowledge apps: Figma, Photoshop, Obsidian, Notion, Linear.",
5
5
  "author": {
6
6
  "name": "Ali Virgo",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mas-desktop-ops",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "Desktop ops: Raycast, Everything, PowerToys, Docker, VS Code, Bruno, Tailscale.",
5
5
  "author": {
6
6
  "name": "Ali Virgo",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mas-desktop-ops",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "Desktop ops: Raycast, Everything, PowerToys, Docker, VS Code, Bruno, Tailscale.",
5
5
  "author": {
6
6
  "name": "Ali Virgo",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mas-efficiency-pack",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "Token and context efficiency skills.",
5
5
  "author": {
6
6
  "name": "Ali Virgo",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mas-efficiency-pack",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "Token and context efficiency skills.",
5
5
  "author": {
6
6
  "name": "Ali Virgo",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mas-video-lab",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "Video and motion skills: DaVinci, Premiere, After Effects, Remotion, FFmpeg.",
5
5
  "author": {
6
6
  "name": "Ali Virgo",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mas-video-lab",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "Video and motion skills: DaVinci, Premiere, After Effects, Remotion, FFmpeg.",
5
5
  "author": {
6
6
  "name": "Ali Virgo",
@@ -10,6 +10,14 @@ const os = require("os");
10
10
  const root = path.resolve(__dirname, "..", "..");
11
11
  const skillsRoot = path.join(root, "skills");
12
12
 
13
+ /** Short memorable support link (Whop — Pakistan-friendly payouts). */
14
+ const SUPPORT_URL = "https://whop.com/major-ai-skills/products/buy-ali-a-coffee/";
15
+
16
+ function printSupportTip() {
17
+ console.log("");
18
+ console.log("☕ Enjoying Major AI Skills? Buy Ali a coffee → " + SUPPORT_URL);
19
+ }
20
+
13
21
  const TARGETS = {
14
22
  antigravity: path.join(os.homedir(), ".agents", "skills"),
15
23
  cursor: path.join(os.homedir(), ".cursor", "skills"),
@@ -33,10 +41,10 @@ function parseArgs(argv) {
33
41
  help: false,
34
42
  };
35
43
  for (let i = 2; i < argv.length; i++) {
36
- const a = argv[i];
37
- if (["--search", "--limit"].includes(a) && (!argv[i + 1] || argv[i + 1].startsWith("--"))) {
38
- throw new Error(`${a} requires a value`);
39
- }
44
+ const a = argv[i];
45
+ if (["--search", "--limit"].includes(a) && (!argv[i + 1] || argv[i + 1].startsWith("--"))) {
46
+ throw new Error(`${a} requires a value`);
47
+ }
40
48
  if (a === "--help" || a === "-h") args.help = true;
41
49
  else if (a === "--dry-run") args.dryRun = true;
42
50
  else if (a === "--all") args.all = true;
@@ -51,10 +59,10 @@ function parseArgs(argv) {
51
59
  else if (a === "--opencode") args.target = "opencode";
52
60
  else if (a === "--path") args.path = argv[++i];
53
61
  else if (a === "--skills") args.skills = argv[++i];
54
- else if (a === "--category") args.category = argv[++i];
55
- else if (a === "--search") args.search = argv[++i];
56
- else if (a === "--json") args.json = true;
57
- else if (a === "--limit") args.limit = Number(argv[++i]);
62
+ else if (a === "--category") args.category = argv[++i];
63
+ else if (a === "--search") args.search = argv[++i];
64
+ else if (a === "--json") args.json = true;
65
+ else if (a === "--limit") args.limit = Number(argv[++i]);
58
66
  }
59
67
  return args;
60
68
  }
@@ -111,10 +119,13 @@ Filters:
111
119
  --category x,y category filter (AND with --skills when both set)
112
120
  --all install every skill (explicit consent)
113
121
  --dry-run preview only
114
- --list print catalog summary
115
- --search "task" find relevant skills without installing anything
116
- --json machine-readable search results
117
- --limit 5 maximum search results (1-20)
122
+ --list print catalog summary
123
+ --search "task" find relevant skills without installing anything
124
+ --json machine-readable search results
125
+ --limit 5 maximum search results (1-20)
126
+
127
+ Support:
128
+ ☕ ${SUPPORT_URL}
118
129
  `);
119
130
  }
120
131
 
@@ -122,18 +133,21 @@ function main() {
122
133
  const args = parseArgs(process.argv);
123
134
  if (args.help) return printHelp();
124
135
 
125
- const index = loadIndex();
126
- if (args.search !== undefined) {
127
- if (!args.search.trim()) throw new Error("Search query must not be empty");
128
- const limit = args.limit === undefined ? 5 : args.limit;
129
- if (!Number.isInteger(limit) || limit < 1 || limit > 20) throw new Error("--limit must be an integer from 1 to 20");
130
- if (args.all || args.skills) throw new Error("Search cannot be combined with --all or --skills");
131
- const results = require("./search").searchSkills(index, args.search, limit, args.category);
132
- if (args.json) console.log(JSON.stringify({ schemaVersion: 1, query: args.search, results }, null, 2));
133
- else console.log(results.length ? results.map(s => `${s.id}: ${s.description}\n${s.install}`).join("\n\n") : "No matching skills.");
134
- return;
135
- }
136
- if (args.json || args.limit !== undefined) throw new Error("--json and --limit require --search");
136
+ const index = loadIndex();
137
+ if (args.search !== undefined) {
138
+ if (!args.search.trim()) throw new Error("Search query must not be empty");
139
+ const limit = args.limit === undefined ? 5 : args.limit;
140
+ if (!Number.isInteger(limit) || limit < 1 || limit > 20) throw new Error("--limit must be an integer from 1 to 20");
141
+ if (args.all || args.skills) throw new Error("Search cannot be combined with --all or --skills");
142
+ const results = require("./search").searchSkills(index, args.search, limit, args.category);
143
+ if (args.json) console.log(JSON.stringify({ schemaVersion: 1, query: args.search, results }, null, 2));
144
+ else {
145
+ console.log(results.length ? results.map(s => `${s.id}: ${s.description}\n${s.install}`).join("\n\n") : "No matching skills.");
146
+ printSupportTip();
147
+ }
148
+ return;
149
+ }
150
+ if (args.json || args.limit !== undefined) throw new Error("--json and --limit require --search");
137
151
  if (args.list) {
138
152
  const byCat = {};
139
153
  for (const s of index) (byCat[s.category] ||= []).push(s.id);
@@ -142,6 +156,7 @@ function main() {
142
156
  console.log(byCat[cat].sort().join(", "));
143
157
  }
144
158
  console.log(`\nTotal: ${index.length}`);
159
+ printSupportTip();
145
160
  return;
146
161
  }
147
162
 
@@ -205,6 +220,7 @@ function main() {
205
220
 
206
221
  console.log(args.dryRun ? "Dry-run complete." : "Install complete.");
207
222
  console.log(`Try: @${selected[0]?.id || "skill-id"} help me with ...`);
223
+ if (!args.dryRun) printSupportTip();
208
224
  }
209
225
 
210
- try { main(); } catch (error) { console.error(error.message); process.exitCode = 1; }
226
+ try { main(); } catch (error) { console.error(error.message); process.exitCode = 1; }