packwise-skills 1.0.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.
Files changed (51) hide show
  1. package/.cursorrules +23 -0
  2. package/CLAUDE.md +25 -0
  3. package/README.md +295 -0
  4. package/audit.md +224 -0
  5. package/bin/packwise.js +155 -0
  6. package/package.json +31 -0
  7. package/skill.md +719 -0
  8. package/sub-skills/ai/local-llm.md +183 -0
  9. package/sub-skills/ai/python-ml.md +164 -0
  10. package/sub-skills/backend/go-server.md +184 -0
  11. package/sub-skills/backend/java-spring.md +241 -0
  12. package/sub-skills/backend/node-server.md +164 -0
  13. package/sub-skills/backend/php-laravel.md +175 -0
  14. package/sub-skills/backend/python-server.md +164 -0
  15. package/sub-skills/backend/rust-backend.md +118 -0
  16. package/sub-skills/cli/python-cli.md +236 -0
  17. package/sub-skills/cli/sdk-library.md +497 -0
  18. package/sub-skills/cloud/ci-cd-pipelines.md +350 -0
  19. package/sub-skills/cloud/docker.md +191 -0
  20. package/sub-skills/cloud/kubernetes.md +277 -0
  21. package/sub-skills/cloud/payment-integration.md +307 -0
  22. package/sub-skills/cross-platform/multiplatform.md +252 -0
  23. package/sub-skills/desktop/electron.md +783 -0
  24. package/sub-skills/desktop/game-dev.md +443 -0
  25. package/sub-skills/desktop/native-app.md +123 -0
  26. package/sub-skills/desktop/scenarios.md +443 -0
  27. package/sub-skills/desktop/smart-platforms.md +324 -0
  28. package/sub-skills/desktop/tauri.md +428 -0
  29. package/sub-skills/desktop/vr-ar.md +252 -0
  30. package/sub-skills/desktop/web-to-desktop.md +153 -0
  31. package/sub-skills/embedded/car-infotainment.md +129 -0
  32. package/sub-skills/embedded/esp32.md +184 -0
  33. package/sub-skills/embedded/ros.md +150 -0
  34. package/sub-skills/embedded/stm32.md +160 -0
  35. package/sub-skills/mobile/android.md +322 -0
  36. package/sub-skills/mobile/capacitor.md +232 -0
  37. package/sub-skills/mobile/flutter-mobile.md +138 -0
  38. package/sub-skills/mobile/harmonyos.md +150 -0
  39. package/sub-skills/mobile/ios.md +245 -0
  40. package/sub-skills/mobile/react-native.md +443 -0
  41. package/sub-skills/mobile/wearables.md +230 -0
  42. package/sub-skills/plugins/browser-extension.md +308 -0
  43. package/sub-skills/plugins/jetbrains-plugin.md +226 -0
  44. package/sub-skills/plugins/vscode-extension.md +204 -0
  45. package/sub-skills/security/security-tools.md +174 -0
  46. package/sub-skills/web/monorepo.md +274 -0
  47. package/sub-skills/web/pwa.md +220 -0
  48. package/sub-skills/web/serverless-edge.md +295 -0
  49. package/sub-skills/web/spa.md +266 -0
  50. package/sub-skills/web/ssr.md +228 -0
  51. package/sub-skills/web/wasm.md +243 -0
