@mmerterden/multi-agent-pipeline 13.5.0 → 14.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.
- package/CHANGELOG.md +243 -0
- package/README.md +3 -3
- package/docs/features.md +1 -1
- package/install/_common.mjs +73 -0
- package/install/_mcp-register.mjs +70 -31
- package/install/_plugin-skills.mjs +73 -14
- package/install/claude.mjs +28 -4
- package/install/codex.mjs +33 -2
- package/install/copilot.mjs +145 -9
- package/install/index.mjs +10 -6
- package/install/templates/copilot-instructions.md +1 -1
- package/package.json +1 -1
- package/pipeline/agents/code-reviewer.md +58 -1
- package/pipeline/commands/multi-agent/SKILL.md +7 -5
- package/pipeline/commands/multi-agent/analysis/SKILL.md +7 -7
- package/pipeline/commands/multi-agent/analysis-resolve/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/build-optimize/SKILL.md +7 -7
- package/pipeline/commands/multi-agent/channels/SKILL.md +5 -5
- package/pipeline/commands/multi-agent/dev/SKILL.md +23 -18
- package/pipeline/commands/multi-agent/dev-autopilot/SKILL.md +19 -13
- package/pipeline/commands/multi-agent/dev-local/SKILL.md +14 -12
- package/pipeline/commands/multi-agent/dev-local-autopilot/SKILL.md +17 -12
- package/pipeline/commands/multi-agent/garbage-collect/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/help/SKILL.md +4 -4
- package/pipeline/commands/multi-agent/ios-coding-standard/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/local-autopilot/SKILL.md +4 -4
- package/pipeline/commands/multi-agent/resume/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/review/SKILL.md +5 -5
- package/pipeline/commands/multi-agent/scan/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/search/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/setup/SKILL.md +6 -6
- package/pipeline/commands/multi-agent/{finish → ship}/SKILL.md +12 -12
- package/pipeline/commands/multi-agent/testflight-validation/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/update/SKILL.md +5 -2
- package/pipeline/commands/sim-test.md +2 -2
- package/pipeline/lib/credential-store-resolver.sh +16 -0
- package/pipeline/lib/credential-store.sh +47 -4
- package/pipeline/lib/fetch-figma-annotations.sh +26 -28
- package/pipeline/lib/figma-screenshot.sh +28 -39
- package/pipeline/lib/figma-token.sh +63 -0
- package/pipeline/multi-agent-refs/analysis-template.md +1 -1
- package/pipeline/multi-agent-refs/android-guide.md +1 -1
- package/pipeline/multi-agent-refs/channels/issue-comment.md +1 -1
- package/pipeline/multi-agent-refs/component-dispatch.md +2 -2
- package/pipeline/multi-agent-refs/cross-cli-contract.md +4 -4
- package/pipeline/multi-agent-refs/features/dev-critic.md +2 -2
- package/pipeline/multi-agent-refs/features/model-fallback.md +35 -2
- package/pipeline/multi-agent-refs/features/plan-todos.md +1 -1
- package/pipeline/multi-agent-refs/features/repo-map.md +1 -1
- package/pipeline/multi-agent-refs/features/review-multi-repo.md +3 -3
- package/pipeline/multi-agent-refs/features/shadow-git.md +1 -1
- package/pipeline/multi-agent-refs/features/skill-conformance.md +116 -0
- package/pipeline/multi-agent-refs/features/verify-by-test.md +1 -1
- package/pipeline/multi-agent-refs/generate-issue.md +1 -1
- package/pipeline/multi-agent-refs/multi-repo-integration-build.md +1 -1
- package/pipeline/multi-agent-refs/phases/log-format.md +4 -4
- package/pipeline/multi-agent-refs/phases/modes.md +7 -7
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +13 -11
- package/pipeline/multi-agent-refs/phases/phase-1-analysis.md +17 -15
- package/pipeline/multi-agent-refs/phases/phase-2-planning.md +7 -7
- package/pipeline/multi-agent-refs/phases/phase-3-dev.md +28 -13
- package/pipeline/multi-agent-refs/phases/phase-4-review.md +90 -58
- package/pipeline/multi-agent-refs/phases/phase-5-test.md +7 -7
- package/pipeline/multi-agent-refs/phases/phase-6-commit.md +8 -8
- package/pipeline/multi-agent-refs/phases/phase-7-report.md +8 -8
- package/pipeline/multi-agent-refs/phases.md +13 -13
- package/pipeline/multi-agent-refs/progress-contract.md +2 -2
- package/pipeline/multi-agent-refs/rules.md +7 -5
- package/pipeline/multi-agent-refs/swiftui-guide.md +1 -1
- package/pipeline/multi-agent-refs/tracker-contract.md +16 -15
- package/pipeline/preferences-template.json +7 -1
- package/pipeline/rules/figma-pipeline.md +2 -2
- package/pipeline/schemas/agent-state.schema.json +333 -79
- package/pipeline/schemas/criteria-manifest.schema.json +228 -0
- package/pipeline/schemas/migrations/prefs-2.4.0-to-2.5.0.mjs +64 -0
- package/pipeline/schemas/prefs.schema.json +118 -262
- package/pipeline/schemas/reviewer-output.schema.json +48 -3
- package/pipeline/schemas/token-budget.json +34 -10
- package/pipeline/schemas/triage-output.schema.json +112 -27
- package/pipeline/scripts/cost-table.json +7 -4
- package/pipeline/scripts/gc-worktrees.sh +1 -1
- package/pipeline/scripts/gen-mode-dispatch.mjs +6 -6
- package/pipeline/scripts/match-skills.mjs +37 -4
- package/pipeline/scripts/migrate-prefs.mjs +88 -17
- package/pipeline/scripts/phase-tracker.sh +14 -3
- package/pipeline/scripts/pre-commit-check.sh +49 -2
- package/pipeline/scripts/skill-conformance.mjs +960 -0
- package/pipeline/scripts/smoke-schema-validation.sh +17 -4
- package/pipeline/scripts/uninstall.mjs +35 -9
- package/pipeline/scripts/validate-reviewer.mjs +108 -1
- package/pipeline/skills/.skill-manifest.json +1 -1
- package/pipeline/skills/.skills-index.json +36 -9
- package/pipeline/skills/shared/README.md +15 -12
- package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +1 -0
- package/pipeline/skills/shared/core/apple-archive-compliance/references/rules.yml +167 -0
- package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +1 -0
- package/pipeline/skills/shared/core/google-play-compliance/references/rules.yml +184 -0
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +10 -10
- package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +4 -4
- package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +3 -3
- package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent-create-jira/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-dev/SKILL.md +6 -5
- package/pipeline/skills/shared/core/multi-agent-dev-autopilot/SKILL.md +7 -6
- package/pipeline/skills/shared/core/multi-agent-dev-local/SKILL.md +4 -3
- package/pipeline/skills/shared/core/multi-agent-dev-local-autopilot/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +2 -2
- package/pipeline/skills/shared/core/multi-agent-ios-coding-standard/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-local-autopilot/SKILL.md +4 -4
- package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +5 -5
- package/pipeline/skills/shared/core/multi-agent-scan/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-search/SKILL.md +1 -1
- package/pipeline/skills/shared/core/{multi-agent-finish → multi-agent-ship}/SKILL.md +8 -8
- package/pipeline/skills/shared/external/ios-coding-standard/SKILL.md +44 -5
- package/pipeline/skills/shared/external/ios-coding-standard/modules/_TEMPLATE.yml +82 -0
- package/pipeline/skills/shared/external/ios-coding-standard/references/STANDARD.md +169 -10
- package/pipeline/skills/shared/external/ios-coding-standard/references/lint-local.sh +13 -1
- package/pipeline/skills/shared/external/ios-coding-standard/references/rules.yml +335 -16
- package/pipeline/skills/skills-index.md +11 -8
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
version: 1.0.0
|
|
2
|
+
updated: 2026-07-29
|
|
3
|
+
owner: iOS platform
|
|
4
|
+
description: >
|
|
5
|
+
App Store review + ITMS upload rules, as a machine-readable registry. IDs are the
|
|
6
|
+
source-of-truth IDs the underlying scanner uses and are stable across versions - a
|
|
7
|
+
finding cites the ID so the author can look the rule up and disagree with it.
|
|
8
|
+
|
|
9
|
+
# What these rules may be applied to. Every rule here is measured against a BUILT
|
|
10
|
+
# archive, not against source, so path scoping names the release-relevant inputs a
|
|
11
|
+
# diff can touch. A consumer resolves this before selecting rules and records what
|
|
12
|
+
# it dropped: applying an archive rule to a source-only diff produces a finding
|
|
13
|
+
# nobody can act on.
|
|
14
|
+
scope:
|
|
15
|
+
languages: [swift, objective-c]
|
|
16
|
+
paths:
|
|
17
|
+
- "**/Info.plist"
|
|
18
|
+
- "**/PrivacyInfo.xcprivacy"
|
|
19
|
+
- "**/*.entitlements"
|
|
20
|
+
- "**/*App.swift"
|
|
21
|
+
- "**/AppDelegate*.swift"
|
|
22
|
+
- "**/SceneDelegate*.swift"
|
|
23
|
+
- "**/project.pbxproj"
|
|
24
|
+
- "**/*.xcarchive/**"
|
|
25
|
+
notCovered:
|
|
26
|
+
android: Play policy is a separate registry - see google-play-compliance
|
|
27
|
+
source-quality: readability, naming and architecture live in ios-coding-standard
|
|
28
|
+
|
|
29
|
+
severity_levels: [blocking, important, suggestion]
|
|
30
|
+
enforcement_kinds:
|
|
31
|
+
scan: a tool measures it against the built artefact
|
|
32
|
+
judgement: requires a person or an audit run
|
|
33
|
+
|
|
34
|
+
# No rule here carries a regex mechanism. These are measured by the archive scanner
|
|
35
|
+
# against a built artefact, so a consumer either runs that scanner and maps its
|
|
36
|
+
# output onto these IDs, or reports the rule as unverified. Pattern-matching source
|
|
37
|
+
# text for them produces confident wrong answers: a purpose string can be present
|
|
38
|
+
# in the plist and absent from the archive.
|
|
39
|
+
|
|
40
|
+
rules:
|
|
41
|
+
- id: privacy-manifest
|
|
42
|
+
title: >
|
|
43
|
+
`PrivacyInfo.xcprivacy` exists + well-formed + declares all required `NSPrivacyCollectedDataTypes`
|
|
44
|
+
severity: blocking
|
|
45
|
+
enforcement: scan
|
|
46
|
+
policy_ref: Guideline 5.1.1
|
|
47
|
+
rationale: app-store-compliance
|
|
48
|
+
- id: required-reason-api
|
|
49
|
+
title: >
|
|
50
|
+
Binary-scanned API usage (UserDefaults, stat, Disk, URL schemes, etc.) cross-referenced with privacy manifest reasons
|
|
51
|
+
severity: blocking
|
|
52
|
+
enforcement: scan
|
|
53
|
+
policy_ref: 5.1.1 + ITMS-91065
|
|
54
|
+
rationale: app-store-compliance
|
|
55
|
+
- id: info-plist
|
|
56
|
+
title: >
|
|
57
|
+
Purpose strings (`NS*UsageDescription`) for every declared permission, ATS configured, CFBundleDisplayName ≤ 30 chars
|
|
58
|
+
severity: blocking
|
|
59
|
+
severity_varies: error/warning
|
|
60
|
+
enforcement: scan
|
|
61
|
+
policy_ref: none
|
|
62
|
+
rationale: app-store-compliance
|
|
63
|
+
- id: code-signing
|
|
64
|
+
title: >
|
|
65
|
+
Debug entitlements absent in release, correct APS environment (`aps-environment=production`), signature present
|
|
66
|
+
severity: blocking
|
|
67
|
+
enforcement: scan
|
|
68
|
+
policy_ref: ITMS-90035 / 90034 / 90046 / 90717
|
|
69
|
+
rationale: app-store-compliance
|
|
70
|
+
- id: embedded-sdk
|
|
71
|
+
title: >
|
|
72
|
+
Third-party SDKs on [Apple's 86 SDK list](https://developer.apple.com/support/third-party-SDK-requirements/) signed + have PrivacyInfo
|
|
73
|
+
severity: blocking
|
|
74
|
+
enforcement: scan
|
|
75
|
+
policy_ref: none
|
|
76
|
+
rationale: app-store-compliance
|
|
77
|
+
- id: entitlement
|
|
78
|
+
title: >
|
|
79
|
+
Entitlement ↔ Info.plist mappings (background modes, associated domains, app groups) consistent
|
|
80
|
+
severity: important
|
|
81
|
+
enforcement: scan
|
|
82
|
+
policy_ref: none
|
|
83
|
+
rationale: app-store-compliance
|
|
84
|
+
- id: asset-validation
|
|
85
|
+
title: >
|
|
86
|
+
App icon set present + all required sizes, launch storyboard configured
|
|
87
|
+
severity: blocking
|
|
88
|
+
enforcement: scan
|
|
89
|
+
policy_ref: none
|
|
90
|
+
rationale: app-store-compliance
|
|
91
|
+
- id: binary-size
|
|
92
|
+
title: >
|
|
93
|
+
`.app` bundle size + estimated post-thinning download size (warns if > 200MB)
|
|
94
|
+
severity: suggestion
|
|
95
|
+
enforcement: scan
|
|
96
|
+
policy_ref: none
|
|
97
|
+
rationale: app-store-compliance
|
|
98
|
+
- id: team-id-consistency
|
|
99
|
+
title: >
|
|
100
|
+
App + extensions + widgets share same Team ID
|
|
101
|
+
severity: blocking
|
|
102
|
+
enforcement: scan
|
|
103
|
+
policy_ref: none
|
|
104
|
+
rationale: app-store-compliance
|
|
105
|
+
- id: provisioning-profile
|
|
106
|
+
title: >
|
|
107
|
+
Profile expiry date in future, distribution type = App Store, profile classification sane
|
|
108
|
+
severity: important
|
|
109
|
+
enforcement: scan
|
|
110
|
+
policy_ref: none
|
|
111
|
+
rationale: app-store-compliance
|
|
112
|
+
- id: swift-abi
|
|
113
|
+
title: >
|
|
114
|
+
No unnecessary embedded Swift runtime on iOS 12.2+ targets
|
|
115
|
+
severity: important
|
|
116
|
+
enforcement: scan
|
|
117
|
+
policy_ref: ITMS-90426
|
|
118
|
+
rationale: app-store-compliance
|
|
119
|
+
- id: extension-signing
|
|
120
|
+
title: >
|
|
121
|
+
Extension bundle IDs follow `<app-bundle-id>.<ext-name>`, signed, App Groups match host
|
|
122
|
+
severity: blocking
|
|
123
|
+
enforcement: scan
|
|
124
|
+
policy_ref: ITMS-90283
|
|
125
|
+
rationale: app-store-compliance
|
|
126
|
+
- id: ipv6-compliance
|
|
127
|
+
title: >
|
|
128
|
+
No hardcoded IPv4 literals in binary, no legacy `gethostbyname` / `inet_addr` usage
|
|
129
|
+
severity: important
|
|
130
|
+
enforcement: scan
|
|
131
|
+
policy_ref: Guideline 2.5.5
|
|
132
|
+
rationale: app-store-compliance
|
|
133
|
+
- id: debug-tool-leak
|
|
134
|
+
title: >
|
|
135
|
+
40+ debug tools (Netfox, FLEX, CocoaDebug, Wormholy, HeliosTrace, DoraemonKit, Lookin, Reveal, etc.) + generic `_debug_` / `_profiler_` symbol scan
|
|
136
|
+
severity: blocking
|
|
137
|
+
enforcement: scan
|
|
138
|
+
policy_ref: none
|
|
139
|
+
rationale: app-store-compliance
|
|
140
|
+
- id: production-hygiene
|
|
141
|
+
title: >
|
|
142
|
+
`print()` / `NSLog()` / `debugPrint()` symbol presence + mock/test JSON files shipped in bundle
|
|
143
|
+
severity: important
|
|
144
|
+
enforcement: scan
|
|
145
|
+
policy_ref: none
|
|
146
|
+
rationale: app-store-compliance
|
|
147
|
+
- id: duplicate-resource
|
|
148
|
+
title: >
|
|
149
|
+
Same asset under multiple paths (bloats bundle)
|
|
150
|
+
severity: suggestion
|
|
151
|
+
enforcement: scan
|
|
152
|
+
policy_ref: none
|
|
153
|
+
rationale: app-store-compliance
|
|
154
|
+
- id: dead-reference
|
|
155
|
+
title: >
|
|
156
|
+
Files referenced in Xcode proj but absent from archive
|
|
157
|
+
severity: important
|
|
158
|
+
enforcement: scan
|
|
159
|
+
policy_ref: none
|
|
160
|
+
rationale: app-store-compliance
|
|
161
|
+
- id: sdk-floor
|
|
162
|
+
title: >
|
|
163
|
+
`DTSDKName` / `DTPlatformVersion` major ≥ 26 and `DTXcode` ≥ 2600 (iOS 26 / Xcode 26 floor, in force since 2026-04-28)
|
|
164
|
+
severity: blocking
|
|
165
|
+
enforcement: scan
|
|
166
|
+
policy_ref: ITMS-90725
|
|
167
|
+
rationale: app-store-compliance
|
|
@@ -4,6 +4,7 @@ language: en
|
|
|
4
4
|
description: "Google Play Store publication compliance - bundletool + aapt2 + apksigner orchestration + 21-rule policy catalog with Play Console error codes + humanizer templates. Consumed by: /multi-agent:test 'store-ready' (primary dispatch), Phase 4 Security Auditor (catalog cross-ref on AndroidManifest / build.gradle / proguard / signing diffs), /multi-agent:review (PR citation), /multi-agent:channels (PR body auto-augmentation). Wiring enforced by smoke-compliance-skills.sh. Use when an .aab or .apk needs a Play policy check before upload, or a Play rejection has to be diagnosed."
|
|
5
5
|
user-invocable: true
|
|
6
6
|
argument-hint: '[bundle-path] [--threshold=error|warning|info] [--format=markdown|json] [--lang=en|tr] - no-arg: picks most recent .aab from app/build/outputs/bundle/release/'
|
|
7
|
+
standards-registry: references/rules.yml
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
# google-play-compliance - Google Play Store Publication Compliance Skill
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
version: 1.0.0
|
|
2
|
+
updated: 2026-07-29
|
|
3
|
+
owner: Android platform
|
|
4
|
+
description: >
|
|
5
|
+
Google Play policy + platform requirements, as a machine-readable registry. IDs
|
|
6
|
+
are the source-of-truth IDs the underlying scanner uses and are stable across
|
|
7
|
+
versions - a finding cites the ID so the author can look it up and disagree.
|
|
8
|
+
|
|
9
|
+
# What these rules may be applied to. Every rule here is measured against a BUILT
|
|
10
|
+
# bundle or APK, not against source, so path scoping names the release-relevant
|
|
11
|
+
# inputs a diff can touch. A consumer resolves this before selecting rules and
|
|
12
|
+
# records what it dropped rather than applying a bundle rule to a source-only diff.
|
|
13
|
+
scope:
|
|
14
|
+
languages: [kotlin, java]
|
|
15
|
+
paths:
|
|
16
|
+
- "**/AndroidManifest.xml"
|
|
17
|
+
- "**/build.gradle"
|
|
18
|
+
- "**/build.gradle.kts"
|
|
19
|
+
- "**/proguard-rules.pro"
|
|
20
|
+
- "**/network_security_config.xml"
|
|
21
|
+
- "**/gradle.properties"
|
|
22
|
+
notCovered:
|
|
23
|
+
ios: App Store policy is a separate registry - see apple-archive-compliance
|
|
24
|
+
source-quality: Kotlin naming, Compose and MVVM live in the android stack skills
|
|
25
|
+
|
|
26
|
+
severity_levels: [blocking, important, suggestion]
|
|
27
|
+
enforcement_kinds:
|
|
28
|
+
scan: a tool measures it against the built artefact
|
|
29
|
+
judgement: requires a person or an audit run
|
|
30
|
+
|
|
31
|
+
# No rule here carries a regex mechanism. These are measured by the bundle scanner
|
|
32
|
+
# against a built artefact, so a consumer either runs that scanner and maps its
|
|
33
|
+
# output onto these IDs, or reports the rule as unverified. Grepping source for
|
|
34
|
+
# them produces confident wrong answers: minifyEnabled can read true in one build
|
|
35
|
+
# type and false in the one that ships.
|
|
36
|
+
|
|
37
|
+
rules:
|
|
38
|
+
- id: target-api-level
|
|
39
|
+
title: >
|
|
40
|
+
`android:targetSdkVersion` ≥ 34 for new apps (Aug 2024+), ≥ 34 for updates (Nov 2024+). Lower → rejected.
|
|
41
|
+
severity: blocking
|
|
42
|
+
enforcement: scan
|
|
43
|
+
policy_ref: Policy - Target API
|
|
44
|
+
rationale: play-store-compliance
|
|
45
|
+
- id: native-64bit
|
|
46
|
+
title: >
|
|
47
|
+
Every native `.so` has an `arm64-v8a` counterpart. `armeabi-v7a`-only rejected since Aug 2019.
|
|
48
|
+
severity: blocking
|
|
49
|
+
enforcement: scan
|
|
50
|
+
policy_ref: Policy - 64-bit
|
|
51
|
+
rationale: play-store-compliance
|
|
52
|
+
- id: app-bundle-format
|
|
53
|
+
title: >
|
|
54
|
+
New apps must ship `.aab`. `.apk` uploads rejected on new apps since Aug 2021.
|
|
55
|
+
severity: blocking
|
|
56
|
+
enforcement: scan
|
|
57
|
+
policy_ref: Policy - AAB
|
|
58
|
+
rationale: play-store-compliance
|
|
59
|
+
- id: base-module-size
|
|
60
|
+
title: >
|
|
61
|
+
Base APK from bundle ≤ 150 MB (bundletool `--mode=universal` size). Beyond → rejected.
|
|
62
|
+
severity: blocking
|
|
63
|
+
enforcement: scan
|
|
64
|
+
policy_ref: Platform limit
|
|
65
|
+
rationale: play-store-compliance
|
|
66
|
+
- id: package-visibility
|
|
67
|
+
title: >
|
|
68
|
+
If `targetSdkVersion ≥ 30` and code queries other packages, `<queries>` must be declared in manifest.
|
|
69
|
+
severity: important
|
|
70
|
+
enforcement: scan
|
|
71
|
+
policy_ref: Android 11+
|
|
72
|
+
rationale: play-store-compliance
|
|
73
|
+
- id: foreground-service-types
|
|
74
|
+
title: >
|
|
75
|
+
Every `<service android:foregroundServiceType="..."/>` type must match runtime usage. Missing = policy violation.
|
|
76
|
+
severity: blocking
|
|
77
|
+
enforcement: scan
|
|
78
|
+
policy_ref: Android 14
|
|
79
|
+
rationale: play-store-compliance
|
|
80
|
+
- id: app-signing
|
|
81
|
+
title: >
|
|
82
|
+
Signed with at least v2 scheme (apksigner verify --min-sdk-version). Enrollment in Play App Signing recommended.
|
|
83
|
+
severity: blocking
|
|
84
|
+
enforcement: scan
|
|
85
|
+
policy_ref: Play App Signing
|
|
86
|
+
rationale: play-store-compliance
|
|
87
|
+
- id: cleartext-traffic
|
|
88
|
+
title: >
|
|
89
|
+
`android:usesCleartextTraffic="false"` OR Network Security Config explicitly lists cleartext domains.
|
|
90
|
+
severity: important
|
|
91
|
+
enforcement: scan
|
|
92
|
+
policy_ref: Policy - Security
|
|
93
|
+
rationale: play-store-compliance
|
|
94
|
+
- id: exported-components
|
|
95
|
+
title: >
|
|
96
|
+
Every `<activity>` / `<service>` / `<receiver>` with `<intent-filter>` must explicitly declare `android:exported="true"`. Missing → build fail on API 31+.
|
|
97
|
+
severity: blocking
|
|
98
|
+
enforcement: scan
|
|
99
|
+
policy_ref: Android 12+
|
|
100
|
+
rationale: play-store-compliance
|
|
101
|
+
- id: proguard-mapping
|
|
102
|
+
title: >
|
|
103
|
+
Release build has `mapping.txt` (upload to Play Console for deobfuscation). `minifyEnabled = false` on release = warning.
|
|
104
|
+
severity: important
|
|
105
|
+
enforcement: scan
|
|
106
|
+
policy_ref: none
|
|
107
|
+
rationale: play-store-compliance
|
|
108
|
+
- id: dangerous-permissions
|
|
109
|
+
title: >
|
|
110
|
+
Every dangerous permission (`MANAGE_EXTERNAL_STORAGE`, `SYSTEM_ALERT_WINDOW`, `REQUEST_INSTALL_PACKAGES`, `PACKAGE_USAGE_STATS`, `QUERY_ALL_PACKAGES`) has justification in Play Console.
|
|
111
|
+
severity: blocking
|
|
112
|
+
enforcement: scan
|
|
113
|
+
policy_ref: Policy - Permissions
|
|
114
|
+
rationale: play-store-compliance
|
|
115
|
+
- id: advertising-id
|
|
116
|
+
title: >
|
|
117
|
+
If AdMob / advertising ID used (manifest `com.google.android.gms.permission.AD_ID`), must be declared in Data Safety form. Targeting API 33+ requires `AD_ID` permission.
|
|
118
|
+
severity: important
|
|
119
|
+
enforcement: scan
|
|
120
|
+
policy_ref: Policy - Ad ID
|
|
121
|
+
rationale: play-store-compliance
|
|
122
|
+
- id: background-location
|
|
123
|
+
title: >
|
|
124
|
+
`ACCESS_BACKGROUND_LOCATION` declared → Play Console background location justification required (policy revoke risk).
|
|
125
|
+
severity: blocking
|
|
126
|
+
enforcement: scan
|
|
127
|
+
policy_ref: Policy - Location
|
|
128
|
+
rationale: play-store-compliance
|
|
129
|
+
- id: data-safety-consistency
|
|
130
|
+
title: >
|
|
131
|
+
Manifest-declared permissions match Data Safety form (drift audit - manual; this rule flags permissions likely to trigger form updates).
|
|
132
|
+
severity: important
|
|
133
|
+
enforcement: scan
|
|
134
|
+
policy_ref: Policy - Data safety
|
|
135
|
+
rationale: play-store-compliance
|
|
136
|
+
- id: sensitive-permission-special-access
|
|
137
|
+
title: >
|
|
138
|
+
`READ_SMS`, `RECEIVE_SMS`, `READ_CALL_LOG`, `WRITE_CALL_LOG`, `READ_CONTACTS`, `PROCESS_OUTGOING_CALLS` require special access from Play Console (Default handler use case).
|
|
139
|
+
severity: blocking
|
|
140
|
+
enforcement: scan
|
|
141
|
+
policy_ref: Policy - Sensitive
|
|
142
|
+
rationale: play-store-compliance
|
|
143
|
+
- id: debug-tool-leak
|
|
144
|
+
title: >
|
|
145
|
+
Release APK contains `com.squareup.leakcanary`, `com.facebook.stetho`, `com.github.chuckerteam.chucker`, `com.jakewharton.pidcat`, `com.github.anrwatchdog` (and variants) in DEX/META-INF.
|
|
146
|
+
severity: blocking
|
|
147
|
+
enforcement: scan
|
|
148
|
+
policy_ref: none
|
|
149
|
+
rationale: play-store-compliance
|
|
150
|
+
- id: log-statements
|
|
151
|
+
title: >
|
|
152
|
+
Release APK has `Log.d` / `Log.v` / `Timber.d` call sites in bytecode. Should be stripped via ProGuard rules or build-type conditional.
|
|
153
|
+
severity: important
|
|
154
|
+
enforcement: scan
|
|
155
|
+
policy_ref: none
|
|
156
|
+
rationale: play-store-compliance
|
|
157
|
+
- id: mock-endpoints
|
|
158
|
+
title: >
|
|
159
|
+
Release APK manifest / resources contain dev/staging URL literals or test API key patterns (`dev.`, `staging.`, `test-api-key`, `Bearer test_`).
|
|
160
|
+
severity: important
|
|
161
|
+
enforcement: scan
|
|
162
|
+
policy_ref: none
|
|
163
|
+
rationale: play-store-compliance
|
|
164
|
+
- id: minify-enabled
|
|
165
|
+
title: >
|
|
166
|
+
Release build-type has `minifyEnabled = true` and `shrinkResources = true`. Both off = warning (size + deobfuscation impact).
|
|
167
|
+
severity: important
|
|
168
|
+
enforcement: scan
|
|
169
|
+
policy_ref: Build config
|
|
170
|
+
rationale: play-store-compliance
|
|
171
|
+
- id: version-code-progression
|
|
172
|
+
title: >
|
|
173
|
+
`versionCode` in this bundle > last published versionCode on Play (requires Play Console API lookup or user-provided last version).
|
|
174
|
+
severity: important
|
|
175
|
+
enforcement: scan
|
|
176
|
+
policy_ref: Platform req
|
|
177
|
+
rationale: play-store-compliance
|
|
178
|
+
- id: app-links-verification
|
|
179
|
+
title: >
|
|
180
|
+
`<intent-filter android:autoVerify="true">` domains have reachable `/.well-known/assetlinks.json`.
|
|
181
|
+
severity: suggestion
|
|
182
|
+
enforcement: scan
|
|
183
|
+
policy_ref: Digital Asset Links
|
|
184
|
+
rationale: play-store-compliance
|
|
@@ -206,7 +206,7 @@ This works across sessions because:
|
|
|
206
206
|
|
|
207
207
|
## Agent dispatch - per-persona model routing
|
|
208
208
|
|
|
209
|
-
Every agent persona under
|
|
209
|
+
Every agent persona under `$HOME/.claude/agents/*.md` declares a `preferredModel` frontmatter field. The orchestrator MUST honor it on every dispatch, on both Claude Code and Copilot CLI - cross-CLI parity is enforced by `smoke-cross-cli-behavior.sh`.
|
|
210
210
|
|
|
211
211
|
| Persona | `preferredModel` | Rationale (condensed) |
|
|
212
212
|
|---|---|---|
|
|
@@ -252,7 +252,7 @@ task_text="$(jq -r '.summary' analysis.json)"
|
|
|
252
252
|
touched=$(jq -r '.touchedAreas | map(.path) | join(",")' analysis.json)
|
|
253
253
|
stack=$(jq -r '.stack.primary' analysis.json)
|
|
254
254
|
|
|
255
|
-
matched_skills=$(node
|
|
255
|
+
matched_skills=$(node "$HOME/.claude/scripts/match-skills.mjs" \
|
|
256
256
|
"$task_text" \
|
|
257
257
|
--touched-files "$touched" \
|
|
258
258
|
--stack "$stack" \
|
|
@@ -264,7 +264,7 @@ matched_skills=$(node pipeline/scripts/match-skills.mjs \
|
|
|
264
264
|
# per subagent dispatch on small tasks.
|
|
265
265
|
```
|
|
266
266
|
|
|
267
|
-
**Fallback:**
|
|
267
|
+
**Fallback:** every install ships `.skills-index.json` beside the skills. If it is absent anyway (a checkout before `build-skills-index.mjs` runs), the orchestrator eager-loads as pre-v7.0 - dynamic loading never blocks the happy path.
|
|
268
268
|
|
|
269
269
|
**--index-only installs:** `node install.js --index-only` writes only the index, not the 206 SKILL.md payloads. Intended for:
|
|
270
270
|
- CI pipelines that fetch skill bodies on demand
|
|
@@ -328,7 +328,7 @@ Full contract: `refs/tracker-contract.md` section "TaskCreate ordering (strict)"
|
|
|
328
328
|
>
|
|
329
329
|
> The condensed walkthrough below covers Step 1 (parse) + Step 2 (worktree), but DOES NOT replace the full contract. Read `refs/phases/phase-0-init.md` before every Phase 0 run and execute ALL 8 steps:
|
|
330
330
|
>
|
|
331
|
-
> 1. **Bootstrap tracker** -
|
|
331
|
+
> 1. **Bootstrap tracker** - `$HOME/.claude/scripts/phase-tracker.sh init <task-id>` + 8 phase tiles (Step −1)
|
|
332
332
|
> 2. **Load prefs** - read `prefs.global` + `prefs.projects[{name}]`; halt with `/multi-agent:setup` prompt if no keychain mapping (Step 0)
|
|
333
333
|
> 3. **Parse input** - classify + fetch Jira/GitHub issue + extract Figma URL if present (Step 1)
|
|
334
334
|
> 4. **Select project(s) - single OR multi-repo** - present numbered list of repos from `$HOME`. Picker accepts space-separated numbers (`1 3 4`) for multi-select. Component/refactor tasks often span repos (e.g. component repo + consumer app). Surface saved `global.recentGroups` at the top of the list. **Never auto-pick a single repo when the task could touch more than one** - ask the user to confirm single vs multi. (Step 2)
|
|
@@ -445,7 +445,7 @@ Full contract: `refs/tracker-contract.md` section "TaskCreate ordering (strict)"
|
|
|
445
445
|
- **5b - Approval loop**: render plan → user: `onayla`/`iptal`/free-text. A free-text edit request → the planning model (Fable) revises the plan → show it again. No iteration cap; user controls exit via `onayla` or `iptal`.
|
|
446
446
|
- Persist `clarificationRounds`, `clarificationQuestions`, `clarificationAnswers`, `planIterations`, `planApprovedAt`, `planEditRequests` to `state.phases["2"]`.
|
|
447
447
|
|
|
448
|
-
### Phase 3: Dev (claude-sonnet-
|
|
448
|
+
### Phase 3: Dev (claude-sonnet-5)
|
|
449
449
|
For each todo (respecting dependency order):
|
|
450
450
|
1. Update todo status: `in_progress`
|
|
451
451
|
2. **TDD cycle**:
|
|
@@ -458,11 +458,11 @@ For each todo (respecting dependency order):
|
|
|
458
458
|
6. Log: `⚡ Phase 3: {todo-id} - Test ✅ Build ✅`
|
|
459
459
|
|
|
460
460
|
### Phase 4: Review (parallel + triage)
|
|
461
|
-
0. **Diff Risk Scoring (advisory, v8.3+)** - before reviewer dispatch run `node
|
|
461
|
+
0. **Diff Risk Scoring (advisory, v8.3+)** - before reviewer dispatch run `node $HOME/.claude/scripts/diff-risk-score.mjs --base "$BASE_BRANCH" --top 5` and inject the top-N risk-ranked files as a `${PRIORITY_FILES}` block into each reviewer's prompt. Heuristic, deterministic, sub-second, never gates the pipeline. Disabled when `prefs.global.diffRiskAdvisory = false`. Signals: security paths (×3), schema migrations (×4), public API surfaces (×2), no-test-change (×2.5), complexity delta (×1.5), UI-critical paths (×1.5), loc changed (×1).
|
|
462
462
|
1. Launch **code-reviewer** agents in parallel. Reviewer set depends on which CLI is hosting the pipeline:
|
|
463
|
-
- **Claude Code** (2 reviewers): `claude-fable-5` (deep security + architecture) + `claude-sonnet-
|
|
464
|
-
- **Copilot CLI** (3 reviewers): `gpt-5.4` (edge cases, different perspective) + `claude-opus-
|
|
465
|
-
- Triage: single top-tier pass over merged findings (`claude-fable-5` on Claude Code, `claude-opus-
|
|
463
|
+
- **Claude Code** (2 reviewers): `claude-fable-5` (deep security + architecture) + `claude-sonnet-5` (quality + correctness)
|
|
464
|
+
- **Copilot CLI** (3 reviewers): `gpt-5.4` (edge cases, different perspective) + `claude-opus-5` + `claude-sonnet-5` (Fable 5 is not offered on Copilot CLI)
|
|
465
|
+
- Triage: single top-tier pass over merged findings (`claude-fable-5` on Claude Code, `claude-opus-5` on Copilot CLI)
|
|
466
466
|
2. Collect findings, classify:
|
|
467
467
|
- 🔴 **Blocking** → must fix → back to Phase 3 (max 3 iterations)
|
|
468
468
|
- 🟡 **Important** → fix and re-review
|
|
@@ -472,7 +472,7 @@ For each todo (respecting dependency order):
|
|
|
472
472
|
### Phase 5: Test
|
|
473
473
|
Lets the user physically test the code before opening a PR. The prompt MUST make it explicit that saying yes **removes the worktree and checks the branch out locally** - otherwise the user is hit with an implicit side effect.
|
|
474
474
|
|
|
475
|
-
0. **Test Gap Report (advisory, v8.3+)** - before the local-checkout prompt run `node
|
|
475
|
+
0. **Test Gap Report (advisory, v8.3+)** - before the local-checkout prompt run `node $HOME/.claude/scripts/test-gap-scan.mjs --base "$BASE_BRANCH" --stack <ios|android|python|node>` to surface public symbols added in this branch that have no paired test. Heuristic, deterministic, sub-second, never gates by default. iOS `*View.swift` / Android `@Composable` symbols default to `important` severity; other public API additions to `suggestion`. Optional gating via `prefs.testGap.blockingThreshold` (loops back to Phase 4 rework when the important+blocking count exceeds the threshold). Disabled when `prefs.testGap.enabled = false`.
|
|
476
476
|
1. **Ask** with a native `AskUserQuestion` picker (never a typed y/N prompt). The options MUST make the local-checkout side effect explicit - testing removes the worktree and checks the branch out into the main repo:
|
|
477
477
|
- `question`: "Check out locally to test now?" (rendered in `outputLanguage`)
|
|
478
478
|
- `header`: "Test" (English, <=12 chars)
|
|
@@ -43,10 +43,10 @@ When the rendered Section 20 (Risks and Open Questions) has open rows, the repor
|
|
|
43
43
|
|
|
44
44
|
## Detailed implementation
|
|
45
45
|
|
|
46
|
-
Full steps:
|
|
47
|
-
Template master copy:
|
|
48
|
-
Schema:
|
|
49
|
-
Convention extractor:
|
|
46
|
+
Full steps: `$HOME/.claude/commands/multi-agent/analysis/SKILL.md`.
|
|
47
|
+
Template master copy: `$HOME/.claude/multi-agent-refs/analysis-template.md`.
|
|
48
|
+
Schema: `$HOME/.claude/schemas/analysis-spec.schema.json`.
|
|
49
|
+
Convention extractor: `$HOME/.claude/lib/extract-conventions.sh` (output contract: `$HOME/.claude/schemas/conventions-output.schema.json`).
|
|
50
50
|
|
|
51
51
|
## Notes
|
|
52
52
|
|
|
@@ -36,9 +36,9 @@ Companion to `multi-agent-analysis`. Walks the open rows of Section 20 (Risks an
|
|
|
36
36
|
|
|
37
37
|
## Detailed implementation
|
|
38
38
|
|
|
39
|
-
Full steps:
|
|
40
|
-
Section 20 / changelog contracts:
|
|
41
|
-
Convention defaults:
|
|
39
|
+
Full steps: `$HOME/.claude/commands/multi-agent/analysis-resolve/SKILL.md`.
|
|
40
|
+
Section 20 / changelog contracts: `$HOME/.claude/multi-agent-refs/analysis-template.md`.
|
|
41
|
+
Convention defaults: `$HOME/.claude/multi-agent-refs/conventions-defaults.md`.
|
|
42
42
|
|
|
43
43
|
## Notes
|
|
44
44
|
|
|
@@ -38,8 +38,8 @@ Thin wrapper around the vendored `xcode-build-orchestrator` skill so iOS users d
|
|
|
38
38
|
|
|
39
39
|
## Detailed implementation
|
|
40
40
|
|
|
41
|
-
Full steps:
|
|
42
|
-
Upstream attribution:
|
|
41
|
+
Full steps: `$HOME/.claude/commands/multi-agent/build-optimize/SKILL.md`.
|
|
42
|
+
Upstream attribution: `$HOME/.claude/skills/NOTICE-xcode-build-skills.md`.
|
|
43
43
|
|
|
44
44
|
## Notes
|
|
45
45
|
|
|
@@ -37,7 +37,7 @@ A `C` section fires on: Design Reference → Figma URL; Screenshots → pasted i
|
|
|
37
37
|
- `GET /rest/api/2/issue/createmeta?projectKeys={KEY}&issuetypeNames={TYPE}&expand=projects.issuetypes.fields` (404/empty → paged DC endpoint fallback). Required custom fields → step 7 questions with allowedValues options. Detect Sprint/Epic/Team fields generically via `schema.custom` ids.
|
|
38
38
|
- `GET /rest/agile/1.0/board?projectKeyOrId={KEY}` → (ask when multiple) → `GET /rest/agile/1.0/board/{id}/sprint?state=active`. No board/Agile 404 → sprint option silently omitted.
|
|
39
39
|
6. **External context** (only for provided sources, each failure-isolated, never blocks create):
|
|
40
|
-
- **Figma** (`FIGMA_URL` set) - 3-tier chain (MCP → REST
|
|
40
|
+
- **Figma** (`FIGMA_URL` set) - 3-tier chain (MCP → REST `figma` PAT → user screenshot); standalone command, MCP allowed here.
|
|
41
41
|
- **Swagger** (`SWAGGER_URL` set or contract pasted) - fetch the spec, extract ONLY the referenced endpoints (paths/operationIds/tags named in `FREE_TEXT`, else the pointed-at group): method + path + one-line summary + key request/response fields. Never crawl the whole spec. Fetch failure → link-only or omit.
|
|
42
42
|
- **Screenshots** - staged for the step 8 attachment opt-in, referenced inline with `!file|thumbnail!`.
|
|
43
43
|
7. **Draft + clarifying questions** - compose summary (`{minedPrefix} {title}`, 255 trunc) + description from the type's **standard template** in Jira wiki markup (`h3.`), auto-sizing conditional sections, humanizer pass, in `outputLanguage`; body to a file for `jq -n --rawfile` (UTF-8 verbatim, `--data-binary @file`, no re-encode). Ask ONLY genuinely unknown fields: component, epic (when usage rate is high), priority (when norm ambiguous), labels, assignee, sprint vs backlog, required customs, and any always-present section still empty (Bug Steps/Environment, or a Task/Story with no derivable Scope/AC). Never invent content the user did not supply.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: multi-agent-dev
|
|
3
3
|
language: en
|
|
4
|
-
description: "Fast development mode: Init → Dev (Opus) → Test → Commit → Report. Analysis
|
|
4
|
+
description: "Fast development mode: Init → Dev (Opus) → Review → Test → Commit → Report. Analysis and planning are skipped, review is not. Use when the work is already scoped but the result still has to be checked."
|
|
5
5
|
user-invocable: true
|
|
6
6
|
argument-hint: '"task" [autopilot] - issue URL, Jira ID, or free-text + optional autopilot'
|
|
7
7
|
---
|
|
@@ -22,12 +22,13 @@ A 5-phase fast pipeline: Init → Dev → Test → Commit → Report. Developmen
|
|
|
22
22
|
```
|
|
23
23
|
Phase 0: Init → Project detection, worktree, branch, identity (full picker)
|
|
24
24
|
Phase 3: Dev → Direct development with Opus (TDD optional)
|
|
25
|
+
Phase 4: Review → Deterministic gates + parallel review + triage
|
|
25
26
|
Phase 5: Test → User Test (interactive simulator)
|
|
26
27
|
Phase 6: Commit → Commit + push + PR
|
|
27
28
|
Phase 7: Report → Channels (Jira / Confluence / PR / Wiki)
|
|
28
29
|
```
|
|
29
30
|
|
|
30
|
-
`--dev` skips Phase 1 (Analysis)
|
|
31
|
+
`--dev` skips Phase 1 (Analysis) and Phase 2 (Planning + Approval Gate). The Phase 3 Dev model is **Opus**. The Phase 0 picker, Phase 4 review, Phase 5 test, Phase 6 commit, and Phase 7 channels are identical to the full pipeline. Review is not a fast-mode casualty: skipping analysis means less context going in, not less scrutiny coming out.
|
|
31
32
|
|
|
32
33
|
> `--dev` contract: no plan discussion, development starts directly. If you want to discuss the plan, use normal mode.
|
|
33
34
|
|
|
@@ -53,15 +54,15 @@ Phase 7: Report → Channels (Jira / Confluence / PR / Wiki)
|
|
|
53
54
|
|
|
54
55
|
| Feature | Full (`/multi-agent`) | Dev (`/multi-agent:dev`) |
|
|
55
56
|
|---------|---------------------|------------------------|
|
|
56
|
-
| Phases | 8 (0-7) |
|
|
57
|
+
| Phases | 8 (0-7) | 6 (0, 3, 4, 5, 6, 7) - 1, 2 skipped |
|
|
57
58
|
| Phase 3 Dev model | Sonnet | **Opus** |
|
|
58
59
|
| Phase 1 Analysis (explore agents) | ✅ | ❌ |
|
|
59
60
|
| Phase 2 Planning + Approval Gate | ✅ | ❌ |
|
|
60
|
-
| Phase 4 Review (parallel + triage) | ✅ |
|
|
61
|
+
| Phase 4 Review (parallel + triage) | ✅ | ✅ (same) |
|
|
61
62
|
| Phase 0 picker (account, repos, branch, ...) | ✅ | ✅ (same) |
|
|
62
63
|
| Phase 5 User Test | ✅ | ✅ (same) |
|
|
63
64
|
| Phase 7 channels (Jira / Confluence / PR / Wiki) | ✅ | ✅ (same) |
|
|
64
|
-
| Duration | ~10-15 min | ~
|
|
65
|
+
| Duration | ~10-15 min | ~7-10 min |
|
|
65
66
|
|
|
66
67
|
## Analysis doc supplied to a fast mode (warn before starting)
|
|
67
68
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: multi-agent-dev-autopilot
|
|
3
3
|
language: en
|
|
4
|
-
description: "Fastest mode: Dev (Opus) plus Autopilot. Init → Dev → Commit → Report with zero confirmations. Use when a change is well understood and should go from start to commit with no questions asked."
|
|
4
|
+
description: "Fastest mode: Dev (Opus) plus Autopilot. Init → Dev → Review → Commit → Report with zero confirmations. Review still runs and auto-fixes blocking findings. Use when a change is well understood and should go from start to commit with no questions asked."
|
|
5
5
|
user-invocable: true
|
|
6
6
|
argument-hint: '"task" - issue URL, Jira ID, or free-text'
|
|
7
7
|
---
|
|
@@ -22,11 +22,12 @@ Dev mode + Autopilot combined: a 4-phase pipeline with no confirmations, end-to-
|
|
|
22
22
|
```
|
|
23
23
|
Phase 0: Init → Project detection, worktree, branch, identity
|
|
24
24
|
Phase 3: Dev → Direct development with Opus
|
|
25
|
+
Phase 4: Review → Gates + parallel review + triage, auto-fix
|
|
25
26
|
Phase 6: Commit → Automatic commit + push + PR (no approval)
|
|
26
27
|
Phase 7: Report → Short terminal summary
|
|
27
28
|
```
|
|
28
29
|
|
|
29
|
-
**Skipped phases**: Analysis (1), Planning (2),
|
|
30
|
+
**Skipped phases**: Analysis (1), Planning (2), User Test (5)
|
|
30
31
|
**Skipped confirmations**: Plan Approval Gate (clarification + approval loop), test prompt, commit prompt, PR prompt
|
|
31
32
|
|
|
32
33
|
> If you want to discuss the plan, do not use this mode - normal mode runs the clarification + approval loop. The Dev+Autopilot contract is: "ask no questions".
|
|
@@ -35,7 +36,7 @@ Phase 7: Report → Short terminal summary
|
|
|
35
36
|
|
|
36
37
|
1. **Parse the input** - Normal multi-agent formats (Issue URL, Jira ID, free-text)
|
|
37
38
|
2. **Phase 0: Init** - `"mode": "dev", "autopilot": true` in `agent-state.json`
|
|
38
|
-
3. **Phase 3: Dev** - Write code + build directly with `claude-opus-
|
|
39
|
+
3. **Phase 3: Dev** - Write code + build directly with `claude-opus-5`
|
|
39
40
|
4. **Phase 6: Commit** - Create automatic commit + push + PR
|
|
40
41
|
5. **Phase 7: Report** - Terminal summary
|
|
41
42
|
|
|
@@ -48,9 +49,9 @@ Phase 7: Report → Short terminal summary
|
|
|
48
49
|
|
|
49
50
|
| | Full | Dev | Autopilot | **Dev+Autopilot** |
|
|
50
51
|
|--|------|-----|-----------|-------------------|
|
|
51
|
-
| Phases |
|
|
52
|
+
| Phases | 8 | 6 | 8 | **5** |
|
|
52
53
|
| Model | Sonnet | Opus | Sonnet | **Opus** |
|
|
53
54
|
| Plan Approval Gate | ✅ (clarification + approval) | ❌ | ❌ | **❌** |
|
|
54
55
|
| Confirmation (test/commit/PR) | Yes | Yes | No | **No** |
|
|
55
|
-
| Review | Parallel+triage (CLI-aware) |
|
|
56
|
-
| Estimated duration | ~12 min | ~
|
|
56
|
+
| Review | Parallel+triage (CLI-aware) | Parallel+triage (CLI-aware) | Parallel+triage (CLI-aware) | **Parallel+triage, auto-fix** |
|
|
57
|
+
| Estimated duration | ~12 min | ~7 min | ~10 min | **~5 min** |
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: multi-agent-dev-local
|
|
3
3
|
language: en
|
|
4
|
-
description: "Fast mode + local - Init → Dev(Opus) → Commit → Report, no worktree. Use when a change should be developed on the current branch without creating a worktree."
|
|
4
|
+
description: "Fast mode + local - Init → Dev(Opus) → Review → Commit → Report, no worktree. Use when a change should be developed and reviewed on the current branch without creating a worktree."
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -13,7 +13,8 @@ Dedicated form of the `--dev` + `--local` combination. A 4-phase fast pipeline w
|
|
|
13
13
|
|
|
14
14
|
```
|
|
15
15
|
Phase 0: Init → Project detection, branch check, state (NO worktree)
|
|
16
|
-
Phase 3: Dev → Direct development with Opus (Analysis + Planning
|
|
16
|
+
Phase 3: Dev → Direct development with Opus (Analysis + Planning skipped)
|
|
17
|
+
Phase 4: Review → Deterministic gates + parallel review + triage
|
|
17
18
|
Phase 6: Commit → Pre-commit checkout prompt, commit + push + PR
|
|
18
19
|
Phase 7: Report → Jira/Wiki + log + knowledge/memory
|
|
19
20
|
```
|
|
@@ -22,7 +23,7 @@ Phase 7: Report → Jira/Wiki + log + knowledge/memory
|
|
|
22
23
|
|
|
23
24
|
- Quick bug fix or small feature - review overhead is unnecessary
|
|
24
25
|
- You're working on the current branch and don't want to switch worktrees
|
|
25
|
-
-
|
|
26
|
+
- Quick bug fix or small feature - analysis and planning buy nothing here
|
|
26
27
|
|
|
27
28
|
## Delegation
|
|
28
29
|
|
|
@@ -14,13 +14,14 @@ The triple `--dev` + `--local` + `autopilot` - the fastest form available. Zer
|
|
|
14
14
|
```
|
|
15
15
|
Phase 0: Init → Project detection, branch check, state (NO worktree, NO approval)
|
|
16
16
|
Phase 3: Dev → Direct development with Opus (automatic)
|
|
17
|
+
Phase 4: Review → Gates + parallel review + triage, auto-fix
|
|
17
18
|
Phase 6: Commit → Automatic commit + push + PR (NO local checkout prompt)
|
|
18
19
|
Phase 7: Report → Jira/Wiki + log + knowledge/memory
|
|
19
20
|
```
|
|
20
21
|
|
|
21
22
|
## When to use it
|
|
22
23
|
|
|
23
|
-
- Routine change you trust
|
|
24
|
+
- Routine change you trust - you want it reviewed, not discussed
|
|
24
25
|
- A CI / batch environment running the pipeline automatically - no user interaction
|
|
25
26
|
- Prototype / spike - you care about speed
|
|
26
27
|
|
|
@@ -76,7 +76,7 @@ Pipeline (after Phase 0):
|
|
|
76
76
|
Modes:
|
|
77
77
|
|
|
78
78
|
(normal) Full 8 phases, parallel review + Fable triage
|
|
79
|
-
--dev Fast: Init -> Dev(Opus) ->
|
|
79
|
+
--dev Fast: Init -> Dev(Opus) -> Review -> Test -> Commit -> Report
|
|
80
80
|
--local No worktree - works directly on local branch
|
|
81
81
|
autopilot Skip all confirmations (EXCEPT Phase 7 channels menu)
|
|
82
82
|
--dev autopilot Fastest path
|
|
@@ -225,7 +225,7 @@ Pipeline (Phase 0'dan sonra):
|
|
|
225
225
|
Modlar:
|
|
226
226
|
|
|
227
227
|
(normal) Tam 8 faz, paralel review + Fable triage
|
|
228
|
-
--dev Hızlı: Init -> Dev(Opus) ->
|
|
228
|
+
--dev Hızlı: Init -> Dev(Opus) -> Review -> Test -> Commit -> Report
|
|
229
229
|
--local Worktree yok - doğrudan local branch'te çalışır
|
|
230
230
|
autopilot Tüm onayları atla (İSTİSNA: Phase 7 channels menüsü)
|
|
231
231
|
--dev autopilot En hızlı yol
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: multi-agent-ios-coding-standard
|
|
3
3
|
language: en
|
|
4
|
-
description: "Audit an iOS module against the shared coding-standard registry (
|
|
4
|
+
description: "Audit an iOS module against the shared coding-standard registry (99 stable-ID rules), produce a remediation plan, then hand off to dev/dev-local. Use for a standards pass on a module, or when a review needs rule IDs rather than opinions."
|
|
5
5
|
user-invocable: true
|
|
6
6
|
argument-hint: "[module name or path]"
|
|
7
7
|
---
|