packwise-skills 1.0.0 → 1.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.
Files changed (53) hide show
  1. package/.cursorrules +23 -23
  2. package/CLAUDE.md +25 -25
  3. package/LICENSE +21 -0
  4. package/README.md +404 -295
  5. package/audit.md +224 -224
  6. package/bin/packwise.js +322 -155
  7. package/install.sh +123 -0
  8. package/package.json +32 -31
  9. package/skill.md +944 -719
  10. package/sub-skills/ai/local-llm.md +183 -183
  11. package/sub-skills/ai/python-ml.md +164 -164
  12. package/sub-skills/backend/go-server.md +184 -184
  13. package/sub-skills/backend/java-spring.md +241 -241
  14. package/sub-skills/backend/node-server.md +164 -164
  15. package/sub-skills/backend/php-laravel.md +175 -175
  16. package/sub-skills/backend/python-server.md +164 -164
  17. package/sub-skills/backend/rust-backend.md +118 -118
  18. package/sub-skills/cli/python-cli.md +236 -236
  19. package/sub-skills/cli/sdk-library.md +497 -497
  20. package/sub-skills/cloud/ci-cd-pipelines.md +350 -350
  21. package/sub-skills/cloud/docker.md +191 -191
  22. package/sub-skills/cloud/kubernetes.md +277 -277
  23. package/sub-skills/cloud/payment-integration.md +307 -307
  24. package/sub-skills/cross-platform/multiplatform.md +252 -252
  25. package/sub-skills/desktop/electron.md +783 -783
  26. package/sub-skills/desktop/game-dev.md +443 -443
  27. package/sub-skills/desktop/native-app.md +123 -123
  28. package/sub-skills/desktop/scenarios.md +443 -443
  29. package/sub-skills/desktop/smart-platforms.md +324 -324
  30. package/sub-skills/desktop/tauri.md +428 -428
  31. package/sub-skills/desktop/vr-ar.md +252 -252
  32. package/sub-skills/desktop/web-to-desktop.md +153 -153
  33. package/sub-skills/embedded/car-infotainment.md +129 -129
  34. package/sub-skills/embedded/esp32.md +184 -184
  35. package/sub-skills/embedded/ros.md +150 -150
  36. package/sub-skills/embedded/stm32.md +160 -160
  37. package/sub-skills/mobile/android.md +322 -322
  38. package/sub-skills/mobile/capacitor.md +232 -232
  39. package/sub-skills/mobile/flutter-mobile.md +138 -138
  40. package/sub-skills/mobile/harmonyos.md +150 -150
  41. package/sub-skills/mobile/ios.md +245 -245
  42. package/sub-skills/mobile/react-native.md +443 -443
  43. package/sub-skills/mobile/wearables.md +230 -230
  44. package/sub-skills/plugins/browser-extension.md +308 -308
  45. package/sub-skills/plugins/jetbrains-plugin.md +226 -226
  46. package/sub-skills/plugins/vscode-extension.md +204 -204
  47. package/sub-skills/security/security-tools.md +174 -174
  48. package/sub-skills/web/monorepo.md +274 -274
  49. package/sub-skills/web/pwa.md +220 -220
  50. package/sub-skills/web/serverless-edge.md +295 -295
  51. package/sub-skills/web/spa.md +266 -266
  52. package/sub-skills/web/ssr.md +228 -228
  53. package/sub-skills/web/wasm.md +243 -243