@@ -0,0 +1,155 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Packwise CLI — Universal installer for AI agent build skills
5
+ *
6
+ * Detects installed AI agents and copies skill files to the right location.
7
+ *
8
+ * Usage:
9
+ * npx @anthropic-ai/packwise # Auto-detect and install
10
+ * npx @anthropic-ai/packwise install # Same as above
11
+ * npx @anthropic-ai/packwise uninstall # Remove from all detected agents
12
+ * npx @anthropic-ai/packwise list # Show which agents have skills installed
13
+ */
14
+
15
+ const fs = require('fs');
16
+ const path = require('path');
17
+ const os = require('os');
18
+
19
+ const SKILL_FILES = ['skill.md', 'audit.md'];
20
+ const SKILL_DIRS = ['sub-skills'];
21
+ const HOME = os.homedir();
22
+ const CWD = process.cwd();
23
+
24
+ // Agent detection and installation paths
25
+ const AGENTS = [
26
+ {
27
+ name: 'Claude Code',
28
+ detect: () => fs.existsSync(path.join(HOME, '.claude')) || fs.existsSync(path.join(CWD, '.claude')),
29
+ userDir: path.join(HOME, '.claude', 'skills', 'packwise'),
30
+ projectDir: path.join(CWD, '.claude', 'skills', 'packwise'),
31
+ installTarget: 'user', // user-level by default
32
+ },
33
+ {
34
+ name: 'Cursor',
35
+ detect: () => fs.existsSync(path.join(CWD, '.cursorrules')) || fs.existsSync(path.join(HOME, '.cursor')),
36
+ projectDir: path.join(CWD, '.cursor', 'skills', 'packwise'),
37
+ installTarget: 'project',
38
+ },
39
+ {
40
+ name: 'Windsurf',
41
+ detect: () => fs.existsSync(path.join(HOME, '.windsurf')) || fs.existsSync(path.join(CWD, '.windsurfrules')),
42
+ projectDir: path.join(CWD, 'skills', 'packwise'),
43
+ installTarget: 'project',
44
+ },
45
+ {
46
+ name: 'OpenCode',
47
+ detect: () => fs.existsSync(path.join(HOME, '.opencode')) || fs.existsSync(path.join(CWD, '.opencode')),
48
+ projectDir: path.join(CWD, '.opencode', 'skills', 'packwise'),
49
+ installTarget: 'project',
50
+ },
51
+ {
52
+ name: 'Zed AI',
53
+ detect: () => fs.existsSync(path.join(HOME, '.zed')),
54
+ projectDir: path.join(CWD, 'skills', 'packwise'),
55
+ installTarget: 'project',
56
+ },
57
+ ];
58
+
59
+ function copyRecursive(src, dest) {
60
+ fs.mkdirSync(dest, { recursive: true });
61
+ for (const item of fs.readdirSync(src)) {
62
+ const srcPath = path.join(src, item);
63
+ const destPath = path.join(dest, item);
64
+ const stat = fs.statSync(srcPath);
65
+ if (stat.isDirectory()) {
66
+ copyRecursive(srcPath, destPath);
67
+ } else {
68
+ fs.copyFileSync(srcPath, destPath);
69
+ }
70
+ }
71
+ }
72
+
73
+ function removeRecursive(dir) {
74
+ if (fs.existsSync(dir)) {
75
+ fs.rmSync(dir, { recursive: true, force: true });
76
+ }
77
+ }
78
+
79
+ const command = process.argv[2] || 'install';
80
+ const sourceDir = path.join(__dirname, '..');
81
+
82
+ if (command === 'install' || command === undefined) {
83
+ console.log('\n Packwise — Universal Build & Packaging Skills\n');
84
+
85
+ const installed = [];
86
+ let installedAny = false;
87
+
88
+ for (const agent of AGENTS) {
89
+ if (!agent.detect()) continue;
90
+
91
+ const target = agent.installTarget === 'user' && agent.userDir
92
+ ? agent.userDir
93
+ : agent.projectDir;
94
+
95
+ if (!target) continue;
96
+
97
+ console.log(` Installing for ${agent.name}...`);
98
+ copyRecursive(sourceDir, target);
99
+ console.log(` ✓ Installed to ${target}`);
100
+ installed.push(agent.name);
101
+ installedAny = true;
102
+ }
103
+
104
+ if (!installedAny) {
105
+ // Fallback: install to project root skills/ directory
106
+ const fallback = path.join(CWD, 'skills', 'packwise');
107
+ console.log(' No AI agents detected. Installing to project...');
108
+ copyRecursive(sourceDir, fallback);
109
+ console.log(` ✓ Installed to ${fallback}`);
110
+ console.log(`\n Reference in your AI agent:`);
111
+ console.log(` "Read ${path.relative(CWD, fallback)}/skill.md and help me package this project"`);
112
+ } else {
113
+ console.log(`\n ✓ Packwise installed for: ${installed.join(', ')}`);
114
+ console.log(`\n Usage: ask your AI agent to package your project`);
115
+ }
116
+ console.log('');
117
+ }
118
+
119
+ else if (command === 'uninstall') {
120
+ console.log('\n Packwise — Uninstall\n');
121
+ for (const agent of AGENTS) {
122
+ const targets = [agent.userDir, agent.projectDir].filter(Boolean);
123
+ for (const target of targets) {
124
+ if (fs.existsSync(target)) {
125
+ removeRecursive(target);
126
+ console.log(` ✓ Removed from ${agent.name}: ${target}`);
127
+ }
128
+ }
129
+ }
130
+ console.log('');
131
+ }
132
+
133
+ else if (command === 'list') {
134
+ console.log('\n Packwise — Installed Agents\n');
135
+ let found = false;
136
+ for (const agent of AGENTS) {
137
+ const targets = [agent.userDir, agent.projectDir].filter(Boolean);
138
+ for (const target of targets) {
139
+ if (fs.existsSync(target)) {
140
+ console.log(` ✓ ${agent.name}: ${target}`);
141
+ found = true;
142
+ }
143
+ }
144
+ }
145
+ if (!found) {
146
+ console.log(' No installations found. Run: npx @anthropic-ai/packwise install');
147
+ }
148
+ console.log('');
149
+ }
150
+
151
+ else {
152
+ console.log(`\n Unknown command: ${command}`);
153
+ console.log(' Usage: npx @anthropic-ai/packwise [install|uninstall|list]\n');
154
+ process.exit(1);
155
+ }
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "packwise-skills",
3
+ "version": "1.0.0",
4
+ "description": "Universal build & packaging orchestrator for AI-assisted development — 44 skills, 20+ platforms, consultant-style workflow",
5
+ "main": "skill.md",
6
+ "bin": {
7
+ "packwise": "bin/packwise.js"
8
+ },
9
+ "files": [
10
+ "skill.md",
11
+ "audit.md",
12
+ "sub-skills/**/*",
13
+ "bin/**/*",
14
+ "CLAUDE.md",
15
+ ".cursorrules"
16
+ ],
17
+ "keywords": [
18
+ "build", "package", "electron", "tauri", "react-native", "flutter",
19
+ "ai", "llm", "skill", "claude-code", "cursor", "desktop", "mobile",
20
+ "deploy", "installer", "cli", "automation"
21
+ ],
22
+ "author": "Thomas520TOM",
23
+ "license": "MIT",
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "https://github.com/Thomas520TOM/AI-packwise-skill.git"
27
+ },
28
+ "engines": {
29
+ "node": ">=18"
30
+ }
31
+ }