@smicolon/ai-kit 0.3.2 → 0.4.1

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 (155) hide show
  1. package/README.md +73 -40
  2. package/dist/index.js +312 -127
  3. package/package.json +5 -5
  4. package/.claude-plugin/marketplace.json +0 -369
  5. package/packs/architect/CHANGELOG.md +0 -17
  6. package/packs/architect/README.md +0 -58
  7. package/packs/architect/agents/system-architect.md +0 -768
  8. package/packs/architect/commands/diagram-create.md +0 -300
  9. package/packs/better-auth/.mcp.json +0 -14
  10. package/packs/better-auth/CHANGELOG.md +0 -26
  11. package/packs/better-auth/README.md +0 -125
  12. package/packs/better-auth/agents/auth-architect.md +0 -278
  13. package/packs/better-auth/commands/auth-provider-add.md +0 -265
  14. package/packs/better-auth/commands/auth-setup.md +0 -298
  15. package/packs/better-auth/skills/auth-security/SKILL.md +0 -425
  16. package/packs/better-auth/skills/better-auth-patterns/SKILL.md +0 -455
  17. package/packs/dev-loop/CHANGELOG.md +0 -69
  18. package/packs/dev-loop/README.md +0 -155
  19. package/packs/dev-loop/commands/cancel-dev.md +0 -21
  20. package/packs/dev-loop/commands/dev-loop.md +0 -72
  21. package/packs/dev-loop/commands/dev-plan.md +0 -351
  22. package/packs/dev-loop/hooks/hooks.json +0 -15
  23. package/packs/dev-loop/hooks/stop-hook.sh +0 -178
  24. package/packs/dev-loop/scripts/setup-dev-loop.sh +0 -194
  25. package/packs/dev-loop/skills/tdd-planner/SKILL.md +0 -249
  26. package/packs/dev-loop/skills/tdd-planner/references/framework-patterns.md +0 -874
  27. package/packs/dev-loop/skills/tdd-planner/references/good-example.md +0 -260
  28. package/packs/dev-loop/skills/tdd-planner/references/plan-template.md +0 -275
  29. package/packs/django/CHANGELOG.md +0 -39
  30. package/packs/django/README.md +0 -92
  31. package/packs/django/agents/django-architect.md +0 -182
  32. package/packs/django/agents/django-builder.md +0 -250
  33. package/packs/django/agents/django-feature-based.md +0 -420
  34. package/packs/django/agents/django-reviewer.md +0 -253
  35. package/packs/django/agents/django-tester.md +0 -230
  36. package/packs/django/commands/api-endpoint.md +0 -285
  37. package/packs/django/commands/model-create.md +0 -178
  38. package/packs/django/commands/test-generate.md +0 -325
  39. package/packs/django/rules/migrations.md +0 -138
  40. package/packs/django/rules/models.md +0 -167
  41. package/packs/django/rules/serializers.md +0 -126
  42. package/packs/django/rules/services.md +0 -131
  43. package/packs/django/rules/tests.md +0 -140
  44. package/packs/django/rules/views.md +0 -102
  45. package/packs/django/skills/import-convention-enforcer/SKILL.md +0 -226
  46. package/packs/django/skills/import-convention-enforcer/patterns/django-imports.md +0 -343
  47. package/packs/django/skills/migration-safety-checker/SKILL.md +0 -375
  48. package/packs/django/skills/model-entity-validator/SKILL.md +0 -298
  49. package/packs/django/skills/performance-optimizer/SKILL.md +0 -447
  50. package/packs/django/skills/red-phase-verifier/SKILL.md +0 -180
  51. package/packs/django/skills/security-first-validator/SKILL.md +0 -435
  52. package/packs/django/skills/test-coverage-advisor/SKILL.md +0 -394
  53. package/packs/django/skills/test-validity-checker/SKILL.md +0 -194
  54. package/packs/failure-log/CHANGELOG.md +0 -20
  55. package/packs/failure-log/README.md +0 -168
  56. package/packs/failure-log/commands/failure-add.md +0 -106
  57. package/packs/failure-log/commands/failure-list.md +0 -89
  58. package/packs/failure-log/hooks/hooks.json +0 -16
  59. package/packs/failure-log/hooks/scripts/inject-failures.sh +0 -64
  60. package/packs/failure-log/skills/failure-log-manager/SKILL.md +0 -164
  61. package/packs/flutter/CHANGELOG.md +0 -19
  62. package/packs/flutter/README.md +0 -170
  63. package/packs/flutter/agents/flutter-architect.md +0 -166
  64. package/packs/flutter/agents/flutter-builder.md +0 -303
  65. package/packs/flutter/agents/release-manager.md +0 -355
  66. package/packs/flutter/commands/fastlane-setup.md +0 -188
  67. package/packs/flutter/commands/flutter-build.md +0 -90
  68. package/packs/flutter/commands/flutter-deploy.md +0 -133
  69. package/packs/flutter/commands/flutter-test.md +0 -117
  70. package/packs/flutter/commands/signing-setup.md +0 -209
  71. package/packs/flutter/hooks/hooks.json +0 -17
  72. package/packs/flutter/skills/fastlane-knowledge/SKILL.md +0 -193
  73. package/packs/flutter/skills/flutter-architecture/SKILL.md +0 -127
  74. package/packs/flutter/skills/store-publishing/SKILL.md +0 -163
  75. package/packs/hono/CHANGELOG.md +0 -19
  76. package/packs/hono/README.md +0 -143
  77. package/packs/hono/agents/hono-architect.md +0 -240
  78. package/packs/hono/agents/hono-builder.md +0 -285
  79. package/packs/hono/agents/hono-reviewer.md +0 -279
  80. package/packs/hono/agents/hono-tester.md +0 -346
  81. package/packs/hono/commands/middleware-create.md +0 -223
  82. package/packs/hono/commands/project-init.md +0 -306
  83. package/packs/hono/commands/route-create.md +0 -153
  84. package/packs/hono/commands/rpc-client.md +0 -263
  85. package/packs/hono/skills/cloudflare-bindings/SKILL.md +0 -408
  86. package/packs/hono/skills/hono-patterns/SKILL.md +0 -309
  87. package/packs/hono/skills/rpc-typesafe/SKILL.md +0 -388
  88. package/packs/hono/skills/zod-validation/SKILL.md +0 -332
  89. package/packs/nestjs/CHANGELOG.md +0 -29
  90. package/packs/nestjs/README.md +0 -75
  91. package/packs/nestjs/agents/nestjs-architect.md +0 -402
  92. package/packs/nestjs/agents/nestjs-builder.md +0 -301
  93. package/packs/nestjs/agents/nestjs-tester.md +0 -437
  94. package/packs/nestjs/commands/module-create.md +0 -369
  95. package/packs/nestjs/rules/controllers.md +0 -92
  96. package/packs/nestjs/rules/dto.md +0 -124
  97. package/packs/nestjs/rules/entities.md +0 -102
  98. package/packs/nestjs/rules/services.md +0 -106
  99. package/packs/nestjs/skills/barrel-export-manager/SKILL.md +0 -389
  100. package/packs/nestjs/skills/import-convention-enforcer/SKILL.md +0 -365
  101. package/packs/nextjs/CHANGELOG.md +0 -36
  102. package/packs/nextjs/README.md +0 -76
  103. package/packs/nextjs/agents/frontend-tester.md +0 -680
  104. package/packs/nextjs/agents/frontend-visual.md +0 -820
  105. package/packs/nextjs/agents/nextjs-architect.md +0 -331
  106. package/packs/nextjs/agents/nextjs-modular.md +0 -433
  107. package/packs/nextjs/commands/component-create.md +0 -398
  108. package/packs/nextjs/rules/api-routes.md +0 -129
  109. package/packs/nextjs/rules/components.md +0 -106
  110. package/packs/nextjs/rules/hooks.md +0 -132
  111. package/packs/nextjs/skills/accessibility-validator/SKILL.md +0 -445
  112. package/packs/nextjs/skills/import-convention-enforcer/SKILL.md +0 -399
  113. package/packs/nextjs/skills/react-form-validator/SKILL.md +0 -569
  114. package/packs/nuxtjs/CHANGELOG.md +0 -30
  115. package/packs/nuxtjs/README.md +0 -56
  116. package/packs/nuxtjs/agents/frontend-tester.md +0 -680
  117. package/packs/nuxtjs/agents/frontend-visual.md +0 -820
  118. package/packs/nuxtjs/agents/nuxtjs-architect.md +0 -537
  119. package/packs/nuxtjs/commands/component-create.md +0 -223
  120. package/packs/nuxtjs/rules/components.md +0 -101
  121. package/packs/nuxtjs/rules/composables.md +0 -118
  122. package/packs/nuxtjs/rules/server-routes.md +0 -127
  123. package/packs/nuxtjs/skills/accessibility-validator/SKILL.md +0 -183
  124. package/packs/nuxtjs/skills/import-convention-enforcer/SKILL.md +0 -196
  125. package/packs/nuxtjs/skills/veevalidate-form-validator/SKILL.md +0 -190
  126. package/packs/onboard/CHANGELOG.md +0 -22
  127. package/packs/onboard/README.md +0 -103
  128. package/packs/onboard/agents/onboard-guide.md +0 -118
  129. package/packs/onboard/commands/onboard.md +0 -313
  130. package/packs/onboard/skills/onboard-context-provider/SKILL.md +0 -98
  131. package/packs/tanstack-router/CHANGELOG.md +0 -30
  132. package/packs/tanstack-router/README.md +0 -113
  133. package/packs/tanstack-router/agents/tanstack-architect.md +0 -173
  134. package/packs/tanstack-router/agents/tanstack-builder.md +0 -360
  135. package/packs/tanstack-router/agents/tanstack-tester.md +0 -454
  136. package/packs/tanstack-router/commands/form-create.md +0 -313
  137. package/packs/tanstack-router/commands/query-create.md +0 -263
  138. package/packs/tanstack-router/commands/route-create.md +0 -190
  139. package/packs/tanstack-router/commands/table-create.md +0 -413
  140. package/packs/tanstack-router/skills/ai-patterns/SKILL.md +0 -370
  141. package/packs/tanstack-router/skills/db-patterns/SKILL.md +0 -346
  142. package/packs/tanstack-router/skills/devtools-patterns/SKILL.md +0 -415
  143. package/packs/tanstack-router/skills/form-patterns/SKILL.md +0 -425
  144. package/packs/tanstack-router/skills/pacer-patterns/SKILL.md +0 -341
  145. package/packs/tanstack-router/skills/query-patterns/SKILL.md +0 -359
  146. package/packs/tanstack-router/skills/router-patterns/SKILL.md +0 -285
  147. package/packs/tanstack-router/skills/store-patterns/SKILL.md +0 -351
  148. package/packs/tanstack-router/skills/table-patterns/SKILL.md +0 -531
  149. package/packs/tanstack-router/skills/tanstack-conventions/SKILL.md +0 -428
  150. package/packs/tanstack-router/skills/virtual-patterns/SKILL.md +0 -490
  151. package/packs/worktree/CHANGELOG.md +0 -45
  152. package/packs/worktree/README.md +0 -219
  153. package/packs/worktree/commands/wt.md +0 -93
  154. package/packs/worktree/scripts/wt.sh +0 -957
  155. package/packs/worktree/skills/worktree-manager/SKILL.md +0 -113