@@ -1,204 +1,204 @@
1
- # VS Code Extension Build Sub-Skill
2
-
3
- Develop and publish Visual Studio Code extensions.
4
-
5
- **Current version**: VS Code 1.96+ / @vscode/vsce 2.x (2025-2026)
6
-
7
- ## When to Use
8
-
9
- - Editor enhancements (themes, snippets, keybindings)
10
- - Language support (syntax highlighting, IntelliSense, debugging)
11
- - Developer tools (linters, formatters, test runners)
12
- - AI coding assistants
13
- - Workflow automation
14
-
15
- ## Prerequisites
16
-
17
- ```bash
18
- # Node.js 20+
19
- # Install VS Code Extension Manager
20
- npm install -g @vscode/vsce
21
-
22
- # Install Yeoman generator for scaffolding
23
- npm install -g yo generator-code
24
- ```
25
-
26
- ## Project Setup
27
-
28
- ```bash
29
- # Generate extension scaffold
30
- yo code
31
- # Select: New Extension (TypeScript)
32
- # Name: my-extension
33
- # Description: My awesome extension
34
- # Package manager: npm
35
-
36
- # Project structure:
37
- my-extension/
38
- ├── src/
39
- │ └── extension.ts ← Main entry point
40
- ├── package.json ← Extension manifest
41
- ├── tsconfig.json ← TypeScript config
42
- ├── .vscodeignore ← Files to exclude from .vsix
43
- └── README.md
44
- ```
45
-
46
- ## package.json (Extension Manifest)
47
-
48
- ```json
49
- {
50
- "name": "my-extension",
51
- "displayName": "My Extension",
52
- "description": "My awesome VS Code extension",
53
- "version": "1.0.0",
54
- "engines": { "vscode": "^1.96.0" },
55
- "categories": ["Other"],
56
- "activationEvents": [],
57
- "main": "./out/extension.js",
58
- "contributes": {
59
- "commands": [
60
- {
61
- "command": "myExtension.helloWorld",
62
- "title": "Hello World"
63
- }
64
- ],
65
- "keybindings": [
66
- {
67
- "command": "myExtension.helloWorld",
68
- "key": "ctrl+shift+h",
69
- "mac": "cmd+shift+h"
70
- }
71
- ],
72
- "configuration": {
73
- "title": "My Extension",
74
- "properties": {
75
- "myExtension.enableFeature": {
76
- "type": "boolean",
77
- "default": true,
78
- "description": "Enable the awesome feature"
79
- }
80
- }
81
- }
82
- },
83
- "scripts": {
84
- "compile": "tsc -p ./",
85
- "watch": "tsc -watch -p ./",
86
- "package": "vsce package",
87
- "publish": "vsce publish"
88
- },
89
- "devDependencies": {
90
- "@types/vscode": "^1.96.0",
91
- "@types/node": "^22.0.0",
92
- "typescript": "^5.7.0"
93
- }
94
- }
95
- ```
96
-
97
- ## Build & Test
98
-
99
- ```bash
100
- # Compile TypeScript
101
- npm run compile
102
-
103
- # Run in Extension Development Host (VS Code launches with your extension)
104
- # Press F5 in VS Code, or:
105
- code --extensionDevelopmentPath=.
106
-
107
- # Run tests
108
- npm test
109
-
110
- # Lint
111
- npm run lint
112
- ```
113
-
114
- ## Package (.vsix)
115
-
116
- ```bash
117
- # Package as .vsix file
118
- vsce package
119
- # Output: my-extension-1.0.0.vsix
120
-
121
- # Install locally for testing
122
- code --install-extension my-extension-1.0.0.vsix
123
-
124
- # Package with specific version
125
- vsce package --pre-release # Pre-release version
126
- ```
127
-
128
- ## Publish to Marketplace
129
-
130
- ```bash
131
- # 1. Create Personal Access Token (PAT)
132
- # dev.azure.com → User Settings → Personal Access Tokens
133
- # Scope: Marketplace → Manage
134
-
135
- # 2. Create publisher (one-time)
136
- # marketplace.visualstudio.com → Create Publisher
137
-
138
- # 3. Login
139
- vsce login YOUR_PUBLISHER_NAME
140
- # Enter PAT when prompted
141
-
142
- # 4. Publish
143
- vsce publish # Publish current version
144
- vsce publish minor # Bump minor version + publish
145
- vsce publish patch # Bump patch version + publish
146
- vsce publish 2.0.0 # Set specific version + publish
147
-
148
- # 5. Pre-release
149
- vsce publish --pre-release
150
- ```
151
-
152
- ## Testing
153
-
154
- ```typescript
155
- // src/test/suite/extension.test.ts
156
- import * as assert from 'assert';
157
- import * as vscode from 'vscode';
158
-
159
- suite('Extension Test Suite', () => {
160
- test('Command should be registered', async () => {
161
- const commands = await vscode.commands.getCommands(true);
162
- assert.ok(commands.includes('myExtension.helloWorld'));
163
- });
164
-
165
- test('Configuration should have default value', () => {
166
- const config = vscode.workspace.getConfiguration('myExtension');
167
- assert.strictEqual(config.get('enableFeature'), true);
168
- });
169
- });
170
- ```
171
-
172
- ```bash
173
- # Run tests
174
- npm test
175
- # Or with coverage
176
- npm run test:coverage
177
- ```
178
-
179
- ## Extension Types
180
-
181
- | Type | Use Case | Key APIs |
182
- |------|----------|---------|
183
- | Commands | Custom actions | `vscode.commands.registerCommand` |
184
- | Webview | Custom UI panels | `vscode.window.createWebviewPanel` |
185
- | Language Server | Language support | `vscode-languageclient` / `vscode-languageserver` |
186
- | Tree View | Custom sidebars | `TreeDataProvider` |
187
- | Debug Adapter | Custom debuggers | `DebugAdapterDescriptorFactory` |
188
- | Notebook | Jupyter-like notebooks | `NotebookSerializer` |
189
- | Chat Participant | AI chat integration | `vscode.chat.createChatParticipant` |
190
-
191
- ## Common Pitfalls
192
-
193
- | Issue | Fix |
194
- |-------|-----|
195
- | Build failure | Confirm `tsconfig.json` `outDir` matches `main` field in package.json |
196
- | Publish rejected | Ensure all required fields: `name`, `displayName`, `description`, `version`, `engines` |
197
- | Size limit | .vsix max 100MB; use `.vscodeignore` to exclude node_modules source |
198
- | Icon requirement | At least 128x128 PNG; set in `package.json` → `icon` |
199
- | Extension not activating | Check `activationEvents`; use `"*"` for testing (slow), be specific in production |
200
- | Webview not showing | Check CSP headers; set `enableScripts: true` |
201
- | Tests failing in CI | Use `@vscode/test-electron` for integration tests |
202
- | API version mismatch | Check `engines.vscode` in package.json matches your target version |
203
- | `@types/vscode` version | Should match `engines.vscode` version |
204
- | Extension size too large | Use esbuild/webpack bundler; exclude devDependencies |
1
+ # VS Code Extension Build Sub-Skill
2
+
3
+ Develop and publish Visual Studio Code extensions.
4
+
5
+ **Current version**: VS Code 1.96+ / @vscode/vsce 2.x (2025-2026)
6
+
7
+ ## When to Use
8
+
9
+ - Editor enhancements (themes, snippets, keybindings)
10
+ - Language support (syntax highlighting, IntelliSense, debugging)
11
+ - Developer tools (linters, formatters, test runners)
12
+ - AI coding assistants
13
+ - Workflow automation
14
+
15
+ ## Prerequisites
16
+
17
+ ```bash
18
+ # Node.js 20+
19
+ # Install VS Code Extension Manager
20
+ npm install -g @vscode/vsce
21
+
22
+ # Install Yeoman generator for scaffolding
23
+ npm install -g yo generator-code
24
+ ```
25
+
26
+ ## Project Setup
27
+
28
+ ```bash
29
+ # Generate extension scaffold
30
+ yo code
31
+ # Select: New Extension (TypeScript)
32
+ # Name: my-extension
33
+ # Description: My awesome extension
34
+ # Package manager: npm
35
+
36
+ # Project structure:
37
+ my-extension/
38
+ ├── src/
39
+ │ └── extension.ts ← Main entry point
40
+ ├── package.json ← Extension manifest
41
+ ├── tsconfig.json ← TypeScript config
42
+ ├── .vscodeignore ← Files to exclude from .vsix
43
+ └── README.md
44
+ ```
45
+
46
+ ## package.json (Extension Manifest)
47
+
48
+ ```json
49
+ {
50
+ "name": "my-extension",
51
+ "displayName": "My Extension",
52
+ "description": "My awesome VS Code extension",
53
+ "version": "1.0.0",
54
+ "engines": { "vscode": "^1.96.0" },
55
+ "categories": ["Other"],
56
+ "activationEvents": [],
57
+ "main": "./out/extension.js",
58
+ "contributes": {
59
+ "commands": [
60
+ {
61
+ "command": "myExtension.helloWorld",
62
+ "title": "Hello World"
63
+ }
64
+ ],
65
+ "keybindings": [
66
+ {
67
+ "command": "myExtension.helloWorld",
68
+ "key": "ctrl+shift+h",
69
+ "mac": "cmd+shift+h"
70
+ }
71
+ ],
72
+ "configuration": {
73
+ "title": "My Extension",
74
+ "properties": {
75
+ "myExtension.enableFeature": {
76
+ "type": "boolean",
77
+ "default": true,
78
+ "description": "Enable the awesome feature"
79
+ }
80
+ }
81
+ }
82
+ },
83
+ "scripts": {
84
+ "compile": "tsc -p ./",
85
+ "watch": "tsc -watch -p ./",
86
+ "package": "vsce package",
87
+ "publish": "vsce publish"
88
+ },
89
+ "devDependencies": {
90
+ "@types/vscode": "^1.96.0",
91
+ "@types/node": "^22.0.0",
92
+ "typescript": "^5.7.0"
93
+ }
94
+ }
95
+ ```
96
+
97
+ ## Build & Test
98
+
99
+ ```bash
100
+ # Compile TypeScript
101
+ npm run compile
102
+
103
+ # Run in Extension Development Host (VS Code launches with your extension)
104
+ # Press F5 in VS Code, or:
105
+ code --extensionDevelopmentPath=.
106
+
107
+ # Run tests
108
+ npm test
109
+
110
+ # Lint
111
+ npm run lint
112
+ ```
113
+
114
+ ## Package (.vsix)
115
+
116
+ ```bash
117
+ # Package as .vsix file
118
+ vsce package
119
+ # Output: my-extension-1.0.0.vsix
120
+
121
+ # Install locally for testing
122
+ code --install-extension my-extension-1.0.0.vsix
123
+
124
+ # Package with specific version
125
+ vsce package --pre-release # Pre-release version
126
+ ```
127
+
128
+ ## Publish to Marketplace
129
+
130
+ ```bash
131
+ # 1. Create Personal Access Token (PAT)
132
+ # dev.azure.com → User Settings → Personal Access Tokens
133
+ # Scope: Marketplace → Manage
134
+
135
+ # 2. Create publisher (one-time)
136
+ # marketplace.visualstudio.com → Create Publisher
137
+
138
+ # 3. Login
139
+ vsce login YOUR_PUBLISHER_NAME
140
+ # Enter PAT when prompted
141
+
142
+ # 4. Publish
143
+ vsce publish # Publish current version
144
+ vsce publish minor # Bump minor version + publish
145
+ vsce publish patch # Bump patch version + publish
146
+ vsce publish 2.0.0 # Set specific version + publish
147
+
148
+ # 5. Pre-release
149
+ vsce publish --pre-release
150
+ ```
151
+
152
+ ## Testing
153
+
154
+ ```typescript
155
+ // src/test/suite/extension.test.ts
156
+ import * as assert from 'assert';
157
+ import * as vscode from 'vscode';
158
+
159
+ suite('Extension Test Suite', () => {
160
+ test('Command should be registered', async () => {
161
+ const commands = await vscode.commands.getCommands(true);
162
+ assert.ok(commands.includes('myExtension.helloWorld'));
163
+ });
164
+
165
+ test('Configuration should have default value', () => {
166
+ const config = vscode.workspace.getConfiguration('myExtension');
167
+ assert.strictEqual(config.get('enableFeature'), true);
168
+ });
169
+ });
170
+ ```
171
+
172
+ ```bash
173
+ # Run tests
174
+ npm test
175
+ # Or with coverage
176
+ npm run test:coverage
177
+ ```
178
+
179
+ ## Extension Types
180
+
181
+ | Type | Use Case | Key APIs |
182
+ |------|----------|---------|
183
+ | Commands | Custom actions | `vscode.commands.registerCommand` |
184
+ | Webview | Custom UI panels | `vscode.window.createWebviewPanel` |
185
+ | Language Server | Language support | `vscode-languageclient` / `vscode-languageserver` |
186
+ | Tree View | Custom sidebars | `TreeDataProvider` |
187
+ | Debug Adapter | Custom debuggers | `DebugAdapterDescriptorFactory` |
188
+ | Notebook | Jupyter-like notebooks | `NotebookSerializer` |
189
+ | Chat Participant | AI chat integration | `vscode.chat.createChatParticipant` |
190
+
191
+ ## Common Pitfalls
192
+
193
+ | Issue | Fix |
194
+ |-------|-----|
195
+ | Build failure | Confirm `tsconfig.json` `outDir` matches `main` field in package.json |
196
+ | Publish rejected | Ensure all required fields: `name`, `displayName`, `description`, `version`, `engines` |
197
+ | Size limit | .vsix max 100MB; use `.vscodeignore` to exclude node_modules source |
198
+ | Icon requirement | At least 128x128 PNG; set in `package.json` → `icon` |
199
+ | Extension not activating | Check `activationEvents`; use `"*"` for testing (slow), be specific in production |
200
+ | Webview not showing | Check CSP headers; set `enableScripts: true` |
201
+ | Tests failing in CI | Use `@vscode/test-electron` for integration tests |
202
+ | API version mismatch | Check `engines.vscode` in package.json matches your target version |
203
+ | `@types/vscode` version | Should match `engines.vscode` version |
204
+ | Extension size too large | Use esbuild/webpack bundler; exclude devDependencies |