@daemux/store-automator 0.8.0 → 0.9.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.
- package/.claude-plugin/marketplace.json +2 -2
- package/package.json +1 -1
- package/plugins/store-automator/.claude-plugin/plugin.json +1 -1
- package/plugins/store-automator/agents/appstore-meta-creator.md +13 -8
- package/plugins/store-automator/agents/architect.md +42 -1
- package/plugins/store-automator/agents/devops.md +26 -27
- package/scripts/check_google_play.py +1 -1
- package/scripts/manage_version_ios.py +1 -1
- package/src/install-paths.mjs +2 -3
- package/src/templates.mjs +2 -2
- package/templates/CLAUDE.md.template +70 -16
- package/templates/codemagic.template.yaml +131 -96
- package/templates/fastlane/android/Fastfile.template +21 -3
- package/templates/fastlane/ios/Fastfile.template +4 -3
- package/templates/github/workflows/android-release.yml +108 -39
- package/templates/github/workflows/codemagic-trigger.yml +15 -5
- package/templates/github/workflows/ios-release.yml +94 -37
- package/templates/scripts/check_google_play.py +1 -1
- package/templates/scripts/ci/android/check-readiness.sh +18 -24
- package/templates/scripts/ci/android/manage-version.sh +17 -16
- package/templates/scripts/ci/android/sync-iap.sh +6 -6
- package/templates/scripts/ci/android/update-data-safety.sh +2 -2
- package/templates/scripts/ci/android/upload-metadata.sh +23 -5
- package/templates/scripts/ci/common/install-fastlane.sh +1 -1
- package/templates/scripts/ci/common/link-fastlane.sh +1 -1
- package/templates/scripts/ci/common/read-config.sh +3 -0
- package/templates/scripts/ci/ios/build.sh +39 -0
- package/templates/scripts/ci/ios/set-build-number.sh +17 -20
- package/templates/scripts/ci/ios/setup-signing.sh +48 -7
- package/templates/scripts/ci/ios/sync-iap.sh +6 -17
- package/templates/scripts/ci/ios/upload-binary.sh +0 -1
- package/templates/scripts/ci/ios/upload-metadata.sh +3 -13
- package/templates/scripts/create_app_record.py +1 -1
- package/templates/scripts/manage_version_ios.py +1 -1
- package/templates/scripts/update_data_safety.py +1 -1
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
},
|
|
6
6
|
"metadata": {
|
|
7
7
|
"description": "App Store & Google Play automation for Flutter apps",
|
|
8
|
-
"version": "0.
|
|
8
|
+
"version": "0.9.0"
|
|
9
9
|
},
|
|
10
10
|
"plugins": [
|
|
11
11
|
{
|
|
12
12
|
"name": "store-automator",
|
|
13
13
|
"source": "./plugins/store-automator",
|
|
14
14
|
"description": "3 agents for app store publishing: reviewer, meta-creator, media-designer",
|
|
15
|
-
"version": "0.
|
|
15
|
+
"version": "0.9.0",
|
|
16
16
|
"keywords": ["flutter", "app-store", "google-play", "fastlane", "codemagic"]
|
|
17
17
|
}
|
|
18
18
|
]
|
package/package.json
CHANGED
|
@@ -152,14 +152,19 @@ af, am, ar, hy-AM, az-AZ, eu-ES, be, bn-BD, bg, my-MM, ca, zh-HK, zh-CN, zh-TW,
|
|
|
152
152
|
## Translation Process
|
|
153
153
|
|
|
154
154
|
1. Create complete English (en-US) metadata for both platforms first
|
|
155
|
-
2.
|
|
156
|
-
-
|
|
157
|
-
-
|
|
158
|
-
-
|
|
159
|
-
-
|
|
160
|
-
-
|
|
161
|
-
|
|
162
|
-
|
|
155
|
+
2. Group target languages from ci.config.yaml metadata.languages by similarity:
|
|
156
|
+
- Romance: es-ES, es-MX, fr-FR, fr-CA, it, pt-BR, pt-PT, ro, ca, gl-ES
|
|
157
|
+
- Germanic: de-DE, nl-NL, sv, da, no, fi
|
|
158
|
+
- Slavic: ru, uk, pl, cs, sk, hr, bg, sr, sl, mk-MK, be
|
|
159
|
+
- CJK: ja, ko, zh-Hans, zh-Hant, zh-Hant-HK, zh-CN, zh-TW, zh-HK
|
|
160
|
+
- South/Southeast Asian: hi, th, vi, id, ms, bn-BD, ta-IN, te-IN, ml-IN, mr-IN, kn-IN, gu, my-MM, km-KH, lo-LA, si-LK
|
|
161
|
+
- Middle Eastern: ar, ar-SA, he, tr, fa, ur
|
|
162
|
+
- Other: hu, el, et, lv, lt, ka-GE, hy-AM, az-AZ, kk, ky-KG, mn-MN, ne-NP, af, am, sw, zu, fil, is-IS, eu-ES, rm, pa
|
|
163
|
+
3. Create a translation team using TeamCreate with 2-5 teammates:
|
|
164
|
+
- Each teammate handles 2-5 language groups (based on total languages configured)
|
|
165
|
+
- Teammate prompt includes: English source texts, target locale codes (Apple + Google variants), character limits per field, translation instructions
|
|
166
|
+
- Each teammate writes files directly to the correct locale directories
|
|
167
|
+
4. Wait for all teammates to complete, then verify all languages are covered
|
|
163
168
|
|
|
164
169
|
### Translation Instructions for Sub-Agents
|
|
165
170
|
|
|
@@ -138,7 +138,48 @@ If a `.claude/.tasks/` file path is provided, read ONLY that file for requiremen
|
|
|
138
138
|
Scan the codebase for already-implemented items. Pick 3-5 UNIMPLEMENTED
|
|
139
139
|
related requirements. Design only those. Report: "Batch: N of ~M remaining."
|
|
140
140
|
|
|
141
|
+
## Team Composition Recommendation
|
|
142
|
+
|
|
143
|
+
**MANDATORY section in your output.** The orchestrator uses this to create teams.
|
|
144
|
+
|
|
145
|
+
After your architecture design, include this section:
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
### Team Recommendations for Orchestrator
|
|
149
|
+
|
|
150
|
+
**Files touched:** {count}
|
|
151
|
+
|
|
152
|
+
#### Developer Team (Flutter)
|
|
153
|
+
- **Teammates:** {N} (based on file count: 3-4 files → 2, 5-7 → 3, 8+ → 4)
|
|
154
|
+
- **Teammate 1 scope:** Screens and widgets — {list of files}
|
|
155
|
+
- **Teammate 2 scope:** Providers and repositories — {list of files}
|
|
156
|
+
- **Teammate 3 scope:** Firebase/backend services — {list of files} (if applicable)
|
|
157
|
+
- **Rationale:** {why this split works}
|
|
158
|
+
|
|
159
|
+
#### Reviewer Team
|
|
160
|
+
- **Teammates:** 2-3
|
|
161
|
+
- **Reviewer 1 focus:** Dart code quality, patterns, maintainability — files: {list}
|
|
162
|
+
- **Reviewer 2 focus:** Security, Firebase rules, data validation — files: {list}
|
|
163
|
+
- **Reviewer 3 focus:** Performance, store compliance — files: {list} (if 5+ files)
|
|
164
|
+
|
|
165
|
+
#### Tester Team
|
|
166
|
+
- **Teammates:** 2-4
|
|
167
|
+
- **Tester 1 focus:** Flutter unit and widget tests — {scope}
|
|
168
|
+
- **Tester 2 focus:** Mobile UI testing (iOS) — {scope}
|
|
169
|
+
- **Tester 3 focus:** Mobile UI testing (Android) — {scope} (if applicable)
|
|
170
|
+
|
|
171
|
+
#### App Designer Team (if design stage applies)
|
|
172
|
+
- **Teammates:** 2-3
|
|
173
|
+
- **Designer 1 scope:** App screen designs — {deliverables}
|
|
174
|
+
- **Designer 2 scope:** Store screenshots — {deliverables}
|
|
175
|
+
- **Designer 3 scope:** Web page design — {deliverables} (if applicable)
|
|
176
|
+
|
|
177
|
+
**TEAM EXCEPTION:** If task touches <3 files, output: "Files touched: {N} — below team threshold, single agents recommended."
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Include concrete file assignments. The orchestrator will use this to create `TeamCreate` with the exact scopes you specify.
|
|
181
|
+
|
|
141
182
|
## Output Footer
|
|
142
183
|
```
|
|
143
|
-
NEXT: product-manager(PRE) to validate approach before implementation
|
|
184
|
+
NEXT: product-manager(PRE) to validate approach and team composition before implementation
|
|
144
185
|
```
|
|
@@ -4,16 +4,18 @@ description: "DevOps operations: Codemagic CI/CD builds, Firebase deployment, Cl
|
|
|
4
4
|
model: opus
|
|
5
5
|
hooks:
|
|
6
6
|
PreToolUse:
|
|
7
|
-
- matcher: "Edit|Write"
|
|
8
|
-
hooks:
|
|
9
|
-
- type: command
|
|
10
|
-
command: "exit 0"
|
|
11
7
|
- matcher: "Bash"
|
|
12
8
|
hooks:
|
|
13
9
|
- type: command
|
|
14
10
|
command: "exit 0"
|
|
15
11
|
---
|
|
16
12
|
|
|
13
|
+
**SCOPE RESTRICTION:**
|
|
14
|
+
- You CANNOT edit or create ANY local project files (no Edit/Write tools)
|
|
15
|
+
- This includes: source code, CI/CD configs, GitHub Actions workflows, scripts, codemagic.yaml, etc.
|
|
16
|
+
- You CAN only: run deployments, check logs, monitor builds, manage infrastructure via Bash and MCP tools
|
|
17
|
+
- If ANY local file changes are needed (code, configs, CI/CD, scripts), report what needs changing and ask the developer agent to make the edits
|
|
18
|
+
|
|
17
19
|
# DevOps Agent
|
|
18
20
|
|
|
19
21
|
Handles Codemagic CI/CD builds, Firebase deployment, Cloudflare Pages deployment, and Firestore management for Flutter mobile apps.
|
|
@@ -24,7 +26,7 @@ Handles Codemagic CI/CD builds, Firebase deployment, Cloudflare Pages deployment
|
|
|
24
26
|
- `codemagic` - Build monitoring, deployment tracking, log analysis, build triggering
|
|
25
27
|
- `firebase` - Deploy Cloud Functions, security rules, Firestore indexes
|
|
26
28
|
- `cloudflare` - Deploy web pages via Cloudflare Pages
|
|
27
|
-
- `database +
|
|
29
|
+
- `database + deploy` - Deploy Firestore security rules, indexes, and run data migration scripts
|
|
28
30
|
- `database + optimize` - Firestore query optimization, index analysis, security rules audit
|
|
29
31
|
|
|
30
32
|
Additional parameters vary by mode (see each section).
|
|
@@ -283,38 +285,35 @@ RECOMMENDATION: [action if needed]
|
|
|
283
285
|
|
|
284
286
|
---
|
|
285
287
|
|
|
286
|
-
## Mode: database +
|
|
288
|
+
## Mode: database + deploy
|
|
287
289
|
|
|
288
|
-
|
|
290
|
+
Deploy Firestore security rules, indexes, and run data migration scripts. Firestore is NoSQL -- there are no SQL migrations.
|
|
289
291
|
|
|
290
|
-
### Security Rules
|
|
292
|
+
### Security Rules Deployment
|
|
291
293
|
|
|
292
|
-
1.
|
|
293
|
-
2.
|
|
294
|
-
3.
|
|
295
|
-
4. Test rules locally: `firebase emulators:start --only firestore`
|
|
296
|
-
5. Deploy: `firebase deploy --only firestore:rules`
|
|
294
|
+
1. Deploy rules: `firebase deploy --only firestore:rules`
|
|
295
|
+
2. Verify deployment succeeded in Firebase Console or CLI output
|
|
296
|
+
3. Test rules against expected access patterns
|
|
297
297
|
|
|
298
|
-
### Index
|
|
298
|
+
### Index Deployment
|
|
299
299
|
|
|
300
|
-
1.
|
|
301
|
-
2.
|
|
302
|
-
3.
|
|
303
|
-
4. Monitor index build status (can take minutes for large collections)
|
|
300
|
+
1. Deploy indexes: `firebase deploy --only firestore:indexes`
|
|
301
|
+
2. Monitor index build status (can take minutes for large collections)
|
|
302
|
+
3. Verify all indexes reach READY state
|
|
304
303
|
|
|
305
|
-
### Data Migration
|
|
304
|
+
### Data Migration Execution
|
|
306
305
|
|
|
307
|
-
For
|
|
308
|
-
1.
|
|
309
|
-
2. Run against
|
|
310
|
-
3.
|
|
311
|
-
4. Log progress and
|
|
306
|
+
For running migration scripts (created by the developer agent):
|
|
307
|
+
1. Run migration script against local emulator first: `firebase emulators:start --only firestore`
|
|
308
|
+
2. Run against production with monitoring
|
|
309
|
+
3. Verify data integrity after migration completes
|
|
310
|
+
4. Log progress and report any failures
|
|
312
311
|
|
|
313
312
|
### Output
|
|
314
313
|
|
|
315
314
|
```
|
|
316
|
-
OPERATION: Firestore
|
|
317
|
-
CHANGES: [list of
|
|
315
|
+
OPERATION: Firestore Deploy
|
|
316
|
+
CHANGES: [list of deployed rules/indexes/migrations]
|
|
318
317
|
EMULATOR TEST: Passed | Failed
|
|
319
318
|
DEPLOYED: [rules | indexes | data migration]
|
|
320
319
|
RESULT: Success | Failed
|
|
@@ -390,5 +389,5 @@ After editing `ci.config.yaml`, regenerate the Codemagic config:
|
|
|
390
389
|
## Output Footer
|
|
391
390
|
|
|
392
391
|
```
|
|
393
|
-
NEXT: [context-dependent - for
|
|
392
|
+
NEXT: [context-dependent - for database deploy: verify deployment succeeded]
|
|
394
393
|
```
|
|
@@ -25,7 +25,7 @@ except ImportError:
|
|
|
25
25
|
print("Installing dependencies...", file=sys.stderr)
|
|
26
26
|
import subprocess
|
|
27
27
|
subprocess.check_call(
|
|
28
|
-
[sys.executable, "-m", "pip", "install", "PyJWT", "cryptography", "requests"],
|
|
28
|
+
[sys.executable, "-m", "pip", "install", "--break-system-packages", "PyJWT", "cryptography", "requests"],
|
|
29
29
|
stdout=subprocess.DEVNULL,
|
|
30
30
|
)
|
|
31
31
|
import jwt
|
|
@@ -32,7 +32,7 @@ except ImportError:
|
|
|
32
32
|
print("Installing dependencies...", file=sys.stderr)
|
|
33
33
|
import subprocess
|
|
34
34
|
subprocess.check_call([
|
|
35
|
-
sys.executable, "-m", "pip", "install",
|
|
35
|
+
sys.executable, "-m", "pip", "install", "--break-system-packages",
|
|
36
36
|
"PyJWT", "cryptography", "requests"
|
|
37
37
|
], stdout=subprocess.DEVNULL)
|
|
38
38
|
import jwt
|
package/src/install-paths.mjs
CHANGED
|
@@ -2,7 +2,7 @@ import { execSync, execFileSync } from 'node:child_process';
|
|
|
2
2
|
import { installGitHubActionsTemplates, installMatchfile } from './templates.mjs';
|
|
3
3
|
import { findAppByRepo, addApp, normalizeRepoUrl } from './codemagic-api.mjs';
|
|
4
4
|
import {
|
|
5
|
-
writeCiAppId, writeCiTeamId, writeMatchConfig,
|
|
5
|
+
writeCiAppId, writeCiTeamId, writeMatchConfig,
|
|
6
6
|
} from './ci-config.mjs';
|
|
7
7
|
import { updateMcpAppId, updateMcpTeamId } from './mcp-setup.mjs';
|
|
8
8
|
|
|
@@ -68,8 +68,7 @@ export function installGitHubActionsPath(projectDir, packageDir, cliTokens) {
|
|
|
68
68
|
console.log('Configuring GitHub Actions mode...');
|
|
69
69
|
installGitHubActionsTemplates(projectDir, packageDir);
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
installMatchfile(projectDir, packageDir, flutterRoot, {
|
|
71
|
+
installMatchfile(projectDir, packageDir, {
|
|
73
72
|
matchGitUrl: cliTokens.matchGitUrl,
|
|
74
73
|
bundleId: cliTokens.bundleId,
|
|
75
74
|
});
|
package/src/templates.mjs
CHANGED
|
@@ -134,12 +134,12 @@ export function installGitHubActionsTemplates(projectDir, packageDir) {
|
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
export function installMatchfile(projectDir, packageDir,
|
|
137
|
+
export function installMatchfile(projectDir, packageDir, { matchGitUrl, bundleId }) {
|
|
138
138
|
console.log('Installing Matchfile...');
|
|
139
139
|
const src = join(packageDir, 'templates', 'Matchfile.template');
|
|
140
140
|
if (!existsSync(src)) return;
|
|
141
141
|
|
|
142
|
-
const destDir = join(projectDir,
|
|
142
|
+
const destDir = join(projectDir, 'fastlane', 'ios');
|
|
143
143
|
ensureDir(destDir);
|
|
144
144
|
const dest = join(destDir, 'Matchfile');
|
|
145
145
|
|
|
@@ -14,7 +14,7 @@ This is a Flutter app with Firebase backend, automated for App Store and Google
|
|
|
14
14
|
- If unsure which agent to use, use the Task tool with a general-purpose, explore or any other built-in agent
|
|
15
15
|
|
|
16
16
|
### DevOps Agent Required
|
|
17
|
-
ALL deployment and infrastructure operations SHOULD use the devops agent (codemagic, firebase, cloudflare, database/
|
|
17
|
+
ALL deployment and infrastructure operations SHOULD use the devops agent (codemagic, firebase, cloudflare, database/deploy, database/optimize).
|
|
18
18
|
Prefer using the devops agent over direct Bash/SSH for structured operations.
|
|
19
19
|
|
|
20
20
|
### Code Quality (enforced by agents)
|
|
@@ -127,7 +127,7 @@ appstore-meta-creator → appstore-reviewer
|
|
|
127
127
|
|
|
128
128
|
#### Database Flow
|
|
129
129
|
```
|
|
130
|
-
|
|
130
|
+
architect → developer(backend) → simplifier → reviewer → product-manager(POST) → [devops(firebase)]
|
|
131
131
|
```
|
|
132
132
|
|
|
133
133
|
#### Infra Flow
|
|
@@ -140,6 +140,39 @@ devops (standalone)
|
|
|
140
140
|
architect → product-manager(PRE) → app-designer → developer(flutter) → simplifier → reviewer → tester(flutter) → tester(mobile-ui) → appstore-meta-creator → appstore-reviewer → product-manager(POST) → devops(codemagic)
|
|
141
141
|
```
|
|
142
142
|
|
|
143
|
+
#### Team Size Annotations
|
|
144
|
+
|
|
145
|
+
Flows above use single agents by default. For tasks touching 3+ files, apply team sizes:
|
|
146
|
+
|
|
147
|
+
| Files Touched | Team Size |
|
|
148
|
+
|--------------|-----------|
|
|
149
|
+
| 1-2 files | Single agent (no team) |
|
|
150
|
+
| 3-4 files | 2 teammates |
|
|
151
|
+
| 5-7 files | 3 teammates |
|
|
152
|
+
| 8+ files | 4 teammates |
|
|
153
|
+
|
|
154
|
+
**Team-annotated flows** (apply when task scope exceeds 2 files):
|
|
155
|
+
|
|
156
|
+
##### Standard Flow (with teams)
|
|
157
|
+
```
|
|
158
|
+
architect{T:2} → product-manager(PRE) → developer{T:2-4} → simplifier → reviewer{T:2} → tester{T:2} → product-manager(POST) → [devops]
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
##### Flutter Flow (with teams)
|
|
162
|
+
```
|
|
163
|
+
architect{T:2} → product-manager(PRE) → [app-designer{T:2-3}] → developer(flutter){T:2-4} → simplifier → reviewer{T:2-3} → tester(flutter){T:2} → tester(mobile-ui){T:2} → product-manager(POST) → [devops(codemagic)]
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
##### Backend Flow (with teams)
|
|
167
|
+
```
|
|
168
|
+
architect{T:2} → product-manager(PRE) → developer(backend){T:2-4} → simplifier → reviewer{T:2} → tester(backend){T:2} → product-manager(POST) → [devops(firebase)]
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
##### Full Publishing Flow (with teams)
|
|
172
|
+
```
|
|
173
|
+
architect{T:2} → product-manager(PRE) → app-designer{T:2-3} → developer(flutter){T:2-4} → simplifier → reviewer{T:2-3} → tester(flutter){T:2} → tester(mobile-ui){T:2} → appstore-meta-creator{T:2-5} → appstore-reviewer → product-manager(POST) → devops(codemagic)
|
|
174
|
+
```
|
|
175
|
+
|
|
143
176
|
### Agents Reference
|
|
144
177
|
|
|
145
178
|
| Agent | When to use |
|
|
@@ -150,7 +183,7 @@ architect → product-manager(PRE) → app-designer → developer(flutter) → s
|
|
|
150
183
|
| simplifier | AFTER developer - simplifies Dart/Flutter code |
|
|
151
184
|
| reviewer | After ANY code changes - Dart/Flutter quality review |
|
|
152
185
|
| tester | After review passes (type: flutter/mobile-ui/web/backend/integration) |
|
|
153
|
-
| devops | Operations (mode: codemagic/firebase/cloudflare/database+
|
|
186
|
+
| devops | Operations (mode: codemagic/firebase/cloudflare/database+deploy/database+optimize) |
|
|
154
187
|
| app-designer | Stitch MCP design: app screens + store screenshots + web page design |
|
|
155
188
|
| appstore-meta-creator | Generate store listing texts for all configured languages |
|
|
156
189
|
| appstore-reviewer | Full App Store/Play compliance review including live app UI testing via mobile-mcp |
|
|
@@ -240,21 +273,42 @@ Push to main. Codemagic detects changes and uploads modified assets. Version aut
|
|
|
240
273
|
**If you are a TEAMMATE, skip to "For Teammates" section below.**
|
|
241
274
|
---
|
|
242
275
|
|
|
243
|
-
### Agent Teams (
|
|
276
|
+
### Agent Teams (MANDATORY by default)
|
|
277
|
+
|
|
278
|
+
**Teams are the DEFAULT for most workflow stages.** Single-agent is the exception, not the norm.
|
|
279
|
+
|
|
280
|
+
#### Mandatory Team Stages
|
|
281
|
+
|
|
282
|
+
These stages MUST use teams unless the task touches fewer than 3 files:
|
|
283
|
+
|
|
284
|
+
| Stage | Default Size | Split Strategy |
|
|
285
|
+
|-------|-------------|----------------|
|
|
286
|
+
| architect | 2 | Split by concern: structure/patterns vs integration/data-flow |
|
|
287
|
+
| developer | 2-4 | Split by file group: screens/widgets vs providers/repos vs Firebase/backend |
|
|
288
|
+
| reviewer | 2-3 | Split by focus: Dart quality vs security+Firebase rules vs performance+store compliance |
|
|
289
|
+
| tester | 2-4 | Split by type: flutter unit/widget vs mobile-ui iOS vs mobile-ui Android vs web |
|
|
290
|
+
| app-designer | 2-3 | Split by deliverable: app screens vs store screenshots vs web page |
|
|
291
|
+
| appstore-meta-creator | 2-5 | Split by language group: each teammate handles 2-5 languages grouped by similarity |
|
|
292
|
+
|
|
293
|
+
#### Single-Agent Stages (exceptions)
|
|
244
294
|
|
|
245
|
-
|
|
295
|
+
These stages stay single-agent — teams add no value:
|
|
246
296
|
|
|
247
|
-
|
|
297
|
+
| Stage | Reason |
|
|
298
|
+
|-------|--------|
|
|
299
|
+
| simplifier | Works on same files developer just touched — no parallelism possible |
|
|
300
|
+
| product-manager | Single evaluation checkpoint — multiple perspectives don't help |
|
|
301
|
+
| devops | Single deployment target — cannot parallelize |
|
|
302
|
+
| appstore-reviewer | Single compliance evaluation — one holistic review needed |
|
|
248
303
|
|
|
249
|
-
|
|
250
|
-
- Multiple perspectives improve quality
|
|
251
|
-
- Competing approaches find better solutions
|
|
252
|
-
- Stage work splits into independent file groups
|
|
304
|
+
#### Team Size Triggers
|
|
253
305
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
-
|
|
257
|
-
-
|
|
306
|
+
| Files Touched | Team Size |
|
|
307
|
+
|--------------|-----------|
|
|
308
|
+
| 1-2 files | Single agent — TEAM EXCEPTION |
|
|
309
|
+
| 3-4 files | 2 teammates |
|
|
310
|
+
| 5-7 files | 3 teammates |
|
|
311
|
+
| 8+ files | 4 teammates |
|
|
258
312
|
|
|
259
313
|
**Team Enforcement (MANDATORY):**
|
|
260
314
|
If `TEAMS:` output includes any stage using teams, you MUST call `TeamCreate` before spawning agents for that stage. Spawning agents via `Task` without `team_name` does NOT count as using teams. Violation = workflow non-compliance.
|
|
@@ -324,7 +378,7 @@ TASK TYPE: [flutter/backend/design/metadata/database/infra/standard]
|
|
|
324
378
|
RECOMMENDED FLOW:
|
|
325
379
|
<copy the EXACT flow from Agent Flows section - include ALL agents with [optional] ones>
|
|
326
380
|
|
|
327
|
-
TEAMS: [
|
|
381
|
+
TEAMS: [MANDATORY — list team stages with sizes. Single-agent exceptions: list which stages and why. "NO" only valid for tasks <3 files]
|
|
328
382
|
|
|
329
383
|
DEPLOYMENT: [AVAILABLE - deployment configured | NOT CONFIGURED - workflow ends at product-manager(POST)]
|
|
330
384
|
|
|
@@ -342,7 +396,7 @@ LAUNCHING: [first-agent-name]
|
|
|
342
396
|
- **backend**: `architect → product-manager(PRE) → developer(backend) → simplifier → reviewer → tester(backend) → product-manager(POST) → [devops(firebase)]`
|
|
343
397
|
- **design**: `app-designer → appstore-reviewer`
|
|
344
398
|
- **metadata**: `appstore-meta-creator → appstore-reviewer`
|
|
345
|
-
- **database**: `
|
|
399
|
+
- **database**: `architect → developer(backend) → simplifier → reviewer → product-manager(POST) → [devops(firebase)]`
|
|
346
400
|
- **infra**: `devops (standalone)`
|
|
347
401
|
- **standard**: `architect → product-manager(PRE) → developer → simplifier → reviewer → tester → product-manager(POST) → [devops]`
|
|
348
402
|
|