@mmerterden/multi-agent-pipeline 8.6.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 +2623 -0
- package/LICENSE +21 -0
- package/README.md +852 -0
- package/docs/FIGMA_PIPELINE.md +138 -0
- package/docs/GENERICITY-REVIEW.md +277 -0
- package/docs/STABILITY-FIX-PLAN.md +168 -0
- package/docs/adr/0001-three-model-triage.md +81 -0
- package/docs/adr/0002-instruction-driven-flag.md +62 -0
- package/docs/adr/0003-unified-shared-skills.md +55 -0
- package/docs/adr/0004-zero-dependency-philosophy.md +60 -0
- package/docs/adr/0005-lazy-phase-docs.md +68 -0
- package/docs/adr/0006-skills-core-external-split.md +52 -0
- package/docs/adr/0007-multi-tool-adapter-framework.md +110 -0
- package/docs/adr/0008-installer-modularization-and-secret-leak-defense.md +98 -0
- package/docs/adr/README.md +33 -0
- package/docs/architecture.md +181 -0
- package/docs/best-practices.md +93 -0
- package/docs/features.md +274 -0
- package/docs/performance.md +116 -0
- package/docs/recovery-guide.md +479 -0
- package/index.js +76 -0
- package/install/_adapters.mjs +69 -0
- package/install/_common.mjs +150 -0
- package/install/_copilot-instructions.mjs +32 -0
- package/install/_dev-only-files.mjs +23 -0
- package/install/_platform-filter.mjs +132 -0
- package/install/_telemetry.mjs +79 -0
- package/install/claude.mjs +332 -0
- package/install/copilot.mjs +254 -0
- package/install/index.mjs +179 -0
- package/install/templates/copilot-instructions.md +319 -0
- package/install.js +24 -0
- package/package.json +78 -0
- package/pipeline/adapters/_base.mjs +288 -0
- package/pipeline/adapters/copilot-chat.mjs +158 -0
- package/pipeline/adapters/cursor.mjs +187 -0
- package/pipeline/agents/android-architect.md +42 -0
- package/pipeline/agents/backend-architect.md +43 -0
- package/pipeline/agents/code-reviewer.md +57 -0
- package/pipeline/agents/dev-critic.md +148 -0
- package/pipeline/agents/explorer.md +34 -0
- package/pipeline/agents/ios-architect.md +41 -0
- package/pipeline/agents/security-auditor.md +98 -0
- package/pipeline/agents/task-clarifier.md +113 -0
- package/pipeline/claude-md-template.md +55 -0
- package/pipeline/commands/archive-guard.md +45 -0
- package/pipeline/commands/deploy.md +54 -0
- package/pipeline/commands/figma-to-swiftui.md +295 -0
- package/pipeline/commands/multi-agent/_account-picker.md +90 -0
- package/pipeline/commands/multi-agent/_dev-context.md +111 -0
- package/pipeline/commands/multi-agent/_input-parser.md +43 -0
- package/pipeline/commands/multi-agent/_repo-picker.md +76 -0
- package/pipeline/commands/multi-agent/autopilot.md +116 -0
- package/pipeline/commands/multi-agent/channels.md +465 -0
- package/pipeline/commands/multi-agent/delete.md +66 -0
- package/pipeline/commands/multi-agent/dev-autopilot.md +120 -0
- package/pipeline/commands/multi-agent/dev-local-autopilot.md +110 -0
- package/pipeline/commands/multi-agent/dev-local.md +105 -0
- package/pipeline/commands/multi-agent/dev.md +246 -0
- package/pipeline/commands/multi-agent/diff-explain.md +68 -0
- package/pipeline/commands/multi-agent/help.md +422 -0
- package/pipeline/commands/multi-agent/issue.md +79 -0
- package/pipeline/commands/multi-agent/jira.md +132 -0
- package/pipeline/commands/multi-agent/kill.md +38 -0
- package/pipeline/commands/multi-agent/language.md +94 -0
- package/pipeline/commands/multi-agent/local-autopilot.md +139 -0
- package/pipeline/commands/multi-agent/local.md +117 -0
- package/pipeline/commands/multi-agent/log.md +25 -0
- package/pipeline/commands/multi-agent/manual-test.md +43 -0
- package/pipeline/commands/multi-agent/purge.md +39 -0
- package/pipeline/commands/multi-agent/refactor.md +188 -0
- package/pipeline/commands/multi-agent/refs/android-guide.md +250 -0
- package/pipeline/commands/multi-agent/refs/audit-guide.md +240 -0
- package/pipeline/commands/multi-agent/refs/backend-guide.md +135 -0
- package/pipeline/commands/multi-agent/refs/channels/confluence.md +153 -0
- package/pipeline/commands/multi-agent/refs/channels/issue-comment.md +141 -0
- package/pipeline/commands/multi-agent/refs/channels/jira.md +127 -0
- package/pipeline/commands/multi-agent/refs/channels/pr-review-actions.md +135 -0
- package/pipeline/commands/multi-agent/refs/channels/pr.md +139 -0
- package/pipeline/commands/multi-agent/refs/channels/wiki.md +66 -0
- package/pipeline/commands/multi-agent/refs/component-dispatch.md +92 -0
- package/pipeline/commands/multi-agent/refs/cross-cli-contract.md +326 -0
- package/pipeline/commands/multi-agent/refs/frontend-guide.md +136 -0
- package/pipeline/commands/multi-agent/refs/issue-jira-triad.md +104 -0
- package/pipeline/commands/multi-agent/refs/keychain.md +80 -0
- package/pipeline/commands/multi-agent/refs/knowledge.md +112 -0
- package/pipeline/commands/multi-agent/refs/multi-repo-integration-build.md +207 -0
- package/pipeline/commands/multi-agent/refs/phases/log-format.md +89 -0
- package/pipeline/commands/multi-agent/refs/phases/modes.md +156 -0
- package/pipeline/commands/multi-agent/refs/phases/operations.md +91 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-0-init.md +481 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-1-analysis.md +264 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-2-planning.md +278 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-3-dev.md +364 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-4-review.md +378 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-5-test.md +129 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-6-commit.md +339 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-7-report.md +361 -0
- package/pipeline/commands/multi-agent/refs/phases.md +187 -0
- package/pipeline/commands/multi-agent/refs/progress-contract.md +155 -0
- package/pipeline/commands/multi-agent/refs/rules.md +189 -0
- package/pipeline/commands/multi-agent/refs/swiftui-guide.md +254 -0
- package/pipeline/commands/multi-agent/refs/tracker-contract.md +256 -0
- package/pipeline/commands/multi-agent/refs/wiki-capture.md +109 -0
- package/pipeline/commands/multi-agent/resume.md +28 -0
- package/pipeline/commands/multi-agent/review.md +228 -0
- package/pipeline/commands/multi-agent/scan.md +74 -0
- package/pipeline/commands/multi-agent/search.md +97 -0
- package/pipeline/commands/multi-agent/setup.md +767 -0
- package/pipeline/commands/multi-agent/stack.md +48 -0
- package/pipeline/commands/multi-agent/status.md +38 -0
- package/pipeline/commands/multi-agent/sync.md +319 -0
- package/pipeline/commands/multi-agent/test.md +39 -0
- package/pipeline/commands/multi-agent/update.md +88 -0
- package/pipeline/commands/multi-agent.md +293 -0
- package/pipeline/commands/security-review.md +6 -0
- package/pipeline/commands/sim-test.md +256 -0
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-1-analysis.json +25 -0
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-2-plan.json +30 -0
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-4-review.json +20 -0
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-4-triage.json +15 -0
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/metadata.json +14 -0
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/task.json +12 -0
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-1-analysis.json +29 -0
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-2-plan.json +43 -0
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-4-review.json +35 -0
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-4-triage.json +35 -0
- package/pipeline/eval/golden-tasks/02-android-feature-compose/metadata.json +14 -0
- package/pipeline/eval/golden-tasks/02-android-feature-compose/task.json +12 -0
- package/pipeline/eval/golden-tasks/README.md +65 -0
- package/pipeline/eval/triage/01-empty-findings/expected.json +6 -0
- package/pipeline/eval/triage/01-empty-findings/input.json +5 -0
- package/pipeline/eval/triage/01-empty-findings/notes.md +7 -0
- package/pipeline/eval/triage/02-real-blocker/expected.json +15 -0
- package/pipeline/eval/triage/02-real-blocker/input.json +14 -0
- package/pipeline/eval/triage/02-real-blocker/notes.md +7 -0
- package/pipeline/eval/triage/03-out-of-scope-defer/expected.json +18 -0
- package/pipeline/eval/triage/03-out-of-scope-defer/input.json +14 -0
- package/pipeline/eval/triage/03-out-of-scope-defer/notes.md +10 -0
- package/pipeline/eval/triage/04-false-positive-reject/expected.json +18 -0
- package/pipeline/eval/triage/04-false-positive-reject/input.json +14 -0
- package/pipeline/eval/triage/04-false-positive-reject/notes.md +10 -0
- package/pipeline/eval/triage/05-mixed-classification/expected.json +43 -0
- package/pipeline/eval/triage/05-mixed-classification/input.json +38 -0
- package/pipeline/eval/triage/05-mixed-classification/notes.md +17 -0
- package/pipeline/eval/triage/06-severity-mismatch/expected.json +15 -0
- package/pipeline/eval/triage/06-severity-mismatch/input.json +14 -0
- package/pipeline/eval/triage/06-severity-mismatch/notes.md +9 -0
- package/pipeline/eval/triage/07-duplicate-reviewers/expected.json +27 -0
- package/pipeline/eval/triage/07-duplicate-reviewers/input.json +22 -0
- package/pipeline/eval/triage/07-duplicate-reviewers/notes.md +9 -0
- package/pipeline/eval/triage/08-style-misclassified/expected.json +18 -0
- package/pipeline/eval/triage/08-style-misclassified/input.json +14 -0
- package/pipeline/eval/triage/08-style-misclassified/notes.md +9 -0
- package/pipeline/eval/triage/09-cascading-finding/expected.json +23 -0
- package/pipeline/eval/triage/09-cascading-finding/input.json +22 -0
- package/pipeline/eval/triage/09-cascading-finding/notes.md +9 -0
- package/pipeline/eval/triage/10-deferred-crossref/expected.json +18 -0
- package/pipeline/eval/triage/10-deferred-crossref/input.json +14 -0
- package/pipeline/eval/triage/10-deferred-crossref/notes.md +9 -0
- package/pipeline/eval/triage/11-vercel-token-leak-blocker/expected.json +27 -0
- package/pipeline/eval/triage/11-vercel-token-leak-blocker/input.json +22 -0
- package/pipeline/eval/triage/11-vercel-token-leak-blocker/notes.md +14 -0
- package/pipeline/eval/triage/README.md +54 -0
- package/pipeline/lib/account-resolver.sh +204 -0
- package/pipeline/lib/channels-multi-repo.sh +218 -0
- package/pipeline/lib/context-link-extractor.sh +192 -0
- package/pipeline/lib/credential-store-resolver.sh +57 -0
- package/pipeline/lib/credential-store.sh +226 -0
- package/pipeline/lib/fetch-confluence.sh +358 -0
- package/pipeline/lib/fetch-crashlytics.sh +314 -0
- package/pipeline/lib/fetch-fortify.sh +321 -0
- package/pipeline/lib/fetch-swagger.sh +270 -0
- package/pipeline/lib/issue-fetcher.sh +333 -0
- package/pipeline/lib/multi-repo-pipeline.sh +252 -0
- package/pipeline/lib/plan-todos.sh +284 -0
- package/pipeline/lib/post-pr-review.sh +374 -0
- package/pipeline/lib/repo-cache.sh +231 -0
- package/pipeline/lib/review-watch.sh +244 -0
- package/pipeline/lib/shadow-git.sh +222 -0
- package/pipeline/lib/submodule-detector.sh +177 -0
- package/pipeline/lib/vercel-deploy.sh +170 -0
- package/pipeline/preferences-template.json +132 -0
- package/pipeline/rules/app-store-guidelines.md +59 -0
- package/pipeline/rules/code-review.md +27 -0
- package/pipeline/rules/code-style.md +37 -0
- package/pipeline/rules/debugging.md +24 -0
- package/pipeline/rules/figma-pipeline.md +190 -0
- package/pipeline/rules/git-conventions.md +29 -0
- package/pipeline/rules/kotlin-android.md +92 -0
- package/pipeline/rules/performance.md +23 -0
- package/pipeline/rules/security.md +39 -0
- package/pipeline/rules/swiftui-qa.md +32 -0
- package/pipeline/rules/tdd.md +25 -0
- package/pipeline/rules/testing.md +37 -0
- package/pipeline/schemas/agent-state.schema.json +273 -0
- package/pipeline/schemas/analysis-output.schema.json +59 -0
- package/pipeline/schemas/clarify-output.schema.json +74 -0
- package/pipeline/schemas/dev-critic-output.schema.json +104 -0
- package/pipeline/schemas/diff-risk.schema.json +78 -0
- package/pipeline/schemas/figma-project-config.schema.json +372 -0
- package/pipeline/schemas/migrations/README.md +73 -0
- package/pipeline/schemas/migrations/figma-config-1.0.0-to-2.0.0.mjs +112 -0
- package/pipeline/schemas/migrations/prefs-2.0.0-to-2.1.0.mjs +75 -0
- package/pipeline/schemas/migrations/prefs-2.1.0-to-2.2.0.mjs +64 -0
- package/pipeline/schemas/migrations/prefs-2.2.0-to-2.3.0.mjs +36 -0
- package/pipeline/schemas/migrations/state-2.0.0-to-2.1.0.mjs +34 -0
- package/pipeline/schemas/plan-todos.schema.json +62 -0
- package/pipeline/schemas/planning-output.schema.json +57 -0
- package/pipeline/schemas/prefs.schema.json +1137 -0
- package/pipeline/schemas/reviewer-output.schema.json +55 -0
- package/pipeline/schemas/test-gap.schema.json +64 -0
- package/pipeline/schemas/token-budget.json +17 -0
- package/pipeline/schemas/triage-corpus.schema.json +31 -0
- package/pipeline/schemas/triage-output.schema.json +115 -0
- package/pipeline/scripts/.last-figma-sync-plan.json +23 -0
- package/pipeline/scripts/README-figma-smokes.md +34 -0
- package/pipeline/scripts/README.md +104 -0
- package/pipeline/scripts/aggregate-metrics.mjs +310 -0
- package/pipeline/scripts/audit-log-rotate.sh +61 -0
- package/pipeline/scripts/audit-log.sh +69 -0
- package/pipeline/scripts/benchmark-phase-0.sh +128 -0
- package/pipeline/scripts/build-skills-index.mjs +139 -0
- package/pipeline/scripts/classify-plan-safety.mjs +177 -0
- package/pipeline/scripts/cost-table.json +27 -0
- package/pipeline/scripts/diff-explain.mjs +276 -0
- package/pipeline/scripts/diff-risk-score.mjs +328 -0
- package/pipeline/scripts/eval-golden-tasks-live.mjs +294 -0
- package/pipeline/scripts/eval-golden-tasks.mjs +223 -0
- package/pipeline/scripts/eval-triage.mjs +171 -0
- package/pipeline/scripts/figma-placeholder-map.json +191 -0
- package/pipeline/scripts/fixtures/diff-risk-android.diff +40 -0
- package/pipeline/scripts/fixtures/diff-risk-ios.diff +48 -0
- package/pipeline/scripts/fixtures/install-layout.tsv +16 -0
- package/pipeline/scripts/fixtures/test-gap-node.diff +30 -0
- package/pipeline/scripts/fixtures/test-gap-python.diff +32 -0
- package/pipeline/scripts/gen-mode-dispatch.mjs +170 -0
- package/pipeline/scripts/gen-skills-index.mjs +90 -0
- package/pipeline/scripts/github-ssh-setup.sh +103 -0
- package/pipeline/scripts/import-figma-skills.sh +253 -0
- package/pipeline/scripts/keychain-save.sh +74 -0
- package/pipeline/scripts/keychain.py +294 -0
- package/pipeline/scripts/log-metric.sh +98 -0
- package/pipeline/scripts/match-skills.mjs +167 -0
- package/pipeline/scripts/memory-load.sh +46 -0
- package/pipeline/scripts/memory-save.sh +76 -0
- package/pipeline/scripts/migrate-prefs.mjs +390 -0
- package/pipeline/scripts/migrate-state.mjs +215 -0
- package/pipeline/scripts/output-quality-check.sh +125 -0
- package/pipeline/scripts/phase-banner.sh +158 -0
- package/pipeline/scripts/phase-tracker.sh +548 -0
- package/pipeline/scripts/pre-commit-check.sh +69 -0
- package/pipeline/scripts/pre-push-check.sh +77 -0
- package/pipeline/scripts/render-agent-log-cost.sh +149 -0
- package/pipeline/scripts/render-cost-summary.sh +137 -0
- package/pipeline/scripts/render-work-summary.sh +195 -0
- package/pipeline/scripts/repo-map.mjs +367 -0
- package/pipeline/scripts/run-aggregator.mjs +298 -0
- package/pipeline/scripts/scan-skills.sh +332 -0
- package/pipeline/scripts/search-logs.sh +291 -0
- package/pipeline/scripts/sign-skills.sh +67 -0
- package/pipeline/scripts/smoke-adapters.sh +207 -0
- package/pipeline/scripts/smoke-add-detail.sh +137 -0
- package/pipeline/scripts/smoke-agent-log-cost.sh +183 -0
- package/pipeline/scripts/smoke-agent-model-routing.sh +87 -0
- package/pipeline/scripts/smoke-bitbucket-contract.sh +223 -0
- package/pipeline/scripts/smoke-channels-flow.sh +130 -0
- package/pipeline/scripts/smoke-ci-workflows.sh +88 -0
- package/pipeline/scripts/smoke-clarify.sh +148 -0
- package/pipeline/scripts/smoke-commands-skills-parity.sh +87 -0
- package/pipeline/scripts/smoke-compliance-skills.sh +119 -0
- package/pipeline/scripts/smoke-cost-summary.sh +139 -0
- package/pipeline/scripts/smoke-cross-cli-behavior.sh +198 -0
- package/pipeline/scripts/smoke-cross-phase-cohesion.sh +128 -0
- package/pipeline/scripts/smoke-delete-flow.sh +151 -0
- package/pipeline/scripts/smoke-dev-critic.sh +144 -0
- package/pipeline/scripts/smoke-diff-explain.sh +128 -0
- package/pipeline/scripts/smoke-diff-risk.sh +161 -0
- package/pipeline/scripts/smoke-dynamic-skill-loading.sh +160 -0
- package/pipeline/scripts/smoke-eval-live.sh +136 -0
- package/pipeline/scripts/smoke-existing-discovery-gate.sh +71 -0
- package/pipeline/scripts/smoke-figma-android-parity.sh +148 -0
- package/pipeline/scripts/smoke-figma-config-schema.sh +144 -0
- package/pipeline/scripts/smoke-figma-credential-store.sh +105 -0
- package/pipeline/scripts/smoke-figma-cross-cli-inventory.sh +177 -0
- package/pipeline/scripts/smoke-figma-dispatch.sh +123 -0
- package/pipeline/scripts/smoke-figma-skill-import.sh +174 -0
- package/pipeline/scripts/smoke-figma-sync.sh +149 -0
- package/pipeline/scripts/smoke-identity-isolation.sh +70 -0
- package/pipeline/scripts/smoke-install-layout.sh +241 -0
- package/pipeline/scripts/smoke-install-leak-gate.sh +125 -0
- package/pipeline/scripts/smoke-issue-comment-template.sh +86 -0
- package/pipeline/scripts/smoke-issue-jira-triad.sh +120 -0
- package/pipeline/scripts/smoke-keychain.sh +158 -0
- package/pipeline/scripts/smoke-language-axis.sh +109 -0
- package/pipeline/scripts/smoke-lib-scripts.sh +395 -0
- package/pipeline/scripts/smoke-migrate-state.sh +102 -0
- package/pipeline/scripts/smoke-mode-dispatch-drift.sh +158 -0
- package/pipeline/scripts/smoke-multi-repo-integration.sh +116 -0
- package/pipeline/scripts/smoke-multi-repo-worktree.sh +61 -0
- package/pipeline/scripts/smoke-no-token-prompt.sh +69 -0
- package/pipeline/scripts/smoke-pat-audit.sh +107 -0
- package/pipeline/scripts/smoke-per-repo-memory.sh +156 -0
- package/pipeline/scripts/smoke-personal-data.sh +82 -0
- package/pipeline/scripts/smoke-phase-0-multi-repo.sh +170 -0
- package/pipeline/scripts/smoke-phase-6-multi.sh +79 -0
- package/pipeline/scripts/smoke-phase-banner.sh +101 -0
- package/pipeline/scripts/smoke-phase-tracker.sh +255 -0
- package/pipeline/scripts/smoke-phase0-bridge-contract.sh +241 -0
- package/pipeline/scripts/smoke-phase4-triage.sh +142 -0
- package/pipeline/scripts/smoke-plan-approval-gate.sh +71 -0
- package/pipeline/scripts/smoke-plan-safety.sh +139 -0
- package/pipeline/scripts/smoke-plan-todos.sh +193 -0
- package/pipeline/scripts/smoke-pr-review-actions.sh +152 -0
- package/pipeline/scripts/smoke-pre-commit.sh +138 -0
- package/pipeline/scripts/smoke-pref-migration.sh +224 -0
- package/pipeline/scripts/smoke-prefs-language.sh +134 -0
- package/pipeline/scripts/smoke-progress-contract.sh +118 -0
- package/pipeline/scripts/smoke-push-retry.sh +75 -0
- package/pipeline/scripts/smoke-readme-counts.sh +120 -0
- package/pipeline/scripts/smoke-repo-map.sh +300 -0
- package/pipeline/scripts/smoke-review-watch.sh +134 -0
- package/pipeline/scripts/smoke-run-aggregator.sh +216 -0
- package/pipeline/scripts/smoke-schema-validation.sh +173 -0
- package/pipeline/scripts/smoke-search.sh +187 -0
- package/pipeline/scripts/smoke-shadow-git.sh +175 -0
- package/pipeline/scripts/smoke-skill-authoring.sh +142 -0
- package/pipeline/scripts/smoke-skill-language.sh +83 -0
- package/pipeline/scripts/smoke-skill-manifest.sh +138 -0
- package/pipeline/scripts/smoke-skill-scan.sh +198 -0
- package/pipeline/scripts/smoke-stack-swap.sh +132 -0
- package/pipeline/scripts/smoke-subagent-validators.sh +105 -0
- package/pipeline/scripts/smoke-sync-delegation.sh +74 -0
- package/pipeline/scripts/smoke-sync-parity.sh +92 -0
- package/pipeline/scripts/smoke-tasklist-ordering.sh +111 -0
- package/pipeline/scripts/smoke-telemetry.sh +147 -0
- package/pipeline/scripts/smoke-test-gap.sh +183 -0
- package/pipeline/scripts/smoke-token-budget.sh +67 -0
- package/pipeline/scripts/smoke-tracker-contract.sh +129 -0
- package/pipeline/scripts/smoke-tracker-tokens-invocation.sh +65 -0
- package/pipeline/scripts/smoke-triage-memory.sh +174 -0
- package/pipeline/scripts/smoke-url-enrichment.sh +70 -0
- package/pipeline/scripts/smoke-validator-contradiction.sh +67 -0
- package/pipeline/scripts/smoke-vercel-deploy-redact.sh +129 -0
- package/pipeline/scripts/smoke-wiki-integration.sh +146 -0
- package/pipeline/scripts/smoke-work-summary.sh +163 -0
- package/pipeline/scripts/smoke-worktree-path-convention.sh +86 -0
- package/pipeline/scripts/smoke-write-state.sh +115 -0
- package/pipeline/scripts/stack-swap.sh +182 -0
- package/pipeline/scripts/sync-figma-source.sh +228 -0
- package/pipeline/scripts/sync-parity-check.sh +135 -0
- package/pipeline/scripts/test-gap-rules/android.json +25 -0
- package/pipeline/scripts/test-gap-rules/ios.json +29 -0
- package/pipeline/scripts/test-gap-rules/node.json +17 -0
- package/pipeline/scripts/test-gap-rules/python.json +19 -0
- package/pipeline/scripts/test-gap-scan.mjs +343 -0
- package/pipeline/scripts/token-budget-report.mjs +145 -0
- package/pipeline/scripts/triage-memory.mjs +258 -0
- package/pipeline/scripts/ui-tree-dumper.swift +122 -0
- package/pipeline/scripts/uninstall.mjs +331 -0
- package/pipeline/scripts/update-issue-progress.sh +146 -0
- package/pipeline/scripts/validate-analysis.mjs +132 -0
- package/pipeline/scripts/validate-diff-risk.mjs +117 -0
- package/pipeline/scripts/validate-planning.mjs +180 -0
- package/pipeline/scripts/validate-reviewer.mjs +131 -0
- package/pipeline/scripts/validate-schemas.mjs +88 -0
- package/pipeline/scripts/validate-test-gap.mjs +90 -0
- package/pipeline/scripts/validate-triage.mjs +175 -0
- package/pipeline/scripts/verify-skills.sh +126 -0
- package/pipeline/scripts/write-state.mjs +175 -0
- package/pipeline/skills/.skill-manifest.json +779 -0
- package/pipeline/skills/.skills-index.json +1771 -0
- package/pipeline/skills/figma-android/README.md +36 -0
- package/pipeline/skills/figma-android/figma-component-code-connect/SKILL.md +62 -0
- package/pipeline/skills/figma-android/figma-component-implement/SKILL.md +158 -0
- package/pipeline/skills/figma-android/figma-component-test/SKILL.md +120 -0
- package/pipeline/skills/figma-android/figma-component-wiki/SKILL.md +35 -0
- package/pipeline/skills/figma-android/figma-to-component/SKILL.md +124 -0
- package/pipeline/skills/figma-common/README.md +57 -0
- package/pipeline/skills/figma-common/figma-cli-iterate/SKILL.md +277 -0
- package/pipeline/skills/figma-common/figma-cli-iterate-mend/SKILL.md +498 -0
- package/pipeline/skills/figma-common/figma-cli-lean-iterate/SKILL.md +283 -0
- package/pipeline/skills/figma-common/figma-cli-skip/SKILL.md +362 -0
- package/pipeline/skills/figma-common/figma-commit/COMMON_REBASE.md +206 -0
- package/pipeline/skills/figma-common/figma-commit/REVIEW.md +337 -0
- package/pipeline/skills/figma-common/figma-commit/SKILL.md +211 -0
- package/pipeline/skills/figma-common/figma-component-confluence-sync/SKILL.md +218 -0
- package/pipeline/skills/figma-common/figma-component-start/SKILL.md +246 -0
- package/pipeline/skills/figma-common/figma-component-status-update/SKILL.md +73 -0
- package/pipeline/skills/figma-common/figma-fix/SKILL.md +316 -0
- package/pipeline/skills/figma-common/figma-form-integration/SKILL.md +542 -0
- package/pipeline/skills/figma-common/figma-issue/SKILL.md +745 -0
- package/pipeline/skills/figma-common/figma-iterate/SKILL.md +203 -0
- package/pipeline/skills/figma-common/figma-iteration-commit/SKILL.md +1015 -0
- package/pipeline/skills/figma-common/figma-mend/SKILL.md +331 -0
- package/pipeline/skills/figma-common/figma-price-integration/SKILL.md +398 -0
- package/pipeline/skills/figma-common/figma-remote-mcp-auth/SKILL.md +104 -0
- package/pipeline/skills/figma-common/figma-review/SKILL.md +395 -0
- package/pipeline/skills/figma-common/figma-setup/SKILL.md +514 -0
- package/pipeline/skills/figma-common/figma-setup/scripts/fetch-mcp-token.py +592 -0
- package/pipeline/skills/figma-common/figma-skip/SKILL.md +129 -0
- package/pipeline/skills/figma-common/figma-ui-patterns/SKILL.md +104 -0
- package/pipeline/skills/figma-common/figma-utility/SKILL.md +274 -0
- package/pipeline/skills/figma-common/figma-utility/scripts/figma-utility.py +808 -0
- package/pipeline/skills/figma-common/figma-validate/SKILL.md +633 -0
- package/pipeline/skills/figma-common/performance-iteration-commit-all/SKILL.md +711 -0
- package/pipeline/skills/figma-common/performance-review-next/SKILL.md +233 -0
- package/pipeline/skills/figma-common/performance-start/SKILL.md +425 -0
- package/pipeline/skills/figma-common/performance-swiftui/SKILL.md +706 -0
- package/pipeline/skills/figma-common/performance-tour/SKILL.md +418 -0
- package/pipeline/skills/figma-ios/REVIEW_CHECKLIST.md +67 -0
- package/pipeline/skills/figma-ios/figma-component-code-connect/SKILL.md +178 -0
- package/pipeline/skills/figma-ios/figma-component-implement/SKILL.md +184 -0
- package/pipeline/skills/figma-ios/figma-component-test/SKILL.md +219 -0
- package/pipeline/skills/figma-ios/figma-component-wiki/SKILL.md +274 -0
- package/pipeline/skills/figma-ios/figma-to-component/SKILL.md +401 -0
- package/pipeline/skills/figma-ios/figma-to-component/halt-return-protocol.md +57 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-0-init.md +307 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1-gathering.md +119 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1.5-existing-discovery.md +174 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2-orchestrator.md +333 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2a-testing-identifiers.md +368 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2b-localization.md +393 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2c-accessibility.md +617 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2d-analytics.md +352 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3-orchestrator.md +337 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3a-location.md +206 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3b-tokens.md +235 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3c-nested.md +214 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3d-patterns.md +871 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3e-assets.md +156 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3f-utilities.md +175 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3g-property-coverage.md +176 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3h-variant-config.md +333 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4-orchestrator.md +412 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4a-configuration.md +336 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4b-view.md +695 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4c-documentation.md +332 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4d-preview.md +380 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4e-modifiers.md +262 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5-orchestrator.md +482 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5a-viewinspector.md +274 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5b-snapshot.md +636 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5c-unit.md +142 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-6-code-connect.md +547 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7-wiki.md +39 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-confluence-generate.md +659 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-wiki-generate.md +580 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-8-cleanup.md +51 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/accessibility.md +129 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/analytics-events.md +64 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/code-connect.md +531 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-api.md +89 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-xhtml.md +155 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/figma-to-swiftui-effects.md +196 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/halt-return-protocol.md +57 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/localization-naming.md +89 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/macros.md +227 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/missing-tokens.md +157 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/orchestrator-discipline.md +90 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/registry.md +116 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/remote-mcp-script.md +153 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/rest-api-script.md +130 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/scripts-inventory.md +218 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/snapshot-testing.md +188 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/subcomponent-graph.md +93 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/testing-identifiers-naming.md +98 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/tools.md +261 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/viewinspector.md +147 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/wiki-to-confluence-mapping.md +182 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/apply-author-login-map.py +185 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/backfill-status.py +609 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/build-author-registry.py +332 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/bulk-sync-issues.py +261 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-data-gather.py +184 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-publish.sh +188 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status-upload.py +768 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status.py +191 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-data-gather.py +420 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-page-ids.json +94 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-publish.py +336 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-subcomponent-graph.py +391 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-update.py +292 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/__init__.py +1 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/issue_sync_propagate.py +93 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/registry_writer.py +299 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_backfill_status.py +343 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update.py +206 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update_http.py +149 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_phase_clis.py +281 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_registry_writer.py +332 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_issue.py +176 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_review.py +98 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue.py +298 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue_gh.py +195 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase1-gather.py +1298 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase2-finalize.py +228 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase3-scripts.py +1089 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase4-finalize.py +141 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase5-finalize.py +106 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase6-finalize.py +162 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase7-finalize.py +105 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/register-icons-codeconnect.py +179 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/remote-mcp-fetch.py +260 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/resolve-author-logins.py +260 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/run-uicomponents-tests.sh +86 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/sidebar-generator.py +321 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/update-issue-from-registry.py +1470 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase4.sh +176 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase6.sh +147 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase7a.py +629 -0
- package/pipeline/skills/shared/README.md +212 -0
- package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +315 -0
- package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +348 -0
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +944 -0
- package/pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md +51 -0
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +300 -0
- package/pipeline/skills/shared/core/multi-agent-delete/SKILL.md +63 -0
- package/pipeline/skills/shared/core/multi-agent-dev/SKILL.md +64 -0
- package/pipeline/skills/shared/core/multi-agent-dev-autopilot/SKILL.md +56 -0
- package/pipeline/skills/shared/core/multi-agent-dev-local/SKILL.md +36 -0
- package/pipeline/skills/shared/core/multi-agent-dev-local-autopilot/SKILL.md +42 -0
- package/pipeline/skills/shared/core/multi-agent-diff-explain/SKILL.md +66 -0
- package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +292 -0
- package/pipeline/skills/shared/core/multi-agent-issue/SKILL.md +35 -0
- package/pipeline/skills/shared/core/multi-agent-jira/SKILL.md +38 -0
- package/pipeline/skills/shared/core/multi-agent-kill/SKILL.md +41 -0
- package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +87 -0
- package/pipeline/skills/shared/core/multi-agent-local/SKILL.md +37 -0
- package/pipeline/skills/shared/core/multi-agent-local-autopilot/SKILL.md +53 -0
- package/pipeline/skills/shared/core/multi-agent-log/SKILL.md +28 -0
- package/pipeline/skills/shared/core/multi-agent-manual-test/SKILL.md +47 -0
- package/pipeline/skills/shared/core/multi-agent-purge/SKILL.md +42 -0
- package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +191 -0
- package/pipeline/skills/shared/core/multi-agent-resume/SKILL.md +31 -0
- package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +61 -0
- package/pipeline/skills/shared/core/multi-agent-scan/SKILL.md +61 -0
- package/pipeline/skills/shared/core/multi-agent-search/SKILL.md +62 -0
- package/pipeline/skills/shared/core/multi-agent-setup/SKILL.md +309 -0
- package/pipeline/skills/shared/core/multi-agent-stack/SKILL.md +55 -0
- package/pipeline/skills/shared/core/multi-agent-status/SKILL.md +41 -0
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +184 -0
- package/pipeline/skills/shared/core/multi-agent-test/SKILL.md +44 -0
- package/pipeline/skills/shared/core/multi-agent-update/SKILL.md +34 -0
- package/pipeline/skills/shared/external/accessibility-compliance-accessibility-audit/SKILL.md +45 -0
- package/pipeline/skills/shared/external/agentflow/SKILL.md +199 -0
- package/pipeline/skills/shared/external/alarmkit/SKILL.md +438 -0
- package/pipeline/skills/shared/external/alarmkit/references/alarmkit-patterns.md +584 -0
- package/pipeline/skills/shared/external/android-architecture/SKILL.md +407 -0
- package/pipeline/skills/shared/external/android-jetpack-compose-expert/SKILL.md +153 -0
- package/pipeline/skills/shared/external/android-performance/SKILL.md +736 -0
- package/pipeline/skills/shared/external/android-security/SKILL.md +577 -0
- package/pipeline/skills/shared/external/android_ui_verification/SKILL.md +66 -0
- package/pipeline/skills/shared/external/api-patterns/SKILL.md +85 -0
- package/pipeline/skills/shared/external/api-security-best-practices/SKILL.md +910 -0
- package/pipeline/skills/shared/external/app-clips/SKILL.md +436 -0
- package/pipeline/skills/shared/external/app-intents/SKILL.md +489 -0
- package/pipeline/skills/shared/external/app-intents/references/appintents-advanced.md +1076 -0
- package/pipeline/skills/shared/external/app-store-changelog/SKILL.md +75 -0
- package/pipeline/skills/shared/external/app-store-optimization/SKILL.md +409 -0
- package/pipeline/skills/shared/external/app-store-review/SKILL.md +411 -0
- package/pipeline/skills/shared/external/app-store-review/references/code-signing.md +259 -0
- package/pipeline/skills/shared/external/app-store-review/references/privacy-manifest.md +90 -0
- package/pipeline/skills/shared/external/app-store-review/references/rejection-patterns.md +152 -0
- package/pipeline/skills/shared/external/app-store-review/references/review-checklists.md +118 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/SKILL.md +500 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-conversion.md +425 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-optimization.md +344 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/foundation-models.md +508 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/mlx-swift.md +285 -0
- package/pipeline/skills/shared/external/architecture/SKILL.md +60 -0
- package/pipeline/skills/shared/external/authentication/SKILL.md +496 -0
- package/pipeline/skills/shared/external/authentication/references/keychain-biometric.md +211 -0
- package/pipeline/skills/shared/external/background-processing/SKILL.md +499 -0
- package/pipeline/skills/shared/external/background-processing/references/background-task-patterns.md +390 -0
- package/pipeline/skills/shared/external/callkit-voip/SKILL.md +461 -0
- package/pipeline/skills/shared/external/callkit-voip/references/callkit-patterns.md +425 -0
- package/pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md +462 -0
- package/pipeline/skills/shared/external/clean-code/SKILL.md +94 -0
- package/pipeline/skills/shared/external/closed-loop-delivery/SKILL.md +116 -0
- package/pipeline/skills/shared/external/cloudkit-sync/SKILL.md +492 -0
- package/pipeline/skills/shared/external/cloudkit-sync/references/cloudkit-patterns.md +461 -0
- package/pipeline/skills/shared/external/compose-components/SKILL.md +441 -0
- package/pipeline/skills/shared/external/compose-navigation/SKILL.md +436 -0
- package/pipeline/skills/shared/external/compose-testing/SKILL.md +527 -0
- package/pipeline/skills/shared/external/contacts-framework/SKILL.md +425 -0
- package/pipeline/skills/shared/external/contacts-framework/references/contacts-patterns.md +409 -0
- package/pipeline/skills/shared/external/context-compression/SKILL.md +266 -0
- package/pipeline/skills/shared/external/core-bluetooth/SKILL.md +491 -0
- package/pipeline/skills/shared/external/core-bluetooth/references/ble-patterns.md +435 -0
- package/pipeline/skills/shared/external/core-motion/SKILL.md +388 -0
- package/pipeline/skills/shared/external/core-motion/references/motion-patterns.md +405 -0
- package/pipeline/skills/shared/external/core-nfc/SKILL.md +495 -0
- package/pipeline/skills/shared/external/core-nfc/references/nfc-patterns.md +420 -0
- package/pipeline/skills/shared/external/coreml/SKILL.md +458 -0
- package/pipeline/skills/shared/external/coreml/references/coreml-swift-integration.md +765 -0
- package/pipeline/skills/shared/external/css-modern/SKILL.md +467 -0
- package/pipeline/skills/shared/external/database-patterns/SKILL.md +335 -0
- package/pipeline/skills/shared/external/debugging-instruments/SKILL.md +422 -0
- package/pipeline/skills/shared/external/debugging-instruments/references/instruments-guide.md +387 -0
- package/pipeline/skills/shared/external/debugging-instruments/references/lldb-patterns.md +298 -0
- package/pipeline/skills/shared/external/debugging-strategies/SKILL.md +37 -0
- package/pipeline/skills/shared/external/device-integrity/SKILL.md +477 -0
- package/pipeline/skills/shared/external/docker-expert/SKILL.md +413 -0
- package/pipeline/skills/shared/external/energykit/SKILL.md +460 -0
- package/pipeline/skills/shared/external/energykit/references/energykit-patterns.md +541 -0
- package/pipeline/skills/shared/external/eventkit-calendar/SKILL.md +483 -0
- package/pipeline/skills/shared/external/eventkit-calendar/references/eventkit-patterns.md +326 -0
- package/pipeline/skills/shared/external/fastapi-pro/SKILL.md +190 -0
- package/pipeline/skills/shared/external/firebase/SKILL.md +61 -0
- package/pipeline/skills/shared/external/github-actions-templates/SKILL.md +348 -0
- package/pipeline/skills/shared/external/gradle-kotlin-dsl/SKILL.md +552 -0
- package/pipeline/skills/shared/external/healthkit/SKILL.md +498 -0
- package/pipeline/skills/shared/external/healthkit/references/healthkit-patterns.md +602 -0
- package/pipeline/skills/shared/external/help-skills/SKILL.md +166 -0
- package/pipeline/skills/shared/external/hig-components-content/SKILL.md +81 -0
- package/pipeline/skills/shared/external/hig-components-layout/SKILL.md +95 -0
- package/pipeline/skills/shared/external/hig-components-status/SKILL.md +82 -0
- package/pipeline/skills/shared/external/hig-components-system/SKILL.md +101 -0
- package/pipeline/skills/shared/external/hig-foundations/SKILL.md +94 -0
- package/pipeline/skills/shared/external/hig-inputs/SKILL.md +110 -0
- package/pipeline/skills/shared/external/hig-patterns/SKILL.md +99 -0
- package/pipeline/skills/shared/external/hig-platforms/SKILL.md +81 -0
- package/pipeline/skills/shared/external/hig-technologies/SKILL.md +125 -0
- package/pipeline/skills/shared/external/homekit-matter/SKILL.md +496 -0
- package/pipeline/skills/shared/external/homekit-matter/references/matter-commissioning.md +455 -0
- package/pipeline/skills/shared/external/html-semantic/SKILL.md +301 -0
- package/pipeline/skills/shared/external/humanizer/SKILL.md +118 -0
- package/pipeline/skills/shared/external/ios-accessibility/SKILL.md +301 -0
- package/pipeline/skills/shared/external/ios-accessibility/references/a11y-patterns.md +140 -0
- package/pipeline/skills/shared/external/ios-debugger-agent/SKILL.md +59 -0
- package/pipeline/skills/shared/external/ios-developer/SKILL.md +217 -0
- package/pipeline/skills/shared/external/ios-localization/SKILL.md +418 -0
- package/pipeline/skills/shared/external/ios-localization/references/formatstyle-locale.md +627 -0
- package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +462 -0
- package/pipeline/skills/shared/external/ios-networking/SKILL.md +441 -0
- package/pipeline/skills/shared/external/ios-networking/references/background-websocket.md +862 -0
- package/pipeline/skills/shared/external/ios-networking/references/lightweight-clients.md +93 -0
- package/pipeline/skills/shared/external/ios-networking/references/network-framework.md +563 -0
- package/pipeline/skills/shared/external/ios-networking/references/urlsession-patterns.md +1116 -0
- package/pipeline/skills/shared/external/ios-security/SKILL.md +496 -0
- package/pipeline/skills/shared/external/ios-security/references/app-review-guidelines.md +174 -0
- package/pipeline/skills/shared/external/ios-security/references/cryptokit-advanced.md +297 -0
- package/pipeline/skills/shared/external/ios-security/references/file-storage-patterns.md +354 -0
- package/pipeline/skills/shared/external/ios-security/references/privacy-manifest.md +117 -0
- package/pipeline/skills/shared/external/kotlin-coroutines-expert/SKILL.md +101 -0
- package/pipeline/skills/shared/external/live-activities/SKILL.md +500 -0
- package/pipeline/skills/shared/external/live-activities/references/live-activity-patterns.md +868 -0
- package/pipeline/skills/shared/external/macos-menubar-tuist-app/SKILL.md +109 -0
- package/pipeline/skills/shared/external/macos-spm-app-packaging/SKILL.md +110 -0
- package/pipeline/skills/shared/external/mapkit-location/SKILL.md +485 -0
- package/pipeline/skills/shared/external/mapkit-location/references/corelocation-patterns.md +730 -0
- package/pipeline/skills/shared/external/mapkit-location/references/mapkit-patterns.md +748 -0
- package/pipeline/skills/shared/external/metrickit-diagnostics/SKILL.md +479 -0
- package/pipeline/skills/shared/external/monorepo-architect/SKILL.md +64 -0
- package/pipeline/skills/shared/external/musickit-audio/SKILL.md +395 -0
- package/pipeline/skills/shared/external/musickit-audio/references/musickit-patterns.md +363 -0
- package/pipeline/skills/shared/external/natural-language/SKILL.md +412 -0
- package/pipeline/skills/shared/external/natural-language/references/translation-patterns.md +311 -0
- package/pipeline/skills/shared/external/nextjs-app-router/SKILL.md +418 -0
- package/pipeline/skills/shared/external/nodejs-backend-patterns/SKILL.md +38 -0
- package/pipeline/skills/shared/external/observability-engineer/SKILL.md +235 -0
- package/pipeline/skills/shared/external/passkit-wallet/SKILL.md +398 -0
- package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +254 -0
- package/pipeline/skills/shared/external/pencilkit-drawing/SKILL.md +387 -0
- package/pipeline/skills/shared/external/pencilkit-drawing/references/paperkit-integration.md +376 -0
- package/pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md +302 -0
- package/pipeline/skills/shared/external/permissionkit/SKILL.md +446 -0
- package/pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md +435 -0
- package/pipeline/skills/shared/external/photos-camera-media/SKILL.md +501 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/av-playback.md +701 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/camera-capture.md +774 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/image-loading-caching.md +869 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/photospicker-patterns.md +597 -0
- package/pipeline/skills/shared/external/play-store-review/SKILL.md +350 -0
- package/pipeline/skills/shared/external/push-notifications/SKILL.md +501 -0
- package/pipeline/skills/shared/external/push-notifications/references/notification-patterns.md +677 -0
- package/pipeline/skills/shared/external/push-notifications/references/rich-notifications.md +745 -0
- package/pipeline/skills/shared/external/python-patterns/SKILL.md +383 -0
- package/pipeline/skills/shared/external/react-best-practices/SKILL.md +290 -0
- package/pipeline/skills/shared/external/realitykit-ar/SKILL.md +479 -0
- package/pipeline/skills/shared/external/realitykit-ar/references/realitykit-patterns.md +480 -0
- package/pipeline/skills/shared/external/rest-api-design/SKILL.md +386 -0
- package/pipeline/skills/shared/external/retrofit-networking/SKILL.md +506 -0
- package/pipeline/skills/shared/external/room-database/SKILL.md +564 -0
- package/pipeline/skills/shared/external/shareplay-activities/SKILL.md +483 -0
- package/pipeline/skills/shared/external/shareplay-activities/references/shareplay-patterns.md +544 -0
- package/pipeline/skills/shared/external/speech-recognition/SKILL.md +485 -0
- package/pipeline/skills/shared/external/storekit/SKILL.md +478 -0
- package/pipeline/skills/shared/external/storekit/references/app-review-guidelines.md +58 -0
- package/pipeline/skills/shared/external/storekit/references/storekit-advanced.md +755 -0
- package/pipeline/skills/shared/external/swift-charts/SKILL.md +487 -0
- package/pipeline/skills/shared/external/swift-charts/references/charts-patterns.md +895 -0
- package/pipeline/skills/shared/external/swift-codable/SKILL.md +467 -0
- package/pipeline/skills/shared/external/swift-concurrency/SKILL.md +408 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/approachable-concurrency.md +80 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/swift-6-2-concurrency.md +233 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/swiftui-concurrency.md +187 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/synchronization-primitives.md +341 -0
- package/pipeline/skills/shared/external/swift-concurrency-expert/SKILL.md +113 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/SKILL.md +124 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/actors.md +155 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/async-streams.md +67 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/bridging.md +52 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/bug-patterns.md +100 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/cancellation.md +107 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/diagnostics.md +70 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/hotspots.md +47 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/interop.md +129 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/new-features.md +224 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/structured.md +101 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/testing.md +218 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/unstructured.md +61 -0
- package/pipeline/skills/shared/external/swift-language/SKILL.md +498 -0
- package/pipeline/skills/shared/external/swift-language/references/swift-patterns-extended.md +505 -0
- package/pipeline/skills/shared/external/swift-testing/SKILL.md +462 -0
- package/pipeline/skills/shared/external/swift-testing/references/testing-patterns.md +504 -0
- package/pipeline/skills/shared/external/swift-testing-pro/SKILL.md +97 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/async-tests.md +252 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/core-rules.md +52 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/migrating-from-xctest.md +34 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/new-features.md +318 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/writing-better-tests.md +254 -0
- package/pipeline/skills/shared/external/swiftdata/SKILL.md +334 -0
- package/pipeline/skills/shared/external/swiftdata/references/core-data-coexistence.md +504 -0
- package/pipeline/skills/shared/external/swiftdata/references/swiftdata-advanced.md +975 -0
- package/pipeline/skills/shared/external/swiftdata/references/swiftdata-queries.md +675 -0
- package/pipeline/skills/shared/external/swiftdata-pro/SKILL.md +102 -0
- package/pipeline/skills/shared/external/swiftdata-pro/references/class-inheritance.md +104 -0
- package/pipeline/skills/shared/external/swiftdata-pro/references/cloudkit.md +10 -0
- package/pipeline/skills/shared/external/swiftdata-pro/references/core-rules.md +20 -0
- package/pipeline/skills/shared/external/swiftdata-pro/references/indexing.md +27 -0
- package/pipeline/skills/shared/external/swiftdata-pro/references/predicates.md +73 -0
- package/pipeline/skills/shared/external/swiftui-animation/SKILL.md +503 -0
- package/pipeline/skills/shared/external/swiftui-animation/references/animation-advanced.md +821 -0
- package/pipeline/skills/shared/external/swiftui-animation/references/core-animation-bridge.md +553 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/SKILL.md +102 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/accessibility-patterns.md +215 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-advanced.md +403 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-basics.md +284 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-transitions.md +326 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts-accessibility.md +135 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts.md +602 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/image-optimization.md +203 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/latest-apis.md +464 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/layout-best-practices.md +266 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/liquid-glass.md +416 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/list-patterns.md +394 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-scenes.md +318 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-views.md +357 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-window-styling.md +303 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/performance-patterns.md +403 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/scroll-patterns.md +293 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/sheet-navigation-patterns.md +363 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/state-management.md +417 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/view-structure.md +389 -0
- package/pipeline/skills/shared/external/swiftui-gestures/SKILL.md +450 -0
- package/pipeline/skills/shared/external/swiftui-gestures/references/gesture-patterns.md +425 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/SKILL.md +336 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/references/form.md +97 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/references/grids.md +69 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/references/list.md +99 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/references/scrollview.md +147 -0
- package/pipeline/skills/shared/external/swiftui-liquid-glass/SKILL.md +98 -0
- package/pipeline/skills/shared/external/swiftui-navigation/SKILL.md +262 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/deeplinks.md +207 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/navigationstack.md +177 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/sheets.md +169 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/tabview.md +178 -0
- package/pipeline/skills/shared/external/swiftui-patterns/SKILL.md +371 -0
- package/pipeline/skills/shared/external/swiftui-patterns/references/architecture-patterns.md +486 -0
- package/pipeline/skills/shared/external/swiftui-patterns/references/deprecated-migration.md +1097 -0
- package/pipeline/skills/shared/external/swiftui-patterns/references/design-polish.md +780 -0
- package/pipeline/skills/shared/external/swiftui-patterns/references/platform-and-sharing.md +696 -0
- package/pipeline/skills/shared/external/swiftui-performance/SKILL.md +487 -0
- package/pipeline/skills/shared/external/swiftui-performance/references/demystify-swiftui-performance-wwdc23.md +46 -0
- package/pipeline/skills/shared/external/swiftui-performance/references/optimizing-swiftui-performance-instruments.md +29 -0
- package/pipeline/skills/shared/external/swiftui-performance/references/understanding-hangs-in-your-app.md +33 -0
- package/pipeline/skills/shared/external/swiftui-performance/references/understanding-improving-swiftui-performance.md +52 -0
- package/pipeline/skills/shared/external/swiftui-performance-audit/SKILL.md +114 -0
- package/pipeline/skills/shared/external/swiftui-pro/SKILL.md +108 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/accessibility.md +13 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/api.md +39 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/data.md +43 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/design.md +31 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/hygiene.md +9 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/navigation.md +14 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/performance.md +46 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/swift.md +56 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/views.md +35 -0
- package/pipeline/skills/shared/external/swiftui-ui-patterns/SKILL.md +103 -0
- package/pipeline/skills/shared/external/swiftui-uikit-interop/SKILL.md +428 -0
- package/pipeline/skills/shared/external/swiftui-uikit-interop/references/hosting-migration.md +534 -0
- package/pipeline/skills/shared/external/swiftui-uikit-interop/references/representable-recipes.md +948 -0
- package/pipeline/skills/shared/external/swiftui-view-refactor/SKILL.md +210 -0
- package/pipeline/skills/shared/external/swiftui-webkit/SKILL.md +273 -0
- package/pipeline/skills/shared/external/swiftui-webkit/references/loading-and-observation.md +151 -0
- package/pipeline/skills/shared/external/swiftui-webkit/references/local-content-and-custom-schemes.md +95 -0
- package/pipeline/skills/shared/external/swiftui-webkit/references/migration-and-fallbacks.md +51 -0
- package/pipeline/skills/shared/external/swiftui-webkit/references/navigation-and-javascript.md +111 -0
- package/pipeline/skills/shared/external/tailwind-css/SKILL.md +309 -0
- package/pipeline/skills/shared/external/testing-backend/SKILL.md +393 -0
- package/pipeline/skills/shared/external/tipkit/SKILL.md +494 -0
- package/pipeline/skills/shared/external/tipkit/references/tipkit-patterns.md +782 -0
- package/pipeline/skills/shared/external/typescript-patterns/SKILL.md +336 -0
- package/pipeline/skills/shared/external/vision-framework/SKILL.md +475 -0
- package/pipeline/skills/shared/external/vision-framework/references/vision-requests.md +736 -0
- package/pipeline/skills/shared/external/vision-framework/references/visionkit-scanner.md +738 -0
- package/pipeline/skills/shared/external/vue-composition/SKILL.md +371 -0
- package/pipeline/skills/shared/external/weatherkit/SKILL.md +410 -0
- package/pipeline/skills/shared/external/weatherkit/references/weatherkit-patterns.md +567 -0
- package/pipeline/skills/shared/external/web-accessibility/SKILL.md +373 -0
- package/pipeline/skills/shared/external/web-performance/SKILL.md +345 -0
- package/pipeline/skills/shared/external/web-testing/SKILL.md +385 -0
- package/pipeline/skills/shared/external/widgetkit/SKILL.md +497 -0
- package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +871 -0
- package/pipeline/skills/skills-index.md +205 -0
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Task orchestrator — full pipeline via Jira ID + branch or GitHub Issue URL: analysis, plan, TDD development, parallel review + Opus triage (CLI-aware: 2-model on Claude Code, 3-model on Copilot CLI), commit, log"
|
|
3
|
+
allowed-tools: Agent, Bash, Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, TaskList, TaskGet, AskUserQuestion, WebFetch, WebSearch, NotebookEdit, Skill
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Multi-Agent Task Orchestrator
|
|
7
|
+
|
|
8
|
+
Parse the user input and route to the correct sub-command.
|
|
9
|
+
|
|
10
|
+
**Input**: $ARGUMENTS
|
|
11
|
+
|
|
12
|
+
> **Language (read FIRST)**: Before any status output, read `prefs.global.outputLanguage` from `$HOME/.claude/multi-agent-preferences.json` and render every conversational line in it. `AskUserQuestion` and external payloads stay English. Full contract: `refs/rules.md` "Language Application".
|
|
13
|
+
|
|
14
|
+
## Canonical Invocation (per CLI)
|
|
15
|
+
|
|
16
|
+
Each helper subcommand has its own slash entry — use the CLI-native form:
|
|
17
|
+
|
|
18
|
+
| Helper | Claude Code | Copilot CLI |
|
|
19
|
+
|--------|-------------|-------------|
|
|
20
|
+
| update | `/multi-agent:update` | `/multi-agent-update` |
|
|
21
|
+
| setup | `/multi-agent:setup` | `/multi-agent-setup` |
|
|
22
|
+
| status | `/multi-agent:status` | `/multi-agent-status` |
|
|
23
|
+
| sync | `/multi-agent:sync` | `/multi-agent-sync` |
|
|
24
|
+
| jira | `/multi-agent:jira` | `/multi-agent-jira` |
|
|
25
|
+
| issue | `/multi-agent:issue` | `/multi-agent-issue` |
|
|
26
|
+
| help | `/multi-agent:help` | `/multi-agent-help` |
|
|
27
|
+
| log, kill, resume, channels, test, ... | `/multi-agent:<name>` | `/multi-agent-<name>` |
|
|
28
|
+
|
|
29
|
+
The space-form (`multi-agent <subcommand>`) is still routed by this dispatcher
|
|
30
|
+
for backward compatibility, but the colon (Claude) / dash (Copilot) forms are
|
|
31
|
+
the canonical invocations and the only forms surfaced in autocomplete.
|
|
32
|
+
|
|
33
|
+
## Input Parsing
|
|
34
|
+
|
|
35
|
+
Classification schema lives in `commands/multi-agent/_input-parser.md` — canonical source. Summary:
|
|
36
|
+
|
|
37
|
+
| # | Pattern | Type | Picker flow |
|
|
38
|
+
|---|---------|------|--------|
|
|
39
|
+
| 1 | `#N` or bare `316` | `gh-num` | account → repo (single) → maturity → dev-context |
|
|
40
|
+
| 2 | `repo#N` (e.g. `my-app#316`) | `gh-short` | account → maturity → dev-context |
|
|
41
|
+
| 3 | `https://github.com/.../issues/N` | `gh-url` | account → maturity → dev-context |
|
|
42
|
+
| 4 | `https://{JIRA_HOST}/browse/{JIRA_KEY}-N` | `jira-url` | account → maturity → dev-context |
|
|
43
|
+
| 5 | `{JIRA_KEY}-N` (bare) | `jira-id` | account → maturity → dev-context |
|
|
44
|
+
| 6 | `jira` | full picker | account → project (multi) → issue → maturity → dev-context |
|
|
45
|
+
| 7 | `issue` | full picker | account → repo (multi) → issue → maturity → dev-context |
|
|
46
|
+
| 8 | Free-text | `freetext` | account → repo (single) → dev-context (maturity skip) |
|
|
47
|
+
|
|
48
|
+
**Rule**: Whatever the type, **account is always asked** (autopilot picks a default). After issue fetch, **maturity check is mandatory** — blockers halt the pipeline. All picker UI strings render in English (`promptLanguage` is locked to `en`).
|
|
49
|
+
|
|
50
|
+
Lib scripts (`~/.claude/lib/`):
|
|
51
|
+
- `account-resolver.sh` — keychain account inventory
|
|
52
|
+
- `issue-fetcher.sh` — Jira/GitHub fetch + maturity scoring
|
|
53
|
+
- `repo-cache.sh` — TTL-cached repo list
|
|
54
|
+
- `submodule-detector.sh` — `.gitmodules` parse → dev-context suggestions
|
|
55
|
+
- `multi-repo-pipeline.sh` — worktree/branch/commit/PR orchestration
|
|
56
|
+
|
|
57
|
+
## Routing
|
|
58
|
+
|
|
59
|
+
| Input Pattern | Action |
|
|
60
|
+
|---------------|--------|
|
|
61
|
+
| `#N`, `316` | GitHub Issue # — parse, select project, start pipeline |
|
|
62
|
+
| `https://github.com/.../issues/N` | GitHub Issue URL — fetch, auto-detect or ask project |
|
|
63
|
+
| `https://{JIRA_HOST}/browse/{JIRA_KEY}-XXXXX` | Jira URL — fetch, select project, start pipeline |
|
|
64
|
+
| `{JIRA_KEY}-XXXXX` | Jira ID — fetch, select project, start pipeline |
|
|
65
|
+
| Free-text | Bug/feature description — select project, start pipeline |
|
|
66
|
+
| `jira` | 4-step picker (hesap → proje → issue → dev-context) — `commands/multi-agent/jira.md` delegate |
|
|
67
|
+
| `issue` | 4-step picker (hesap → repo → issue → dev-context) — `commands/multi-agent/issue.md` delegate |
|
|
68
|
+
| `status` | List all tasks (scan `$HOME/.claude/logs/multi-agent/`) |
|
|
69
|
+
| `log [id]` | Show task log |
|
|
70
|
+
| `resume [id]` | Resume paused task |
|
|
71
|
+
| `kill [id]` | Delete worktree (logs preserved). Confirm first |
|
|
72
|
+
| `clear-logs` | Clean global log directory. Keep counter |
|
|
73
|
+
| `purge` | Worktree + logs + counter — full reset (double confirm) |
|
|
74
|
+
| `review` | Review current diff only (lightweight, no worktree) |
|
|
75
|
+
| `channels [PR-url\|#N\|Jira-url\|Jira-id] [--channels pr,jira,confluence,wiki] [--content normal,test,auto-diff,note] [--message "..."]` | Post task report to multi-select channels (PR description, Jira comment, Confluence page, Wiki pages) with multi-select content sources. Humanizer pass per-channel. Bitbucket PR updates use reviewer-preserving PUT. Phase 7 delegates to this command; also invocable post-hoc for fixes made outside the pipeline. No worktree. |
|
|
76
|
+
| `test` or `test [args]` | UI Bug Hunter — screenshot + tap + analyze on booted simulator via MCP (read `$HOME/.claude/commands/sim-test.md`). `/multi-agent:test` also resolves here via the `commands/multi-agent/test.md` delegate. |
|
|
77
|
+
| `manual-test [#id]` | Phase 5 standalone Manual Test — checks out the task branch, prints Xcode / SourceTree hints, waits for user verdict (`ok` / `fix: ...`). |
|
|
78
|
+
| `stack [ios\|android\|backend\|mobile\|all]` | Swap skills for next conversation. No arg = show current stack. |
|
|
79
|
+
| `language [en\|tr]` | Show or set the assistant `outputLanguage` (explanations and chat replies). `promptLanguage` is locked to `en` and is not toggleable. No arg = show current `outputLanguage`. With `en` or `tr` = set and persist `outputLanguage`. External payloads (commits, PR bodies, Jira) stay English. |
|
|
80
|
+
| `setup` | Keychain token + Git Identity onboarding |
|
|
81
|
+
| `--dev` | Dev-only: Init -> Dev(Opus) -> Commit -> Report |
|
|
82
|
+
| `--dev autopilot` or `dev-autopilot` | Fastest path — Dev(Opus) + zero interaction |
|
|
83
|
+
| `--local` | No worktree — works directly on local branch |
|
|
84
|
+
| `autopilot` | Skip user confirmations, auto commit/PR |
|
|
85
|
+
| No args / `help` | Show usage guide |
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Modular Loading
|
|
90
|
+
|
|
91
|
+
This command uses lazy loading for token efficiency. Read the relevant sub-file based on the routed action:
|
|
92
|
+
|
|
93
|
+
**File layout:**
|
|
94
|
+
- `commands/multi-agent/*.md` → **invocable actions** (each gets its own `/multi-agent:<name>` slash command)
|
|
95
|
+
- `commands/multi-agent/refs/**` → **internal references**, read by the main command, never invoked directly (surface as `/multi-agent:refs:...` in autocomplete — the prefix signals "not an action")
|
|
96
|
+
|
|
97
|
+
| Route | File to Read |
|
|
98
|
+
|-------|-------------|
|
|
99
|
+
| Pipeline task (any input type) | `$HOME/.claude/commands/multi-agent/refs/phases.md` + `commands/multi-agent/_account-picker.md` + `_repo-picker.md` + `_dev-context.md` |
|
|
100
|
+
| `jira` | `$HOME/.claude/commands/multi-agent/jira.md` (4-step picker) |
|
|
101
|
+
| `issue` | `$HOME/.claude/commands/multi-agent/issue.md` (4-step picker) |
|
|
102
|
+
| Direct ID (`{JIRA_KEY}-N`, `#N`, gh URL, repo#N, free-text) | `commands/multi-agent/_input-parser.md` → `_account-picker.md` → `lib/issue-fetcher.sh` (maturity check) → `_dev-context.md` |
|
|
103
|
+
| `setup` | `$HOME/.claude/commands/multi-agent/setup.md` |
|
|
104
|
+
| `help` | `$HOME/.claude/commands/multi-agent/help.md` |
|
|
105
|
+
| `channels` | `$HOME/.claude/commands/multi-agent/channels.md` |
|
|
106
|
+
| `sync` | `$HOME/.claude/commands/multi-agent/sync.md` |
|
|
107
|
+
| `clear-logs` | Handled inline — scan + delete agent-log.md/agent-state.json files |
|
|
108
|
+
| `review` | `$HOME/.claude/commands/multi-agent/review.md` |
|
|
109
|
+
| `local` | `$HOME/.claude/commands/multi-agent/local.md` |
|
|
110
|
+
| `local-autopilot` | `$HOME/.claude/commands/multi-agent/local-autopilot.md` |
|
|
111
|
+
| `dev-local` | `$HOME/.claude/commands/multi-agent/dev-local.md` |
|
|
112
|
+
| `dev-local-autopilot` | `$HOME/.claude/commands/multi-agent/dev-local-autopilot.md` |
|
|
113
|
+
| `stack` | `$HOME/.claude/commands/multi-agent/stack.md` |
|
|
114
|
+
| `language` | Handled inline — set/show prompt language in preferences |
|
|
115
|
+
| SwiftUI component task (iOS) | `$HOME/.claude/commands/multi-agent/refs/swiftui-guide.md` |
|
|
116
|
+
| Jetpack Compose task (Android) | `$HOME/.claude/commands/multi-agent/refs/android-guide.md` |
|
|
117
|
+
| Backend API task | `$HOME/.claude/commands/multi-agent/refs/backend-guide.md` |
|
|
118
|
+
| Frontend component task | `$HOME/.claude/commands/multi-agent/refs/frontend-guide.md` |
|
|
119
|
+
| Phase 1 or Phase 7 (knowledge) | `$HOME/.claude/commands/multi-agent/refs/knowledge.md` |
|
|
120
|
+
| Token lookup needed | `$HOME/.claude/commands/multi-agent/refs/keychain.md` |
|
|
121
|
+
| Audit tools (Phase 5/6) | `$HOME/.claude/commands/multi-agent/refs/audit-guide.md` |
|
|
122
|
+
| `test` | `$HOME/.claude/commands/sim-test.md` (colon-form `/multi-agent:test` uses the delegate at `commands/multi-agent/test.md`) |
|
|
123
|
+
| `manual-test` | `$HOME/.claude/commands/multi-agent/manual-test.md` |
|
|
124
|
+
|
|
125
|
+
**Modifier flags** (`--dev`, `--local`, `autopilot`) and **ops** (`status`, `log`, `resume`, `kill`, `clear-logs`, `purge`, `review`) are parsed inline by this file — no separate spec files, they compose with the pipeline or do one-shot work.
|
|
126
|
+
|
|
127
|
+
**How**: After routing, `Read` the relevant file and follow its instructions. Only load what the current action needs.
|
|
128
|
+
|
|
129
|
+
**Guide selection** (auto, based on Phase 1 detected stack):
|
|
130
|
+
- iOS detected -> load `swiftui-guide.md`
|
|
131
|
+
- Android detected -> load `android-guide.md`
|
|
132
|
+
- Python/Node.js/Go detected -> load `backend-guide.md`
|
|
133
|
+
- React/Vue/Next.js detected -> load `frontend-guide.md`
|
|
134
|
+
- Multiple stacks -> load all relevant guides
|
|
135
|
+
|
|
136
|
+
**Agent definitions** (used in Phase 1 and Phase 4):
|
|
137
|
+
- `$HOME/.claude/agents/code-reviewer.md` — Phase 4 reviewer persona (`preferredModel: opus`; Phase 4 overrides Reviewer 3 to `sonnet`)
|
|
138
|
+
- `$HOME/.claude/agents/explorer.md` — Phase 1 codebase scan persona (`preferredModel: sonnet` — scan work, cost-efficient)
|
|
139
|
+
- `$HOME/.claude/agents/ios-architect.md` — iOS architecture review (`preferredModel: opus`)
|
|
140
|
+
- `$HOME/.claude/agents/android-architect.md` — Android architecture review (`preferredModel: opus`)
|
|
141
|
+
- `$HOME/.claude/agents/backend-architect.md` — Backend/API architecture review (`preferredModel: opus`)
|
|
142
|
+
- `$HOME/.claude/agents/security-auditor.md` — Security audit (`preferredModel: opus`)
|
|
143
|
+
|
|
144
|
+
**Per-persona model routing:** Before each Agent dispatch, the orchestrator reads `preferredModel` from the persona file and exports `CLAUDE_CODE_SUBAGENT_MODEL` (Claude Code) / passes `--model` (Copilot CLI). Precedence: per-dispatch `PHASE_MODEL_OVERRIDE` > persona `preferredModel` > `opus`. Full contract: `skills/shared/core/multi-agent/SKILL.md#agent-dispatch--per-persona-model-routing-v610`.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## language Command
|
|
149
|
+
|
|
150
|
+
Toggles only `outputLanguage` (`promptLanguage` is locked to `"en"` — see `refs/rules.md` § "Language Application"). Full spec: `pipeline/commands/multi-agent/language.md`.
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## jira Command
|
|
155
|
+
|
|
156
|
+
Delegates to `commands/multi-agent/jira.md` (4-step picker). Read that file, then apply:
|
|
157
|
+
|
|
158
|
+
1. **Pick account** — `_account-picker.md` (`lib/account-resolver.sh --providers jira`)
|
|
159
|
+
2. **Pick projects (multi)** — Jira project list, multi-select
|
|
160
|
+
3. **Pick issue** — aggregate across selected projects, `lib/issue-fetcher.sh` with maturity check
|
|
161
|
+
4. **Maturity check** — halt on blocker, prompt on warning (autopilot auto-continues)
|
|
162
|
+
5. **Dev context** (`_dev-context.md`) — extra repo selection
|
|
163
|
+
6. → Interactive Launcher (branch/mode/autopilot) → Phase 0
|
|
164
|
+
|
|
165
|
+
Steps 1–5 are detailed in `jira.md`; the Interactive Launcher (below) consumes the result.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## issue Command
|
|
170
|
+
|
|
171
|
+
Delegates to `commands/multi-agent/issue.md` (4-step picker). Read that file, then apply:
|
|
172
|
+
|
|
173
|
+
1. **Pick account** — `_account-picker.md` (`--providers github`)
|
|
174
|
+
2. **Pick repos (multi)** — `lib/repo-cache.sh github <owner>`, multi-select
|
|
175
|
+
3. **Pick issue** — aggregate across repos (`gh issue list`), maturity check
|
|
176
|
+
4. **Maturity check** — `lib/issue-fetcher.sh` maturity field; blocker halts, warning prompts
|
|
177
|
+
5. **Dev context** (`_dev-context.md`) — submodule auto-suggest + extra repos
|
|
178
|
+
6. → Interactive Launcher → Phase 0
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Direct-ID Command ({JIRA_KEY}-N, gh URL, repo#N, free-text)
|
|
183
|
+
|
|
184
|
+
When the user supplies an ID/URL/free-text:
|
|
185
|
+
|
|
186
|
+
1. **Detect type** — per `_input-parser.md`
|
|
187
|
+
2. **Pick account** — always asked (autopilot picks default)
|
|
188
|
+
3. **Fetch issue** — `lib/issue-fetcher.sh "$INPUT"` (Jira/GitHub fetch + maturity)
|
|
189
|
+
4. **Repo picker** — only for `gh-num` (e.g. `316`) when repo is ambiguous, multi-select
|
|
190
|
+
5. **Maturity check** — blocker halts (autopilot too), warning prompt/log
|
|
191
|
+
6. **Dev context** — always runs, empty submit allowed
|
|
192
|
+
7. → Interactive Launcher → Phase 0
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Interactive Launcher (shared by `jira` and `issue`)
|
|
197
|
+
|
|
198
|
+
After the user selects an issue from either `jira` or `issue` command:
|
|
199
|
+
|
|
200
|
+
### Step 1 — Branch Selection
|
|
201
|
+
Same as Phase 0 Step 3: fetch remote branches, sort (develop* first → release/* → main/master), present with Recent suggestion from prefs:
|
|
202
|
+
```
|
|
203
|
+
Base branch:
|
|
204
|
+
Recent: → develop (enter to reuse)
|
|
205
|
+
────────────────────
|
|
206
|
+
1. origin/develop
|
|
207
|
+
2. origin/main
|
|
208
|
+
...
|
|
209
|
+
Select [number] or enter for suggested:
|
|
210
|
+
```
|
|
211
|
+
Save to `prefs.projects[{project}].branches`.
|
|
212
|
+
|
|
213
|
+
### Step 2 — Mode Selection
|
|
214
|
+
```
|
|
215
|
+
Pipeline mode:
|
|
216
|
+
1. Full pipeline (8 phases, Sonnet dev, parallel review + triage — CLI-aware reviewer set)
|
|
217
|
+
2. --dev (fast: Init → Dev(Opus) → Commit → Report)
|
|
218
|
+
Select [1/2]:
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### Step 3 — Autopilot
|
|
222
|
+
```
|
|
223
|
+
Enable autopilot? (skip confirmations, auto commit/PR)
|
|
224
|
+
1. Yes
|
|
225
|
+
2. No
|
|
226
|
+
Select [1/2]:
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Step 4 — Launch
|
|
230
|
+
Compose the final command arguments and start the pipeline:
|
|
231
|
+
- `jira` source → input type is `jira-id` (e.g. `PROJ-1234`)
|
|
232
|
+
- `issue` source → input type is `github-issue-url` (e.g. `https://github.com/org/repo/issues/610`)
|
|
233
|
+
|
|
234
|
+
Pass selected base branch + mode flags. The pipeline enters Phase 0 Step 1 with the issue already fetched — skip redundant API calls.
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Review Mode
|
|
239
|
+
|
|
240
|
+
When called with `review`:
|
|
241
|
+
1. Detect current branch and project from cwd (or ask)
|
|
242
|
+
2. Get diff: `git diff HEAD` (unstaged + staged)
|
|
243
|
+
3. If no diff, get diff against base branch: `git diff origin/{baseBranch}...HEAD`
|
|
244
|
+
4. Launch Phase 4 review (parallel + Opus triage — 2-model on Claude Code, 3-model on Copilot CLI) on the diff
|
|
245
|
+
5. No worktree, no state file — lightweight one-shot review
|
|
246
|
+
6. Print findings to terminal
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## Rules
|
|
251
|
+
|
|
252
|
+
**Non-negotiable rules that apply to every phase, every mode.** Full reference at `$HOME/.claude/commands/multi-agent/refs/rules.md` — read before any invocation that writes code, commits, or posts to external systems.
|
|
253
|
+
|
|
254
|
+
Quick pointers:
|
|
255
|
+
- No "Copilot/AI/generated by" attribution. Ever.
|
|
256
|
+
- No commit without build + review pass.
|
|
257
|
+
- Real newlines in external outputs (heredoc + `jq --rawfile` + `curl --data-binary`).
|
|
258
|
+
- No HTML entities (`&`, `<`, `"`) in titles, commits, or bodies.
|
|
259
|
+
- Every Bitbucket PUT ships `reviewers` + `fromRef` + `toRef` + `draft` (missing fields wipe defaults).
|
|
260
|
+
- Commit format: `{type}({scope}): description [{jiraId}|#{shortId}]`.
|
|
261
|
+
- Branch: `feature/` or `bugfix/` prefix.
|
|
262
|
+
- 3-iteration hard kill on any retry loop.
|
|
263
|
+
|
|
264
|
+
Load `refs/rules.md` for the full contract (Swift-specific rules, reviewer policy, secret scan, subagent contract).
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Status Display
|
|
269
|
+
|
|
270
|
+
Scan global log path `$HOME/.claude/logs/multi-agent/` for `agent-state.json` files across all projects:
|
|
271
|
+
|
|
272
|
+
```
|
|
273
|
+
Multi-Agent Tasks
|
|
274
|
+
|
|
275
|
+
| ID | Project | Task | Branch | Phase | Status | Duration |
|
|
276
|
+
|----|---------|------|--------|-------|--------|----------|
|
|
277
|
+
| #1 | my-app | PROJ-12345 | feature/PROJ-12345-... | 3/7 Dev | in progress | 4m |
|
|
278
|
+
| #2 | other-app | GH42 | feature/GH42-dark-mode | 6/7 Commit | complete | 12m |
|
|
279
|
+
|
|
280
|
+
Commands: kill #N | log #N | resume #N
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## Global Paths
|
|
286
|
+
|
|
287
|
+
| Purpose | Path |
|
|
288
|
+
|---------|------|
|
|
289
|
+
| Logs & state | `$HOME/.claude/logs/multi-agent/{project}/{task-id}/` |
|
|
290
|
+
| Knowledge base | `$HOME/.claude/knowledge/{project-name}/` |
|
|
291
|
+
| Helper scripts | `$HOME/.claude/scripts/` |
|
|
292
|
+
| Sub-command files | `$HOME/.claude/commands/multi-agent/` |
|
|
293
|
+
| Agent definitions | `$HOME/.claude/agents/` |
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Deep security audit on iOS project code
|
|
3
|
+
allowed-tools: Read, Glob, Grep, Agent, Bash(git:*), Bash(grep:*)
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Alias for Phase 4 Reviewer 1 (Opus + security-auditor agent). Invocation: `/multi-agent:review` then select security focus; or invoke directly via Agent tool with subagent_type=security-auditor.
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Mobile UI Bug Hunter — iOS Simulator (simctl) + Android Emulator (adb) — auto-detects platform"
|
|
3
|
+
allowed-tools: Agent, Bash, Read, Write, Edit, TaskCreate, TaskUpdate, TaskList, TaskGet, mcp__dev_toolkit__ios_list_devices, mcp__dev_toolkit__ios_boot_device, mcp__dev_toolkit__ios_screenshot, mcp__dev_toolkit__ios_tap, mcp__dev_toolkit__ios_swipe, mcp__dev_toolkit__ios_type_text, mcp__dev_toolkit__ios_launch_app, mcp__dev_toolkit__ios_terminate_app, mcp__dev_toolkit__ios_list_apps, mcp__dev_toolkit__ios_go_home, mcp__dev_toolkit__ios_set_appearance, mcp__dev_toolkit__ios_set_content_size, mcp__dev_toolkit__ios_set_locale, mcp__dev_toolkit__ios_open_url, mcp__dev_toolkit__ios_status_bar, mcp__dev_toolkit__ios_push_notification, mcp__dev_toolkit__ios_grant_permission, mcp__dev_toolkit__ios_revoke_permission, mcp__dev_toolkit__ios_reset_permissions, mcp__dev_toolkit__ios_set_location, mcp__dev_toolkit__ios_clear_location, mcp__dev_toolkit__ios_set_increase_contrast, mcp__dev_toolkit__ios_record_video, mcp__dev_toolkit__ios_add_media, mcp__dev_toolkit__ios_keychain_reset, mcp__dev_toolkit__ios_get_app_container, mcp__dev_toolkit__ios_erase_device, mcp__dev_toolkit__ios_get_ui_tree, mcp__dev_toolkit__android_list_devices, mcp__dev_toolkit__android_screenshot, mcp__dev_toolkit__android_tap, mcp__dev_toolkit__android_swipe, mcp__dev_toolkit__android_type_text, mcp__dev_toolkit__android_key_event, mcp__dev_toolkit__android_launch_app, mcp__dev_toolkit__android_stop_app, mcp__dev_toolkit__android_list_packages, mcp__dev_toolkit__android_go_home, mcp__dev_toolkit__android_go_back, mcp__dev_toolkit__android_get_ui_tree, mcp__dev_toolkit__android_set_dark_mode, mcp__dev_toolkit__android_set_font_scale, mcp__dev_toolkit__android_set_locale, mcp__dev_toolkit__android_set_location, mcp__dev_toolkit__android_grant_permission, mcp__dev_toolkit__android_revoke_permission, mcp__dev_toolkit__android_record_screen, mcp__dev_toolkit__android_install_apk, mcp__dev_toolkit__android_uninstall_app, mcp__dev_toolkit__android_logcat, mcp__dev_toolkit__android_get_screen_size, mcp__dev_toolkit__android_open_url, mcp__dev_toolkit__android_clear_app_data
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Mobile UI Bug Hunter
|
|
7
|
+
|
|
8
|
+
Auto-detects platform: iOS (simctl) or Android (adb). No external apps needed.
|
|
9
|
+
|
|
10
|
+
- **iOS**: Xcode + Simulator
|
|
11
|
+
- **Android**: Android SDK + Emulator (or physical device via USB)
|
|
12
|
+
|
|
13
|
+
> **Note**: Tool names above assume MCP server is registered as `dev-toolkit`. If you used a different name in your settings.json, update the `allowed-tools` list accordingly.
|
|
14
|
+
|
|
15
|
+
## Platform Detection
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
1. Check cwd for .xcodeproj / Package.swift -> iOS
|
|
19
|
+
2. Check cwd for build.gradle / build.gradle.kts -> Android
|
|
20
|
+
3. Check running devices: simctl list booted / adb devices
|
|
21
|
+
4. If both available -> ask user which platform
|
|
22
|
+
5. If argument contains "android" or "ios" -> use that
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
For iOS: use `mcp__dev_toolkit__ios_*` tools
|
|
26
|
+
For Android: use `mcp__dev_toolkit__android_*` tools
|
|
27
|
+
|
|
28
|
+
**Android extras**: `get_ui_tree` returns XML with bounds/text/resource-id (uiautomator dump), `logcat` for crash detection, `go_back` button.
|
|
29
|
+
|
|
30
|
+
## Activation
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
/multi-agent test -> full app test
|
|
34
|
+
/multi-agent test "dark mode" -> dark mode bug test
|
|
35
|
+
/multi-agent test "accessibility" -> accessibility audit (visual + MCP audit tool)
|
|
36
|
+
/multi-agent test "dynamic type" -> large text test
|
|
37
|
+
/multi-agent test "screenshot tr" -> locale screenshots
|
|
38
|
+
/multi-agent test "store-ready" -> full audit: visual + accessibility + archive/APK compliance
|
|
39
|
+
/multi-agent test "biometric" -> Face ID / Touch ID flow test
|
|
40
|
+
/multi-agent test "performance" -> launch time + scroll performance
|
|
41
|
+
/sim-test -> standalone (same thing)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Flow
|
|
45
|
+
|
|
46
|
+
### Step 1 — Device & App Discovery
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
Call: ios_list_devices (or android_list_devices)
|
|
50
|
+
-> If no booted simulator: ask user which to boot, call ios_boot_device
|
|
51
|
+
-> If booted: auto-select
|
|
52
|
+
|
|
53
|
+
Call: ios_list_apps
|
|
54
|
+
-> Auto-detect bundle_id from cwd project (xcodebuild -showBuildSettings | PRODUCT_BUNDLE_IDENTIFIER)
|
|
55
|
+
-> Or ask user to pick from installed apps
|
|
56
|
+
|
|
57
|
+
Call: ios_launch_app (bundle_id)
|
|
58
|
+
-> Wait 2 seconds for app to load
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Step 2 — Clean Status Bar (for screenshots)
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
Call: ios_status_bar (time: "09:41", battery_level: 100)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Step 3 — Systematic Screen Exploration
|
|
68
|
+
|
|
69
|
+
For each screen in the app:
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
Call: ios_screenshot
|
|
73
|
+
-> Claude analyzes the image for bugs (see Bug Detection below)
|
|
74
|
+
|
|
75
|
+
Call: ios_tap (on each tab bar item, button, navigation link)
|
|
76
|
+
-> After each tap: ios_screenshot -> analyze
|
|
77
|
+
-> Navigate back: ios_swipe (left edge swipe) or tap back button coordinates
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Navigation strategy:**
|
|
81
|
+
|
|
82
|
+
1. Screenshot initial screen -> identify tab bar (usually bottom ~680-700y area)
|
|
83
|
+
2. Tap each tab position -> screenshot each
|
|
84
|
+
3. On each screen: tap interactive elements -> screenshot results
|
|
85
|
+
4. Scroll: `ios_swipe(200, 600, 200, 200)` to scroll down -> screenshot
|
|
86
|
+
5. Type in text fields: `ios_type_text("test input")`
|
|
87
|
+
|
|
88
|
+
### Step 4 — Variant Testing (based on input argument)
|
|
89
|
+
|
|
90
|
+
**"dark mode":**
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
Call: ios_set_appearance("dark")
|
|
94
|
+
-> Re-navigate all screens, screenshot each
|
|
95
|
+
Call: ios_set_appearance("light") // reset
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**"dynamic type":**
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
Call: ios_set_content_size("extra-extra-extra-large")
|
|
102
|
+
-> Re-navigate, screenshot
|
|
103
|
+
Call: ios_set_content_size("accessibility-extra-large")
|
|
104
|
+
-> Re-navigate, screenshot
|
|
105
|
+
Call: ios_set_content_size("medium") // reset
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**"accessibility":**
|
|
109
|
+
|
|
110
|
+
- Check each screenshot for: small tap targets, missing labels, poor contrast
|
|
111
|
+
- Verify minimum 44x44pt touch areas
|
|
112
|
+
- Check text readability at default + large sizes
|
|
113
|
+
|
|
114
|
+
**"screenshot <lang>":**
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
Call: ios_set_locale(language: "<lang>", bundle_id: "...")
|
|
118
|
+
-> Navigate all screens, screenshot each
|
|
119
|
+
-> Great for App Store screenshot generation
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**"store-ready":**
|
|
123
|
+
|
|
124
|
+
Runs visual + accessibility pass AND dispatches the platform-matching compliance skill so the build is pre-validated against Apple / Google store requirements before submission.
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
Platform detection:
|
|
128
|
+
cwd contains .xcodeproj OR Package.swift -> iOS
|
|
129
|
+
cwd contains build.gradle OR build.gradle.kts -> Android
|
|
130
|
+
Otherwise -> error: "store-ready needs an iOS or Android project"
|
|
131
|
+
|
|
132
|
+
Step A — run the standard visual + accessibility sweep (light + dark + large text).
|
|
133
|
+
|
|
134
|
+
Step B — dispatch compliance skill:
|
|
135
|
+
iOS:
|
|
136
|
+
Load pipeline/skills/shared/core/apple-archive-compliance/SKILL.md
|
|
137
|
+
Prereq: @mmerterden/dev-toolkit-mcp ≥ v2.4 (provides ios_app_store_audit MCP tool)
|
|
138
|
+
— installable via npm; standalone ArchiveGuard binary deprecated in v8.4.0
|
|
139
|
+
Artifact: pick newest .xcarchive under ~/Library/Developer/Xcode/Archives/**
|
|
140
|
+
OR accept explicit path argument after "store-ready"
|
|
141
|
+
Invoke: mcp__dev_toolkit__ios_app_store_audit({ archive_path: <path>, rules: "all" })
|
|
142
|
+
OR (Node fallback): node -e "import('@mmerterden/dev-toolkit-mcp/tools/ios-app-store-audit/index.js').then(m => m.runAudit({ archivePath: '<path>', rules: 'all' }).then(r => console.log(JSON.stringify(r))))"
|
|
143
|
+
Humanize via --lang en (promptLanguage is locked to "en"; pass --lang=tr explicitly to opt into Turkish)
|
|
144
|
+
Android:
|
|
145
|
+
Load pipeline/skills/shared/core/google-play-compliance/SKILL.md
|
|
146
|
+
Prereq: bundletool, aapt2, apksigner in PATH (Android SDK build-tools)
|
|
147
|
+
Artifact: newest .aab under **/build/outputs/bundle/**/*.aab
|
|
148
|
+
OR explicit path argument
|
|
149
|
+
Invoke: bundletool validate + dump manifest, aapt2 dump badging,
|
|
150
|
+
apksigner verify, ABI/native scan
|
|
151
|
+
Merge findings with UI-hunter findings -> single report, severity-grouped.
|
|
152
|
+
|
|
153
|
+
Step C — humanize via `--lang en` by default (promptLanguage is locked to "en"; pass --lang=tr explicitly to opt into Turkish), group by severity
|
|
154
|
+
(error = blocker, warning = risk, info = hygiene), link each finding to the
|
|
155
|
+
Apple ITMS / Play policy reference supplied by the skill catalog.
|
|
156
|
+
|
|
157
|
+
Step D — offer `/multi-agent:channels` follow-up so findings can land in
|
|
158
|
+
Jira / Confluence / Wiki / PR body via the normal Phase 7 machinery.
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
**No argument (full test):**
|
|
162
|
+
|
|
163
|
+
- Run light mode -> all screens
|
|
164
|
+
- Run dark mode -> all screens
|
|
165
|
+
- Run large text -> all screens
|
|
166
|
+
- Compile complete report
|
|
167
|
+
|
|
168
|
+
### Step 5 — Bug Detection (on EVERY screenshot)
|
|
169
|
+
|
|
170
|
+
When analyzing each screenshot, check for:
|
|
171
|
+
|
|
172
|
+
| Category | What to Look For |
|
|
173
|
+
| ---------------- | ------------------------------------------------------------------------------------ |
|
|
174
|
+
| **Layout** | Overlapping elements, truncated text, off-screen content, broken alignment |
|
|
175
|
+
| **Visual** | Wrong colors, missing images, placeholder text ("Lorem ipsum"), inconsistent spacing |
|
|
176
|
+
| **Dark Mode** | Text invisible on dark background, hardcoded white/black, wrong tint colors |
|
|
177
|
+
| **Typography** | Text overflow at large sizes, unreadable small text, line height issues |
|
|
178
|
+
| **Navigation** | Missing back button, dead-end screens, broken tab bar |
|
|
179
|
+
| **State** | Empty state without message, loading spinner stuck, error state visible |
|
|
180
|
+
| **Localization** | Untranslated strings, text clipping in long translations |
|
|
181
|
+
| **Interaction** | Button didn't respond (before/after screenshots identical after tap) |
|
|
182
|
+
|
|
183
|
+
### Step 6 — Report
|
|
184
|
+
|
|
185
|
+
Create tasks for each bug found:
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
TaskCreate("BUG: [severity] title", "Screen: X, Category: Y, Steps: ...", activeForm: "Found bug...")
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
Then output full report:
|
|
192
|
+
|
|
193
|
+
```markdown
|
|
194
|
+
# Simulator UI Test Report
|
|
195
|
+
|
|
196
|
+
**App**: {bundle_id}
|
|
197
|
+
**Device**: {device_name} (iOS {version})
|
|
198
|
+
**Date**: {timestamp}
|
|
199
|
+
**Mode**: {full / dark mode / accessibility / screenshot}
|
|
200
|
+
|
|
201
|
+
## Bugs Found ({N} total)
|
|
202
|
+
|
|
203
|
+
### BUG-1: [{Critical/Major/Minor}] {title}
|
|
204
|
+
|
|
205
|
+
- **Screen**: {which screen}
|
|
206
|
+
- **Category**: Layout / Dark Mode / Typography / Navigation
|
|
207
|
+
- **Steps**: 1. Open app -> 2. Tap {X} -> 3. Observe {issue}
|
|
208
|
+
- **Expected**: {correct behavior}
|
|
209
|
+
- **Actual**: {what's wrong}
|
|
210
|
+
|
|
211
|
+
### BUG-2: ...
|
|
212
|
+
|
|
213
|
+
## Screens Visited ({N})
|
|
214
|
+
|
|
215
|
+
| # | Screen | Light | Dark | Large Text | Bugs |
|
|
216
|
+
| --- | -------- | ----- | ----- | ---------- | ---- |
|
|
217
|
+
| 1 | Home | ok | BUG-1 | ok | 1 |
|
|
218
|
+
| 2 | Login | ok | ok | BUG-2 | 1 |
|
|
219
|
+
| 3 | Settings | ok | ok | ok | 0 |
|
|
220
|
+
|
|
221
|
+
## Summary
|
|
222
|
+
|
|
223
|
+
- Screens tested: {N}
|
|
224
|
+
- Clean: {N}
|
|
225
|
+
- With bugs: {N}
|
|
226
|
+
- Critical: {N} | Major: {N} | Minor: {N}
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
Save to: `$HOME/.claude/logs/sim-test/{bundle_id}/{timestamp}.md`
|
|
230
|
+
|
|
231
|
+
### Step 7 — Fix Offer
|
|
232
|
+
|
|
233
|
+
After report is complete, if bugs were found:
|
|
234
|
+
|
|
235
|
+
```
|
|
236
|
+
{N} bug(s) found. Want me to fix them?
|
|
237
|
+
y -> Create fix tasks, start fixing (reads source code, applies changes)
|
|
238
|
+
n -> Report saved, you can review and fix manually
|
|
239
|
+
pick -> Show bug list, user picks which to fix
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
If user says yes:
|
|
243
|
+
|
|
244
|
+
1. For each bug, locate the relevant View file
|
|
245
|
+
2. Analyze the screenshot + bug description
|
|
246
|
+
3. Apply the fix (color, padding, font, constraint, etc.)
|
|
247
|
+
4. Re-run screenshot on that screen to verify fix
|
|
248
|
+
5. Show before/after comparison
|
|
249
|
+
|
|
250
|
+
### Step 8 — Cleanup
|
|
251
|
+
|
|
252
|
+
```
|
|
253
|
+
Call: ios_set_appearance("light")
|
|
254
|
+
Call: ios_set_content_size("medium")
|
|
255
|
+
Call: ios_status_bar (clear override)
|
|
256
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"stack": {
|
|
3
|
+
"primary": "ios",
|
|
4
|
+
"language": "Swift 6",
|
|
5
|
+
"framework": "SwiftUI"
|
|
6
|
+
},
|
|
7
|
+
"touchedAreas": [
|
|
8
|
+
{
|
|
9
|
+
"path": "Sources/Auth/LoginView.swift",
|
|
10
|
+
"why": "Hardcoded Color.white yerine DesignSystem.Color.Primary.onBackground kullanacak"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"path": "Sources/Auth/LoginViewTests.swift",
|
|
14
|
+
"why": "Dark mode snapshot + ViewInspector contrast assertion eklenecek"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"risks": [
|
|
18
|
+
{
|
|
19
|
+
"risk": "LoginView başka ekran tarafından preview alanı olarak kullanılıyor olabilir — token değişimi preview snapshot'larını kırabilir",
|
|
20
|
+
"severity": "low",
|
|
21
|
+
"mitigation": "Preview varyantlarını snapshot'lar ile koruyarak incremental değiştir"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"summary": "LoginView'de primary button rengi hardcoded Color.white. Token sistemi ile değiştirilip light+dark mode için ayrık snapshot testleri eklenecek. Değişim iki dosya ile sınırlı, regresyon riski düşük."
|
|
25
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"approach": "TDD-first. Önce dark-mode contrast için snapshot + ViewInspector testi yazılır (RED), sonra LoginView'de hardcoded renk token çağrısıyla değiştirilir (GREEN). Refactor: aynı dosyada ikinci hardcoded renk varsa tek geçişte temizlenir.",
|
|
3
|
+
"tasks": [
|
|
4
|
+
{
|
|
5
|
+
"id": "T1",
|
|
6
|
+
"title": "Add failing dark mode snapshot + contrast ViewInspector test",
|
|
7
|
+
"type": "test",
|
|
8
|
+
"files": ["Sources/Auth/LoginViewTests.swift"],
|
|
9
|
+
"dependsOn": [],
|
|
10
|
+
"acceptanceCriteria": [
|
|
11
|
+
"Snapshot test for dark mode renders primary button",
|
|
12
|
+
"ViewInspector asserts foreground color != Color.white when env.colorScheme == .dark"
|
|
13
|
+
]
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"id": "T2",
|
|
17
|
+
"title": "Replace hardcoded Color.white with DesignSystem token",
|
|
18
|
+
"type": "code",
|
|
19
|
+
"files": ["Sources/Auth/LoginView.swift"],
|
|
20
|
+
"dependsOn": ["T1"],
|
|
21
|
+
"acceptanceCriteria": [
|
|
22
|
+
"No Color(red:..., green:..., blue:...) or Color.white remains in LoginView",
|
|
23
|
+
"Primary button uses DesignSystem.Color.Primary.onBackground",
|
|
24
|
+
"All snapshot + inspector tests pass"
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"approved": true,
|
|
29
|
+
"userFeedback": null
|
|
30
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"reviewer": "opus",
|
|
4
|
+
"findings": [
|
|
5
|
+
{
|
|
6
|
+
"severity": "blocking",
|
|
7
|
+
"file": "Sources/Auth/LoginView.swift",
|
|
8
|
+
"line": 42,
|
|
9
|
+
"issue": "Hardcoded .font(.system(size: 14)) kaldı — aynı fix sırasında typography token'ına da bağlanmalı",
|
|
10
|
+
"fix": "Replace with .typographyStyle(.body1) — same pattern as the color token migration"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"approved": false
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"reviewer": "sonnet",
|
|
17
|
+
"findings": [],
|
|
18
|
+
"approved": true
|
|
19
|
+
}
|
|
20
|
+
]
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"accepted": [
|
|
3
|
+
{
|
|
4
|
+
"severity": "blocking",
|
|
5
|
+
"file": "Sources/Auth/LoginView.swift",
|
|
6
|
+
"line": 42,
|
|
7
|
+
"issue": "Hardcoded .font(.system(size: 14)) kaldı — aynı fix sırasında typography token'ına da bağlanmalı",
|
|
8
|
+
"fix": "Replace with .typographyStyle(.body1) — same pattern as the color token migration",
|
|
9
|
+
"reviewer": "opus"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"deferred": [],
|
|
13
|
+
"rejected": [],
|
|
14
|
+
"approved": false
|
|
15
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"focus": "SwiftUI bugfix path — verifies that Phase 4 picks up an in-scope but adjacent blocker (token drift) even when the primary issue is resolved.",
|
|
3
|
+
"exercises": [
|
|
4
|
+
"Phase 1 stack detection (iOS / Swift 6 / SwiftUI)",
|
|
5
|
+
"Phase 2 TDD ordering (test before code)",
|
|
6
|
+
"Phase 4 Reviewer-1 catches adjacent token drift; Reviewer-2 approves base fix",
|
|
7
|
+
"Triage keeps the blocker accepted, no deferrals, not approved"
|
|
8
|
+
],
|
|
9
|
+
"regressionsCaught": [
|
|
10
|
+
"If stack detection drops SwiftUI from the framework field, this fixture fails the analysis schema check",
|
|
11
|
+
"If planning schema drops the 'dependsOn' field, T2 loses its order guarantee",
|
|
12
|
+
"If Phase 4 no longer tolerates Reviewer-1 blocker + Reviewer-2 approval (approved divergence), triage fixture fails"
|
|
13
|
+
]
|
|
14
|
+
}
|