@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,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* multi-agent-pipeline installer entry point.
|
|
3
|
+
*
|
|
4
|
+
* Parses flags, dispatches to per-target installers (Claude / Copilot /
|
|
5
|
+
* adapter modules), prints summary, and fires opt-in telemetry.
|
|
6
|
+
*
|
|
7
|
+
* Behaviour MUST stay byte-equivalent to the pre-v8.0.0 monolithic install.js.
|
|
8
|
+
* The smoke `smoke-install-layout.sh` test compares the produced filesystem
|
|
9
|
+
* tree against a fixture before/after refactor.
|
|
10
|
+
*
|
|
11
|
+
* @module install/index
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import { dirname } from "path";
|
|
15
|
+
import { fileURLToPath } from "url";
|
|
16
|
+
|
|
17
|
+
import { installClaude } from "./claude.mjs";
|
|
18
|
+
import { installCopilot } from "./copilot.mjs";
|
|
19
|
+
import { anyAdapterRequested, installAdapters } from "./_adapters.mjs";
|
|
20
|
+
import { sendInstallTelemetry } from "./_telemetry.mjs";
|
|
21
|
+
|
|
22
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
23
|
+
/** Repository root (one level above install/). */
|
|
24
|
+
const PIPELINE_ROOT = dirname(__dirname);
|
|
25
|
+
const PIPELINE_SRC = `${PIPELINE_ROOT}/pipeline`;
|
|
26
|
+
|
|
27
|
+
/** Tool flags surfaced in CLI help. */
|
|
28
|
+
const TOOL_FLAGS = [
|
|
29
|
+
"--claude",
|
|
30
|
+
"--copilot",
|
|
31
|
+
"--cursor",
|
|
32
|
+
"--copilot-chat",
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @param {string[]} argv
|
|
37
|
+
*/
|
|
38
|
+
export async function runInstall(argv) {
|
|
39
|
+
const HOME = process.env.HOME || process.env.USERPROFILE;
|
|
40
|
+
if (!HOME) {
|
|
41
|
+
console.error(
|
|
42
|
+
"Error: $HOME (or $USERPROFILE on Windows) is not set. Cannot determine installation directory.",
|
|
43
|
+
);
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Parse flags — tolerate both invocation styles:
|
|
48
|
+
// `node install.js --all` (direct, argv[2]="--all")
|
|
49
|
+
// `multi-agent-pipeline install --all` (via bin, argv[2]="install")
|
|
50
|
+
const flags = argv.slice(2).filter((a) => a !== "install");
|
|
51
|
+
|
|
52
|
+
const isExplicitlyTargeted =
|
|
53
|
+
flags.some((f) => TOOL_FLAGS.includes(f)) ||
|
|
54
|
+
flags.includes("--all") ||
|
|
55
|
+
flags.includes("--all-tools");
|
|
56
|
+
|
|
57
|
+
const forClaude =
|
|
58
|
+
flags.includes("--claude") ||
|
|
59
|
+
flags.includes("--all") ||
|
|
60
|
+
flags.includes("--all-tools") ||
|
|
61
|
+
!isExplicitlyTargeted;
|
|
62
|
+
|
|
63
|
+
const forCopilot =
|
|
64
|
+
flags.includes("--copilot") ||
|
|
65
|
+
flags.includes("--all") ||
|
|
66
|
+
flags.includes("--all-tools");
|
|
67
|
+
|
|
68
|
+
const adapterFlags = {
|
|
69
|
+
cursor: flags.includes("--cursor") || flags.includes("--all-tools"),
|
|
70
|
+
copilotChat: flags.includes("--copilot-chat") || flags.includes("--all-tools"),
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const adapterTarget = (() => {
|
|
74
|
+
const raw = flags.find((f) => f.startsWith("--target="));
|
|
75
|
+
return raw ? raw.slice("--target=".length) : process.cwd();
|
|
76
|
+
})();
|
|
77
|
+
|
|
78
|
+
const useSymlinks = flags.includes("--link");
|
|
79
|
+
const indexOnly = flags.includes("--index-only");
|
|
80
|
+
const platformFlag = parsePlatformFlag(flags);
|
|
81
|
+
|
|
82
|
+
const installerCtx = {
|
|
83
|
+
home: HOME,
|
|
84
|
+
pipelineSrc: PIPELINE_SRC,
|
|
85
|
+
indexOnly,
|
|
86
|
+
useSymlinks,
|
|
87
|
+
platformFlag,
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
console.log("");
|
|
91
|
+
console.log(" multi-agent-pipeline installer");
|
|
92
|
+
console.log(" ==============================");
|
|
93
|
+
console.log("");
|
|
94
|
+
|
|
95
|
+
if (forClaude) installClaude(installerCtx);
|
|
96
|
+
if (forCopilot) installCopilot(installerCtx);
|
|
97
|
+
|
|
98
|
+
if (anyAdapterRequested(adapterFlags)) {
|
|
99
|
+
await installAdapters({
|
|
100
|
+
pipelineRoot: PIPELINE_ROOT,
|
|
101
|
+
pipelineSrc: PIPELINE_SRC,
|
|
102
|
+
target: adapterTarget,
|
|
103
|
+
platformFilter: platformFlag,
|
|
104
|
+
flags: adapterFlags,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
printSummary({
|
|
109
|
+
forClaude,
|
|
110
|
+
forCopilot,
|
|
111
|
+
adapterFlags,
|
|
112
|
+
adapterTarget,
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
// Fire-and-forget; install is already done.
|
|
116
|
+
sendInstallTelemetry({ packageRoot: PIPELINE_ROOT, flags });
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* @param {string[]} flags
|
|
121
|
+
* @returns {"ios"|"android"|"all"}
|
|
122
|
+
*/
|
|
123
|
+
function parsePlatformFlag(flags) {
|
|
124
|
+
const raw = flags.find((f) => f.startsWith("--platform="));
|
|
125
|
+
if (!raw) return "all";
|
|
126
|
+
const value = raw.slice("--platform=".length).toLowerCase();
|
|
127
|
+
if (value === "ios" || value === "android" || value === "all") return value;
|
|
128
|
+
console.error(
|
|
129
|
+
` [warn] unrecognized --platform value: "${value}" — falling back to "all". ` +
|
|
130
|
+
`Accepted: ios | android | all.`,
|
|
131
|
+
);
|
|
132
|
+
return "all";
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
function printSummary(opts) {
|
|
136
|
+
const { forClaude, forCopilot, adapterFlags, adapterTarget } = opts;
|
|
137
|
+
|
|
138
|
+
console.log(" Installation complete!");
|
|
139
|
+
console.log("");
|
|
140
|
+
if (forClaude) {
|
|
141
|
+
console.log(" Claude Code:");
|
|
142
|
+
console.log(" /multi-agent setup Configure tokens + git identity");
|
|
143
|
+
console.log(" /multi-agent help Full usage guide");
|
|
144
|
+
console.log(' /multi-agent "MOBILE-123" Start a task');
|
|
145
|
+
console.log(" /multi-agent test UI Bug Hunter (requires dev-toolkit MCP)");
|
|
146
|
+
console.log("");
|
|
147
|
+
}
|
|
148
|
+
if (forCopilot) {
|
|
149
|
+
console.log(" Copilot CLI:");
|
|
150
|
+
console.log(" Pipeline instructions loaded into ~/.copilot/copilot-instructions.md");
|
|
151
|
+
console.log(" Just describe your task — Copilot will follow the pipeline");
|
|
152
|
+
console.log("");
|
|
153
|
+
}
|
|
154
|
+
if (adapterFlags.cursor) {
|
|
155
|
+
console.log(" Cursor:");
|
|
156
|
+
console.log(` Rules emitted to ${adapterTarget}/.cursor/rules/multi-agent-*.mdc`);
|
|
157
|
+
console.log(` Legacy fallback: ${adapterTarget}/.cursorrules`);
|
|
158
|
+
console.log(
|
|
159
|
+
" Note: orchestration commands not portable — use Claude Code or Copilot CLI for the full pipeline",
|
|
160
|
+
);
|
|
161
|
+
console.log("");
|
|
162
|
+
}
|
|
163
|
+
if (adapterFlags.copilotChat) {
|
|
164
|
+
console.log(" GitHub Copilot Chat:");
|
|
165
|
+
console.log(` Main: ${adapterTarget}/.github/copilot-instructions.md (marker-wrapped)`);
|
|
166
|
+
console.log(
|
|
167
|
+
` Per-skill: ${adapterTarget}/.github/instructions/multi-agent-*.instructions.md`,
|
|
168
|
+
);
|
|
169
|
+
console.log(" Note: knowledge layer only — Copilot Chat has no subagent dispatch");
|
|
170
|
+
console.log("");
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
console.log(" For UI testing, also install the mobile MCP server:");
|
|
174
|
+
console.log(" Add to your MCP config: npx @mmerterden/dev-toolkit-mcp");
|
|
175
|
+
console.log("");
|
|
176
|
+
console.log(" Uninstall everything: npx @mmerterden/multi-agent-pipeline uninstall");
|
|
177
|
+
console.log(" (Personal access tokens in keychain are preserved.)");
|
|
178
|
+
console.log("");
|
|
179
|
+
}
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
# Multi-Agent Development Pipeline
|
|
2
|
+
|
|
3
|
+
> Installed from @mmerterden/multi-agent-pipeline
|
|
4
|
+
> Full docs: https://github.com/mmerterden/multi-agent-pipeline
|
|
5
|
+
> Pipeline specs: ~/.copilot/skills/multi-agent/ · Scripts: ~/.copilot/scripts/
|
|
6
|
+
|
|
7
|
+
## Pipeline Overview
|
|
8
|
+
|
|
9
|
+
8-phase development workflow (Phase 0 through Phase 7). Describe your task and follow the phases:
|
|
10
|
+
|
|
11
|
+
0. **Init** — Project setup, worktree, branch creation, identity binding
|
|
12
|
+
1. **Analysis** — Stack detection, codebase exploration
|
|
13
|
+
2. **Planning** — Task decomposition, architecture review, user approval
|
|
14
|
+
3. **Dev** — TDD cycle: test -> code -> build
|
|
15
|
+
4. **Review** — Deterministic gates + CLI-aware parallel review + Opus triage.
|
|
16
|
+
Copilot CLI dispatches **3 reviewers in parallel**: GPT-5.4 (edge cases +
|
|
17
|
+
cross-provider diversity) + Opus (security + architecture) + Sonnet (quality +
|
|
18
|
+
correctness). Findings flow into an Opus triage pass that filters false-positives
|
|
19
|
+
and out-of-scope items before looping back to Phase 3. Claude Code drops GPT-5.4
|
|
20
|
+
(not natively reachable there) and runs a 2-model set — this is the only
|
|
21
|
+
intentional cross-CLI asymmetry for Phase 4.
|
|
22
|
+
5. **Test** — Optional manual testing + on-demand device audits
|
|
23
|
+
6. **Commit** — Secret scan · commit · push · PR creation
|
|
24
|
+
7. **Report** — Jira comment · Wiki + Figma screenshots · Confluence · log · knowledge + memory
|
|
25
|
+
|
|
26
|
+
## Modes
|
|
27
|
+
|
|
28
|
+
- **Normal**: Full 8 phases with code review + Plan Approval Gate
|
|
29
|
+
- **Fast (multi-agent-dev)**: Init -> Dev(Opus) -> Commit -> Report
|
|
30
|
+
- **Autopilot (multi-agent-autopilot)**: Skip confirmations, auto commit/PR
|
|
31
|
+
- **Fastest (multi-agent-dev-autopilot)**: Combine dev + autopilot
|
|
32
|
+
- **Local (multi-agent-local)**: Full 8 phases on current branch — no worktree
|
|
33
|
+
- **Fast + Local (multi-agent-dev-local)**: Dev on current branch — no worktree
|
|
34
|
+
- **Fastest + Local (multi-agent-dev-local-autopilot)**: Dev + autopilot, no worktree
|
|
35
|
+
|
|
36
|
+
## Prompt Language (en/tr)
|
|
37
|
+
|
|
38
|
+
The pipeline honors `prefs.global.promptLanguage` (set via `/multi-agent:setup` or
|
|
39
|
+
`/multi-agent:language en|tr`). This controls the language of **interactive prompts
|
|
40
|
+
only** — e.g. the Phase 6 pre-commit local-checkout test prompt, Plan Approval Gate
|
|
41
|
+
questions, multi-repo branch picker labels, and phase-banner.sh banners (when
|
|
42
|
+
PHASE_LANG env is unset, it auto-reads prefs).
|
|
43
|
+
|
|
44
|
+
Default: `en`. Supported: `en`, `tr`. Commit messages, PR bodies, Jira comments,
|
|
45
|
+
and any external-facing payload **always stay in English** regardless of this
|
|
46
|
+
setting — only the user-facing prompts change.
|
|
47
|
+
|
|
48
|
+
When writing TR prompts, use the same keyword/menu numbers as EN (e.g. `[1-4]`)
|
|
49
|
+
so the user's input pattern stays language-agnostic.
|
|
50
|
+
|
|
51
|
+
## Sub-Agent Personas
|
|
52
|
+
|
|
53
|
+
Phase 1 (Analysis) and Phase 4 (Review) dispatch sub-agents for parallel exploration
|
|
54
|
+
and review. The persona prompts live at `~/.copilot/agents/*.md` — installed by the
|
|
55
|
+
pipeline installer alongside the Claude Code equivalents at `~/.claude/agents/`.
|
|
56
|
+
|
|
57
|
+
| Agent | File | Used in |
|
|
58
|
+
|-------|------|---------|
|
|
59
|
+
| Explorer | `~/.copilot/agents/explorer.md` | Phase 1 codebase scan (parallel dispatch) |
|
|
60
|
+
| Code Reviewer | `~/.copilot/agents/code-reviewer.md` | Phase 4 quality/correctness reviewer |
|
|
61
|
+
| iOS Architect | `~/.copilot/agents/ios-architect.md` | Phase 4 iOS architecture review |
|
|
62
|
+
| Android Architect | `~/.copilot/agents/android-architect.md` | Phase 4 Android architecture review |
|
|
63
|
+
| Backend Architect | `~/.copilot/agents/backend-architect.md` | Phase 4 API/backend review |
|
|
64
|
+
| Security Auditor | `~/.copilot/agents/security-auditor.md` | Phase 4 security audit (OWASP-based) |
|
|
65
|
+
|
|
66
|
+
Load the matching persona file before dispatching each reviewer — the prompt defines
|
|
67
|
+
the model's focus area, severity rubric, and output format the triage pass expects.
|
|
68
|
+
|
|
69
|
+
## Phase 0 — Interactive Steps (MANDATORY)
|
|
70
|
+
|
|
71
|
+
The orchestrator skill (`multi-agent/SKILL.md`) shows a condensed Phase 0 for brevity,
|
|
72
|
+
but the actual contract is **8 interactive steps** from `refs/phases/phase-0-init.md`.
|
|
73
|
+
Copilot CLI has no slash-command infrastructure to auto-route through the full ref file,
|
|
74
|
+
so execute ALL of these explicitly before touching code:
|
|
75
|
+
|
|
76
|
+
1. **Bootstrap tracker** — `bash ~/.copilot/scripts/phase-tracker.sh init 8` (once, before Step 0)
|
|
77
|
+
2. **Load prefs** — read `~/.claude/multi-agent-preferences.json`; warn + stop if setup never ran
|
|
78
|
+
3. **Parse input** — classify (Jira ID, GitHub URL, free-text) + fetch issue via `gh` / Jira API
|
|
79
|
+
4. **Select project(s) — single OR multi-repo** — scan `$HOME`, present numbered list,
|
|
80
|
+
honor `global.recentProjects`. Picker accepts space-separated numbers (`1 3 4`) for
|
|
81
|
+
multi-select. Surface `global.recentGroups` at top of list. Component/refactor tasks
|
|
82
|
+
commonly span repos (component repo + consumer app). **Never auto-pick one repo when
|
|
83
|
+
the task could touch more than one** — ask user to confirm single vs multi.
|
|
84
|
+
5. **Pick base branch — PER REPO** — REQUIRED INTERACTIVE STEP. Single repo: run
|
|
85
|
+
`git ls-remote --heads origin` on that repo, present sorted list (develop* / release/*
|
|
86
|
+
/ main/master first), suggest top of `global.recentBranches[{projectKey}]`.
|
|
87
|
+
**Multiple repos selected: fire the branch picker SEPARATELY for each repo** —
|
|
88
|
+
per phase-0-init.md the prompt fires per-repo, because different repos often have
|
|
89
|
+
different base branches (e.g. component repo on `iteration/develop`, consumer app on
|
|
90
|
+
`develop`). Skip the picker ONLY if user's input explicitly specified a branch.
|
|
91
|
+
6. **Branch name confirm** — `feature/PROJ-{id}-{kebab}` or `bugfix/...`. In multi-repo
|
|
92
|
+
mode, branch name is shared across all selected repos (collision check per-repo;
|
|
93
|
+
any collision applies the suffix to all, keeping cross-repo uniformity).
|
|
94
|
+
7. **Git identity — per repo** — route via `prefs.global.platformIdentityRouting`;
|
|
95
|
+
resolves independently for each repo in multi-repo mode.
|
|
96
|
+
8. **Workspace creation — serially per repo** — detect `.instructions/figma/` etc.;
|
|
97
|
+
in multi-repo mode loop worktree creation per repo serially; any failure rolls back
|
|
98
|
+
previously-created worktrees (no partial state). Write `agent-state.json` with
|
|
99
|
+
`state.projects[]` array; scalar `project`/`projectRoot`/`branch` mirror `projects[0]`
|
|
100
|
+
for back-compat with single-repo phases.
|
|
101
|
+
|
|
102
|
+
Full contract (recents schema, token resolution order, GitHub-issue → Jira auto-create policy):
|
|
103
|
+
https://github.com/mmerterden/multi-agent-pipeline/blob/main/pipeline/commands/multi-agent/refs/phases/phase-0-init.md
|
|
104
|
+
or, on machines with Claude Code also installed:
|
|
105
|
+
`~/.claude/commands/multi-agent/refs/phases/phase-0-init.md`
|
|
106
|
+
|
|
107
|
+
## Progress Tracking — MANDATORY
|
|
108
|
+
|
|
109
|
+
Every phase boundary MUST call the cross-CLI tracker. The tracker is the single source of truth
|
|
110
|
+
for user-visible phase progress on Copilot CLI (no TaskCreate native UI here). Banner is optional flair.
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# Bootstrap once at Phase 0 start — initialize all 8 phase tiles:
|
|
114
|
+
bash ~/.copilot/scripts/phase-tracker.sh init "$TASK_ID"
|
|
115
|
+
for p in 0:Init 1:Analysis 2:Planning 3:Dev 4:Review 5:Test 6:Commit 7:Report; do
|
|
116
|
+
bash ~/.copilot/scripts/phase-tracker.sh add "${p%%:*}" "${p#*:}"
|
|
117
|
+
done
|
|
118
|
+
|
|
119
|
+
# At each phase boundary — update status. Tracker stamps started_at on first
|
|
120
|
+
# transition to in_progress, completed_at on terminal status (completed/failed/skipped).
|
|
121
|
+
# Render now shows a 16-char ASCII progress bar + elapsed time + per-phase token
|
|
122
|
+
# usage + Total footer (v5.5.0):
|
|
123
|
+
# Phase 3: Dev ████████████████ 2m 35s · 18.7k tok
|
|
124
|
+
# Total 34.8k tok
|
|
125
|
+
bash ~/.copilot/scripts/phase-tracker.sh update <N> in_progress
|
|
126
|
+
bash ~/.copilot/scripts/phase-tracker.sh update <N> completed # or failed / skipped
|
|
127
|
+
|
|
128
|
+
# After every LLM dispatch, record its token cost against the active phase (v5.5.0):
|
|
129
|
+
bash ~/.copilot/scripts/phase-tracker.sh tokens <N> <input_tokens> <output_tokens>
|
|
130
|
+
|
|
131
|
+
# v8.3+ — single-call-site token forwarder (preferred). Mirrors tokens_in/out/model
|
|
132
|
+
# into both metrics.jsonl AND the phase tracker, so the agent-log Cost Breakdown
|
|
133
|
+
# stays in sync without two calls. Best-effort.
|
|
134
|
+
LOG_METRIC_FORWARD_TO_TRACKER=1 bash ~/.copilot/scripts/log-metric.sh "$TASK_ID" <N> <event> \
|
|
135
|
+
model=<opus|sonnet|haiku|gpt-5.4> tokens_in=$IN tokens_out=$OUT duration_ms=$DUR
|
|
136
|
+
|
|
137
|
+
# v8.3+ — phase model tag (used by render-agent-log-cost.sh):
|
|
138
|
+
bash ~/.copilot/scripts/phase-tracker.sh model <N> <opus|sonnet|haiku|gpt-5.4>
|
|
139
|
+
|
|
140
|
+
# Phase 7 sub-step enforcement (v5.4.1) — register all 5 steps up front so
|
|
141
|
+
# wiki/confluence skips are VISIBLE, not silent. User reported prior silent-skip
|
|
142
|
+
# behaviour losing visibility of component wiki generation:
|
|
143
|
+
bash ~/.copilot/scripts/phase-tracker.sh update 7 in_progress
|
|
144
|
+
for s in 1:Jira-Comment 2:Wiki+Figma 3:Confluence 4:Log+Telemetry 5:Knowledge+Memory; do
|
|
145
|
+
bash ~/.copilot/scripts/phase-tracker.sh sub 7 "${s%%:*}" "${s#*:}" pending
|
|
146
|
+
done
|
|
147
|
+
|
|
148
|
+
# Optional single-event banner for extra emphasis (phase 0–7, `end` status: done|failed|skipped):
|
|
149
|
+
bash ~/.copilot/scripts/phase-banner.sh start <N> "<name>" "<one-line detail>"
|
|
150
|
+
bash ~/.copilot/scripts/phase-banner.sh end <N> done "<name>" "<short result>"
|
|
151
|
+
bash ~/.copilot/scripts/phase-banner.sh sub <N> <subN> "<sub>" "<detail>"
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Progress-line contract (in-phase action lines, flushed immediately, 4-space indent):
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
→ fetching Jira issue ABC-12345
|
|
158
|
+
→ running xcodebuild -scheme Components
|
|
159
|
+
→ committing squashed WIP to bugfix/ABC-12345
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## v8.3+ Quality & Cost Layer (advisory, Cross-CLI parity)
|
|
163
|
+
|
|
164
|
+
Four orthogonal advisory steps, all on by default, all opt-out via `~/.claude/multi-agent-preferences.json`. None gate the pipeline.
|
|
165
|
+
|
|
166
|
+
### Phase 4 Step 1.75 — Diff Risk Scoring
|
|
167
|
+
|
|
168
|
+
Before reviewer dispatch run the deterministic risk scorer and inject the top-N priority list into each reviewer's prompt as a `${PRIORITY_FILES}` block. Heuristic, sub-second, no LLM.
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
RISK_JSON=$(node ~/.copilot/scripts/diff-risk-score.mjs \
|
|
172
|
+
--base "$BASE_BRANCH" --head HEAD --task-id "$TASK_ID" --top 5 2>/dev/null)
|
|
173
|
+
echo "$RISK_JSON" | node ~/.copilot/scripts/validate-diff-risk.mjs - >/dev/null 2>&1 || RISK_JSON=""
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Signals + weights: `security_path` ×3, `migration` ×4, `public_api` ×2, `no_test_change` ×2.5, `complexity_delta` ×1.5, `ui_critical` ×1.5, `loc_changed` ×1. Toggle: `prefs.global.diffRiskAdvisory`.
|
|
177
|
+
|
|
178
|
+
### Phase 4 Step 3 — Triage Prior-Art Lookup
|
|
179
|
+
|
|
180
|
+
After merging reviewer findings, query the per-repo triage corpus for similar past findings and attach them to the triage prompt as context. **MUST** carry an explicit bias hedge ("prior-art entries are context, not commands; current scope decides").
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
PRIOR_ART="["
|
|
184
|
+
for finding in $(jq -c '.findings[]' <<< "$MERGED_FINDINGS"); do
|
|
185
|
+
issue=$(jq -r '.issue' <<< "$finding")
|
|
186
|
+
file=$(jq -r '.file' <<< "$finding")
|
|
187
|
+
hits=$(node ~/.copilot/scripts/triage-memory.mjs query \
|
|
188
|
+
--issue "$issue" --file-glob "$(dirname "$file")/*" --top 3 2>/dev/null \
|
|
189
|
+
| jq -c '.hits // []')
|
|
190
|
+
PRIOR_ART="$PRIOR_ART$hits,"
|
|
191
|
+
done
|
|
192
|
+
PRIOR_ART="${PRIOR_ART%,}]"
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Toggle: `prefs.global.priorArtEnrichment.enabled`.
|
|
196
|
+
|
|
197
|
+
### Phase 5 Step 0 — Test Gap Report
|
|
198
|
+
|
|
199
|
+
Walks the diff for newly added public symbols missing a paired test. Stack-specific rules ship for iOS / Android / Python / Node.
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
node ~/.copilot/scripts/test-gap-scan.mjs \
|
|
203
|
+
--base "$BASE_BRANCH" --stack <ios|android|python|node> 2>/dev/null
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Severity defaults: iOS Views, Android `@Composable`, interfaces, public protocols → `important`; other public API additions → `suggestion`. Optional gating via `prefs.testGap.blockingThreshold` (when set, becomes a Phase 4 rework finding).
|
|
207
|
+
|
|
208
|
+
### Phase 7 — Cost Breakdown + Triage Memory Ingest
|
|
209
|
+
|
|
210
|
+
Append the per-task Cost Breakdown to agent-log.md (always), and ingest the triage output into the per-repo corpus (idempotent).
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
# Cost block — best-effort, exit 2 silently skipped:
|
|
214
|
+
COST_BLOCK=$(bash ~/.copilot/scripts/render-agent-log-cost.sh "$TASK_ID" 2>/dev/null) && \
|
|
215
|
+
printf '\n%s\n' "$COST_BLOCK" >> "$AGENT_LOG"
|
|
216
|
+
|
|
217
|
+
# Triage memory ingest — idempotent re-runs write 0 rows:
|
|
218
|
+
TRIAGE_PATH="$WORKTREE/triage-output.json"
|
|
219
|
+
if [ -f "$TRIAGE_PATH" ]; then
|
|
220
|
+
node ~/.copilot/scripts/triage-memory.mjs ingest \
|
|
221
|
+
--triage "$TRIAGE_PATH" \
|
|
222
|
+
--task-id "$TASK_ID" \
|
|
223
|
+
--task-title "$TASK_TITLE" \
|
|
224
|
+
--stack "$DETECTED_STACK" >/dev/null 2>&1 || true
|
|
225
|
+
fi
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Cost block reads `phase-tracker.sh tokens` accumulators × `cost-table.json` prices. Independent of `reportContent.costSummary` (PR/Jira channel toggle).
|
|
229
|
+
|
|
230
|
+
### Semantic search
|
|
231
|
+
|
|
232
|
+
`/multi-agent:search "<text>" --semantic` (Claude Code) / `multi-agent-search "<text>" --semantic` (Copilot CLI) routes the query to the per-repo triage corpus instead of agent-log grep. Token-overlap recall, zero deps.
|
|
233
|
+
|
|
234
|
+
## Rules
|
|
235
|
+
|
|
236
|
+
- Never put "Copilot", "AI", "generated by" in code or commits
|
|
237
|
+
- Never commit without passing build
|
|
238
|
+
- Never auto-close issues (use Ref: not Closes:)
|
|
239
|
+
- Follow existing code style and conventions
|
|
240
|
+
- Every public method must have tests
|
|
241
|
+
- Commit format: {type}({scope}): description [{jiraId}]
|
|
242
|
+
|
|
243
|
+
## Stack Detection
|
|
244
|
+
|
|
245
|
+
Auto-detected at session start by `~/.copilot/scripts/stack-swap.sh` (uses project markers). Manual override:
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
multi-agent-stack [ios|android|mobile|backend|frontend|fullstack|all]
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
## UI Bug Hunter
|
|
252
|
+
|
|
253
|
+
For visual testing, use the dev-toolkit MCP server tools:
|
|
254
|
+
- ios_screenshot / android_screenshot — capture screen
|
|
255
|
+
- ios_tap / android_tap — interact with UI
|
|
256
|
+
- ios_set_appearance — toggle dark mode
|
|
257
|
+
- ios_get_ui_tree / android_get_ui_tree — accessibility tree
|
|
258
|
+
|
|
259
|
+
Requires: @mmerterden/dev-toolkit-mcp MCP server running
|
|
260
|
+
|
|
261
|
+
## Post-Development Integration Build (Multi-Repo) — MANDATORY
|
|
262
|
+
|
|
263
|
+
When a task touches multiple repositories that have a producer→consumer dependency
|
|
264
|
+
(e.g. shared codegen library + consuming UI library), the pipeline MUST build the
|
|
265
|
+
**host project** that integrates them after all changes are complete — before commit/PR.
|
|
266
|
+
|
|
267
|
+
### When this applies
|
|
268
|
+
|
|
269
|
+
- Code generation outputs (identifiers, localization keys, tokens) in Repo A are referenced by source code in Repo B
|
|
270
|
+
- Repo B is consumed as a submodule or SPM/Gradle dependency by a host project (Repo C)
|
|
271
|
+
- Changes in Repo A or B can silently break Repo C if key structures diverge (e.g. nested enum vs flat access pattern)
|
|
272
|
+
|
|
273
|
+
### Required steps (Phase 6 · Step 0 — before pre-commit checkout)
|
|
274
|
+
|
|
275
|
+
1. **Identify the host project** — check `prefs.global.multiRepoIntegrationHosts` for a matching `repoSet` combo. If no match, ASK the user once (record the answer to skip re-asking); autopilot refuses to prompt, skips visibly.
|
|
276
|
+
2. **Update submodules** — refresh each listed submodule path inside `hostPath` to pick up this task's feature branch / merged commits.
|
|
277
|
+
3. **Resolve package dependencies** — flush stale SPM/Gradle/CocoaPods cache.
|
|
278
|
+
4. **Build the host scheme/module** — capture error lines from stderr.
|
|
279
|
+
5. **Evaluate**:
|
|
280
|
+
- Zero new errors → sub-step `completed`, proceed to commit/PR.
|
|
281
|
+
- New errors from our changes → sub-step `failed`, STOP. Offer: return to Phase 3 for auto-fix / pause for manual fix / override with warning.
|
|
282
|
+
- Pre-existing errors (unrelated) → document in Phase 7 report and proceed.
|
|
283
|
+
|
|
284
|
+
### Why this exists
|
|
285
|
+
|
|
286
|
+
Codegen mismatches only surface when the full dependency chain builds together. Building repos in
|
|
287
|
+
isolation gives false confidence. Skipping this step has caused post-merge build failures that required
|
|
288
|
+
additional fix PRs and wasted review cycles. The pipeline **learns** each combo's host project on first
|
|
289
|
+
encounter and auto-applies on subsequent runs — no repeated configuration.
|
|
290
|
+
|
|
291
|
+
### Tracker integration
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
# Phase 6 entry — if multi-repo, register the integration-build sub-step:
|
|
295
|
+
if [ "$(jq '.projects | length' "$STATE_FILE")" -ge 2 ]; then
|
|
296
|
+
bash ~/.copilot/scripts/phase-tracker.sh sub 6 0 "Integration build" in_progress
|
|
297
|
+
# ... run the build per refs/multi-repo-integration-build.md ...
|
|
298
|
+
bash ~/.copilot/scripts/phase-tracker.sh sub 6 0 "Integration build" completed
|
|
299
|
+
fi
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
Full contract: `~/.copilot/skills/multi-agent/refs/multi-repo-integration-build.md`
|
|
303
|
+
(or on GitHub: https://github.com/mmerterden/multi-agent-pipeline/blob/main/pipeline/commands/multi-agent/refs/multi-repo-integration-build.md)
|
|
304
|
+
|
|
305
|
+
## Permissions Expectation
|
|
306
|
+
|
|
307
|
+
Copilot CLI reads `~/.copilot/permissions-config.json` for its allowlist. The pipeline
|
|
308
|
+
regularly uses these command groups — ensure they are present in `tools.allow` to avoid
|
|
309
|
+
prompt fatigue during long pipeline runs:
|
|
310
|
+
|
|
311
|
+
- Shell basics: `cd`, `ls`, `cat`, `grep`, `find`, `mkdir`, `rm`, `mv`, `cp`
|
|
312
|
+
- Git: `git`, `git add`, `git commit`, `git push`, `git worktree`, `git rebase`
|
|
313
|
+
- GitHub CLI: `gh`, `gh api`, `gh issue`, `gh pr`, `gh repo`, `gh run`, `gh auth`, `gh auth switch`
|
|
314
|
+
- Node/npm: `node`, `npm`, `npx`, `pnpm`
|
|
315
|
+
- Keychain: `~/.copilot/lib/credential-store.sh` (canonical, cross-platform), `~/.copilot/scripts/keychain.py` (deterministic Python helper); `security`, `secret-tool`, and `cmdkey` are the underlying platform backends the helper dispatches to
|
|
316
|
+
- Pipeline scripts: `bash` (invokes phase-tracker.sh, phase-banner.sh, etc.)
|
|
317
|
+
|
|
318
|
+
Destructive commands (`rm -rf /`, `git push --force` to main, `chmod 777`) remain in `deny`
|
|
319
|
+
or `ask` by design — do not broaden these.
|
package/install.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* multi-agent-pipeline installer (shim).
|
|
5
|
+
*
|
|
6
|
+
* v8.0.0 split the monolithic 1246-LOC installer into focused modules under
|
|
7
|
+
* `install/`. This file remains as the entry point npm exposes via the
|
|
8
|
+
* `multi-agent-pipeline` bin and the `./install` package export, so existing
|
|
9
|
+
* `node install.js …` and `npx multi-agent-pipeline install …` invocations
|
|
10
|
+
* continue to work without API changes.
|
|
11
|
+
*
|
|
12
|
+
* @module multi-agent-pipeline/install
|
|
13
|
+
*
|
|
14
|
+
* Usage:
|
|
15
|
+
* npx @mmerterden/multi-agent-pipeline install # auto-detect CLI
|
|
16
|
+
* npx @mmerterden/multi-agent-pipeline install --claude # Claude Code only
|
|
17
|
+
* npx @mmerterden/multi-agent-pipeline install --copilot # Copilot CLI only
|
|
18
|
+
* npx @mmerterden/multi-agent-pipeline install --all # all CLIs
|
|
19
|
+
* npx @mmerterden/multi-agent-pipeline install --link # symlink mode (saves ~10K tokens/session)
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
import { runInstall } from "./install/index.mjs";
|
|
23
|
+
|
|
24
|
+
await runInstall(process.argv);
|
package/package.json
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mmerterden/multi-agent-pipeline",
|
|
3
|
+
"version": "8.6.0",
|
|
4
|
+
"description": "8-phase AI development pipeline. Full orchestration on Claude Code + Copilot CLI; knowledge layer (rules + skills) ports to Cursor, Windsurf, and Cline. Analysis, planning, TDD, CLI-aware parallel review with Opus triage, wiki generation, commit automation. Token-preserving uninstall.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "index.js",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": "./index.js",
|
|
9
|
+
"./install": "./install.js",
|
|
10
|
+
"./package.json": "./package.json"
|
|
11
|
+
},
|
|
12
|
+
"bin": {
|
|
13
|
+
"multi-agent-pipeline": "index.js"
|
|
14
|
+
},
|
|
15
|
+
"scripts": {
|
|
16
|
+
"start": "node index.js",
|
|
17
|
+
"test": "node --test test/*.test.mjs && for f in pipeline/scripts/smoke-*.sh; do bash \"$f\" || exit 1; done && node pipeline/scripts/eval-triage.mjs && node pipeline/scripts/eval-golden-tasks.mjs && node pipeline/scripts/validate-schemas.mjs",
|
|
18
|
+
"test:unit": "node --test test/*.test.mjs",
|
|
19
|
+
"test:smoke": "for f in pipeline/scripts/smoke-*.sh; do bash \"$f\" || exit 1; done",
|
|
20
|
+
"test:coverage": "c8 --reporter=text --reporter=lcov node --test test/*.test.mjs && c8 report",
|
|
21
|
+
"lint": "eslint .",
|
|
22
|
+
"lint:fix": "eslint . --fix",
|
|
23
|
+
"format": "prettier --write \"**/*.{js,mjs,json,md,yml}\" --ignore-path .gitignore",
|
|
24
|
+
"format:check": "prettier --check \"**/*.{js,mjs,json,md,yml}\" --ignore-path .gitignore"
|
|
25
|
+
},
|
|
26
|
+
"keywords": [
|
|
27
|
+
"multi-agent",
|
|
28
|
+
"pipeline",
|
|
29
|
+
"development-workflow",
|
|
30
|
+
"tdd",
|
|
31
|
+
"code-review",
|
|
32
|
+
"claude-code",
|
|
33
|
+
"copilot-cli",
|
|
34
|
+
"copilot",
|
|
35
|
+
"claude",
|
|
36
|
+
"cursor",
|
|
37
|
+
"windsurf",
|
|
38
|
+
"cline",
|
|
39
|
+
"ios",
|
|
40
|
+
"android",
|
|
41
|
+
"backend",
|
|
42
|
+
"frontend",
|
|
43
|
+
"jira",
|
|
44
|
+
"github-issues",
|
|
45
|
+
"automation"
|
|
46
|
+
],
|
|
47
|
+
"author": "Mert Erden",
|
|
48
|
+
"license": "MIT",
|
|
49
|
+
"repository": {
|
|
50
|
+
"type": "git",
|
|
51
|
+
"url": "https://github.com/mmerterden/multi-agent-pipeline.git"
|
|
52
|
+
},
|
|
53
|
+
"homepage": "https://github.com/mmerterden/multi-agent-pipeline#readme",
|
|
54
|
+
"bugs": {
|
|
55
|
+
"url": "https://github.com/mmerterden/multi-agent-pipeline/issues"
|
|
56
|
+
},
|
|
57
|
+
"engines": {
|
|
58
|
+
"node": ">=18.0.0"
|
|
59
|
+
},
|
|
60
|
+
"files": [
|
|
61
|
+
"index.js",
|
|
62
|
+
"install.js",
|
|
63
|
+
"install/**/*",
|
|
64
|
+
"pipeline/**/*",
|
|
65
|
+
"pipeline/scripts/**/*",
|
|
66
|
+
"docs/**/*",
|
|
67
|
+
"README.md",
|
|
68
|
+
"CHANGELOG.md",
|
|
69
|
+
"LICENSE"
|
|
70
|
+
],
|
|
71
|
+
"devDependencies": {
|
|
72
|
+
"@eslint/js": "^10.0.1",
|
|
73
|
+
"c8": "^11.0.0",
|
|
74
|
+
"eslint": "^10.2.0",
|
|
75
|
+
"eslint-config-prettier": "^10.1.8",
|
|
76
|
+
"prettier": "^3.8.2"
|
|
77
|
+
}
|
|
78
|
+
}
|