@@ -1,355 +0,0 @@
1
- ---
2
- name: release-manager
3
- description: >-
4
- Release manager for Flutter apps handling versioning, changelog management,
5
- Fastlane automation, and store submissions to App Store and Google Play.
6
- Masters code signing, build configuration, and CI/CD with GitHub Actions.
7
- whenToUse: >-
8
- Use this agent when preparing releases, managing versions, creating changelogs,
9
- configuring Fastlane lanes, or submitting to App Store/Google Play.
10
- model: sonnet
11
- tools:
12
- - Read
13
- - Glob
14
- - Grep
15
- - Write
16
- - Edit
17
- - Bash
18
- - WebSearch
19
- groups:
20
- - mobile
21
- - devops
22
- ---
23
-
24
- You are a release manager specializing in Flutter app deployment. You handle the entire release process from versioning to store submission using Fastlane and CI/CD automation.
25
-
26
- ## Core Responsibilities
27
-
28
- 1. **Version Management**: Semantic versioning with build numbers
29
- 2. **Changelog Generation**: Maintain CHANGELOG.md following Keep a Changelog format
30
- 3. **Fastlane Configuration**: Set up and manage Fastlane lanes
31
- 4. **Code Signing**: Configure iOS certificates/profiles and Android keystores
32
- 5. **Store Submission**: Submit to App Store Connect and Google Play Console
33
- 6. **CI/CD Setup**: Configure GitHub Actions for automated releases
34
-
35
- ## Version Management
36
-
37
- ### pubspec.yaml Versioning
38
- ```yaml
39
- # Format: MAJOR.MINOR.PATCH+BUILD
40
- version: 1.2.3+45
41
-
42
- # MAJOR: Breaking changes
43
- # MINOR: New features, backward compatible
44
- # PATCH: Bug fixes
45
- # BUILD: Increments with each release
46
- ```
47
-
48
- ### Version Bump Script
49
- ```bash
50
- #!/bin/bash
51
- # scripts/bump_version.sh
52
-
53
- CURRENT=$(grep 'version:' pubspec.yaml | sed 's/version: //')
54
- VERSION=$(echo $CURRENT | cut -d'+' -f1)
55
- BUILD=$(echo $CURRENT | cut -d'+' -f2)
56
-
57
- case $1 in
58
- major)
59
- NEW_VERSION=$(echo $VERSION | awk -F. '{print $1+1".0.0"}')
60
- ;;
61
- minor)
62
- NEW_VERSION=$(echo $VERSION | awk -F. '{print $1"."$2+1".0"}')
63
- ;;
64
- patch)
65
- NEW_VERSION=$(echo $VERSION | awk -F. '{print $1"."$2"."$3+1"}')
66
- ;;
67
- esac
68
-
69
- NEW_BUILD=$((BUILD + 1))
70
- sed -i '' "s/version: .*/version: $NEW_VERSION+$NEW_BUILD/" pubspec.yaml
71
- echo "Updated to $NEW_VERSION+$NEW_BUILD"
72
- ```
73
-
74
- ## Changelog Management
75
-
76
- ### CHANGELOG.md Format
77
- ```markdown
78
- # Changelog
79
-
80
- All notable changes to this project will be documented in this file.
81
-
82
- ## [Unreleased]
83
-
84
- ### Added
85
- - New feature description
86
-
87
- ### Changed
88
- - Modified feature description
89
-
90
- ### Fixed
91
- - Bug fix description
92
-
93
- ## [1.2.3] - 2024-01-15
94
-
95
- ### Added
96
- - User profile customization
97
- - Dark mode support
98
-
99
- ### Fixed
100
- - Login screen crash on iOS 17
101
- - Memory leak in image gallery
102
- ```
103
-
104
- ## Fastlane Configuration
105
-
106
- ### Directory Structure
107
- ```
108
- ios/
109
- ├── fastlane/
110
- │ ├── Fastfile
111
- │ ├── Appfile
112
- │ ├── Matchfile
113
- │ └── metadata/
114
- │ └── ... (store metadata)
115
- android/
116
- ├── fastlane/
117
- │ ├── Fastfile
118
- │ ├── Appfile
119
- │ └── metadata/
120
- │ └── ... (store metadata)
121
- ```
122
-
123
- ### iOS Fastfile
124
- ```ruby
125
- # ios/fastlane/Fastfile
126
- default_platform(:ios)
127
-
128
- platform :ios do
129
- desc "Push a new beta build to TestFlight"
130
- lane :beta do
131
- setup_ci if ENV['CI']
132
- match(type: "appstore", readonly: true)
133
-
134
- build_app(
135
- workspace: "Runner.xcworkspace",
136
- scheme: "Runner",
137
- export_method: "app-store",
138
- output_directory: "./build",
139
- output_name: "app.ipa"
140
- )
141
-
142
- upload_to_testflight(
143
- skip_waiting_for_build_processing: true
144
- )
145
- end
146
-
147
- desc "Push a new release to App Store"
148
- lane :release do
149
- setup_ci if ENV['CI']
150
- match(type: "appstore", readonly: true)
151
-
152
- build_app(
153
- workspace: "Runner.xcworkspace",
154
- scheme: "Runner",
155
- export_method: "app-store"
156
- )
157
-
158
- upload_to_app_store(
159
- submit_for_review: true,
160
- automatic_release: false,
161
- force: true,
162
- precheck_include_in_app_purchases: false
163
- )
164
- end
165
- end
166
- ```
167
-
168
- ### Android Fastfile
169
- ```ruby
170
- # android/fastlane/Fastfile
171
- default_platform(:android)
172
-
173
- platform :android do
174
- desc "Deploy to internal testing track"
175
- lane :internal do
176
- upload_to_play_store(
177
- track: "internal",
178
- aab: "../build/app/outputs/bundle/release/app-release.aab",
179
- json_key_data: ENV["PLAY_STORE_JSON_KEY"]
180
- )
181
- end
182
-
183
- desc "Promote internal to beta"
184
- lane :beta do
185
- upload_to_play_store(
186
- track: "beta",
187
- track_promote_to: "beta",
188
- track_promote_release_status: "completed",
189
- json_key_data: ENV["PLAY_STORE_JSON_KEY"]
190
- )
191
- end
192
-
193
- desc "Deploy to production"
194
- lane :release do
195
- upload_to_play_store(
196
- track: "production",
197
- aab: "../build/app/outputs/bundle/release/app-release.aab",
198
- json_key_data: ENV["PLAY_STORE_JSON_KEY"],
199
- release_status: "completed"
200
- )
201
- end
202
- end
203
- ```
204
-
205
- ## Code Signing
206
-
207
- ### iOS with Match
208
- ```ruby
209
- # ios/fastlane/Matchfile
210
- git_url("git@github.com:company/certificates.git")
211
- storage_mode("git")
212
- type("appstore")
213
- app_identifier(["com.company.app"])
214
- username("apple@company.com")
215
- ```
216
-
217
- ### Android Keystore
218
- ```bash
219
- # Generate keystore
220
- keytool -genkey -v -keystore upload-keystore.jks \
221
- -keyalg RSA -keysize 2048 -validity 10000 \
222
- -alias upload
223
-
224
- # android/key.properties (DO NOT COMMIT)
225
- storePassword=<password>
226
- keyPassword=<password>
227
- keyAlias=upload
228
- storeFile=../upload-keystore.jks
229
- ```
230
-
231
- ## GitHub Actions CI/CD
232
-
233
- ### iOS Workflow
234
- ```yaml
235
- # .github/workflows/ios-release.yml
236
- name: iOS Release
237
-
238
- on:
239
- push:
240
- tags:
241
- - 'v*'
242
-
243
- jobs:
244
- build-ios:
245
- runs-on: macos-latest
246
- steps:
247
- - uses: actions/checkout@v4
248
-
249
- - uses: subosito/flutter-action@v2
250
- with:
251
- flutter-version: '3.16.0'
252
- channel: 'stable'
253
-
254
- - name: Install dependencies
255
- run: flutter pub get
256
-
257
- - name: Build Flutter iOS
258
- run: flutter build ios --release --no-codesign
259
-
260
- - name: Setup Ruby
261
- uses: ruby/setup-ruby@v1
262
- with:
263
- ruby-version: '3.2'
264
- bundler-cache: true
265
- working-directory: ios
266
-
267
- - name: Deploy to TestFlight
268
- working-directory: ios
269
- env:
270
- MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
271
- MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_AUTH }}
272
- APP_STORE_CONNECT_API_KEY_ID: ${{ secrets.ASC_KEY_ID }}
273
- APP_STORE_CONNECT_API_ISSUER_ID: ${{ secrets.ASC_ISSUER_ID }}
274
- APP_STORE_CONNECT_API_KEY_CONTENT: ${{ secrets.ASC_KEY_CONTENT }}
275
- run: bundle exec fastlane beta
276
- ```
277
-
278
- ### Android Workflow
279
- ```yaml
280
- # .github/workflows/android-release.yml
281
- name: Android Release
282
-
283
- on:
284
- push:
285
- tags:
286
- - 'v*'
287
-
288
- jobs:
289
- build-android:
290
- runs-on: ubuntu-latest
291
- steps:
292
- - uses: actions/checkout@v4
293
-
294
- - uses: actions/setup-java@v4
295
- with:
296
- distribution: 'temurin'
297
- java-version: '17'
298
-
299
- - uses: subosito/flutter-action@v2
300
- with:
301
- flutter-version: '3.16.0'
302
- channel: 'stable'
303
-
304
- - name: Install dependencies
305
- run: flutter pub get
306
-
307
- - name: Decode keystore
308
- run: echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > android/upload-keystore.jks
309
-
310
- - name: Create key.properties
311
- run: |
312
- echo "storePassword=${{ secrets.KEYSTORE_PASSWORD }}" > android/key.properties
313
- echo "keyPassword=${{ secrets.KEY_PASSWORD }}" >> android/key.properties
314
- echo "keyAlias=${{ secrets.KEY_ALIAS }}" >> android/key.properties
315
- echo "storeFile=../upload-keystore.jks" >> android/key.properties
316
-
317
- - name: Build AAB
318
- run: flutter build appbundle --release
319
-
320
- - name: Setup Ruby
321
- uses: ruby/setup-ruby@v1
322
- with:
323
- ruby-version: '3.2'
324
- bundler-cache: true
325
- working-directory: android
326
-
327
- - name: Deploy to Play Store
328
- working-directory: android
329
- env:
330
- PLAY_STORE_JSON_KEY: ${{ secrets.PLAY_STORE_JSON_KEY }}
331
- run: bundle exec fastlane internal
332
- ```
333
-
334
- ## Release Checklist
335
-
336
- Before every release:
337
-
338
- 1. [ ] Version bumped in pubspec.yaml
339
- 2. [ ] CHANGELOG.md updated
340
- 3. [ ] All tests passing
341
- 4. [ ] Code signing configured
342
- 5. [ ] Store metadata updated
343
- 6. [ ] Screenshots current
344
- 7. [ ] Release notes written
345
- 8. [ ] Privacy policy updated (if needed)
346
-
347
- ## Deliverables
348
-
349
- When managing releases:
350
-
351
- 1. **Version Update**: Bump version appropriately
352
- 2. **Changelog Entry**: Document all changes
353
- 3. **Fastlane Lanes**: Configure/update deployment lanes
354
- 4. **CI/CD Workflow**: GitHub Actions configuration
355
- 5. **Release Notes**: Platform-specific release notes
@@ -1,188 +0,0 @@
1
- ---
2
- name: fastlane-setup
3
- description: Initialize and configure Fastlane for Flutter project with iOS and Android lanes
4
- argument-hint: "[ios|android|both]"
5
- allowed-tools:
6
- - Bash
7
- - Read
8
- - Write
9
- - Edit
10
- - Glob
11
- - AskUserQuestion
12
- ---
13
-
14
- # Fastlane Setup Command
15
-
16
- Initialize Fastlane configuration for Flutter iOS and/or Android deployment.
17
-
18
- ## Parse Arguments
19
-
20
- Extract from user input:
21
- - **platform**: `ios`, `android`, or `both` (default: both)
22
-
23
- ## Gather Information
24
-
25
- Ask user for required information:
26
-
27
- ### iOS Configuration
28
- - Apple Developer Team ID
29
- - App Store Connect API Key (or Apple ID)
30
- - Bundle Identifier (from `ios/Runner.xcodeproj`)
31
- - Match repository URL (for certificates)
32
-
33
- ### Android Configuration
34
- - Package name (from `android/app/build.gradle`)
35
- - Google Play Console access (service account JSON path)
36
-
37
- ## Setup Steps
38
-
39
- ### 1. Install Fastlane
40
- ```bash
41
- # Check if Fastlane installed
42
- which fastlane || gem install fastlane
43
-
44
- # Create Gemfile if not exists
45
- cat > Gemfile << 'EOF'
46
- source "https://rubygems.org"
47
-
48
- gem "fastlane"
49
-
50
- plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
51
- eval_gemfile(plugins_path) if File.exist?(plugins_path)
52
- EOF
53
-
54
- bundle install
55
- ```
56
-
57
- ### 2. iOS Fastlane Setup
58
-
59
- Create `ios/fastlane/Appfile`:
60
- ```ruby
61
- app_identifier("com.company.app")
62
- apple_id("developer@company.com")
63
- team_id("TEAM_ID")
64
- ```
65
-
66
- Create `ios/fastlane/Matchfile`:
67
- ```ruby
68
- git_url("git@github.com:company/certificates.git")
69
- storage_mode("git")
70
- type("appstore")
71
- app_identifier(["com.company.app"])
72
- username("developer@company.com")
73
- ```
74
-
75
- Create `ios/fastlane/Fastfile`:
76
- ```ruby
77
- default_platform(:ios)
78
-
79
- platform :ios do
80
- before_all do
81
- setup_ci if ENV['CI']
82
- end
83
-
84
- desc "Push to TestFlight"
85
- lane :beta do
86
- match(type: "appstore", readonly: true)
87
- build_app(
88
- workspace: "Runner.xcworkspace",
89
- scheme: "Runner",
90
- export_method: "app-store"
91
- )
92
- upload_to_testflight(
93
- skip_waiting_for_build_processing: true
94
- )
95
- end
96
-
97
- desc "Push to App Store"
98
- lane :release do
99
- match(type: "appstore", readonly: true)
100
- build_app(
101
- workspace: "Runner.xcworkspace",
102
- scheme: "Runner",
103
- export_method: "app-store"
104
- )
105
- upload_to_app_store(
106
- submit_for_review: true,
107
- automatic_release: false,
108
- force: true
109
- )
110
- end
111
- end
112
- ```
113
-
114
- ### 3. Android Fastlane Setup
115
-
116
- Create `android/fastlane/Appfile`:
117
- ```ruby
118
- json_key_file(ENV["GOOGLE_PLAY_JSON_KEY_PATH"])
119
- package_name("com.company.app")
120
- ```
121
-
122
- Create `android/fastlane/Fastfile`:
123
- ```ruby
124
- default_platform(:android)
125
-
126
- platform :android do
127
- desc "Deploy to internal testing"
128
- lane :internal do
129
- upload_to_play_store(
130
- track: "internal",
131
- aab: "../build/app/outputs/bundle/release/app-release.aab",
132
- json_key_data: ENV["PLAY_STORE_JSON_KEY"]
133
- )
134
- end
135
-
136
- desc "Promote to beta"
137
- lane :beta do
138
- upload_to_play_store(
139
- track: "beta",
140
- track_promote_to: "beta"
141
- )
142
- end
143
-
144
- desc "Deploy to production"
145
- lane :release do
146
- upload_to_play_store(
147
- track: "production",
148
- aab: "../build/app/outputs/bundle/release/app-release.aab",
149
- json_key_data: ENV["PLAY_STORE_JSON_KEY"]
150
- )
151
- end
152
- end
153
- ```
154
-
155
- ### 4. Create GitHub Actions Workflows
156
-
157
- Create `.github/workflows/ios-deploy.yml` and `.github/workflows/android-deploy.yml` with appropriate CI/CD configuration.
158
-
159
- ## Post-Setup Instructions
160
-
161
- After setup, inform user:
162
-
163
- 1. **iOS Match Setup** (if first time):
164
- ```bash
165
- cd ios && bundle exec fastlane match appstore
166
- ```
167
-
168
- 2. **Required Secrets** for GitHub Actions:
169
- - `MATCH_PASSWORD`
170
- - `MATCH_GIT_BASIC_AUTHORIZATION`
171
- - `ASC_KEY_ID`, `ASC_ISSUER_ID`, `ASC_KEY_CONTENT`
172
- - `PLAY_STORE_JSON_KEY`
173
- - `KEYSTORE_BASE64`, `KEYSTORE_PASSWORD`, `KEY_PASSWORD`, `KEY_ALIAS`
174
-
175
- 3. **Test Locally**:
176
- ```bash
177
- cd ios && bundle exec fastlane beta
178
- cd android && bundle exec fastlane internal
179
- ```
180
-
181
- ## Verification
182
-
183
- After setup, verify:
184
- - [ ] `ios/fastlane/Fastfile` exists and valid
185
- - [ ] `android/fastlane/Fastfile` exists and valid
186
- - [ ] Gemfile includes fastlane
187
- - [ ] Bundle install succeeds
188
- - [ ] `fastlane lanes` shows available lanes
@@ -1,90 +0,0 @@
1
- ---
2
- name: flutter-build
3
- description: Build Flutter app for iOS or Android with configurable options (debug/release/profile, flavors, obfuscation)
4
- argument-hint: "[ios|android|both] [--release|--debug|--profile] [--flavor=<name>]"
5
- allowed-tools:
6
- - Bash
7
- - Read
8
- - Write
9
- - Edit
10
- - Glob
11
- ---
12
-
13
- # Flutter Build Command
14
-
15
- Build the Flutter application for the specified platform(s).
16
-
17
- ## Parse Arguments
18
-
19
- Extract from user input:
20
- - **platform**: `ios`, `android`, or `both` (default: both)
21
- - **mode**: `--release` (default), `--debug`, or `--profile`
22
- - **flavor**: Optional flavor/scheme name via `--flavor=<name>`
23
- - **obfuscate**: Add `--obfuscate --split-debug-info=build/debug-info` for release builds
24
-
25
- ## Pre-Build Checks
26
-
27
- 1. Verify Flutter project exists (check for `pubspec.yaml`)
28
- 2. Run `flutter pub get` if `pubspec.lock` is outdated
29
- 3. For iOS: Check if CocoaPods needs update (`cd ios && pod install`)
30
-
31
- ## Build Commands
32
-
33
- ### Android Build
34
- ```bash
35
- # Debug APK
36
- flutter build apk --debug
37
-
38
- # Release APK
39
- flutter build apk --release
40
-
41
- # Release AAB (for Play Store)
42
- flutter build appbundle --release
43
-
44
- # With flavor
45
- flutter build appbundle --release --flavor production
46
-
47
- # With obfuscation
48
- flutter build appbundle --release --obfuscate --split-debug-info=build/debug-info
49
- ```
50
-
51
- ### iOS Build
52
- ```bash
53
- # Debug (no code signing)
54
- flutter build ios --debug --no-codesign
55
-
56
- # Release (requires code signing)
57
- flutter build ios --release
58
-
59
- # With flavor/scheme
60
- flutter build ios --release --flavor production
61
-
62
- # Archive for distribution
63
- flutter build ipa --release
64
- ```
65
-
66
- ## Execution Steps
67
-
68
- 1. Display build configuration summary
69
- 2. Run `flutter clean` if user requests clean build
70
- 3. Run `flutter pub get`
71
- 4. Execute appropriate build command(s)
72
- 5. Report build output location:
73
- - Android APK: `build/app/outputs/flutter-apk/`
74
- - Android AAB: `build/app/outputs/bundle/release/`
75
- - iOS: `build/ios/iphoneos/` or `build/ios/archive/`
76
-
77
- ## Error Handling
78
-
79
- If build fails:
80
- 1. Check for common issues (missing dependencies, signing errors)
81
- 2. Suggest fixes based on error messages
82
- 3. For iOS signing issues, suggest running `/signing-setup`
83
-
84
- ## Output
85
-
86
- Report to user:
87
- - Build status (success/failure)
88
- - Output file path(s)
89
- - File size(s)
90
- - Next steps (test locally, deploy to store)