@mmerterden/multi-agent-pipeline 8.6.1 → 10.0.6
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 +544 -2484
- package/README.md +117 -138
- package/docs/features.md +1 -1
- package/index.js +8 -10
- package/install/_adapters.mjs +5 -1
- package/install/_common.mjs +63 -0
- package/install/claude.mjs +14 -14
- package/install/copilot.mjs +14 -8
- package/install/index.mjs +85 -19
- package/install/templates/claude-hooks.json +18 -0
- package/install/templates/copilot-instructions.md +3 -3
- package/package.json +21 -6
- package/pipeline/adapters/_base.mjs +366 -14
- package/pipeline/adapters/antigravity.mjs +140 -0
- package/pipeline/adapters/codex.mjs +159 -0
- package/pipeline/adapters/copilot-chat-orchestration.mjs +148 -0
- package/pipeline/adapters/copilot-chat.mjs +34 -68
- package/pipeline/adapters/cursor-orchestration.mjs +152 -0
- package/pipeline/adapters/cursor.mjs +49 -90
- package/pipeline/agents/android-architect.md +5 -5
- package/pipeline/agents/backend-architect.md +4 -4
- package/pipeline/agents/code-reviewer.md +10 -10
- package/pipeline/agents/dev-critic.md +17 -17
- package/pipeline/agents/explorer.md +3 -3
- package/pipeline/agents/ios-architect.md +4 -4
- package/pipeline/agents/security-auditor.md +12 -12
- package/pipeline/agents/task-clarifier.md +18 -18
- package/pipeline/claude-md-template.md +3 -3
- package/pipeline/commands/archive-guard.md +3 -3
- package/pipeline/commands/figma-to-swiftui.md +10 -10
- package/pipeline/commands/multi-agent/_account-picker.md +13 -9
- package/pipeline/commands/multi-agent/_dev-context.md +15 -15
- package/pipeline/commands/multi-agent/_input-parser.md +4 -4
- package/pipeline/commands/multi-agent/_repo-picker.md +9 -9
- package/pipeline/commands/multi-agent/analysis-resolve.md +129 -0
- package/pipeline/commands/multi-agent/analysis.md +667 -0
- package/pipeline/commands/multi-agent/autopilot.md +22 -22
- package/pipeline/commands/multi-agent/build-optimize.md +77 -0
- package/pipeline/commands/multi-agent/channels.md +96 -96
- package/pipeline/commands/multi-agent/delete.md +19 -17
- package/pipeline/commands/multi-agent/dev-autopilot.md +23 -23
- package/pipeline/commands/multi-agent/dev-local-autopilot.md +23 -23
- package/pipeline/commands/multi-agent/dev-local.md +25 -22
- package/pipeline/commands/multi-agent/dev.md +49 -49
- package/pipeline/commands/multi-agent/diff-explain.md +4 -4
- package/pipeline/commands/multi-agent/garbage-collect.md +58 -0
- package/pipeline/commands/multi-agent/help.md +75 -66
- package/pipeline/commands/multi-agent/issue.md +3 -3
- package/pipeline/commands/multi-agent/jira.md +12 -12
- package/pipeline/commands/multi-agent/kill.md +6 -6
- package/pipeline/commands/multi-agent/language.md +12 -12
- package/pipeline/commands/multi-agent/local-autopilot.md +34 -34
- package/pipeline/commands/multi-agent/local.md +24 -25
- package/pipeline/commands/multi-agent/log.md +6 -6
- package/pipeline/commands/multi-agent/manual-test.md +3 -3
- package/pipeline/commands/multi-agent/prune-logs.md +60 -0
- package/pipeline/commands/multi-agent/purge.md +10 -7
- package/pipeline/commands/multi-agent/refactor.md +9 -9
- package/pipeline/commands/multi-agent/refs/analysis-template.md +1062 -0
- package/pipeline/commands/multi-agent/refs/android-guide.md +15 -13
- package/pipeline/commands/multi-agent/refs/audit-guide.md +20 -20
- package/pipeline/commands/multi-agent/refs/backend-guide.md +9 -9
- package/pipeline/commands/multi-agent/refs/channels/confluence.md +17 -17
- package/pipeline/commands/multi-agent/refs/channels/issue-comment.md +30 -30
- package/pipeline/commands/multi-agent/refs/channels/jira.md +15 -15
- package/pipeline/commands/multi-agent/refs/channels/pr-review-actions.md +19 -17
- package/pipeline/commands/multi-agent/refs/channels/pr.md +22 -22
- package/pipeline/commands/multi-agent/refs/channels/wiki.md +19 -19
- package/pipeline/commands/multi-agent/refs/component-dispatch.md +11 -11
- package/pipeline/commands/multi-agent/refs/conventions-defaults.md +179 -0
- package/pipeline/commands/multi-agent/refs/cross-cli-contract.md +35 -33
- package/pipeline/commands/multi-agent/refs/features/dev-critic.md +5 -5
- package/pipeline/commands/multi-agent/refs/features/external-context-injection.md +6 -6
- package/pipeline/commands/multi-agent/refs/features/model-fallback.md +73 -0
- package/pipeline/commands/multi-agent/refs/features/plan-todos.md +1 -1
- package/pipeline/commands/multi-agent/refs/features/prior-fix-detection.md +4 -4
- package/pipeline/commands/multi-agent/refs/features/repo-map.md +6 -6
- package/pipeline/commands/multi-agent/refs/features/shadow-git.md +2 -2
- package/pipeline/commands/multi-agent/refs/frontend-guide.md +16 -16
- package/pipeline/commands/multi-agent/refs/issue-jira-triad.md +18 -18
- package/pipeline/commands/multi-agent/refs/keychain.md +18 -8
- package/pipeline/commands/multi-agent/refs/knowledge.md +9 -9
- package/pipeline/commands/multi-agent/refs/multi-repo-integration-build.md +19 -19
- package/pipeline/commands/multi-agent/refs/phases/log-format.md +29 -9
- package/pipeline/commands/multi-agent/refs/phases/modes.md +33 -33
- package/pipeline/commands/multi-agent/refs/phases/operations.md +11 -11
- package/pipeline/commands/multi-agent/refs/phases/phase-0-init.md +93 -57
- package/pipeline/commands/multi-agent/refs/phases/phase-1-analysis.md +59 -28
- package/pipeline/commands/multi-agent/refs/phases/phase-2-planning.md +115 -63
- package/pipeline/commands/multi-agent/refs/phases/phase-3-dev.md +99 -36
- package/pipeline/commands/multi-agent/refs/phases/phase-4-review.md +160 -63
- package/pipeline/commands/multi-agent/refs/phases/phase-5-test.md +33 -18
- package/pipeline/commands/multi-agent/refs/phases/phase-6-commit.md +45 -43
- package/pipeline/commands/multi-agent/refs/phases/phase-7-report.md +54 -28
- package/pipeline/commands/multi-agent/refs/phases.md +17 -17
- package/pipeline/commands/multi-agent/refs/picker-contract.md +65 -0
- package/pipeline/commands/multi-agent/refs/progress-contract.md +37 -21
- package/pipeline/commands/multi-agent/refs/rules.md +83 -25
- package/pipeline/commands/multi-agent/refs/swiftui-guide.md +32 -30
- package/pipeline/commands/multi-agent/refs/tracker-contract.md +54 -30
- package/pipeline/commands/multi-agent/refs/wiki-capture.md +36 -33
- package/pipeline/commands/multi-agent/resume.md +9 -9
- package/pipeline/commands/multi-agent/review.md +24 -24
- package/pipeline/commands/multi-agent/scan.md +10 -10
- package/pipeline/commands/multi-agent/search.md +8 -8
- package/pipeline/commands/multi-agent/setup.md +111 -84
- package/pipeline/commands/multi-agent/stack.md +5 -5
- package/pipeline/commands/multi-agent/status.md +5 -5
- package/pipeline/commands/multi-agent/sync.md +123 -111
- package/pipeline/commands/multi-agent/test.md +6 -6
- package/pipeline/commands/multi-agent/update.md +1 -1
- package/pipeline/commands/multi-agent.md +66 -60
- package/pipeline/commands/sim-test.md +14 -14
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-1-analysis.json +1 -1
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-4-review.json +2 -2
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-4-triage.json +2 -2
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/metadata.json +1 -1
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-1-analysis.json +2 -2
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-4-review.json +3 -3
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-4-triage.json +4 -4
- package/pipeline/eval/golden-tasks/02-android-feature-compose/metadata.json +1 -1
- package/pipeline/eval/golden-tasks/02-android-feature-compose/task.json +1 -1
- package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-1-analysis.json +29 -0
- package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-2-plan.json +42 -0
- package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-4-review.json +20 -0
- package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-4-triage.json +15 -0
- package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/metadata.json +14 -0
- package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/task.json +12 -0
- package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-1-analysis.json +29 -0
- package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-2-plan.json +40 -0
- package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-4-review.json +20 -0
- package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-4-triage.json +15 -0
- package/pipeline/eval/golden-tasks/04-frontend-next-hydration/metadata.json +14 -0
- package/pipeline/eval/golden-tasks/04-frontend-next-hydration/task.json +12 -0
- package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-1-analysis.json +29 -0
- package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-2-plan.json +42 -0
- package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-4-review.json +28 -0
- package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-4-triage.json +27 -0
- package/pipeline/eval/golden-tasks/05-ios-security-keychain/metadata.json +14 -0
- package/pipeline/eval/golden-tasks/05-ios-security-keychain/task.json +12 -0
- package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-1-analysis.json +29 -0
- package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-2-plan.json +41 -0
- package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-4-review.json +12 -0
- package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-4-triage.json +6 -0
- package/pipeline/eval/golden-tasks/06-android-refactor-usecase/metadata.json +14 -0
- package/pipeline/eval/golden-tasks/06-android-refactor-usecase/task.json +12 -0
- package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-1-analysis.json +29 -0
- package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-2-plan.json +42 -0
- package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-4-review.json +28 -0
- package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-4-triage.json +27 -0
- package/pipeline/eval/golden-tasks/07-backend-node-idempotency/metadata.json +14 -0
- package/pipeline/eval/golden-tasks/07-backend-node-idempotency/task.json +12 -0
- package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-1-analysis.json +25 -0
- package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-2-plan.json +31 -0
- package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-4-review.json +12 -0
- package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-4-triage.json +18 -0
- package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/metadata.json +14 -0
- package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/task.json +12 -0
- package/pipeline/eval/golden-tasks/README.md +14 -14
- package/pipeline/eval/intent-cases.json +40 -0
- package/pipeline/eval/run-metrics-fixture.json +46 -0
- package/pipeline/eval/triage/01-empty-findings/notes.md +1 -1
- package/pipeline/eval/triage/02-real-blocker/notes.md +2 -2
- package/pipeline/eval/triage/03-out-of-scope-defer/notes.md +1 -1
- package/pipeline/eval/triage/04-false-positive-reject/notes.md +1 -1
- package/pipeline/eval/triage/05-mixed-classification/notes.md +2 -2
- package/pipeline/eval/triage/06-severity-mismatch/notes.md +2 -2
- package/pipeline/eval/triage/07-duplicate-reviewers/notes.md +1 -1
- package/pipeline/eval/triage/08-style-misclassified/notes.md +1 -1
- package/pipeline/eval/triage/09-cascading-finding/notes.md +2 -2
- package/pipeline/eval/triage/10-deferred-crossref/notes.md +2 -2
- package/pipeline/eval/triage/11-vercel-token-leak-blocker/expected.json +3 -3
- package/pipeline/eval/triage/11-vercel-token-leak-blocker/input.json +2 -2
- package/pipeline/eval/triage/11-vercel-token-leak-blocker/notes.md +5 -5
- package/pipeline/eval/triage/README.md +4 -4
- package/pipeline/lib/account-resolver.sh +3 -3
- package/pipeline/lib/ask-choice.sh +98 -0
- package/pipeline/lib/channels-multi-repo.sh +3 -3
- package/pipeline/lib/classify-intent.sh +110 -0
- package/pipeline/lib/context-link-extractor.sh +3 -3
- package/pipeline/lib/credential-store-resolver.sh +3 -3
- package/pipeline/lib/credential-store.sh +9 -5
- package/pipeline/lib/extract-conventions.sh +1034 -0
- package/pipeline/lib/fetch-confluence.sh +3 -3
- package/pipeline/lib/fetch-crashlytics.sh +5 -5
- package/pipeline/lib/fetch-fortify.sh +5 -21
- package/pipeline/lib/fetch-swagger.sh +5 -5
- package/pipeline/lib/figma-screenshot.sh +536 -0
- package/pipeline/lib/issue-fetcher.sh +46 -20
- package/pipeline/lib/md2confluence-v3.py +1076 -0
- package/pipeline/lib/multi-repo-pipeline.sh +13 -22
- package/pipeline/lib/plan-todos.sh +7 -7
- package/pipeline/lib/post-pr-review.sh +53 -21
- package/pipeline/lib/repo-cache.sh +5 -5
- package/pipeline/lib/review-watch.sh +17 -13
- package/pipeline/lib/shadow-git.sh +7 -7
- package/pipeline/lib/submodule-detector.sh +3 -3
- package/pipeline/lib/vercel-deploy.sh +28 -15
- package/pipeline/preferences-template.json +21 -4
- package/pipeline/rules/app-store-guidelines.md +2 -2
- package/pipeline/rules/code-style.md +6 -6
- package/pipeline/rules/figma-pipeline.md +100 -2
- package/pipeline/rules/kotlin-android.md +8 -8
- package/pipeline/rules/security.md +4 -4
- package/pipeline/rules/tdd.md +1 -1
- package/pipeline/rules/testing.md +5 -5
- package/pipeline/schemas/agent-state.schema.json +55 -20
- package/pipeline/schemas/analysis-output.schema.json +7 -2
- package/pipeline/schemas/analysis-spec.schema.json +484 -0
- package/pipeline/schemas/clarify-output.schema.json +5 -5
- package/pipeline/schemas/conventions-output.schema.json +70 -0
- package/pipeline/schemas/dev-critic-output.schema.json +2 -2
- package/pipeline/schemas/diff-risk.schema.json +3 -3
- package/pipeline/schemas/figma-project-config.schema.json +3 -3
- package/pipeline/schemas/learnings-ledger.schema.json +39 -0
- package/pipeline/schemas/migrations/README.md +2 -2
- package/pipeline/schemas/migrations/figma-config-1.0.0-to-2.0.0.mjs +5 -5
- package/pipeline/schemas/migrations/prefs-2.0.0-to-2.1.0.mjs +3 -3
- package/pipeline/schemas/migrations/prefs-2.1.0-to-2.2.0.mjs +4 -4
- package/pipeline/schemas/migrations/prefs-2.2.0-to-2.3.0.mjs +5 -5
- package/pipeline/schemas/migrations/state-2.0.0-to-2.1.0.mjs +3 -3
- package/pipeline/schemas/plan-todos.schema.json +4 -4
- package/pipeline/schemas/planning-output.schema.json +3 -3
- package/pipeline/schemas/prefs.schema.json +97 -13
- package/pipeline/schemas/reviewer-output.schema.json +7 -3
- package/pipeline/schemas/test-gap.schema.json +1 -1
- package/pipeline/schemas/token-budget.json +8 -8
- package/pipeline/schemas/triage-corpus.schema.json +1 -1
- package/pipeline/schemas/triage-output.schema.json +44 -6
- package/pipeline/scripts/README.md +64 -64
- package/pipeline/scripts/aggregate-metrics.mjs +55 -16
- package/pipeline/scripts/audit-log-rotate.sh +3 -3
- package/pipeline/scripts/audit-log.sh +20 -7
- package/pipeline/scripts/benchmark-phase-0.sh +6 -6
- package/pipeline/scripts/build-skills-index.mjs +15 -15
- package/pipeline/scripts/check-md-links.mjs +59 -0
- package/pipeline/scripts/classify-plan-safety.mjs +24 -18
- package/pipeline/scripts/cost-budget-check.mjs +160 -0
- package/pipeline/scripts/cost-table.json +23 -13
- package/pipeline/scripts/diff-explain.mjs +12 -12
- package/pipeline/scripts/diff-risk-score.mjs +18 -17
- package/pipeline/scripts/eval-golden-tasks-live.mjs +13 -10
- package/pipeline/scripts/eval-golden-tasks.mjs +3 -14
- package/pipeline/scripts/eval-intent.mjs +103 -0
- package/pipeline/scripts/eval-triage.mjs +3 -3
- package/pipeline/scripts/evidence-gate.mjs +155 -0
- package/pipeline/scripts/fixtures/install-layout.tsv +9 -9
- package/pipeline/scripts/gc-tmp.sh +102 -0
- package/pipeline/scripts/gen-mode-dispatch.mjs +27 -21
- package/pipeline/scripts/gen-skills-index.mjs +6 -6
- package/pipeline/scripts/github-ssh-setup.sh +1 -1
- package/pipeline/scripts/keychain-save.sh +1 -1
- package/pipeline/scripts/keychain.py +6 -6
- package/pipeline/scripts/learnings-ledger.mjs +284 -0
- package/pipeline/scripts/lint-skills.mjs +80 -0
- package/pipeline/scripts/log-metric.sh +18 -9
- package/pipeline/scripts/match-skills.mjs +13 -8
- package/pipeline/scripts/memory-load.sh +3 -3
- package/pipeline/scripts/memory-save.sh +5 -5
- package/pipeline/scripts/migrate-prefs.mjs +17 -17
- package/pipeline/scripts/migrate-state.mjs +12 -12
- package/pipeline/scripts/output-quality-check.sh +7 -7
- package/pipeline/scripts/phase-banner.sh +5 -5
- package/pipeline/scripts/phase-tracker.sh +90 -53
- package/pipeline/scripts/pre-commit-check.sh +45 -5
- package/pipeline/scripts/pre-push-check.sh +7 -7
- package/pipeline/scripts/prune-logs.sh +118 -0
- package/pipeline/scripts/render-agent-log-cost.sh +55 -18
- package/pipeline/scripts/render-cost-summary.sh +9 -9
- package/pipeline/scripts/render-work-summary.sh +4 -4
- package/pipeline/scripts/repo-map.mjs +9 -9
- package/pipeline/scripts/run-aggregator.mjs +7 -6
- package/pipeline/scripts/run-metrics.mjs +129 -0
- package/pipeline/scripts/run-smokes.mjs +76 -0
- package/pipeline/scripts/scan-skills.sh +11 -11
- package/pipeline/scripts/search-logs.sh +8 -8
- package/pipeline/scripts/sign-skills.sh +2 -2
- package/pipeline/scripts/smoke-adapters.sh +79 -10
- package/pipeline/scripts/smoke-add-detail.sh +5 -5
- package/pipeline/scripts/smoke-agent-log-cost.sh +85 -6
- package/pipeline/scripts/smoke-agent-model-routing.sh +3 -3
- package/pipeline/scripts/smoke-ask-choice.sh +42 -0
- package/pipeline/scripts/smoke-bitbucket-contract.sh +19 -3
- package/pipeline/scripts/smoke-changelog-version.sh +47 -0
- package/pipeline/scripts/smoke-channels-flow.sh +1 -1
- package/pipeline/scripts/smoke-ci-workflows.sh +5 -5
- package/pipeline/scripts/smoke-clarify.sh +3 -3
- package/pipeline/scripts/smoke-commands-skills-parity.sh +4 -4
- package/pipeline/scripts/smoke-community-gates.sh +75 -0
- package/pipeline/scripts/smoke-compliance-skills.sh +5 -5
- package/pipeline/scripts/smoke-cost-budget.sh +70 -0
- package/pipeline/scripts/smoke-cost-summary.sh +4 -4
- package/pipeline/scripts/smoke-cross-cli-behavior.sh +50 -9
- package/pipeline/scripts/smoke-cross-phase-cohesion.sh +5 -5
- package/pipeline/scripts/smoke-delete-flow.sh +5 -5
- package/pipeline/scripts/smoke-dev-critic.sh +2 -2
- package/pipeline/scripts/smoke-diff-explain.sh +22 -3
- package/pipeline/scripts/smoke-diff-risk.sh +1 -1
- package/pipeline/scripts/smoke-dynamic-skill-loading.sh +1 -1
- package/pipeline/scripts/smoke-eval-live.sh +4 -4
- package/pipeline/scripts/smoke-evidence-gate.sh +93 -0
- package/pipeline/scripts/smoke-existing-discovery-gate.sh +1 -1
- package/pipeline/scripts/smoke-extract-conventions.sh +163 -0
- package/pipeline/scripts/smoke-figma-android-parity.sh +1 -1
- package/pipeline/scripts/smoke-figma-credential-store.sh +3 -3
- package/pipeline/scripts/smoke-figma-cross-cli-inventory.sh +12 -12
- package/pipeline/scripts/smoke-figma-dispatch.sh +5 -5
- package/pipeline/scripts/smoke-figma-sync.sh +1 -1
- package/pipeline/scripts/smoke-gate-hooks.sh +56 -0
- package/pipeline/scripts/smoke-gc-tmp.sh +84 -0
- package/pipeline/scripts/smoke-identity-isolation.sh +7 -7
- package/pipeline/scripts/smoke-install-layout.sh +10 -10
- package/pipeline/scripts/smoke-intent-guard.sh +86 -0
- package/pipeline/scripts/smoke-issue-comment-template.sh +3 -3
- package/pipeline/scripts/smoke-issue-jira-triad.sh +1 -1
- package/pipeline/scripts/smoke-keychain.sh +6 -6
- package/pipeline/scripts/smoke-language-axis.sh +2 -2
- package/pipeline/scripts/smoke-learnings-ledger.sh +86 -0
- package/pipeline/scripts/smoke-lib-scripts.sh +2 -2
- package/pipeline/scripts/smoke-mcp-gate.sh +68 -0
- package/pipeline/scripts/smoke-md-links.sh +8 -0
- package/pipeline/scripts/smoke-md2confluence.sh +126 -0
- package/pipeline/scripts/smoke-metrics-cache-ratio.sh +72 -0
- package/pipeline/scripts/smoke-migrate-state.sh +10 -10
- package/pipeline/scripts/smoke-mode-dispatch-drift.sh +7 -4
- package/pipeline/scripts/smoke-model-fallback.sh +80 -0
- package/pipeline/scripts/smoke-multi-repo-integration.sh +3 -3
- package/pipeline/scripts/smoke-multi-repo-worktree.sh +1 -1
- package/pipeline/scripts/smoke-no-mcp-in-dev-phases.sh +115 -0
- package/pipeline/scripts/smoke-no-token-prompt.sh +31 -15
- package/pipeline/scripts/smoke-pat-audit.sh +26 -5
- package/pipeline/scripts/smoke-per-repo-memory.sh +1 -1
- package/pipeline/scripts/smoke-phase-0-multi-repo.sh +1 -1
- package/pipeline/scripts/smoke-phase-6-multi.sh +2 -2
- package/pipeline/scripts/smoke-phase-banner.sh +1 -1
- package/pipeline/scripts/smoke-phase-tracker.sh +1 -1
- package/pipeline/scripts/smoke-phase0-bridge-contract.sh +4 -4
- package/pipeline/scripts/smoke-phase4-triage.sh +94 -7
- package/pipeline/scripts/smoke-plan-approval-gate.sh +3 -3
- package/pipeline/scripts/smoke-plan-safety.sh +1 -1
- package/pipeline/scripts/smoke-plan-todos.sh +7 -4
- package/pipeline/scripts/smoke-pr-review-actions.sh +2 -2
- package/pipeline/scripts/smoke-pre-commit.sh +34 -2
- package/pipeline/scripts/smoke-pref-migration.sh +1 -1
- package/pipeline/scripts/smoke-prefs-language.sh +5 -5
- package/pipeline/scripts/smoke-progress-contract.sh +3 -3
- package/pipeline/scripts/smoke-prune-logs.sh +87 -0
- package/pipeline/scripts/smoke-push-retry.sh +1 -1
- package/pipeline/scripts/smoke-readme-counts.sh +1 -1
- package/pipeline/scripts/smoke-repo-map.sh +9 -9
- package/pipeline/scripts/smoke-review-watch.sh +12 -0
- package/pipeline/scripts/smoke-run-aggregator.sh +7 -7
- package/pipeline/scripts/smoke-run-metrics.sh +50 -0
- package/pipeline/scripts/smoke-schema-validation.sh +18 -11
- package/pipeline/scripts/smoke-search.sh +5 -5
- package/pipeline/scripts/smoke-shared-runtime.sh +108 -0
- package/pipeline/scripts/smoke-skill-authoring.sh +13 -13
- package/pipeline/scripts/smoke-skill-language.sh +4 -4
- package/pipeline/scripts/smoke-skill-manifest.sh +2 -2
- package/pipeline/scripts/smoke-skill-scan.sh +2 -2
- package/pipeline/scripts/smoke-stack-swap.sh +2 -2
- package/pipeline/scripts/smoke-subagent-validators.sh +8 -5
- package/pipeline/scripts/smoke-sync-adapters.sh +1 -1
- package/pipeline/scripts/smoke-sync-delegation.sh +7 -7
- package/pipeline/scripts/smoke-sync-parity.sh +1 -1
- package/pipeline/scripts/smoke-tasklist-ordering.sh +7 -7
- package/pipeline/scripts/smoke-telemetry.sh +1 -1
- package/pipeline/scripts/smoke-test-gap.sh +5 -5
- package/pipeline/scripts/smoke-token-budget.sh +1 -1
- package/pipeline/scripts/smoke-tracker-contract.sh +6 -6
- package/pipeline/scripts/smoke-tracker-tokens-invocation.sh +9 -1
- package/pipeline/scripts/smoke-triage-memory.sh +2 -2
- package/pipeline/scripts/smoke-url-enrichment.sh +2 -2
- package/pipeline/scripts/smoke-validator-contradiction.sh +1 -1
- package/pipeline/scripts/smoke-validator-gates.sh +164 -0
- package/pipeline/scripts/smoke-vercel-deploy-redact.sh +11 -11
- package/pipeline/scripts/smoke-wiki-integration.sh +2 -2
- package/pipeline/scripts/smoke-work-summary.sh +3 -3
- package/pipeline/scripts/smoke-worktree-path-convention.sh +4 -4
- package/pipeline/scripts/smoke-write-state.sh +2 -2
- package/pipeline/scripts/stack-swap.sh +3 -3
- package/pipeline/scripts/sync-adapters.mjs +37 -10
- package/pipeline/scripts/sync-parity-check.sh +6 -6
- package/pipeline/scripts/test-gap-scan.mjs +11 -13
- package/pipeline/scripts/token-budget-report.mjs +4 -4
- package/pipeline/scripts/triage-memory.mjs +6 -6
- package/pipeline/scripts/uninstall.mjs +42 -4
- package/pipeline/scripts/update-issue-progress.sh +2 -2
- package/pipeline/scripts/validate-analysis.mjs +19 -21
- package/pipeline/scripts/validate-diff-risk.mjs +4 -4
- package/pipeline/scripts/validate-planning.mjs +3 -3
- package/pipeline/scripts/validate-reviewer.mjs +4 -4
- package/pipeline/scripts/validate-schemas.mjs +4 -4
- package/pipeline/scripts/validate-test-gap.mjs +4 -4
- package/pipeline/scripts/validate-triage.mjs +68 -9
- package/pipeline/scripts/verify-skills.sh +7 -7
- package/pipeline/scripts/write-state.mjs +49 -11
- package/pipeline/skills/.skill-manifest.json +245 -149
- package/pipeline/skills/.skills-index.json +236 -47
- package/pipeline/skills/figma-android/README.md +5 -5
- package/pipeline/skills/figma-android/figma-component-code-connect/SKILL.md +3 -3
- package/pipeline/skills/figma-android/figma-component-implement/SKILL.md +8 -8
- package/pipeline/skills/figma-android/figma-component-test/SKILL.md +4 -4
- package/pipeline/skills/figma-android/figma-component-wiki/SKILL.md +5 -5
- package/pipeline/skills/figma-android/figma-to-component/SKILL.md +14 -14
- package/pipeline/skills/figma-common/README.md +29 -29
- package/pipeline/skills/figma-common/figma-cli-iterate/SKILL.md +20 -15
- package/pipeline/skills/figma-common/figma-cli-iterate-mend/SKILL.md +35 -30
- package/pipeline/skills/figma-common/figma-cli-lean-iterate/SKILL.md +35 -30
- package/pipeline/skills/figma-common/figma-cli-skip/SKILL.md +20 -20
- package/pipeline/skills/figma-common/figma-commit/COMMON_REBASE.md +32 -32
- package/pipeline/skills/figma-common/figma-commit/REVIEW.md +9 -9
- package/pipeline/skills/figma-common/figma-commit/SKILL.md +25 -20
- package/pipeline/skills/figma-common/figma-component-confluence-sync/SKILL.md +11 -6
- package/pipeline/skills/figma-common/figma-component-start/SKILL.md +30 -25
- package/pipeline/skills/figma-common/figma-component-status-update/SKILL.md +9 -4
- package/pipeline/skills/figma-common/figma-fix/SKILL.md +27 -22
- package/pipeline/skills/figma-common/figma-form-integration/SKILL.md +38 -38
- package/pipeline/skills/figma-common/figma-issue/SKILL.md +39 -34
- package/pipeline/skills/figma-common/figma-iterate/SKILL.md +20 -15
- package/pipeline/skills/figma-common/figma-iteration-commit/SKILL.md +44 -39
- package/pipeline/skills/figma-common/figma-mend/SKILL.md +6 -6
- package/pipeline/skills/figma-common/figma-price-integration/SKILL.md +30 -30
- package/pipeline/skills/figma-common/figma-remote-mcp-auth/SKILL.md +1 -1
- package/pipeline/skills/figma-common/figma-review/SKILL.md +31 -26
- package/pipeline/skills/figma-common/figma-setup/SKILL.md +11 -11
- package/pipeline/skills/figma-common/figma-setup/scripts/fetch-mcp-token.py +5 -5
- package/pipeline/skills/figma-common/figma-skip/SKILL.md +6 -6
- package/pipeline/skills/figma-common/figma-ui-patterns/SKILL.md +12 -12
- package/pipeline/skills/figma-common/figma-utility/SKILL.md +4 -4
- package/pipeline/skills/figma-common/figma-utility/scripts/figma-utility.py +1 -1
- package/pipeline/skills/figma-common/figma-validate/SKILL.md +48 -48
- package/pipeline/skills/figma-common/performance-iteration-commit-all/SKILL.md +42 -37
- package/pipeline/skills/figma-common/performance-review-next/SKILL.md +23 -18
- package/pipeline/skills/figma-common/performance-start/SKILL.md +52 -47
- package/pipeline/skills/figma-common/performance-swiftui/SKILL.md +68 -68
- package/pipeline/skills/figma-common/performance-tour/SKILL.md +42 -37
- package/pipeline/skills/figma-ios/REVIEW_CHECKLIST.md +16 -16
- package/pipeline/skills/figma-ios/figma-component-code-connect/SKILL.md +15 -15
- package/pipeline/skills/figma-ios/figma-component-implement/SKILL.md +9 -9
- package/pipeline/skills/figma-ios/figma-component-test/SKILL.md +15 -15
- package/pipeline/skills/figma-ios/figma-component-wiki/SKILL.md +18 -18
- package/pipeline/skills/figma-ios/figma-to-component/SKILL.md +38 -38
- package/pipeline/skills/figma-ios/figma-to-component/halt-return-protocol.md +2 -2
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-0-init.md +12 -12
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1-gathering.md +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1.5-existing-discovery.md +19 -19
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2-orchestrator.md +25 -25
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2a-testing-identifiers.md +7 -7
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2b-localization.md +6 -6
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2c-accessibility.md +38 -38
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2d-analytics.md +3 -3
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3-orchestrator.md +29 -29
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3a-location.md +6 -6
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3b-tokens.md +3 -3
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3c-nested.md +12 -12
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3d-patterns.md +57 -57
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3e-assets.md +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3f-utilities.md +6 -6
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3g-property-coverage.md +10 -10
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3h-variant-config.md +16 -16
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4-orchestrator.md +23 -23
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4a-configuration.md +26 -26
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4b-view.md +43 -43
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4c-documentation.md +17 -17
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4d-preview.md +19 -19
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4e-modifiers.md +15 -15
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5-orchestrator.md +39 -39
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5a-viewinspector.md +7 -7
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5b-snapshot.md +29 -29
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5c-unit.md +9 -9
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-6-code-connect.md +31 -31
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7-wiki.md +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-confluence-generate.md +18 -18
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-wiki-generate.md +16 -16
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-8-cleanup.md +2 -2
- package/pipeline/skills/figma-ios/figma-to-component/reference/accessibility.md +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/reference/code-connect.md +49 -49
- package/pipeline/skills/figma-ios/figma-to-component/reference/figma-to-swiftui-effects.md +8 -8
- package/pipeline/skills/figma-ios/figma-to-component/reference/halt-return-protocol.md +2 -2
- package/pipeline/skills/figma-ios/figma-to-component/reference/macros.md +9 -9
- package/pipeline/skills/figma-ios/figma-to-component/reference/missing-tokens.md +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/reference/orchestrator-discipline.md +10 -10
- package/pipeline/skills/figma-ios/figma-to-component/reference/remote-mcp-script.md +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/reference/rest-api-script.md +11 -11
- package/pipeline/skills/figma-ios/figma-to-component/reference/scripts-inventory.md +14 -14
- package/pipeline/skills/figma-ios/figma-to-component/reference/snapshot-testing.md +2 -2
- package/pipeline/skills/figma-ios/figma-to-component/reference/subcomponent-graph.md +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/reference/testing-identifiers-naming.md +6 -6
- package/pipeline/skills/figma-ios/figma-to-component/reference/tools.md +9 -9
- package/pipeline/skills/figma-ios/figma-to-component/reference/viewinspector.md +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/reference/wiki-to-confluence-mapping.md +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/scripts/apply-author-login-map.py +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/scripts/backfill-status.py +18 -18
- package/pipeline/skills/figma-ios/figma-to-component/scripts/build-author-registry.py +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/scripts/bulk-sync-issues.py +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-data-gather.py +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-publish.sh +3 -3
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status-upload.py +18 -18
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status.py +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-data-gather.py +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-page-ids.example.json +9 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-publish.py +3 -3
- package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-subcomponent-graph.py +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-update.py +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/issue_sync_propagate.py +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/registry_writer.py +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update.py +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_registry_writer.py +3 -3
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_issue.py +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue_gh.py +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase1-gather.py +12 -12
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase2-finalize.py +3 -3
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase3-scripts.py +26 -26
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase4-finalize.py +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase5-finalize.py +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase6-finalize.py +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase7-finalize.py +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/scripts/register-icons-codeconnect.py +4 -4
- package/pipeline/skills/figma-ios/figma-to-component/scripts/remote-mcp-fetch.py +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/scripts/resolve-author-logins.py +2 -2
- package/pipeline/skills/figma-ios/figma-to-component/scripts/run-uicomponents-tests.sh +1 -1
- package/pipeline/skills/figma-ios/figma-to-component/scripts/sidebar-generator.py +5 -5
- package/pipeline/skills/figma-ios/figma-to-component/scripts/update-issue-from-registry.py +41 -41
- package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase4.sh +8 -8
- package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase6.sh +7 -7
- package/pipeline/skills/shared/README.md +62 -41
- package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +39 -39
- package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +44 -44
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +182 -176
- package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +55 -0
- package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +48 -0
- package/pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md +16 -16
- package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +48 -0
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +40 -40
- package/pipeline/skills/shared/core/multi-agent-delete/SKILL.md +33 -30
- package/pipeline/skills/shared/core/multi-agent-dev/SKILL.md +26 -26
- package/pipeline/skills/shared/core/multi-agent-dev-autopilot/SKILL.md +22 -22
- package/pipeline/skills/shared/core/multi-agent-dev-local/SKILL.md +6 -6
- package/pipeline/skills/shared/core/multi-agent-dev-local-autopilot/SKILL.md +12 -12
- package/pipeline/skills/shared/core/multi-agent-diff-explain/SKILL.md +20 -20
- package/pipeline/skills/shared/core/multi-agent-garbage-collect/SKILL.md +61 -0
- package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +22 -22
- package/pipeline/skills/shared/core/multi-agent-issue/SKILL.md +15 -15
- package/pipeline/skills/shared/core/multi-agent-jira/SKILL.md +12 -12
- package/pipeline/skills/shared/core/multi-agent-kill/SKILL.md +14 -14
- package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +12 -12
- package/pipeline/skills/shared/core/multi-agent-local/SKILL.md +10 -10
- package/pipeline/skills/shared/core/multi-agent-local-autopilot/SKILL.md +18 -18
- package/pipeline/skills/shared/core/multi-agent-log/SKILL.md +9 -9
- package/pipeline/skills/shared/core/multi-agent-manual-test/SKILL.md +20 -20
- package/pipeline/skills/shared/core/multi-agent-prune-logs/SKILL.md +63 -0
- package/pipeline/skills/shared/core/multi-agent-purge/SKILL.md +16 -13
- package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +110 -110
- package/pipeline/skills/shared/core/multi-agent-resume/SKILL.md +13 -13
- package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +22 -22
- package/pipeline/skills/shared/core/multi-agent-scan/SKILL.md +18 -18
- package/pipeline/skills/shared/core/multi-agent-search/SKILL.md +13 -13
- package/pipeline/skills/shared/core/multi-agent-setup/SKILL.md +33 -30
- package/pipeline/skills/shared/core/multi-agent-stack/SKILL.md +14 -14
- package/pipeline/skills/shared/core/multi-agent-status/SKILL.md +9 -9
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +79 -79
- package/pipeline/skills/shared/core/multi-agent-test/SKILL.md +5 -5
- package/pipeline/skills/shared/core/multi-agent-update/SKILL.md +10 -10
- package/pipeline/skills/shared/external/NOTICE-swift-ios-skills.md +41 -0
- package/pipeline/skills/shared/external/NOTICE-xcode-build-skills.md +53 -0
- package/pipeline/skills/shared/external/agentflow/SKILL.md +9 -9
- package/pipeline/skills/shared/external/alarmkit/SKILL.md +113 -52
- package/pipeline/skills/shared/external/alarmkit/evals/evals.json +41 -0
- package/pipeline/skills/shared/external/alarmkit/references/alarmkit-patterns.md +23 -16
- package/pipeline/skills/shared/external/app-clips/SKILL.md +85 -354
- package/pipeline/skills/shared/external/app-clips/evals/evals.json +50 -0
- package/pipeline/skills/shared/external/app-clips/references/data-handoff-notifications-location.md +135 -0
- package/pipeline/skills/shared/external/app-clips/references/routing-and-experiences.md +125 -0
- package/pipeline/skills/shared/external/app-clips/references/size-capabilities-and-promotion.md +113 -0
- package/pipeline/skills/shared/external/app-intents/SKILL.md +152 -59
- package/pipeline/skills/shared/external/app-intents/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/app-intents/references/appintents-advanced.md +161 -118
- package/pipeline/skills/shared/external/app-store-optimization/SKILL.md +289 -392
- package/pipeline/skills/shared/external/app-store-optimization/evals/evals.json +46 -0
- package/pipeline/skills/shared/external/app-store-optimization/references/keyword-research-methodology.md +174 -0
- package/pipeline/skills/shared/external/app-store-optimization/references/product-page-variants.md +191 -0
- package/pipeline/skills/shared/external/app-store-review/SKILL.md +57 -107
- package/pipeline/skills/shared/external/app-store-review/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/app-store-review/references/privacy-manifest.md +35 -12
- package/pipeline/skills/shared/external/app-store-review/references/review-checklists.md +28 -26
- package/pipeline/skills/shared/external/apple-on-device-ai/SKILL.md +53 -62
- package/pipeline/skills/shared/external/apple-on-device-ai/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-conversion.md +7 -1
- package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-optimization.md +4 -1
- package/pipeline/skills/shared/external/apple-on-device-ai/references/foundation-models.md +32 -12
- package/pipeline/skills/shared/external/apple-on-device-ai/references/mlx-swift.md +34 -30
- package/pipeline/skills/shared/external/authentication/SKILL.md +134 -138
- package/pipeline/skills/shared/external/authentication/evals/evals.json +48 -0
- package/pipeline/skills/shared/external/authentication/references/keychain-biometric.md +56 -29
- package/pipeline/skills/shared/external/authentication/references/passkeys.md +183 -0
- package/pipeline/skills/shared/external/avkit/SKILL.md +497 -0
- package/pipeline/skills/shared/external/avkit/evals/evals.json +55 -0
- package/pipeline/skills/shared/external/avkit/references/avkit-patterns.md +668 -0
- package/pipeline/skills/shared/external/background-processing/SKILL.md +29 -29
- package/pipeline/skills/shared/external/background-processing/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/background-processing/references/background-task-patterns.md +44 -19
- package/pipeline/skills/shared/external/callkit-voip/SKILL.md +136 -99
- package/pipeline/skills/shared/external/callkit-voip/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/callkit-voip/references/callkit-patterns.md +27 -8
- package/pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md +7 -6
- package/pipeline/skills/shared/external/clean-code/SKILL.md +2 -2
- package/pipeline/skills/shared/external/cloudkit-sync/SKILL.md +63 -56
- package/pipeline/skills/shared/external/cloudkit-sync/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/cloudkit-sync/references/cloudkit-patterns.md +7 -4
- package/pipeline/skills/shared/external/contacts-framework/SKILL.md +31 -11
- package/pipeline/skills/shared/external/contacts-framework/evals/evals.json +41 -0
- package/pipeline/skills/shared/external/contacts-framework/references/contacts-patterns.md +51 -51
- package/pipeline/skills/shared/external/core-bluetooth/SKILL.md +70 -65
- package/pipeline/skills/shared/external/core-bluetooth/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/core-bluetooth/references/ble-patterns.md +25 -1
- package/pipeline/skills/shared/external/core-data/SKILL.md +496 -0
- package/pipeline/skills/shared/external/core-data/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/core-motion/SKILL.md +47 -14
- package/pipeline/skills/shared/external/core-motion/evals/evals.json +49 -0
- package/pipeline/skills/shared/external/core-motion/references/motion-patterns.md +47 -16
- package/pipeline/skills/shared/external/core-nfc/SKILL.md +43 -54
- package/pipeline/skills/shared/external/core-nfc/evals/evals.json +49 -0
- package/pipeline/skills/shared/external/core-nfc/references/nfc-patterns.md +32 -2
- package/pipeline/skills/shared/external/coreml/SKILL.md +89 -48
- package/pipeline/skills/shared/external/coreml/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/coreml/references/coreml-swift-integration.md +82 -37
- package/pipeline/skills/shared/external/cryptokit/SKILL.md +493 -0
- package/pipeline/skills/shared/external/cryptokit/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/cryptokit/references/cryptokit-patterns.md +602 -0
- package/pipeline/skills/shared/external/css-modern/SKILL.md +3 -2
- package/pipeline/skills/shared/external/database-patterns/SKILL.md +6 -5
- package/pipeline/skills/shared/external/debugging-instruments/SKILL.md +77 -47
- package/pipeline/skills/shared/external/debugging-instruments/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/debugging-instruments/references/instruments-guide.md +42 -34
- package/pipeline/skills/shared/external/debugging-instruments/references/lldb-patterns.md +2 -2
- package/pipeline/skills/shared/external/device-integrity/SKILL.md +136 -176
- package/pipeline/skills/shared/external/device-integrity/evals/evals.json +45 -0
- package/pipeline/skills/shared/external/device-integrity/references/device-integrity-patterns.md +240 -0
- package/pipeline/skills/shared/external/energykit/SKILL.md +73 -34
- package/pipeline/skills/shared/external/energykit/evals/evals.json +45 -0
- package/pipeline/skills/shared/external/energykit/references/energykit-patterns.md +80 -38
- package/pipeline/skills/shared/external/eventkit-calendar/SKILL.md +67 -53
- package/pipeline/skills/shared/external/eventkit-calendar/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/eventkit-calendar/references/eventkit-patterns.md +53 -3
- package/pipeline/skills/shared/external/healthkit/SKILL.md +57 -124
- package/pipeline/skills/shared/external/healthkit/evals/evals.json +46 -0
- package/pipeline/skills/shared/external/healthkit/references/healthkit-patterns.md +82 -1
- package/pipeline/skills/shared/external/homekit-matter/SKILL.md +43 -41
- package/pipeline/skills/shared/external/homekit-matter/evals/evals.json +45 -0
- package/pipeline/skills/shared/external/homekit-matter/references/matter-commissioning.md +13 -8
- package/pipeline/skills/shared/external/html-semantic/SKILL.md +5 -4
- package/pipeline/skills/shared/external/humanizer/SKILL.md +4 -4
- package/pipeline/skills/shared/external/ios-accessibility/SKILL.md +174 -18
- package/pipeline/skills/shared/external/ios-accessibility/evals/evals.json +49 -0
- package/pipeline/skills/shared/external/ios-accessibility/references/a11y-patterns.md +262 -4
- package/pipeline/skills/shared/external/ios-accessibility/references/media-accessibility.md +117 -0
- package/pipeline/skills/shared/external/ios-accessibility/references/nutrition-labels.md +141 -0
- package/pipeline/skills/shared/external/ios-localization/SKILL.md +67 -14
- package/pipeline/skills/shared/external/ios-localization/evals/evals.json +49 -0
- package/pipeline/skills/shared/external/ios-localization/references/formatstyle-locale.md +20 -3
- package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +131 -22
- package/pipeline/skills/shared/external/ios-networking/SKILL.md +69 -22
- package/pipeline/skills/shared/external/ios-networking/evals/evals.json +50 -0
- package/pipeline/skills/shared/external/ios-networking/references/background-websocket.md +28 -16
- package/pipeline/skills/shared/external/ios-networking/references/file-storage-patterns.md +354 -0
- package/pipeline/skills/shared/external/ios-networking/references/network-framework.md +69 -44
- package/pipeline/skills/shared/external/ios-networking/references/urlsession-patterns.md +35 -69
- package/pipeline/skills/shared/external/ios-security/references/file-storage-patterns.md +8 -8
- package/pipeline/skills/shared/external/ios-simulator/SKILL.md +485 -0
- package/pipeline/skills/shared/external/ios-simulator/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/ios-simulator/references/simctl-commands.md +316 -0
- package/pipeline/skills/shared/external/live-activities/SKILL.md +120 -131
- package/pipeline/skills/shared/external/live-activities/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/live-activities/references/{live-activity-patterns.md → activitykit-patterns.md} +148 -63
- package/pipeline/skills/shared/external/mapkit-location/SKILL.md +40 -21
- package/pipeline/skills/shared/external/mapkit-location/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/mapkit-location/references/{corelocation-patterns.md → mapkit-corelocation-patterns.md} +88 -41
- package/pipeline/skills/shared/external/mapkit-location/references/mapkit-patterns.md +27 -24
- package/pipeline/skills/shared/external/metrickit-diagnostics/SKILL.md +129 -172
- package/pipeline/skills/shared/external/metrickit-diagnostics/evals/evals.json +46 -0
- package/pipeline/skills/shared/external/metrickit-diagnostics/references/metrickit-patterns.md +180 -0
- package/pipeline/skills/shared/external/musickit-audio/SKILL.md +45 -18
- package/pipeline/skills/shared/external/musickit-audio/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/musickit-audio/references/musickit-patterns.md +26 -6
- package/pipeline/skills/shared/external/natural-language/SKILL.md +48 -18
- package/pipeline/skills/shared/external/natural-language/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/natural-language/references/translation-patterns.md +20 -7
- package/pipeline/skills/shared/external/nextjs-app-router/SKILL.md +4 -3
- package/pipeline/skills/shared/external/passkit-wallet/SKILL.md +156 -66
- package/pipeline/skills/shared/external/passkit-wallet/evals/evals.json +51 -0
- package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +69 -19
- package/pipeline/skills/shared/external/pdfkit/SKILL.md +499 -0
- package/pipeline/skills/shared/external/pdfkit/evals/evals.json +42 -0
- package/pipeline/skills/shared/external/pdfkit/references/pdfkit-patterns.md +844 -0
- package/pipeline/skills/shared/external/pencilkit-drawing/SKILL.md +122 -28
- package/pipeline/skills/shared/external/pencilkit-drawing/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md +49 -18
- package/pipeline/skills/shared/external/permissionkit/SKILL.md +100 -51
- package/pipeline/skills/shared/external/permissionkit/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md +48 -8
- package/pipeline/skills/shared/external/photos-camera-media/SKILL.md +13 -15
- package/pipeline/skills/shared/external/photos-camera-media/references/camera-capture.md +4 -4
- package/pipeline/skills/shared/external/photos-camera-media/references/image-loading-caching.md +2 -2
- package/pipeline/skills/shared/external/photos-camera-media/references/{photospicker-patterns.md → photokit-patterns.md} +3 -3
- package/pipeline/skills/shared/external/push-notifications/SKILL.md +45 -48
- package/pipeline/skills/shared/external/push-notifications/evals/evals.json +46 -0
- package/pipeline/skills/shared/external/push-notifications/references/notification-patterns.md +22 -33
- package/pipeline/skills/shared/external/push-notifications/references/rich-notifications.md +56 -37
- package/pipeline/skills/shared/external/python-patterns/SKILL.md +4 -3
- package/pipeline/skills/shared/external/react-best-practices/SKILL.md +1 -0
- package/pipeline/skills/shared/external/realitykit-ar/SKILL.md +74 -53
- package/pipeline/skills/shared/external/realitykit-ar/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/realitykit-ar/references/realitykit-patterns.md +10 -10
- package/pipeline/skills/shared/external/rest-api-design/SKILL.md +21 -20
- package/pipeline/skills/shared/external/shareplay-activities/SKILL.md +81 -64
- package/pipeline/skills/shared/external/shareplay-activities/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/shareplay-activities/references/shareplay-patterns.md +48 -9
- package/pipeline/skills/shared/external/speech-recognition/SKILL.md +118 -104
- package/pipeline/skills/shared/external/speech-recognition/evals/evals.json +49 -0
- package/pipeline/skills/shared/external/speech-recognition/references/speechanalyzer-patterns.md +171 -0
- package/pipeline/skills/shared/external/spm-build-analysis/SKILL.md +93 -0
- package/pipeline/skills/shared/external/spm-build-analysis/references/build-optimization-sources.md +155 -0
- package/pipeline/skills/shared/external/spm-build-analysis/references/recommendation-format.md +85 -0
- package/pipeline/skills/shared/external/spm-build-analysis/references/spm-analysis-checks.md +105 -0
- package/pipeline/skills/shared/external/spm-build-analysis/scripts/check_spm_pins.py +118 -0
- package/pipeline/skills/shared/external/storekit/SKILL.md +110 -44
- package/pipeline/skills/shared/external/storekit/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/storekit/references/app-review-guidelines.md +94 -43
- package/pipeline/skills/shared/external/storekit/references/storekit-advanced.md +82 -33
- package/pipeline/skills/shared/external/swift-api-design-guidelines/SKILL.md +449 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/evals/evals.json +50 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/argument-labels-and-parameters.md +164 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/conventions-and-special-rules.md +219 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/naming-and-clarity.md +184 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/side-effects-and-mutating-pairs.md +158 -0
- package/pipeline/skills/shared/external/swift-architecture/SKILL.md +499 -0
- package/pipeline/skills/shared/external/swift-architecture/evals/evals.json +45 -0
- package/pipeline/skills/shared/external/swift-charts/SKILL.md +52 -40
- package/pipeline/skills/shared/external/swift-charts/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/swift-charts/references/charts-patterns.md +92 -11
- package/pipeline/skills/shared/external/swift-codable/SKILL.md +43 -16
- package/pipeline/skills/shared/external/swift-codable/evals/evals.json +43 -0
- package/pipeline/skills/shared/external/swift-concurrency/SKILL.md +50 -30
- package/pipeline/skills/shared/external/swift-concurrency/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/approachable-concurrency.md +11 -4
- package/pipeline/skills/shared/external/swift-concurrency/references/async-algorithms.md +113 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/bridging-interop.md +150 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/{swift-6-2-concurrency.md → concurrency-patterns.md} +22 -11
- package/pipeline/skills/shared/external/swift-concurrency/references/diagnostics.md +52 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/swiftui-concurrency.md +2 -2
- package/pipeline/skills/shared/external/swift-concurrency/references/synchronization-primitives.md +21 -15
- package/pipeline/skills/shared/external/swift-concurrency-expert/SKILL.md +3 -3
- package/pipeline/skills/shared/external/swift-concurrency-pro/SKILL.md +2 -2
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/actors.md +3 -3
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/async-streams.md +1 -1
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/bridging.md +3 -3
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/bug-patterns.md +3 -3
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/cancellation.md +8 -8
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/diagnostics.md +1 -1
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/hotspots.md +2 -2
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/interop.md +4 -4
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/new-features.md +1 -1
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/structured.md +2 -2
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/testing.md +2 -2
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/unstructured.md +3 -3
- package/pipeline/skills/shared/external/swift-formatstyle/SKILL.md +339 -0
- package/pipeline/skills/shared/external/swift-language/SKILL.md +33 -34
- package/pipeline/skills/shared/external/swift-language/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/swift-language/references/swift-attributes-interop.md +97 -0
- package/pipeline/skills/shared/external/swift-language/references/swift-patterns-extended.md +19 -6
- package/pipeline/skills/shared/external/swift-security/SKILL.md +195 -0
- package/pipeline/skills/shared/external/swift-security/evals/evals.json +48 -0
- package/pipeline/skills/shared/external/swift-security/references/biometric-authentication.md +595 -0
- package/pipeline/skills/shared/external/swift-security/references/certificate-trust.md +611 -0
- package/pipeline/skills/shared/external/swift-security/references/common-anti-patterns.md +708 -0
- package/pipeline/skills/shared/external/swift-security/references/compliance-owasp-mapping.md +573 -0
- package/pipeline/skills/shared/external/swift-security/references/credential-storage-patterns.md +752 -0
- package/pipeline/skills/shared/external/swift-security/references/cryptokit-public-key.md +538 -0
- package/pipeline/skills/shared/external/swift-security/references/cryptokit-symmetric.md +530 -0
- package/pipeline/skills/shared/external/swift-security/references/keychain-access-control.md +543 -0
- package/pipeline/skills/shared/external/swift-security/references/keychain-fundamentals.md +620 -0
- package/pipeline/skills/shared/external/swift-security/references/keychain-item-classes.md +515 -0
- package/pipeline/skills/shared/external/swift-security/references/keychain-sharing.md +496 -0
- package/pipeline/skills/shared/external/swift-security/references/migration-legacy-stores.md +747 -0
- package/pipeline/skills/shared/external/swift-security/references/secure-enclave.md +566 -0
- package/pipeline/skills/shared/external/swift-security/references/testing-security-code.md +813 -0
- package/pipeline/skills/shared/external/swift-testing/SKILL.md +97 -297
- package/pipeline/skills/shared/external/swift-testing/evals/evals.json +44 -0
- package/pipeline/skills/shared/external/swift-testing/references/testing-advanced.md +123 -0
- package/pipeline/skills/shared/external/swift-testing/references/testing-patterns.md +162 -34
- package/pipeline/skills/shared/external/swift-testing-pro/SKILL.md +2 -2
- package/pipeline/skills/shared/external/swift-testing-pro/references/async-tests.md +3 -3
- package/pipeline/skills/shared/external/swift-testing-pro/references/core-rules.md +2 -2
- package/pipeline/skills/shared/external/swift-testing-pro/references/migrating-from-xctest.md +5 -5
- package/pipeline/skills/shared/external/swift-testing-pro/references/new-features.md +3 -3
- package/pipeline/skills/shared/external/swift-testing-pro/references/writing-better-tests.md +5 -5
- package/pipeline/skills/shared/external/swiftdata/SKILL.md +44 -23
- package/pipeline/skills/shared/external/swiftdata/evals/evals.json +47 -0
- package/pipeline/skills/shared/external/swiftdata/references/core-data-coexistence.md +3 -3
- package/pipeline/skills/shared/external/swiftdata/references/indexing.md +75 -0
- package/pipeline/skills/shared/external/swiftdata/references/predicate-pitfalls.md +54 -0
- package/pipeline/skills/shared/external/swiftdata/references/swiftdata-advanced.md +14 -10
- package/pipeline/skills/shared/external/swiftdata/references/swiftdata-queries.md +5 -5
- package/pipeline/skills/shared/external/swiftdata-pro/SKILL.md +2 -2
- package/pipeline/skills/shared/external/swiftdata-pro/references/class-inheritance.md +2 -2
- package/pipeline/skills/shared/external/swiftdata-pro/references/cloudkit.md +1 -1
- package/pipeline/skills/shared/external/swiftdata-pro/references/core-rules.md +6 -6
- package/pipeline/skills/shared/external/swiftlint/SKILL.md +337 -0
- package/pipeline/skills/shared/external/swiftlint/references/adoption-and-configuration.md +297 -0
- package/pipeline/skills/shared/external/swiftlint/references/custom-rules-and-analyze.md +170 -0
- package/pipeline/skills/shared/external/swiftlint/references/plugins-run-scripts-and-integrations.md +307 -0
- package/pipeline/skills/shared/external/swiftlint/references/rule-reference.md +35 -0
- package/pipeline/skills/shared/external/swiftlint/references/rules-suppressions-and-baselines.md +306 -0
- package/pipeline/skills/shared/external/swiftui-animation/SKILL.md +56 -65
- package/pipeline/skills/shared/external/swiftui-animation/references/animation-advanced.md +48 -44
- package/pipeline/skills/shared/external/swiftui-animation/references/core-animation-bridge.md +6 -6
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts-accessibility.md +13 -13
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts.md +3 -3
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/image-optimization.md +1 -1
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/latest-apis.md +4 -4
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/layout-best-practices.md +2 -2
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/list-patterns.md +1 -1
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-scenes.md +16 -16
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-views.md +11 -11
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-window-styling.md +7 -7
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/state-management.md +5 -5
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/view-structure.md +6 -6
- package/pipeline/skills/shared/external/swiftui-gestures/SKILL.md +38 -16
- package/pipeline/skills/shared/external/swiftui-gestures/references/gesture-patterns.md +13 -3
- package/pipeline/skills/shared/external/swiftui-layout-components/SKILL.md +32 -28
- package/pipeline/skills/shared/external/swiftui-layout-components/references/form.md +1 -1
- package/pipeline/skills/shared/external/swiftui-layout-components/references/grids.md +202 -41
- package/pipeline/skills/shared/external/swiftui-layout-components/references/list.md +16 -25
- package/pipeline/skills/shared/external/swiftui-layout-components/references/scrollview.md +71 -26
- package/pipeline/skills/shared/external/swiftui-liquid-glass/SKILL.md +284 -65
- package/pipeline/skills/shared/external/swiftui-liquid-glass/references/liquid-glass.md +387 -0
- package/pipeline/skills/shared/external/swiftui-navigation/SKILL.md +10 -10
- package/pipeline/skills/shared/external/swiftui-navigation/references/deeplinks.md +15 -3
- package/pipeline/skills/shared/external/swiftui-navigation/references/navigationstack.md +2 -2
- package/pipeline/skills/shared/external/swiftui-navigation/references/tabview.md +1 -1
- package/pipeline/skills/shared/external/swiftui-patterns/SKILL.md +51 -25
- package/pipeline/skills/shared/external/swiftui-patterns/references/architecture-patterns.md +78 -6
- package/pipeline/skills/shared/external/swiftui-patterns/references/deprecated-migration.md +161 -16
- package/pipeline/skills/shared/external/swiftui-patterns/references/design-polish.md +85 -27
- package/pipeline/skills/shared/external/swiftui-patterns/references/platform-and-sharing.md +37 -33
- package/pipeline/skills/shared/external/swiftui-performance/SKILL.md +39 -51
- package/pipeline/skills/shared/external/swiftui-performance/references/demystify-swiftui-performance-wwdc23.md +204 -30
- package/pipeline/skills/shared/external/swiftui-performance/references/optimizing-swiftui-performance-instruments.md +226 -21
- package/pipeline/skills/shared/external/swiftui-performance/references/understanding-hangs-in-your-app.md +220 -20
- package/pipeline/skills/shared/external/swiftui-performance/references/understanding-improving-swiftui-performance.md +159 -34
- package/pipeline/skills/shared/external/swiftui-performance/references/wwdc-session-sources.md +27 -0
- package/pipeline/skills/shared/external/swiftui-pro/SKILL.md +2 -2
- package/pipeline/skills/shared/external/swiftui-pro/references/accessibility.md +4 -4
- package/pipeline/skills/shared/external/swiftui-pro/references/api.md +1 -1
- package/pipeline/skills/shared/external/swiftui-pro/references/data.md +2 -2
- package/pipeline/skills/shared/external/swiftui-pro/references/design.md +4 -4
- package/pipeline/skills/shared/external/swiftui-pro/references/hygiene.md +2 -2
- package/pipeline/skills/shared/external/swiftui-pro/references/navigation.md +1 -1
- package/pipeline/skills/shared/external/swiftui-pro/references/performance.md +1 -1
- package/pipeline/skills/shared/external/swiftui-pro/references/swift.md +2 -2
- package/pipeline/skills/shared/external/swiftui-pro/references/views.md +2 -2
- package/pipeline/skills/shared/external/swiftui-ui-patterns/SKILL.md +1 -1
- package/pipeline/skills/shared/external/swiftui-uikit-interop/SKILL.md +12 -12
- package/pipeline/skills/shared/external/swiftui-uikit-interop/references/hosting-migration.md +3 -3
- package/pipeline/skills/shared/external/swiftui-uikit-interop/references/representable-recipes.md +1 -1
- package/pipeline/skills/shared/external/swiftui-webkit/SKILL.md +11 -11
- package/pipeline/skills/shared/external/swiftui-webkit/references/migration-and-fallbacks.md +124 -10
- package/pipeline/skills/shared/external/tailwind-css/SKILL.md +3 -2
- package/pipeline/skills/shared/external/testing-backend/SKILL.md +2 -1
- package/pipeline/skills/shared/external/tipkit/SKILL.md +3 -3
- package/pipeline/skills/shared/external/tipkit/references/tipkit-patterns.md +9 -9
- package/pipeline/skills/shared/external/typescript-patterns/SKILL.md +17 -16
- package/pipeline/skills/shared/external/vision-framework/SKILL.md +11 -11
- package/pipeline/skills/shared/external/vision-framework/references/vision-requests.md +1 -1
- package/pipeline/skills/shared/external/vision-framework/references/visionkit-scanner.md +5 -5
- package/pipeline/skills/shared/external/vue-composition/SKILL.md +7 -6
- package/pipeline/skills/shared/external/weatherkit/SKILL.md +3 -3
- package/pipeline/skills/shared/external/weatherkit/references/weatherkit-patterns.md +9 -9
- package/pipeline/skills/shared/external/web-accessibility/SKILL.md +1 -0
- package/pipeline/skills/shared/external/web-performance/SKILL.md +8 -7
- package/pipeline/skills/shared/external/web-testing/SKILL.md +7 -6
- package/pipeline/skills/shared/external/widgetkit/SKILL.md +23 -17
- package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +99 -0
- package/pipeline/skills/shared/external/xcode-build-benchmark/SKILL.md +89 -0
- package/pipeline/skills/shared/external/xcode-build-benchmark/references/benchmark-artifacts.md +94 -0
- package/pipeline/skills/shared/external/xcode-build-benchmark/references/benchmarking-workflow.md +67 -0
- package/pipeline/skills/shared/external/xcode-build-benchmark/schemas/build-benchmark.schema.json +230 -0
- package/pipeline/skills/shared/external/xcode-build-benchmark/scripts/benchmark_builds.py +308 -0
- package/pipeline/skills/shared/external/xcode-build-fixer/SKILL.md +219 -0
- package/pipeline/skills/shared/external/xcode-build-fixer/references/build-settings-best-practices.md +216 -0
- package/pipeline/skills/shared/external/xcode-build-fixer/references/fix-patterns.md +290 -0
- package/pipeline/skills/shared/external/xcode-build-fixer/references/recommendation-format.md +85 -0
- package/pipeline/skills/shared/external/xcode-build-fixer/scripts/benchmark_builds.py +308 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/SKILL.md +157 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/references/benchmark-artifacts.md +94 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/references/build-settings-best-practices.md +216 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/references/orchestration-report-template.md +143 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/references/recommendation-format.md +85 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/scripts/benchmark_builds.py +308 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/scripts/diagnose_compilation.py +273 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/scripts/generate_optimization_report.py +533 -0
- package/pipeline/skills/shared/external/xcode-compilation-analyzer/SKILL.md +90 -0
- package/pipeline/skills/shared/external/xcode-compilation-analyzer/references/build-optimization-sources.md +155 -0
- package/pipeline/skills/shared/external/xcode-compilation-analyzer/references/code-compilation-checks.md +106 -0
- package/pipeline/skills/shared/external/xcode-compilation-analyzer/references/recommendation-format.md +85 -0
- package/pipeline/skills/shared/external/xcode-compilation-analyzer/scripts/diagnose_compilation.py +273 -0
- package/pipeline/skills/shared/external/xcode-project-analyzer/SKILL.md +77 -0
- package/pipeline/skills/shared/external/xcode-project-analyzer/references/build-optimization-sources.md +155 -0
- package/pipeline/skills/shared/external/xcode-project-analyzer/references/build-settings-best-practices.md +216 -0
- package/pipeline/skills/shared/external/xcode-project-analyzer/references/project-audit-checks.md +101 -0
- package/pipeline/skills/shared/external/xcode-project-analyzer/references/recommendation-format.md +85 -0
- package/pipeline/skills/skills-index.md +213 -192
- package/docs/GENERICITY-REVIEW.md +0 -277
- package/docs/STABILITY-FIX-PLAN.md +0 -168
- package/pipeline/scripts/.last-figma-sync-plan.json +0 -23
- package/pipeline/scripts/README-figma-smokes.md +0 -34
- package/pipeline/scripts/figma-placeholder-map.json +0 -191
- package/pipeline/scripts/import-figma-skills.sh +0 -253
- package/pipeline/scripts/smoke-figma-config-schema.sh +0 -144
- package/pipeline/scripts/smoke-figma-skill-import.sh +0 -174
- package/pipeline/scripts/smoke-install-leak-gate.sh +0 -125
- package/pipeline/scripts/smoke-personal-data.sh +0 -82
- package/pipeline/scripts/sync-figma-source.sh +0 -228
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-page-ids.json +0 -94
- package/pipeline/skills/shared/external/app-store-review/references/code-signing.md +0 -259
- package/pipeline/skills/shared/external/app-store-review/references/rejection-patterns.md +0 -152
- package/pipeline/skills/shared/external/pencilkit-drawing/references/paperkit-integration.md +0 -376
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file OpenAI Codex CLI adapter.
|
|
3
|
+
*
|
|
4
|
+
* Codex CLI is a GLOBAL-config tool, not a per-project rule consumer like
|
|
5
|
+
* Cursor / Antigravity / Copilot Chat. Its custom prompts (slash commands) and
|
|
6
|
+
* MCP servers live under `~/.codex/`, and there is no project-level prompt
|
|
7
|
+
* directory. The only project-scoped hook Codex reads is `AGENTS.md` (the shared
|
|
8
|
+
* open standard), which the Antigravity adapter already writes when installed.
|
|
9
|
+
*
|
|
10
|
+
* Therefore this adapter writes Codex's REAL surfaces, all global, and ignores
|
|
11
|
+
* the per-project `target`:
|
|
12
|
+
* ~/.codex/prompts/multi-agent.md the 8-phase orchestration as a /multi-agent
|
|
13
|
+
* slash command (sequential - Codex has no
|
|
14
|
+
* subagent fan-out, so parallel review
|
|
15
|
+
* degrades to a sequential two-pass)
|
|
16
|
+
* ~/.codex/AGENTS.md marker-wrapped global context block (rules
|
|
17
|
+
* pointer + skill index)
|
|
18
|
+
* ~/.codex/config.toml marker-wrapped [mcp_servers.dev-toolkit]
|
|
19
|
+
* registration (TOML managed block)
|
|
20
|
+
*
|
|
21
|
+
* Shared gate scripts install to the common `~/.multi-agent/` runtime, same as
|
|
22
|
+
* the other adapters.
|
|
23
|
+
*
|
|
24
|
+
* @module pipeline/adapters/codex
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
import { writeFileSync } from "fs";
|
|
28
|
+
import { join } from "path";
|
|
29
|
+
import {
|
|
30
|
+
collectSkills,
|
|
31
|
+
ensureDir,
|
|
32
|
+
installSharedRuntime,
|
|
33
|
+
removeFileAndPrune,
|
|
34
|
+
removeManagedBlock,
|
|
35
|
+
renderSkillIndex,
|
|
36
|
+
replaceManagedBlock,
|
|
37
|
+
rewriteScriptRefs,
|
|
38
|
+
uninstallSharedRuntime,
|
|
39
|
+
withoutOrchestrationSkills,
|
|
40
|
+
} from "./_base.mjs";
|
|
41
|
+
|
|
42
|
+
const NAME = "codex";
|
|
43
|
+
|
|
44
|
+
// TOML cannot host HTML-comment markers, so config.toml uses its own
|
|
45
|
+
// `#`-comment managed block (kept independent of _base's MARKER_BEGIN/END).
|
|
46
|
+
const TOML_MARKERS = Object.freeze({
|
|
47
|
+
begin: "# multi-agent-pipeline:begin",
|
|
48
|
+
end: "# multi-agent-pipeline:end",
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
function codexHome() {
|
|
52
|
+
const home = process.env.HOME || process.env.USERPROFILE;
|
|
53
|
+
if (!home) throw new Error("$HOME (or $USERPROFILE) is not set");
|
|
54
|
+
return join(home, ".codex");
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* @param {{ pipelineSrc: string, target?: string, platformFilter?: "all"|"ios"|"android" }} opts
|
|
59
|
+
*/
|
|
60
|
+
export function install({ pipelineSrc, platformFilter = "all" }) {
|
|
61
|
+
const base = codexHome();
|
|
62
|
+
|
|
63
|
+
// 1. Slash command -> ~/.codex/prompts/multi-agent.md
|
|
64
|
+
const promptsDir = join(base, "prompts");
|
|
65
|
+
ensureDir(promptsDir);
|
|
66
|
+
writeFileSync(join(promptsDir, "multi-agent.md"), rewriteScriptRefs(ORCHESTRATION_PROMPT));
|
|
67
|
+
|
|
68
|
+
// 2. Global context block -> ~/.codex/AGENTS.md
|
|
69
|
+
const skills = withoutOrchestrationSkills(collectSkills(pipelineSrc, platformFilter));
|
|
70
|
+
const ctxAction = replaceManagedBlock(join(base, "AGENTS.md"), renderContext(skills));
|
|
71
|
+
|
|
72
|
+
// 3. MCP registration -> ~/.codex/config.toml
|
|
73
|
+
const mcp = mergeTomlMcp(join(base, "config.toml"));
|
|
74
|
+
|
|
75
|
+
// 4. Shared runtime so the prompt's gate-script references resolve + run.
|
|
76
|
+
installSharedRuntime(pipelineSrc);
|
|
77
|
+
|
|
78
|
+
console.log(
|
|
79
|
+
` -> [codex] prompts/multi-agent.md + AGENTS.md (${ctxAction}) + config.toml mcp (${mcp})`,
|
|
80
|
+
);
|
|
81
|
+
console.log(
|
|
82
|
+
" -> [codex] global install under ~/.codex (prompts + MCP are global; Codex has no per-project prompt dir).",
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Codex writes only to ~/.codex, so uninstall ignores `target`.
|
|
88
|
+
*/
|
|
89
|
+
export function uninstall() {
|
|
90
|
+
const base = codexHome();
|
|
91
|
+
let removed = removeFileAndPrune(join(base, "prompts", "multi-agent.md"));
|
|
92
|
+
|
|
93
|
+
if (removeManagedBlock(join(base, "AGENTS.md")).startsWith("removed")) removed++;
|
|
94
|
+
if (removeManagedBlock(join(base, "config.toml"), { markers: TOML_MARKERS }).startsWith("removed")) removed++;
|
|
95
|
+
if (uninstallSharedRuntime()) removed++;
|
|
96
|
+
|
|
97
|
+
return { removed };
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function renderContext(skills) {
|
|
101
|
+
return renderSkillIndex({
|
|
102
|
+
title: "# multi-agent-pipeline (Codex CLI)",
|
|
103
|
+
intro: [
|
|
104
|
+
"> Installed by @mmerterden/multi-agent-pipeline. Run the pipeline with the",
|
|
105
|
+
"> `/multi-agent` slash command (defined in `~/.codex/prompts/multi-agent.md`).",
|
|
106
|
+
"> The dev-toolkit MCP server is registered in `~/.codex/config.toml`.",
|
|
107
|
+
"> Below is the reference skill index. Remove with",
|
|
108
|
+
"> `npx @mmerterden/multi-agent-pipeline uninstall --codex`.",
|
|
109
|
+
],
|
|
110
|
+
skills,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
const MCP_BLOCK_BODY = [
|
|
115
|
+
"[mcp_servers.dev-toolkit]",
|
|
116
|
+
'command = "npx"',
|
|
117
|
+
'args = ["-y", "@mmerterden/dev-toolkit-mcp"]',
|
|
118
|
+
].join("\n");
|
|
119
|
+
|
|
120
|
+
function mergeTomlMcp(tomlPath) {
|
|
121
|
+
ensureDir(join(tomlPath, ".."));
|
|
122
|
+
const action = replaceManagedBlock(tomlPath, MCP_BLOCK_BODY, { markers: TOML_MARKERS });
|
|
123
|
+
// A managed block landing in a pre-existing user TOML is a "merged" config.
|
|
124
|
+
return action === "appended" ? "merged" : action;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const ORCHESTRATION_PROMPT = `# /multi-agent - run the pipeline in Codex CLI
|
|
128
|
+
|
|
129
|
+
> Installed by @mmerterden/multi-agent-pipeline. Codex runs a single agent loop
|
|
130
|
+
> (no file-declared subagents and no parallel subagent fan-out), so this prompt
|
|
131
|
+
> encodes the 8-phase orchestration sequentially. The standing conventions (TDD,
|
|
132
|
+
> security, code-review, git) live in the skill index in \`~/.codex/AGENTS.md\`.
|
|
133
|
+
> Pickers/approvals follow refs/picker-contract.md - use a numbered prompt and
|
|
134
|
+
> wait for the user's choice. The dev-toolkit MCP server is registered in
|
|
135
|
+
> \`~/.codex/config.toml\`.
|
|
136
|
+
>
|
|
137
|
+
> GATE SCRIPTS: the deterministic-gate scripts are installed to a shared
|
|
138
|
+
> \`$HOME/.multi-agent/scripts/\` runtime (evidence-gate.mjs, classify-intent.sh,
|
|
139
|
+
> learnings-ledger.mjs, validate-triage.mjs, pre-commit-check.sh, ...). Invoke
|
|
140
|
+
> them by that absolute path as explicit steps - there is no PreToolUse hook
|
|
141
|
+
> forcing them, so they are workflow-enforced, not OS-blocked.
|
|
142
|
+
|
|
143
|
+
Input: a Jira id, GitHub issue, repo#N, or free-text task.
|
|
144
|
+
|
|
145
|
+
Run these phases in order, obeying every convention in \`~/.codex/AGENTS.md\`:
|
|
146
|
+
|
|
147
|
+
0. **Init** - detect stack, resolve branch (\`bugfix/…\` / \`feature/…\`), confirm scope.
|
|
148
|
+
1. **Analysis** - explore the codebase; produce a structured analysis: stack, touchedAreas[], risks[], summary.
|
|
149
|
+
2. **Planning** - draft the task breakdown; present it and ask the user to Approve / Cancel / edit (picker-contract). Loop on edits until approved.
|
|
150
|
+
3. **Dev** - implement TDD-first (test -> code -> build), following the conventions.
|
|
151
|
+
4. **Review** - Codex has no parallel subagents, so run review as a sequential two-pass: first a correctness/security pass, then a separate fresh-context pass that tries to REFUTE the first pass's findings (adversarial verify). Add a stack-architect lens (iOS / Android / backend) and a security pass when auth/secrets are touched. Merge findings, triage (accept / defer / reject), fix accepted blocking/important items, re-review.
|
|
152
|
+
5. **Test** - offer an interactive test pass (picker); use the dev-toolkit MCP server for simulator / emulator / web checks.
|
|
153
|
+
6. **Commit** - \`{type}(scope): description\`; never auto-close issues; PR uses \`Ref: #N\`.
|
|
154
|
+
7. **Report** - summarize changes, the review passes, and cost.
|
|
155
|
+
|
|
156
|
+
No "AI / generated by" in code or commits. Attribute each finding to the review pass that raised it.
|
|
157
|
+
`;
|
|
158
|
+
|
|
159
|
+
export default { name: NAME, install, uninstall };
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file VS Code Copilot Chat orchestration layer - emits the FULL-pipeline
|
|
3
|
+
* artifacts so the pipeline runs in VS Code Copilot Chat agent mode, not just
|
|
4
|
+
* the knowledge layer.
|
|
5
|
+
*
|
|
6
|
+
* VS Code Copilot Chat (2026) supports file-based custom agents
|
|
7
|
+
* (`.github/agents/*.agent.md`, with `description` / `tools` / `model` /
|
|
8
|
+
* `agents` / `handoffs`) and prompt-file commands (`.github/prompts/*.prompt.md`),
|
|
9
|
+
* plus native tool-approval / confirmation dialogs (the picker-contract render
|
|
10
|
+
* target for this platform). Parallelism is handoff-driven rather than a
|
|
11
|
+
* concurrent fan-out, so the review phase runs the reviewers as orchestrated
|
|
12
|
+
* sub-agents.
|
|
13
|
+
*
|
|
14
|
+
* Emits:
|
|
15
|
+
* .github/agents/ma-*.agent.md one custom agent per pipeline persona
|
|
16
|
+
* .github/prompts/multi-agent.prompt.md the /multi-agent orchestration driver
|
|
17
|
+
* .vscode/mcp.json dev-toolkit MCP registration (merged)
|
|
18
|
+
*
|
|
19
|
+
* @module pipeline/adapters/copilot-chat-orchestration
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
import { writeFileSync } from "fs";
|
|
23
|
+
import { join } from "path";
|
|
24
|
+
import {
|
|
25
|
+
ensureDir,
|
|
26
|
+
installPersonaAgents,
|
|
27
|
+
installSharedRuntime,
|
|
28
|
+
mergeMcpJson,
|
|
29
|
+
removeFileAndPrune,
|
|
30
|
+
removePrefixedFiles,
|
|
31
|
+
REVIEWER_MODELS,
|
|
32
|
+
rewriteScriptRefs,
|
|
33
|
+
uninstallSharedRuntime,
|
|
34
|
+
unmergeMcpJson,
|
|
35
|
+
} from "./_base.mjs";
|
|
36
|
+
|
|
37
|
+
const AGENT_PREFIX = "ma-";
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @param {{ pipelineSrc: string, target: string }} opts
|
|
41
|
+
*/
|
|
42
|
+
export function installOrchestration({ pipelineSrc, target }) {
|
|
43
|
+
// The code-reviewer pins a Claude model; every other persona inherits the
|
|
44
|
+
// picker model (omit `model`). The cross-vendor second reviewer is pinned to
|
|
45
|
+
// a different vendor so Phase 4 is a 2-model review (Claude + GPT) instead
|
|
46
|
+
// of single-model.
|
|
47
|
+
const cm = REVIEWER_MODELS.copilotChat.crossModel;
|
|
48
|
+
const { agents, names: personaNames } = installPersonaAgents({
|
|
49
|
+
pipelineSrc,
|
|
50
|
+
outDir: join(target, ".github", "agents"),
|
|
51
|
+
prefix: AGENT_PREFIX,
|
|
52
|
+
fileFor: (name) => `${AGENT_PREFIX}${name}.agent.md`,
|
|
53
|
+
render: renderAgent,
|
|
54
|
+
primaryOpts: (persona) => ({
|
|
55
|
+
model: persona === "code-reviewer" ? REVIEWER_MODELS.copilotChat.primary : null,
|
|
56
|
+
}),
|
|
57
|
+
crossReviewer: {
|
|
58
|
+
model: cm,
|
|
59
|
+
note: `Cross-vendor reviewer pinned to \`${cm}\` so Phase 4 runs two different models (vs the primary \`ma-code-reviewer\` on \`${REVIEWER_MODELS.copilotChat.primary}\`). Adjust the model labels to ones available in your Copilot plan.`,
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
const promptsOut = join(target, ".github", "prompts");
|
|
64
|
+
ensureDir(promptsOut);
|
|
65
|
+
writeFileSync(join(promptsOut, "multi-agent.prompt.md"), rewriteScriptRefs(renderDriver(personaNames)));
|
|
66
|
+
|
|
67
|
+
const mcp = mergeMcpJson(join(target, ".vscode", "mcp.json"), { rootKey: "servers" });
|
|
68
|
+
|
|
69
|
+
// Shared runtime so the agents' gate-script references resolve + run.
|
|
70
|
+
installSharedRuntime(pipelineSrc);
|
|
71
|
+
|
|
72
|
+
return { agents, mcp };
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @param {{ target: string }} opts
|
|
77
|
+
*/
|
|
78
|
+
export function uninstallOrchestration({ target }) {
|
|
79
|
+
let removed = removePrefixedFiles(join(target, ".github", "agents"), AGENT_PREFIX, ".agent.md");
|
|
80
|
+
const promptsDir = join(target, ".github", "prompts");
|
|
81
|
+
removed += removeFileAndPrune(join(promptsDir, "multi-agent.prompt.md"), promptsDir);
|
|
82
|
+
unmergeMcpJson(join(target, ".vscode", "mcp.json"), { rootKey: "servers" });
|
|
83
|
+
if (uninstallSharedRuntime()) removed++;
|
|
84
|
+
return { removed };
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function renderAgent(persona, frontmatter, body, opts = {}) {
|
|
88
|
+
const description = (frontmatter.description || `multi-agent pipeline ${persona}`).replace(/\n/g, " ").trim();
|
|
89
|
+
const tier = frontmatter.model || "inherit";
|
|
90
|
+
// VS Code Copilot Chat has no `inherit` keyword: OMIT `model` to inherit the
|
|
91
|
+
// picker's model, or pin a specific picker LABEL. (Writing `model: inherit`
|
|
92
|
+
// would name a non-existent model.) The agent name is derived from the filename.
|
|
93
|
+
const modelLine = opts.model ? [`model: ${opts.model}`] : [];
|
|
94
|
+
const fm = [
|
|
95
|
+
"---",
|
|
96
|
+
`description: ${JSON.stringify(description)}`,
|
|
97
|
+
"tools: ['codebase', 'search', 'usages']",
|
|
98
|
+
...modelLine,
|
|
99
|
+
"---",
|
|
100
|
+
"",
|
|
101
|
+
`> Pipeline persona \`${persona}\` (intended tier: ${tier}). Transformed for VS Code`,
|
|
102
|
+
"> Copilot Chat by @mmerterden/multi-agent-pipeline. Read-only analysis/review",
|
|
103
|
+
"> role; the main agent performs edits. Confirmations use the native approval UI",
|
|
104
|
+
"> (see refs/picker-contract.md).",
|
|
105
|
+
...(opts.note ? ["> ", `> ${opts.note}`] : []),
|
|
106
|
+
"",
|
|
107
|
+
].join("\n");
|
|
108
|
+
return `${fm}${rewriteScriptRefs(body.trim())}\n`;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function renderDriver(personaNames) {
|
|
112
|
+
const agentList = personaNames.map((n) => `\`${n}\``).join(", ");
|
|
113
|
+
return `---
|
|
114
|
+
mode: agent
|
|
115
|
+
description: "Run the multi-agent pipeline in VS Code Copilot Chat."
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
# /multi-agent - run the pipeline in VS Code Copilot Chat
|
|
119
|
+
|
|
120
|
+
> Installed by @mmerterden/multi-agent-pipeline. Drives the 8-phase pipeline
|
|
121
|
+
> using the custom agents in \`.github/agents/ma-*.agent.md\` and the dev-toolkit
|
|
122
|
+
> MCP server (\`.vscode/mcp.json\`). Confirmations/approvals use VS Code's native
|
|
123
|
+
> tool-approval dialogs (refs/picker-contract.md). Sub-agents available: ${agentList}.
|
|
124
|
+
>
|
|
125
|
+
> GATE SCRIPTS: installed at \`$HOME/.multi-agent/scripts/\` (evidence-gate.mjs,
|
|
126
|
+
> classify-intent.sh, learnings-ledger.mjs, validate-triage.mjs,
|
|
127
|
+
> pre-commit-check.sh); the agents invoke them there. Unlike Claude Code there is
|
|
128
|
+
> no PreToolUse hook forcing them, so they are workflow-enforced (run as steps)
|
|
129
|
+
> rather than OS-blocked.
|
|
130
|
+
|
|
131
|
+
Input: \${input:task:a Jira id, GitHub issue, repo#N, or free-text task}
|
|
132
|
+
|
|
133
|
+
Run the phases in order, following every \`.github/instructions/multi-agent-*\` file:
|
|
134
|
+
|
|
135
|
+
0. **Init** - detect stack, resolve branch (\`bugfix/…\` / \`feature/…\`), confirm scope.
|
|
136
|
+
1. **Analysis** - hand off to \`ma-explorer\`; produce stack / touchedAreas[] / risks[] / summary.
|
|
137
|
+
2. **Planning** - draft the task breakdown; present it and ask the user to Approve / Cancel / edit (native approval dialog). Loop on edits.
|
|
138
|
+
3. **Dev** - implement TDD-first (test -> code -> build), following the instructions; optionally \`ma-dev-critic\` before review.
|
|
139
|
+
4. **Review** - for cross-model coverage hand off to BOTH \`ma-code-reviewer\` (Claude) and \`ma-code-reviewer-x\` (GPT) as separate sessions so the code review runs on two vendors, plus the stack architect (\`ma-ios-architect\` / \`ma-android-architect\` / \`ma-backend-architect\`) and \`ma-security-auditor\` for auth/secret diffs. Merge findings, triage, record the \`consensus\` block (same-model agreement on judgment calls = \`unverified\`), fix accepted blocking/important, re-review.
|
|
140
|
+
5. **Test** - offer an interactive test pass; use the dev-toolkit MCP server for simulator / emulator / web checks.
|
|
141
|
+
6. **Commit** - \`{type}(scope): description\`; never auto-close issues; PR uses \`Ref: #N\`.
|
|
142
|
+
7. **Report** - summarize changes, per-reviewer consensus, and cost.
|
|
143
|
+
|
|
144
|
+
No "AI / generated by" in code or commits. Attribute each finding to the agent that raised it.
|
|
145
|
+
`;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export default { installOrchestration, uninstallOrchestration };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @file GitHub Copilot Chat adapter
|
|
2
|
+
* @file GitHub Copilot Chat adapter - emits `.github/copilot-instructions.md`
|
|
3
3
|
* (marker-wrapped) at the project root. Optionally also writes per-skill
|
|
4
4
|
* `.github/instructions/multi-agent-*.instructions.md` files which Copilot
|
|
5
5
|
* Chat picks up as scoped instructions.
|
|
6
6
|
*
|
|
7
7
|
* Note: this is **not** the same as `--copilot` (which targets the Copilot
|
|
8
|
-
* CLI's `~/.copilot/` configuration). Copilot Chat is a different product
|
|
8
|
+
* CLI's `~/.copilot/` configuration). Copilot Chat is a different product -
|
|
9
9
|
* the IDE-side chat that lives in VS Code / GitHub.com / JetBrains, reads
|
|
10
10
|
* repo-scoped instruction files, and has no subagent dispatch. So this
|
|
11
11
|
* adapter ports the knowledge layer only, like cursor/windsurf/cline.
|
|
@@ -13,18 +13,21 @@
|
|
|
13
13
|
* @module pipeline/adapters/copilot-chat
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
import { existsSync, readdirSync, rmSync, writeFileSync } from "fs";
|
|
17
16
|
import { join } from "path";
|
|
18
17
|
import {
|
|
18
|
+
collectSkills,
|
|
19
19
|
concatSkills,
|
|
20
20
|
ensureDir,
|
|
21
21
|
inferGlobs,
|
|
22
|
+
installAdapterFiles,
|
|
23
|
+
jsonString,
|
|
22
24
|
rel,
|
|
23
25
|
removeManagedBlock,
|
|
26
|
+
removePrefixedFiles,
|
|
24
27
|
replaceManagedBlock,
|
|
25
|
-
walkSkills,
|
|
26
28
|
withoutOrchestrationSkills,
|
|
27
29
|
} from "./_base.mjs";
|
|
30
|
+
import { installOrchestration, uninstallOrchestration } from "./copilot-chat-orchestration.mjs";
|
|
28
31
|
|
|
29
32
|
const NAME = "copilot-chat";
|
|
30
33
|
const MAIN_FILE = ".github/copilot-instructions.md";
|
|
@@ -52,74 +55,41 @@ export function install({ pipelineSrc, target, platformFilter = "all" }) {
|
|
|
52
55
|
// Chat applies it only when the user touches matching globs. Filename
|
|
53
56
|
// convention `<name>.instructions.md` is the GitHub Copilot Chat 2025+ format.
|
|
54
57
|
const perSkillOut = join(target, PER_SKILL_DIR);
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
written++;
|
|
62
|
-
}
|
|
58
|
+
const written = installAdapterFiles({
|
|
59
|
+
outDir: perSkillOut,
|
|
60
|
+
items: skills,
|
|
61
|
+
fileFor: (skill) => `${FILE_PREFIX}${skill.name}.instructions.md`,
|
|
62
|
+
render: renderInstructionFile,
|
|
63
|
+
});
|
|
63
64
|
console.log(
|
|
64
65
|
` -> [copilot-chat] ${written} per-skill instruction files in ${rel(target, perSkillOut)}`,
|
|
65
66
|
);
|
|
67
|
+
|
|
68
|
+
// Orchestration layer - custom agents + /multi-agent prompt + MCP, so the
|
|
69
|
+
// full pipeline runs in VS Code Copilot Chat agent mode.
|
|
70
|
+
const orch = installOrchestration({ pipelineSrc, target });
|
|
71
|
+
console.log(
|
|
72
|
+
` -> [copilot-chat] orchestration: ${orch.agents} custom agents (.github/agents/ma-*) + /multi-agent prompt + .vscode/mcp.json (${orch.mcp})`,
|
|
73
|
+
);
|
|
66
74
|
}
|
|
67
75
|
|
|
68
76
|
/**
|
|
69
77
|
* @param {{ target: string }} opts
|
|
70
78
|
*/
|
|
71
79
|
export function uninstall({ target }) {
|
|
72
|
-
const
|
|
73
|
-
const
|
|
80
|
+
const status = removeManagedBlock(join(target, MAIN_FILE));
|
|
81
|
+
const removed = removePrefixedFiles(join(target, PER_SKILL_DIR), FILE_PREFIX, ".instructions.md");
|
|
82
|
+
const orch = uninstallOrchestration({ target });
|
|
74
83
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
if (existsSync(perSkillOut)) {
|
|
78
|
-
for (const entry of readdirSync(perSkillOut, { withFileTypes: true })) {
|
|
79
|
-
if (!entry.isFile()) continue;
|
|
80
|
-
if (entry.name.startsWith(FILE_PREFIX) && entry.name.endsWith(".instructions.md")) {
|
|
81
|
-
rmSync(join(perSkillOut, entry.name), { force: true });
|
|
82
|
-
removed++;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
try {
|
|
86
|
-
if (readdirSync(perSkillOut).length === 0) {
|
|
87
|
-
rmSync(perSkillOut, { recursive: true, force: true });
|
|
88
|
-
}
|
|
89
|
-
} catch {
|
|
90
|
-
/* non-fatal */
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
// Don't touch .github itself — user may have other CI configs there
|
|
95
|
-
return { mainStatus: status, perSkillRemoved: removed };
|
|
84
|
+
// Don't touch .github itself - user may have other CI configs there
|
|
85
|
+
return { mainStatus: status, perSkillRemoved: removed + orch.removed };
|
|
96
86
|
}
|
|
97
87
|
|
|
98
88
|
function collectKnowledgeSkills(pipelineSrc, platformFilter) {
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
join(skillsRoot, "figma-common"),
|
|
104
|
-
];
|
|
105
|
-
if (platformFilter === "ios" || platformFilter === "all") {
|
|
106
|
-
sources.push(join(skillsRoot, "figma-ios"));
|
|
107
|
-
}
|
|
108
|
-
if (platformFilter === "android" || platformFilter === "all") {
|
|
109
|
-
sources.push(join(skillsRoot, "figma-android"));
|
|
110
|
-
}
|
|
111
|
-
const all = [];
|
|
112
|
-
for (const src of sources) all.push(...walkSkills(src));
|
|
113
|
-
|
|
114
|
-
const knowledge = withoutOrchestrationSkills(all);
|
|
115
|
-
if (platformFilter === "all") return knowledge;
|
|
116
|
-
return knowledge.filter((s) => {
|
|
117
|
-
const globs = inferGlobs(s.name);
|
|
118
|
-
if (!globs) return true;
|
|
119
|
-
if (platformFilter === "ios") return globs.includes("swift");
|
|
120
|
-
if (platformFilter === "android") return globs.includes("kt");
|
|
121
|
-
return true;
|
|
122
|
-
});
|
|
89
|
+
const sources = ["shared/core", "shared/external", "figma-common"];
|
|
90
|
+
if (platformFilter === "ios" || platformFilter === "all") sources.push("figma-ios");
|
|
91
|
+
if (platformFilter === "android" || platformFilter === "all") sources.push("figma-android");
|
|
92
|
+
return withoutOrchestrationSkills(collectSkills(pipelineSrc, platformFilter, { sources }));
|
|
123
93
|
}
|
|
124
94
|
|
|
125
95
|
/**
|
|
@@ -129,11 +99,11 @@ function renderMainBlock(skills) {
|
|
|
129
99
|
const header = `# multi-agent-pipeline (GitHub Copilot Chat)
|
|
130
100
|
|
|
131
101
|
> Installed by @mmerterden/multi-agent-pipeline. Repo-scoped instructions for
|
|
132
|
-
> GitHub Copilot Chat.
|
|
133
|
-
>
|
|
134
|
-
>
|
|
135
|
-
>
|
|
136
|
-
>
|
|
102
|
+
> GitHub Copilot Chat. This block is the knowledge layer (rules + skills) loaded
|
|
103
|
+
> into every conversation; the 8-phase orchestration runs via the custom agents
|
|
104
|
+
> in \`.github/agents/ma-*.agent.md\` and the \`/multi-agent\` prompt
|
|
105
|
+
> (\`.github/prompts/multi-agent.prompt.md\`) in VS Code Copilot Chat agent mode.
|
|
106
|
+
> Confirmations use VS Code's native approval dialogs (refs/picker-contract.md).
|
|
137
107
|
|
|
138
108
|
`;
|
|
139
109
|
return header + concatSkills(skills);
|
|
@@ -151,8 +121,4 @@ function renderInstructionFile(skill) {
|
|
|
151
121
|
return `${fmLines.join("\n")}\n# ${skill.name}\n\n${skill.body.trim()}\n`;
|
|
152
122
|
}
|
|
153
123
|
|
|
154
|
-
function jsonString(s) {
|
|
155
|
-
return JSON.stringify(s);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
124
|
export default { name: NAME, install, uninstall };
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Cursor orchestration layer - emits the FULL-pipeline artifacts (not
|
|
3
|
+
* just the knowledge layer) that let Cursor run the multi-agent pipeline:
|
|
4
|
+
*
|
|
5
|
+
* .cursor/agents/ma-*.md one Cursor subagent per pipeline persona
|
|
6
|
+
* (explorer, code-reviewer, the architects,
|
|
7
|
+
* security-auditor, dev-critic, task-clarifier),
|
|
8
|
+
* transformed from pipeline/agents/*.md.
|
|
9
|
+
* .cursor/commands/multi-agent.md the orchestration driver: the 8-phase
|
|
10
|
+
* flow adapted to Cursor's runtime (parallel
|
|
11
|
+
* subagent dispatch for review, ask-choice picker
|
|
12
|
+
* fallback for the approval gate).
|
|
13
|
+
* .cursor/mcp.json registers the dev-toolkit MCP server (merged,
|
|
14
|
+
* never clobbering the user's other servers).
|
|
15
|
+
*
|
|
16
|
+
* Cursor 2.4+ supports `.cursor/agents/*.md` (MD + YAML frontmatter, parallel
|
|
17
|
+
* dispatch up to 8) and `.cursor/commands/*.md`, so the orchestration is
|
|
18
|
+
* portable - the gaps vs Claude Code are the picker (degraded to ask-choice /
|
|
19
|
+
* MCP) and hard blocking gates (advisory rules + CI). See refs/picker-contract.md.
|
|
20
|
+
*
|
|
21
|
+
* @module pipeline/adapters/cursor-orchestration
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
import { writeFileSync } from "fs";
|
|
25
|
+
import { join } from "path";
|
|
26
|
+
import {
|
|
27
|
+
ensureDir,
|
|
28
|
+
installPersonaAgents,
|
|
29
|
+
installSharedRuntime,
|
|
30
|
+
mergeMcpJson,
|
|
31
|
+
removeFileAndPrune,
|
|
32
|
+
removePrefixedFiles,
|
|
33
|
+
REVIEWER_MODELS,
|
|
34
|
+
rewriteScriptRefs,
|
|
35
|
+
uninstallSharedRuntime,
|
|
36
|
+
unmergeMcpJson,
|
|
37
|
+
} from "./_base.mjs";
|
|
38
|
+
|
|
39
|
+
const AGENT_PREFIX = "ma-";
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @param {{ pipelineSrc: string, target: string }} opts
|
|
43
|
+
* @returns {{ agents: number, command: boolean, mcp: "created"|"merged"|"skipped" }}
|
|
44
|
+
*/
|
|
45
|
+
export function installOrchestration({ pipelineSrc, target }) {
|
|
46
|
+
// 1. Transform each pipeline persona into a Cursor subagent. The cross-vendor
|
|
47
|
+
// second reviewer is a code-reviewer pinned to a different model so Phase 4
|
|
48
|
+
// is a 2-model review (the primary inherits the user's model, usually
|
|
49
|
+
// Claude; the -x variant pins gpt-5.5) instead of single-model.
|
|
50
|
+
const cm = REVIEWER_MODELS.cursor.crossModel;
|
|
51
|
+
const { agents } = installPersonaAgents({
|
|
52
|
+
pipelineSrc,
|
|
53
|
+
outDir: join(target, ".cursor", "agents"),
|
|
54
|
+
prefix: AGENT_PREFIX,
|
|
55
|
+
fileFor: (name) => `${AGENT_PREFIX}${name}.md`,
|
|
56
|
+
render: renderCursorAgent,
|
|
57
|
+
crossReviewer: {
|
|
58
|
+
name: `${AGENT_PREFIX}code-reviewer-x`,
|
|
59
|
+
model: cm,
|
|
60
|
+
note: `Cross-vendor reviewer pinned to \`${cm}\` so Phase 4 runs two different models (vs the primary \`ma-code-reviewer\`, which inherits your selected model). Verify the model id matches your Cursor build.`,
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
// 2. Orchestration command (script refs rewritten to the shared runtime).
|
|
65
|
+
const cmdOut = join(target, ".cursor", "commands");
|
|
66
|
+
ensureDir(cmdOut);
|
|
67
|
+
writeFileSync(join(cmdOut, "multi-agent.md"), rewriteScriptRefs(ORCHESTRATION_COMMAND));
|
|
68
|
+
|
|
69
|
+
// 3. MCP server registration (merge into existing .cursor/mcp.json).
|
|
70
|
+
const mcp = mergeMcpJson(join(target, ".cursor", "mcp.json"));
|
|
71
|
+
|
|
72
|
+
// 4. Shared runtime: install the gate scripts/lib/schemas so the agents'
|
|
73
|
+
// `$HOME/.multi-agent/scripts/...` references resolve and the gates run.
|
|
74
|
+
const shared = installSharedRuntime(pipelineSrc);
|
|
75
|
+
|
|
76
|
+
return { agents, command: true, mcp, sharedRuntime: shared.trees.length > 0 };
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* @param {{ target: string }} opts
|
|
81
|
+
*/
|
|
82
|
+
export function uninstallOrchestration({ target }) {
|
|
83
|
+
let removed = removePrefixedFiles(join(target, ".cursor", "agents"), AGENT_PREFIX, ".md");
|
|
84
|
+
const cmdDir = join(target, ".cursor", "commands");
|
|
85
|
+
removed += removeFileAndPrune(join(cmdDir, "multi-agent.md"), cmdDir);
|
|
86
|
+
// Remove only OUR MCP server entry; leave the user's other servers + file.
|
|
87
|
+
unmergeMcpJson(join(target, ".cursor", "mcp.json"));
|
|
88
|
+
// Remove the shared runtime (100% pipeline-owned).
|
|
89
|
+
if (uninstallSharedRuntime()) removed++;
|
|
90
|
+
return { removed };
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Map a pipeline persona's Opus/Sonnet/Haiku tier to a Cursor `model` value.
|
|
95
|
+
* Cursor runs the user's selected model, so we default to `inherit` and record
|
|
96
|
+
* the intended tier in the body - the orchestrator picks per-phase if the user
|
|
97
|
+
* has multiple models configured.
|
|
98
|
+
*/
|
|
99
|
+
function renderCursorAgent(persona, frontmatter, body, opts = {}) {
|
|
100
|
+
const name = opts.name || `${AGENT_PREFIX}${persona}`;
|
|
101
|
+
const model = opts.model || "inherit";
|
|
102
|
+
const description = (frontmatter.description || `multi-agent pipeline ${persona}`).replace(/\n/g, " ").trim();
|
|
103
|
+
const tier = frontmatter.model || "inherit";
|
|
104
|
+
const fm = [
|
|
105
|
+
"---",
|
|
106
|
+
`name: ${name}`,
|
|
107
|
+
`description: ${JSON.stringify(description)}`,
|
|
108
|
+
`model: ${model}`,
|
|
109
|
+
"readonly: true",
|
|
110
|
+
"---",
|
|
111
|
+
"",
|
|
112
|
+
`> Pipeline persona \`${persona}\` (intended tier: ${tier}). Transformed for Cursor by`,
|
|
113
|
+
"> @mmerterden/multi-agent-pipeline. Read-only analysis/review role; the main",
|
|
114
|
+
"> agent performs edits. Picker/approval steps degrade per refs/picker-contract.md.",
|
|
115
|
+
...(opts.note ? ["> ", `> ${opts.note}`] : []),
|
|
116
|
+
"",
|
|
117
|
+
].join("\n");
|
|
118
|
+
// Rewrite logical pipeline/scripts refs in the persona body to the absolute
|
|
119
|
+
// shared-runtime path so the gate scripts resolve from any cwd.
|
|
120
|
+
return `${fm}${rewriteScriptRefs(body.trim())}\n`;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const ORCHESTRATION_COMMAND = `# /multi-agent - run the pipeline in Cursor
|
|
124
|
+
|
|
125
|
+
> Installed by @mmerterden/multi-agent-pipeline. Drives the 8-phase pipeline
|
|
126
|
+
> using Cursor subagents (\`.cursor/agents/ma-*.md\`) and the dev-toolkit MCP
|
|
127
|
+
> server. Picker/approval steps follow refs/picker-contract.md (Cursor Plan-mode
|
|
128
|
+
> question UI where available, else a numbered choice the agent presents inline
|
|
129
|
+
> numbered prompt). Gate scripts are installed at \`$HOME/.multi-agent/scripts/\`
|
|
130
|
+
> (evidence-gate.mjs, classify-intent.sh, learnings-ledger.mjs, validate-triage.mjs,
|
|
131
|
+
> pre-commit-check.sh) and the subagents invoke them there. Unlike Claude Code
|
|
132
|
+
> there is no PreToolUse hook forcing them, so they are workflow-enforced (run as
|
|
133
|
+
> steps) rather than OS-blocked.
|
|
134
|
+
|
|
135
|
+
Input: \`$ARGUMENTS\` (a Jira id, GitHub issue, repo#N, or a free-text task).
|
|
136
|
+
|
|
137
|
+
## Phases
|
|
138
|
+
|
|
139
|
+
0. **Init** - detect stack, resolve branch (\`bugfix/…\` or \`feature/…\`), confirm scope with the user.
|
|
140
|
+
1. **Analysis** - dispatch the \`ma-explorer\` subagent (read-only) to map touched areas, risks, and the stack; produce the analysis object (see analysis-output schema in the rules).
|
|
141
|
+
2. **Planning** - draft a task breakdown. Present it and ask the user to **Approve / Cancel / edit** via the picker contract (Plan-mode UI or a numbered prompt). Edits loop until approved.
|
|
142
|
+
3. **Dev** - the MAIN agent implements TDD-first (test, then code, then build), following \`.cursor/rules/*\`. Optionally run \`ma-dev-critic\` before review.
|
|
143
|
+
4. **Review** - dispatch the reviewer subagents IN PARALLEL for cross-model coverage: \`ma-code-reviewer\` (your selected model) AND \`ma-code-reviewer-x\` (pinned to a different vendor) so the code review runs on two models, plus the stack architect (\`ma-ios-architect\` / \`ma-android-architect\` / \`ma-backend-architect\`) and \`ma-security-auditor\` when the diff touches auth/secrets. Merge their findings, then triage (accept / defer / reject); record the \`consensus\` block (treat same-model agreement on judgment calls as \`unverified\`). Fix accepted blocking/important findings and re-review.
|
|
144
|
+
5. **Test** - offer an interactive test pass via the picker. Use the dev-toolkit MCP server (simulator / emulator / web) for UI checks.
|
|
145
|
+
6. **Commit** - \`{type}(scope): description\`; never auto-close issues; PR uses \`Ref: #N\`.
|
|
146
|
+
7. **Report** - summarize what changed, the review consensus (per reviewer), and cost.
|
|
147
|
+
|
|
148
|
+
## Rules
|
|
149
|
+
Follow every \`.cursor/rules/multi-agent-*\` file (code style, TDD, security, review priorities). Attribute each finding to the subagent that produced it. Do not invent design values; cite the analysis. No "AI/generated by" in code or commits.
|
|
150
|
+
`;
|
|
151
|
+
|
|
152
|
+
export default { installOrchestration, uninstallOrchestration };
|