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,226 +1,226 @@
1
- # JetBrains Plugin Build Sub-Skill
2
-
3
- Develop and publish plugins for IntelliJ-based IDEs (IntelliJ IDEA, PyCharm, WebStorm, Android Studio, etc.).
4
-
5
- **Current version**: Gradle IntelliJ Plugin 2.x / IntelliJ Platform 2024.3+ (2025-2026)
6
-
7
- ## When to Use
8
-
9
- - Building plugins for IntelliJ IDEA, PyCharm, WebStorm, CLion, Android Studio, etc.
10
- - Need deep IDE integration (refactoring, code analysis, tool windows)
11
- - Want to distribute via JetBrains Marketplace
12
-
13
- ## Key Features
14
-
15
- - **Gradle IntelliJ Plugin** — standard build tooling (replaced legacy Plugin DevKit)
16
- - **Kotlin/Java** — both supported; Kotlin recommended for new plugins
17
- - **Plugin Verifier** — automated compatibility checking across IDE versions
18
- - **Dynamic plugins** — hot-reload without restarting IDE (since Platform 2020.1)
19
-
20
- ## Prerequisites
21
-
22
- ```bash
23
- # JDK 17+ (JBR — JetBrains Runtime recommended)
24
- # Gradle 8.x (wrapper included in template)
25
- # IntelliJ IDEA (for development and testing)
26
- ```
27
-
28
- ## Project Setup
29
-
30
- ```bash
31
- # Option 1: IntelliJ Plugin Template (recommended)
32
- # File → New → Project → IntelliJ Platform Plugin
33
- # Or clone from GitHub:
34
- git clone https://github.com/JetBrains/intellij-platform-plugin-template.git my-plugin
35
- cd my-plugin
36
-
37
- # Option 2: Gradle init
38
- # Use IntelliJ Plugin Generator: https://plugins.jetbrains.com/docs/intellij/generating-plugin.html
39
- ```
40
-
41
- ## Build Configuration
42
-
43
- ```kotlin
44
- // build.gradle.kts
45
- plugins {
46
- id("java")
47
- id("org.jetbrains.kotlin.jvm") version "2.0.21"
48
- id("org.jetbrains.intellij.platform") version "2.2.1"
49
- }
50
-
51
- intellijPlatform {
52
- pluginConfiguration {
53
- id = "com.example.myplugin"
54
- name = "My Plugin"
55
- version = "1.0.0"
56
- description = "Plugin description"
57
- ideaVersion {
58
- sinceBuild = "243"
59
- untilBuild = "253.*"
60
- }
61
- }
62
-
63
- // Target IDE(s)
64
- intellijIdeaCommunity = "2024.3"
65
-
66
- // Plugin dependencies
67
- plugins = listOf(
68
- "com.intellij.java", // Java support
69
- "org.intellij.plugins.markdown:243.22562.64" // Markdown plugin
70
- )
71
-
72
- // Plugin Verifier
73
- pluginVerifier {
74
- ides = listOf(
75
- intellijIdeaCommunity("2024.3"),
76
- intellijIdeaCommunity("2025.1"),
77
- )
78
- }
79
- }
80
-
81
- // Required dependencies for IntelliJ Platform development
82
- dependencies {
83
- intellijPlatform {
84
- intellijIdeaCommunity("2024.3")
85
- instrumentationTools()
86
- pluginVerifier()
87
- zipSigner()
88
- }
89
- }
90
- ```
91
-
92
- ## Build & Test
93
-
94
- ```bash
95
- # Build plugin ZIP
96
- ./gradlew buildPlugin
97
- # Output: build/distributions/my-plugin-1.0.0.zip
98
-
99
- # Run IDE with plugin installed (for testing)
100
- ./gradlew runIde
101
-
102
- # Run unit tests
103
- ./gradlew test
104
-
105
- # Run Plugin Verifier (compatibility check)
106
- ./gradlew runPluginVerifier
107
-
108
- # Check for IntelliJ-specific lint issues
109
- ./gradlew verifyPlugin
110
- ```
111
-
112
- ## Publishing
113
-
114
- ```bash
115
- # 1. Get token from JetBrains Marketplace
116
- # https://plugins.jetbrains.com/author/me → Upload Token
117
-
118
- # 2. Publish
119
- ./gradlew publishPlugin
120
- # Requires plugin signing (automatic with zipSigner)
121
-
122
- # With token via environment variable:
123
- export PUBLISH_TOKEN=your-token-here
124
- ./gradlew publishPlugin
125
-
126
- # Or specify channel (beta/alpha):
127
- ./gradlew publishPlugin -Pchannel=beta
128
- ```
129
-
130
- ## Plugin Structure
131
-
132
- ```
133
- my-plugin/
134
- ├── src/main/kotlin/com/example/myplugin/
135
- │ ├── MyToolWindowFactory.kt # Tool window
136
- │ ├── MyAction.kt # Menu/toolbar action
137
- │ └── services/
138
- │ └── MyService.kt # Application-level service
139
- ├── src/main/resources/
140
- │ └── META-INF/
141
- │ └── plugin.xml # Plugin descriptor (required)
142
- ├── build.gradle.kts
143
- └── gradle.properties
144
- ```
145
-
146
- ```xml
147
- <!-- src/main/resources/META-INF/plugin.xml -->
148
- <idea-plugin>
149
- <id>com.example.myplugin</id>
150
- <name>My Plugin</name>
151
- <vendor email="me@example.com">My Company</vendor>
152
-
153
- <description><![CDATA[
154
- Plugin description with <b>HTML</b> support.
155
- ]]></description>
156
-
157
- <depends>com.intellij.modules.platform</depends>
158
- <depends optional="true" config-file="my-java-ext.xml">com.intellij.java</depends>
159
-
160
- <extensions defaultExtensionNs="com.intellij">
161
- <toolWindow id="My Tool" factoryClass="com.example.myplugin.MyToolWindowFactory"/>
162
- </extensions>
163
-
164
- <actions>
165
- <action id="MyPlugin.MyAction"
166
- class="com.example.myplugin.MyAction"
167
- text="My Action"
168
- description="Does something useful">
169
- <add-to-group group-id="ToolsMenu" anchor="last"/>
170
- </action>
171
- </actions>
172
- </idea-plugin>
173
- ```
174
-
175
- ## Common Pitfalls
176
-
177
- | Issue | Fix |
178
- |-------|-----|
179
- | Plugin rejected on Marketplace | Ensure `plugin.xml` has all required fields (id, name, vendor, description, depends) |
180
- | IDE version mismatch | Set `sinceBuild`/`untilBuild` carefully; test with Plugin Verifier |
181
- | Build fails with SDK error | Clear Gradle cache (`~/.gradle/caches/modules-2`); verify JDK 17+ |
182
- | Plugin not loaded in dev IDE | Check `plugin.xml` for syntax errors; check IDE log (`Help → Diagnostic Tools → Debug Log Settings`) |
183
- | Tests fail with `NoClassDefFoundError` | Add required platform dependencies to `testImplementation` |
184
- | Slow `runIde` startup | Use `buildSearchableOptions = false` for faster iteration |
185
- | API deprecation warnings | Check IntelliJ Platform SDK changelog; migrate to new APIs |
186
- | Memory issues in large projects | Use `ReadAction.runReadAction()` for thread-safe file access |
187
-
188
- ## CI/CD — GitHub Actions
189
-
190
- ```yaml
191
- name: Build Plugin
192
- on:
193
- push:
194
- branches: [main]
195
- pull_request:
196
-
197
- jobs:
198
- build:
199
- runs-on: ubuntu-latest
200
- steps:
201
- - uses: actions/checkout@v4
202
- - uses: actions/setup-java@v4
203
- with:
204
- distribution: 'temurin'
205
- java-version: '17'
206
- - run: ./gradlew buildPlugin
207
- - run: ./gradlew runPluginVerifier
208
- - uses: actions/upload-artifact@v4
209
- with:
210
- name: plugin
211
- path: build/distributions/*.zip
212
-
213
- publish:
214
- if: github.ref == 'refs/heads/main'
215
- needs: build
216
- runs-on: ubuntu-latest
217
- steps:
218
- - uses: actions/checkout@v4
219
- - uses: actions/setup-java@v4
220
- with:
221
- distribution: 'temurin'
222
- java-version: '17'
223
- - run: ./gradlew publishPlugin
224
- env:
225
- PUBLISH_TOKEN: ${{ secrets.JETBRAINS_TOKEN }}
226
- ```
1
+ # JetBrains Plugin Build Sub-Skill
2
+
3
+ Develop and publish plugins for IntelliJ-based IDEs (IntelliJ IDEA, PyCharm, WebStorm, Android Studio, etc.).
4
+
5
+ **Current version**: Gradle IntelliJ Plugin 2.x / IntelliJ Platform 2024.3+ (2025-2026)
6
+
7
+ ## When to Use
8
+
9
+ - Building plugins for IntelliJ IDEA, PyCharm, WebStorm, CLion, Android Studio, etc.
10
+ - Need deep IDE integration (refactoring, code analysis, tool windows)
11
+ - Want to distribute via JetBrains Marketplace
12
+
13
+ ## Key Features
14
+
15
+ - **Gradle IntelliJ Plugin** — standard build tooling (replaced legacy Plugin DevKit)
16
+ - **Kotlin/Java** — both supported; Kotlin recommended for new plugins
17
+ - **Plugin Verifier** — automated compatibility checking across IDE versions
18
+ - **Dynamic plugins** — hot-reload without restarting IDE (since Platform 2020.1)
19
+
20
+ ## Prerequisites
21
+
22
+ ```bash
23
+ # JDK 17+ (JBR — JetBrains Runtime recommended)
24
+ # Gradle 8.x (wrapper included in template)
25
+ # IntelliJ IDEA (for development and testing)
26
+ ```
27
+
28
+ ## Project Setup
29
+
30
+ ```bash
31
+ # Option 1: IntelliJ Plugin Template (recommended)
32
+ # File → New → Project → IntelliJ Platform Plugin
33
+ # Or clone from GitHub:
34
+ git clone https://github.com/JetBrains/intellij-platform-plugin-template.git my-plugin
35
+ cd my-plugin
36
+
37
+ # Option 2: Gradle init
38
+ # Use IntelliJ Plugin Generator: https://plugins.jetbrains.com/docs/intellij/generating-plugin.html
39
+ ```
40
+
41
+ ## Build Configuration
42
+
43
+ ```kotlin
44
+ // build.gradle.kts
45
+ plugins {
46
+ id("java")
47
+ id("org.jetbrains.kotlin.jvm") version "2.0.21"
48
+ id("org.jetbrains.intellij.platform") version "2.2.1"
49
+ }
50
+
51
+ intellijPlatform {
52
+ pluginConfiguration {
53
+ id = "com.example.myplugin"
54
+ name = "My Plugin"
55
+ version = "1.0.0"
56
+ description = "Plugin description"
57
+ ideaVersion {
58
+ sinceBuild = "243"
59
+ untilBuild = "253.*"
60
+ }
61
+ }
62
+
63
+ // Target IDE(s)
64
+ intellijIdeaCommunity = "2024.3"
65
+
66
+ // Plugin dependencies
67
+ plugins = listOf(
68
+ "com.intellij.java", // Java support
69
+ "org.intellij.plugins.markdown:243.22562.64" // Markdown plugin
70
+ )
71
+
72
+ // Plugin Verifier
73
+ pluginVerifier {
74
+ ides = listOf(
75
+ intellijIdeaCommunity("2024.3"),
76
+ intellijIdeaCommunity("2025.1"),
77
+ )
78
+ }
79
+ }
80
+
81
+ // Required dependencies for IntelliJ Platform development
82
+ dependencies {
83
+ intellijPlatform {
84
+ intellijIdeaCommunity("2024.3")
85
+ instrumentationTools()
86
+ pluginVerifier()
87
+ zipSigner()
88
+ }
89
+ }
90
+ ```
91
+
92
+ ## Build & Test
93
+
94
+ ```bash
95
+ # Build plugin ZIP
96
+ ./gradlew buildPlugin
97
+ # Output: build/distributions/my-plugin-1.0.0.zip
98
+
99
+ # Run IDE with plugin installed (for testing)
100
+ ./gradlew runIde
101
+
102
+ # Run unit tests
103
+ ./gradlew test
104
+
105
+ # Run Plugin Verifier (compatibility check)
106
+ ./gradlew runPluginVerifier
107
+
108
+ # Check for IntelliJ-specific lint issues
109
+ ./gradlew verifyPlugin
110
+ ```
111
+
112
+ ## Publishing
113
+
114
+ ```bash
115
+ # 1. Get token from JetBrains Marketplace
116
+ # https://plugins.jetbrains.com/author/me → Upload Token
117
+
118
+ # 2. Publish
119
+ ./gradlew publishPlugin
120
+ # Requires plugin signing (automatic with zipSigner)
121
+
122
+ # With token via environment variable:
123
+ export PUBLISH_TOKEN=your-token-here
124
+ ./gradlew publishPlugin
125
+
126
+ # Or specify channel (beta/alpha):
127
+ ./gradlew publishPlugin -Pchannel=beta
128
+ ```
129
+
130
+ ## Plugin Structure
131
+
132
+ ```
133
+ my-plugin/
134
+ ├── src/main/kotlin/com/example/myplugin/
135
+ │ ├── MyToolWindowFactory.kt # Tool window
136
+ │ ├── MyAction.kt # Menu/toolbar action
137
+ │ └── services/
138
+ │ └── MyService.kt # Application-level service
139
+ ├── src/main/resources/
140
+ │ └── META-INF/
141
+ │ └── plugin.xml # Plugin descriptor (required)
142
+ ├── build.gradle.kts
143
+ └── gradle.properties
144
+ ```
145
+
146
+ ```xml
147
+ <!-- src/main/resources/META-INF/plugin.xml -->
148
+ <idea-plugin>
149
+ <id>com.example.myplugin</id>
150
+ <name>My Plugin</name>
151
+ <vendor email="me@example.com">My Company</vendor>
152
+
153
+ <description><![CDATA[
154
+ Plugin description with <b>HTML</b> support.
155
+ ]]></description>
156
+
157
+ <depends>com.intellij.modules.platform</depends>
158
+ <depends optional="true" config-file="my-java-ext.xml">com.intellij.java</depends>
159
+
160
+ <extensions defaultExtensionNs="com.intellij">
161
+ <toolWindow id="My Tool" factoryClass="com.example.myplugin.MyToolWindowFactory"/>
162
+ </extensions>
163
+
164
+ <actions>
165
+ <action id="MyPlugin.MyAction"
166
+ class="com.example.myplugin.MyAction"
167
+ text="My Action"
168
+ description="Does something useful">
169
+ <add-to-group group-id="ToolsMenu" anchor="last"/>
170
+ </action>
171
+ </actions>
172
+ </idea-plugin>
173
+ ```
174
+
175
+ ## Common Pitfalls
176
+
177
+ | Issue | Fix |
178
+ |-------|-----|
179
+ | Plugin rejected on Marketplace | Ensure `plugin.xml` has all required fields (id, name, vendor, description, depends) |
180
+ | IDE version mismatch | Set `sinceBuild`/`untilBuild` carefully; test with Plugin Verifier |
181
+ | Build fails with SDK error | Clear Gradle cache (`~/.gradle/caches/modules-2`); verify JDK 17+ |
182
+ | Plugin not loaded in dev IDE | Check `plugin.xml` for syntax errors; check IDE log (`Help → Diagnostic Tools → Debug Log Settings`) |
183
+ | Tests fail with `NoClassDefFoundError` | Add required platform dependencies to `testImplementation` |
184
+ | Slow `runIde` startup | Use `buildSearchableOptions = false` for faster iteration |
185
+ | API deprecation warnings | Check IntelliJ Platform SDK changelog; migrate to new APIs |
186
+ | Memory issues in large projects | Use `ReadAction.runReadAction()` for thread-safe file access |
187
+
188
+ ## CI/CD — GitHub Actions
189
+
190
+ ```yaml
191
+ name: Build Plugin
192
+ on:
193
+ push:
194
+ branches: [main]
195
+ pull_request:
196
+
197
+ jobs:
198
+ build:
199
+ runs-on: ubuntu-latest
200
+ steps:
201
+ - uses: actions/checkout@v4
202
+ - uses: actions/setup-java@v4
203
+ with:
204
+ distribution: 'temurin'
205
+ java-version: '17'
206
+ - run: ./gradlew buildPlugin
207
+ - run: ./gradlew runPluginVerifier
208
+ - uses: actions/upload-artifact@v4
209
+ with:
210
+ name: plugin
211
+ path: build/distributions/*.zip
212
+
213
+ publish:
214
+ if: github.ref == 'refs/heads/main'
215
+ needs: build
216
+ runs-on: ubuntu-latest
217
+ steps:
218
+ - uses: actions/checkout@v4
219
+ - uses: actions/setup-java@v4
220
+ with:
221
+ distribution: 'temurin'
222
+ java-version: '17'
223
+ - run: ./gradlew publishPlugin
224
+ env:
225
+ PUBLISH_TOKEN: ${{ secrets.JETBRAINS_TOKEN }}
226
+ ```