@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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: multi-agent
|
|
3
|
-
language:
|
|
4
|
-
description: "Task orchestrator: runs the full pipeline from a Jira ID or GitHub Issue URL
|
|
3
|
+
language: en
|
|
4
|
+
description: "Task orchestrator: runs the full pipeline from a Jira ID or GitHub Issue URL - analysis → plan → TDD development → parallel review (Opus + Sonnet on Claude Code, GPT + Opus + Sonnet on Copilot CLI) → commit → log. Every step is written to agent-log.md."
|
|
5
5
|
user-invocable: true
|
|
6
6
|
argument-hint: '"PROJ-12345" "feature/PROJ-12345-flight-filter" | "https://github.com/.../issues/316" | status | log #1 | resume #1 | kill #1 | clear-logs | purge | review'
|
|
7
7
|
---
|
|
@@ -20,11 +20,11 @@ Detect project from cwd FIRST, then validate input format:
|
|
|
20
20
|
|--------------|---------|----------------|----------------|
|
|
21
21
|
| `/my-ios-app` | my-app | `"PROJ-XXX" "branch"` | GitHub Issue URL |
|
|
22
22
|
| `/my-figma-app` | figma | `"https://github.com/.../issues/N"` | Jira ID + branch |
|
|
23
|
-
| Other | generic | Both formats |
|
|
23
|
+
| Other | generic | Both formats | - |
|
|
24
24
|
|
|
25
25
|
If user gives wrong format for the project, warn:
|
|
26
|
-
- my-ios-app + GitHub URL → "
|
|
27
|
-
- my-figma-app + Jira → "
|
|
26
|
+
- my-ios-app + GitHub URL → "This project expects a Jira ID + branch. Example: multi-agent \"PROJ-12345\" \"feature/PROJ-12345-desc\""
|
|
27
|
+
- my-figma-app + Jira → "This project expects a GitHub Issue URL. Example: multi-agent \"https://github.com/my-org/my-figma-app/issues/316\""
|
|
28
28
|
|
|
29
29
|
## Input Parsing
|
|
30
30
|
|
|
@@ -46,16 +46,16 @@ Parse the user's input and route to the correct sub-command:
|
|
|
46
46
|
|
|
47
47
|
| Input Pattern | Action |
|
|
48
48
|
|---------------|--------|
|
|
49
|
-
| `"PROJ-XXX" "branch"` | **my-app only**
|
|
50
|
-
| `"https://github.com/..."` | **figma only**
|
|
49
|
+
| `"PROJ-XXX" "branch"` | **my-app only** - Jira ID + branch name → auto-assigned incremental ID |
|
|
50
|
+
| `"https://github.com/..."` | **figma only** - parse issue, extract Jira from title/body, auto-create branch |
|
|
51
51
|
| `status` | Show all tasks with ID, phase, status |
|
|
52
52
|
| `log [id]` | Show agent-log.md for task (latest if no id) |
|
|
53
53
|
| `resume [id]` | Resume paused/failed task from last successful phase |
|
|
54
54
|
| `kill [id]` | Stop task, delete worktree + branch + logs. Asks confirm first |
|
|
55
55
|
| `clear-logs` | Delete all agent-log.md and agent-state.json files, keep worktrees/branches |
|
|
56
|
-
| `purge` | Nuclear cleanup
|
|
56
|
+
| `purge` | Nuclear cleanup - delete ALL worktrees, branches, logs, state, counter. Full reset |
|
|
57
57
|
| `review` | Skip phases 0-3, review current diff only |
|
|
58
|
-
| `autopilot` flag | Add to any pipeline command
|
|
58
|
+
| `autopilot` flag | Add to any pipeline command - skip user confirmations except destructive ops |
|
|
59
59
|
| No args / `help` | Show usage guide (project-specific) |
|
|
60
60
|
|
|
61
61
|
---
|
|
@@ -75,17 +75,17 @@ multi-agent "LoginView dark mode fix" autopilot
|
|
|
75
75
|
|
|
76
76
|
| Phase | Normal | Autopilot |
|
|
77
77
|
|-------|--------|-----------|
|
|
78
|
-
| Phase 2 (Plan Approval Gate) | Clarification (max 2
|
|
79
|
-
| Phase 5 (User Test) | "
|
|
80
|
-
| Phase 6 (Commit) | "
|
|
81
|
-
| Phase 6 (PR) | "
|
|
78
|
+
| Phase 2 (Plan Approval Gate) | Clarification (max 2 rounds) + approval loop - user replies `onayla`/`iptal`/free-text | **Gate skip** - log the plan, go straight to Phase 3 (autopilot contract: zero interaction) |
|
|
79
|
+
| Phase 5 (User Test) | "Want to test it?" → wait | Skip → go straight to Phase 6 |
|
|
80
|
+
| Phase 6 (Commit) | "Want to commit?" → wait | Automatic commit + push |
|
|
81
|
+
| Phase 6 (PR) | "Want to open a PR?" → wait | Automatically create the PR |
|
|
82
82
|
|
|
83
83
|
**What NEVER skips (even in autopilot):**
|
|
84
|
-
- Phase 4 Review → blocking
|
|
85
|
-
- Kill/Purge confirmations → destructive
|
|
86
|
-
- Build fail → fix + rebuild
|
|
84
|
+
- Phase 4 Review → if there is a blocking finding, return to Phase 3, fix + rebuild automatically (safety)
|
|
85
|
+
- Kill/Purge confirmations → destructive operations always ask
|
|
86
|
+
- Build fail → fix + rebuild automatically (max 3 retries). If it still fails after 3 retries → pause, ask the user
|
|
87
87
|
|
|
88
|
-
**State tracking**: `
|
|
88
|
+
**State tracking**: `"autopilot": true` is added to `agent-state.json`. Autopilot continues on resume too.
|
|
89
89
|
|
|
90
90
|
---
|
|
91
91
|
|
|
@@ -95,10 +95,10 @@ Every task gets an **auto-incremented short ID** for easy reference:
|
|
|
95
95
|
|
|
96
96
|
```
|
|
97
97
|
multi-agent "PROJ-12345" "feature/PROJ-12345-flight-filter"
|
|
98
|
-
→ ✅ Task #1 started
|
|
98
|
+
→ ✅ Task #1 started - PROJ-12345
|
|
99
99
|
|
|
100
100
|
multi-agent "PROJ-67890" "feature/PROJ-67890-booking-flow"
|
|
101
|
-
→ ✅ Task #2 started
|
|
101
|
+
→ ✅ Task #2 started - PROJ-67890
|
|
102
102
|
```
|
|
103
103
|
|
|
104
104
|
ID is stored in `agent-state.json` and shown in `multi-agent status`:
|
|
@@ -121,15 +121,15 @@ ID counter stored at `.worktrees/.multi-agent-counter` (persists across sessions
|
|
|
121
121
|
When `multi-agent kill [id]` is called:
|
|
122
122
|
|
|
123
123
|
1. **Find task**: Look up task by short ID (e.g. `#2`) or Jira ID (e.g. `PROJ-67890`)
|
|
124
|
-
2. **Confirm**: Ask user: `"PROJ-67890 (Task #2)
|
|
124
|
+
2. **Confirm**: Ask user: `"PROJ-67890 (Task #2) will be deleted: worktree, branch, logs. Are you sure?"`
|
|
125
125
|
3. **Stop agents**: Kill any running background agents for this task
|
|
126
126
|
4. **Delete worktree**: `git worktree remove .worktrees/PROJ-{id} --force`
|
|
127
127
|
5. **Delete branch**: `git branch -D {branch-name}`
|
|
128
|
-
6. **Delete remote branch**: ONLY if user explicitly confirms: "
|
|
128
|
+
6. **Delete remote branch**: ONLY if user explicitly confirms: "Do you want to delete the remote branch too?"
|
|
129
129
|
7. **Archive log** (optional): Move `agent-log.md` to `.worktrees/.archive/PROJ-{id}/` before delete
|
|
130
|
-
- Or delete completely if user says "
|
|
131
|
-
8. **Update counter**: Mark ID as available (or just skip
|
|
132
|
-
9. **Confirm**: `❌ Task #2 (PROJ-67890) killed
|
|
130
|
+
- Or delete completely if the user says "delete completely"
|
|
131
|
+
8. **Update counter**: Mark ID as available (or just skip - IDs are cheap)
|
|
132
|
+
9. **Confirm**: `❌ Task #2 (PROJ-67890) killed - worktree, branch, logs deleted`
|
|
133
133
|
|
|
134
134
|
---
|
|
135
135
|
|
|
@@ -137,10 +137,10 @@ When `multi-agent kill [id]` is called:
|
|
|
137
137
|
|
|
138
138
|
When `multi-agent clear-logs` is called:
|
|
139
139
|
|
|
140
|
-
1. **Confirm**: `"
|
|
140
|
+
1. **Confirm**: `"All task logs will be deleted (agent-log.md + agent-state.json). Worktrees and branches will be kept. Are you sure?"`
|
|
141
141
|
2. **Scan**: Find all `.worktrees/PROJ-*/agent-log.md` and `agent-state.json` files
|
|
142
142
|
3. **Delete**: Remove log and state files from each worktree
|
|
143
|
-
4. **Do NOT reset counter**: `.worktrees/.multi-agent-counter` stays intact
|
|
143
|
+
4. **Do NOT reset counter**: `.worktrees/.multi-agent-counter` stays intact - prevents ID collision with existing worktrees
|
|
144
144
|
5. **Confirm**:
|
|
145
145
|
```
|
|
146
146
|
🧹 Logs cleared
|
|
@@ -154,20 +154,23 @@ When `multi-agent clear-logs` is called:
|
|
|
154
154
|
|
|
155
155
|
When `multi-agent purge` is called:
|
|
156
156
|
|
|
157
|
-
1. **Confirm**: `"⚠️
|
|
157
|
+
1. **Confirm**: `"⚠️ WARNING: All worktrees, branches, logs and state will be deleted. This cannot be undone. Are you sure?"`
|
|
158
158
|
2. **List**: Show what will be deleted:
|
|
159
159
|
```
|
|
160
|
-
|
|
160
|
+
To be deleted:
|
|
161
161
|
- .worktrees/PROJ-12345/ (branch: feature/PROJ-12345-...)
|
|
162
162
|
- .worktrees/PROJ-67890/ (branch: feature/PROJ-67890-...)
|
|
163
163
|
- .worktrees/.multi-agent-counter
|
|
164
|
-
|
|
164
|
+
Total: 2 worktrees, 2 branches, 2 logs
|
|
165
165
|
```
|
|
166
|
-
3. **Second confirm
|
|
166
|
+
3. **Second confirm** (paranoia gate) - a native `AskUserQuestion` picker (no typed keyword):
|
|
167
|
+
- `question`: "This is irreversible. Permanently wipe every worktree, branch, log, and state file now?" (`outputLanguage`)
|
|
168
|
+
- `header`: "Purge" (English, <=12 chars) · `options`: `{ label: "Purge permanently", description: "Delete all worktrees, branches, logs, and state" }`, `{ label: "Cancel", description: "Abort, change nothing" }`
|
|
169
|
+
- Anything other than **Purge permanently** → cancel.
|
|
167
170
|
4. **Execute** (for each worktree):
|
|
168
171
|
- `git worktree remove .worktrees/PROJ-{id} --force`
|
|
169
172
|
- `git branch -D {branch-name}`
|
|
170
|
-
- Remote branch delete ONLY if user explicitly confirms: "
|
|
173
|
+
- Remote branch delete ONLY if user explicitly confirms: "Do you want to delete the remote branches too?"
|
|
171
174
|
5. **Cleanup**: Remove `.worktrees/.multi-agent-counter` and `.worktrees/.archive/`
|
|
172
175
|
6. **Confirm**:
|
|
173
176
|
```
|
|
@@ -201,9 +204,9 @@ This works across sessions because:
|
|
|
201
204
|
|
|
202
205
|
---
|
|
203
206
|
|
|
204
|
-
## Agent dispatch
|
|
207
|
+
## Agent dispatch - per-persona model routing
|
|
205
208
|
|
|
206
|
-
Every agent persona under `pipeline/agents/*.md` declares a `preferredModel` frontmatter field. The orchestrator MUST honor it on every dispatch, on both Claude Code and Copilot CLI
|
|
209
|
+
Every agent persona under `pipeline/agents/*.md` declares a `preferredModel` frontmatter field. The orchestrator MUST honor it on every dispatch, on both Claude Code and Copilot CLI - cross-CLI parity is enforced by `smoke-cross-cli-behavior.sh`.
|
|
207
210
|
|
|
208
211
|
| Persona | `preferredModel` | Rationale (condensed) |
|
|
209
212
|
|---|---|---|
|
|
@@ -232,9 +235,9 @@ export CLAUDE_CODE_SUBAGENT_MODEL="$resolved_model"
|
|
|
232
235
|
|
|
233
236
|
---
|
|
234
237
|
|
|
235
|
-
## Dynamic skill loading
|
|
238
|
+
## Dynamic skill loading - trigger-based injection (v7.0.0+, opt-in)
|
|
236
239
|
|
|
237
|
-
**Gated by `prefs.global.dynamicSkillLoading` (default `false`).** When enabled, the orchestrator moves from eager-loading all
|
|
240
|
+
**Gated by `prefs.global.dynamicSkillLoading` (default `false`).** When enabled, the orchestrator moves from eager-loading all 206 skills on every session to injecting only the skills that match the current task context. The match signal comes from three sources in descending weight:
|
|
238
241
|
|
|
239
242
|
1. `trigger-paths` globs in SKILL.md frontmatter vs. Phase 1 touched files (heaviest, +30 max)
|
|
240
243
|
2. `trigger-keywords` in SKILL.md frontmatter vs. task text (mid, +30 max)
|
|
@@ -256,18 +259,18 @@ matched_skills=$(node pipeline/scripts/match-skills.mjs \
|
|
|
256
259
|
--limit 12 \
|
|
257
260
|
--json)
|
|
258
261
|
|
|
259
|
-
# Inject only matched skills[] into subagent prompts for Phase 2
|
|
260
|
-
# Skills not in the matched list are not loaded
|
|
262
|
+
# Inject only matched skills[] into subagent prompts for Phase 2-4.
|
|
263
|
+
# Skills not in the matched list are not loaded - saves ~10K-30K tokens
|
|
261
264
|
# per subagent dispatch on small tasks.
|
|
262
265
|
```
|
|
263
266
|
|
|
264
|
-
**Fallback:** if `.skills-index.json` is missing (e.g. fresh checkout before `build-skills-index.mjs` runs), the orchestrator falls back to eager-load exactly as pre-v7.0
|
|
267
|
+
**Fallback:** if `.skills-index.json` is missing (e.g. fresh checkout before `build-skills-index.mjs` runs), the orchestrator falls back to eager-load exactly as pre-v7.0 - dynamic loading never blocks the happy path.
|
|
265
268
|
|
|
266
|
-
**--index-only installs:** `node install.js --index-only` writes only the index, not the
|
|
269
|
+
**--index-only installs:** `node install.js --index-only` writes only the index, not the 206 SKILL.md payloads. Intended for:
|
|
267
270
|
- CI pipelines that fetch skill bodies on demand
|
|
268
271
|
- Disk-constrained users who accept the dynamic-load contract
|
|
269
272
|
|
|
270
|
-
When `dynamicSkillLoading=true` AND the target install is index-only, subagent prompts must include the matched skills' bodies inline (read from the pipeline source or a cached copy). The orchestrator resolves this by reading `{PIPELINE_SRC}/pipeline/skills/{relativePath}`
|
|
273
|
+
When `dynamicSkillLoading=true` AND the target install is index-only, subagent prompts must include the matched skills' bodies inline (read from the pipeline source or a cached copy). The orchestrator resolves this by reading `{PIPELINE_SRC}/pipeline/skills/{relativePath}` - the pipeline source repo is always the source of truth; the install dir is a cache.
|
|
271
274
|
|
|
272
275
|
**Telemetry:** when `MULTI_AGENT_OTEL_SPANS=1`, emit `phase.skills.match` span with `{taskId, matchedCount, topN=[name,score]}` so post-hoc analysis can tune trigger-keywords / trigger-paths in SKILL.md frontmatter.
|
|
273
276
|
|
|
@@ -276,11 +279,11 @@ When `dynamicSkillLoading=true` AND the target install is index-only, subagent p
|
|
|
276
279
|
## Phase Pipeline
|
|
277
280
|
|
|
278
281
|
Run phases sequentially. Log every step to `agent-log.md`.
|
|
279
|
-
If any phase fails, mark task as `paused` and stop
|
|
282
|
+
If any phase fails, mark task as `paused` and stop - user can `resume` later.
|
|
280
283
|
|
|
281
284
|
### Canonical phase labels (TaskCreate + banner)
|
|
282
285
|
|
|
283
|
-
Every user-facing phase title
|
|
286
|
+
Every user-facing phase title - TaskCreate cards, `phase-banner.sh` headers, and any status line rendered to the terminal - MUST come from this table. Labels are always English (`promptLanguage` is locked to `en`):
|
|
284
287
|
|
|
285
288
|
| # | Label |
|
|
286
289
|
|---|------------------------|
|
|
@@ -296,36 +299,36 @@ Every user-facing phase title — TaskCreate cards, `phase-banner.sh` headers, a
|
|
|
296
299
|
**Render rule:**
|
|
297
300
|
|
|
298
301
|
1. For TaskCreate, use the matching label as the task `subject`.
|
|
299
|
-
2. For terminal banners, call `phase-banner.sh` with the `auto` sentinel and `PHASE_LANG=en` env
|
|
300
|
-
3. Reviewer-count qualifiers (e.g. `(parallel + triage)`) stay English
|
|
302
|
+
2. For terminal banners, call `phase-banner.sh` with the `auto` sentinel and `PHASE_LANG=en` env - or pass the literal label from the table. Never invent a new label.
|
|
303
|
+
3. Reviewer-count qualifiers (e.g. `(parallel + triage)`) stay English - they are technical artifacts, not user copy.
|
|
301
304
|
|
|
302
|
-
**Out of scope for localization** (always EN, per `prefs.schema.json`): reviewer/triage system prompts, commit messages, PR titles/bodies, Jira comments, wiki content, log payloads inside `agent-log.md`
|
|
305
|
+
**Out of scope for localization** (always EN, per `prefs.schema.json`): reviewer/triage system prompts, commit messages, PR titles/bodies, Jira comments, wiki content, log payloads inside `agent-log.md` - these are external artifacts consumed by other tools and humans beyond this user.
|
|
303
306
|
|
|
304
307
|
#### TaskCreate ordering (strict)
|
|
305
308
|
|
|
306
|
-
All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied (Claude Code path; Copilot CLI does not have a TaskList widget so this rule is Claude-only). The native widget renders by creation order, not by phase-number metadata
|
|
309
|
+
All TaskCreate calls fire in strict phase-number order BEFORE any TaskUpdate is applied (Claude Code path; Copilot CLI does not have a TaskList widget so this rule is Claude-only). The native widget renders by creation order, not by phase-number metadata - out-of-order calls produce visually scrambled tile stacks (e.g. `1 ✓ · 2 ✓ · 4 ✓ · 0 ▶ · 3 ☐`) even when the underlying state file is correct. Pre-marking phases as completed/skipped before Phase 0 starts is FORBIDDEN: register the tile in order with default `pending` status, then flip via TaskUpdate when the phase actually short-circuits. Mode-specific phase sets:
|
|
307
310
|
|
|
308
311
|
- Full pipeline (`multi-agent`, `multi-agent-autopilot`, `multi-agent-local`, `multi-agent-local-autopilot`): 0 → 1 → 2 → 3 → 4 → 5 → 6 → 7
|
|
309
312
|
- `--dev` modes (`multi-agent-dev`, `multi-agent-dev-autopilot`, `multi-agent-dev-local`, `multi-agent-dev-local-autopilot`): 0 → 3 → 5 → 6 → 7 (phases 1/2/4 are NOT TaskCreate'd at all)
|
|
310
313
|
|
|
311
|
-
Full contract: `refs/tracker-contract.md`
|
|
314
|
+
Full contract: `refs/tracker-contract.md` section "TaskCreate ordering (strict)".
|
|
312
315
|
|
|
313
316
|
### Phase 0: Init
|
|
314
317
|
|
|
315
|
-
> **Contract (strict)**
|
|
318
|
+
> **Contract (strict)** - Phase 0 has **8 sequential interactive steps** defined in `refs/phases/phase-0-init.md`. Do **NOT** short-circuit. Even when input is a Jira ID + branch, Steps 1, 4, 5, 6 (load prefs, multi-repo offer, branch picker, branch name confirm) are REQUIRED UX checkpoints - skipping them breaks component-production flows where base branch is `iteration/develop`, not `develop`, and where multiple repos must be selected.
|
|
316
319
|
>
|
|
317
320
|
> The condensed walkthrough below covers Step 1 (parse) + Step 2 (worktree), but DOES NOT replace the full contract. Read `refs/phases/phase-0-init.md` before every Phase 0 run and execute ALL 8 steps:
|
|
318
321
|
>
|
|
319
|
-
> 1. **Bootstrap tracker**
|
|
320
|
-
> 2. **Load prefs**
|
|
321
|
-
> 3. **Parse input**
|
|
322
|
-
> 4. **Select project(s)
|
|
323
|
-
> 5. **Pick base branch PER REPO**
|
|
324
|
-
> 6. **Branch name confirm**
|
|
325
|
-
> 7. **Git identity
|
|
326
|
-
> 8. **Instruction files + workspace creation
|
|
322
|
+
> 1. **Bootstrap tracker** - `pipeline/scripts/phase-tracker.sh init <task-id>` + 8 phase tiles (Step −1)
|
|
323
|
+
> 2. **Load prefs** - read `prefs.global` + `prefs.projects[{name}]`; halt with `/multi-agent:setup` prompt if no keychain mapping (Step 0)
|
|
324
|
+
> 3. **Parse input** - classify + fetch Jira/GitHub issue + extract Figma URL if present (Step 1)
|
|
325
|
+
> 4. **Select project(s) - single OR multi-repo** - present numbered list of repos from `$HOME`. Picker accepts space-separated numbers (`1 3 4`) for multi-select. Component/refactor tasks often span repos (e.g. component repo + consumer app). Surface saved `global.recentGroups` at the top of the list. **Never auto-pick a single repo when the task could touch more than one** - ask the user to confirm single vs multi. (Step 2)
|
|
326
|
+
> 5. **Pick base branch PER REPO** - REQUIRED INTERACTIVE STEP. If one repo selected: run `git ls-remote --heads origin` on that repo, present sorted list (develop* / release/* / main/master first), suggest top of `global.recentBranches[{projectKey}]`. **If multiple repos selected: fire the branch picker separately for each repo** (phase-0-init.md L221: "In multi-repo mode, the prompt fires per-repo"). Users reported this being silently skipped for component work where the correct base is `iteration/develop` - either per-repo prompt missing, or one branch assumed for all repos. Skip only if the user's original input explicitly specified a branch. (Step 3)
|
|
327
|
+
> 6. **Branch name confirm** - `feature/PROJ-{id}-{kebab}` or `bugfix/...` - user confirms or edits. In multi-repo mode the branch name is shared across all selected repos (collision check runs per-repo; any collision applies the suffix to all). (Step 4)
|
|
328
|
+
> 7. **Git identity - per repo** - route via `prefs.global.platformIdentityRouting`; ask if ambiguous. Multi-repo mode resolves identity **per repo independently** (phase-0-init.md L283). (Step 6)
|
|
329
|
+
> 8. **Instruction files + workspace creation - serially per repo** - detect `.instructions/figma/` etc. In multi-repo mode, worktree creation loops per repo serially (phase-0-init.md L308); any failure rolls back previously-created worktrees. Write `agent-state.json` with `state.projects[]` array (scalar `project`/`projectRoot`/`branch` mirror `projects[0]` for back-compat). (Steps 7-8)
|
|
327
330
|
|
|
328
|
-
**Step 1
|
|
331
|
+
**Step 1 - Project detection + input parsing:**
|
|
329
332
|
|
|
330
333
|
#### my-ios-app (Jira + branch)
|
|
331
334
|
1. Input: `"PROJ-12345" "feature/PROJ-12345-flight-filter"`
|
|
@@ -342,16 +345,16 @@ Full contract: `refs/tracker-contract.md` § "TaskCreate ordering (strict)".
|
|
|
342
345
|
|
|
343
346
|
#### generic (any iOS project)
|
|
344
347
|
1. Accept multiple input formats:
|
|
345
|
-
- **Free-text**: `"LoginView
|
|
348
|
+
- **Free-text**: `"In LoginView the button color is invisible in dark mode, insufficient contrast"`
|
|
346
349
|
- **GitHub Issue URL**: parse via `gh issue view`
|
|
347
350
|
- **Jira ID + branch**: parse directly
|
|
348
351
|
2. If free-text:
|
|
349
352
|
- Extract task summary from description
|
|
350
353
|
- Auto-generate branch: `fix/{short-kebab-description}` or `feature/{short-kebab-description}`
|
|
351
354
|
- Determine type from context: bug description → `fix/`, feature request → `feature/`
|
|
352
|
-
3. No Jira integration needed
|
|
355
|
+
3. No Jira integration needed - task ID is enough for tracking
|
|
353
356
|
|
|
354
|
-
**Step 2
|
|
357
|
+
**Step 2 - Worktree setup (all projects):**
|
|
355
358
|
1. **Fetch latest from remote**: `git fetch origin`
|
|
356
359
|
2. Determine worktree path:
|
|
357
360
|
- Jira ID var: `.worktrees/PROJ-{id}/`
|
|
@@ -360,7 +363,7 @@ Full contract: `refs/tracker-contract.md` § "TaskCreate ordering (strict)".
|
|
|
360
363
|
- If remote branch exists: `git worktree add {worktree-path} origin/{branch} -b {branch}`
|
|
361
364
|
- If new branch: `git worktree add {worktree-path} -b {branch}`
|
|
362
365
|
- If worktree already exists: `cd {worktree-path} && git pull origin {branch}`
|
|
363
|
-
4. Set git author (resolved from `prefs.global.identities[]`
|
|
366
|
+
4. Set git author (resolved from `prefs.global.identities[]` - routed by `platformIdentityRouting`, see `setup.md`):
|
|
364
367
|
```
|
|
365
368
|
git config user.name "{identity.name}"
|
|
366
369
|
git config user.email "{identity.email}"
|
|
@@ -401,16 +404,16 @@ Full contract: `refs/tracker-contract.md` § "TaskCreate ordering (strict)".
|
|
|
401
404
|
- Potential impact areas
|
|
402
405
|
2. Optionally launch **security-auditor** agent for pre-check
|
|
403
406
|
3. Summarize findings
|
|
404
|
-
4. Log: `📊 Phase 1: Analysis
|
|
407
|
+
4. Log: `📊 Phase 1: Analysis - {N} files identified, {summary}`
|
|
405
408
|
|
|
406
409
|
### Phase 2: Planning (claude-opus-4.6)
|
|
407
410
|
1. Create task breakdown → todos with dependencies
|
|
408
411
|
2. Launch **ios-architect** agent for architecture review (if structural changes)
|
|
409
412
|
3. Determine development approach per todo (new file, modify, refactor)
|
|
410
|
-
4. Log: `🧠 Phase 2: Plan
|
|
411
|
-
5. **Plan Approval Gate** (normal mode only
|
|
412
|
-
- **5a
|
|
413
|
-
- **5b
|
|
413
|
+
4. Log: `🧠 Phase 2: Plan - {N} todos created`
|
|
414
|
+
5. **Plan Approval Gate** (normal mode only - skipped for `--dev`, `autopilot`, `--dev autopilot`). Full flow in `refs/phases/phase-2-planning.md` Step 5:
|
|
415
|
+
- **5a - Clarification** (conditional, max 2 rounds): if the Jira/issue description is ambiguous (vague acceptance, UI task without Figma, API task without endpoint contract, `ambiguityScore >= 2`, parent-story scope drift), ask structured questions before rendering the plan. User answers → plan regenerated. If it is still unclear after the 2nd round, render the plan with a "best-effort" banner.
|
|
416
|
+
- **5b - Approval loop**: render plan → user: `onayla`/`iptal`/free-text. A free-text edit request → Opus revises the plan → show it again. No iteration cap; user controls exit via `onayla` or `iptal`.
|
|
414
417
|
- Persist `clarificationRounds`, `clarificationQuestions`, `clarificationAnswers`, `planIterations`, `planApprovedAt`, `planEditRequests` to `state.phases["2"]`.
|
|
415
418
|
|
|
416
419
|
### Phase 3: Dev (claude-sonnet-4.6)
|
|
@@ -423,10 +426,10 @@ For each todo (respecting dependency order):
|
|
|
423
426
|
3. Run build: `xcodebuild` via **task agent**
|
|
424
427
|
4. If build fails → fix → rebuild (max 3 attempts, track `retryCount` in `agent-state.json`)
|
|
425
428
|
5. Update todo status: `done`
|
|
426
|
-
6. Log: `⚡ Phase 3: {todo-id}
|
|
429
|
+
6. Log: `⚡ Phase 3: {todo-id} - Test ✅ Build ✅`
|
|
427
430
|
|
|
428
431
|
### Phase 4: Review (parallel + triage)
|
|
429
|
-
0. **Diff Risk Scoring (advisory, v8.3+)**
|
|
432
|
+
0. **Diff Risk Scoring (advisory, v8.3+)** - before reviewer dispatch run `node pipeline/scripts/diff-risk-score.mjs --base "$BASE_BRANCH" --top 5` and inject the top-N risk-ranked files as a `${PRIORITY_FILES}` block into each reviewer's prompt. Heuristic, deterministic, sub-second, never gates the pipeline. Disabled when `prefs.global.diffRiskAdvisory = false`. Signals: security paths (×3), schema migrations (×4), public API surfaces (×2), no-test-change (×2.5), complexity delta (×1.5), UI-critical paths (×1.5), loc changed (×1).
|
|
430
433
|
1. Launch **code-reviewer** agents in parallel. Reviewer set depends on which CLI is hosting the pipeline:
|
|
431
434
|
- **Claude Code** (2 reviewers): `claude-opus-4.6` (deep security + architecture) + `claude-sonnet-4.6` (quality + correctness)
|
|
432
435
|
- **Copilot CLI** (3 reviewers): `gpt-5.4` (edge cases, different perspective) + `claude-opus-4.6` + `claude-sonnet-4.6`
|
|
@@ -435,78 +438,81 @@ For each todo (respecting dependency order):
|
|
|
435
438
|
- 🔴 **Blocking** → must fix → back to Phase 3 (max 3 iterations)
|
|
436
439
|
- 🟡 **Important** → fix and re-review
|
|
437
440
|
- 🟢 **Suggestion** → apply if reasonable
|
|
438
|
-
3. Log: `🔍 Phase 4: Review
|
|
441
|
+
3. Log: `🔍 Phase 4: Review - {consensus}`
|
|
439
442
|
|
|
440
443
|
### Phase 5: Test
|
|
441
|
-
Lets the user physically test the code before opening a PR. The prompt MUST make it explicit that saying yes **removes the worktree and checks the branch out locally**
|
|
442
|
-
|
|
443
|
-
0. **Test Gap Report (advisory, v8.3+)**
|
|
444
|
-
1. **Ask**
|
|
445
|
-
- `
|
|
446
|
-
|
|
447
|
-
-
|
|
448
|
-
|
|
449
|
-
|
|
444
|
+
Lets the user physically test the code before opening a PR. The prompt MUST make it explicit that saying yes **removes the worktree and checks the branch out locally** - otherwise the user is hit with an implicit side effect.
|
|
445
|
+
|
|
446
|
+
0. **Test Gap Report (advisory, v8.3+)** - before the local-checkout prompt run `node pipeline/scripts/test-gap-scan.mjs --base "$BASE_BRANCH" --stack <ios|android|python|node>` to surface public symbols added in this branch that have no paired test. Heuristic, deterministic, sub-second, never gates by default. iOS `*View.swift` / Android `@Composable` symbols default to `important` severity; other public API additions to `suggestion`. Optional gating via `prefs.testGap.blockingThreshold` (loops back to Phase 4 rework when the important+blocking count exceeds the threshold). Disabled when `prefs.testGap.enabled = false`.
|
|
447
|
+
1. **Ask** with a native `AskUserQuestion` picker (never a typed y/N prompt). The options MUST make the local-checkout side effect explicit - testing removes the worktree and checks the branch out into the main repo:
|
|
448
|
+
- `question`: "Check out locally to test now?" (rendered in `outputLanguage`)
|
|
449
|
+
- `header`: "Test" (English, <=12 chars)
|
|
450
|
+
- `options`:
|
|
451
|
+
- `{ label: "Test now", description: "Removes the worktree and checks the branch out into the main repo for Xcode / manual test" }`
|
|
452
|
+
- `{ label: "Skip", description: "Stay in the worktree and go to Phase 6" }`
|
|
453
|
+
- **Skip** → go to Phase 6
|
|
454
|
+
- **Test now** → continue:
|
|
455
|
+
2. **Remove the worktree and switch to the branch** (automatic):
|
|
450
456
|
```bash
|
|
451
457
|
cd {project-root}
|
|
452
458
|
git worktree remove .worktrees/PROJ-{id}
|
|
453
459
|
git checkout {branch-name}
|
|
454
460
|
```
|
|
455
|
-
3. **
|
|
461
|
+
3. **Give test instructions**:
|
|
456
462
|
```
|
|
457
|
-
🧪
|
|
463
|
+
🧪 Switched to branch: {branch-name}
|
|
458
464
|
|
|
459
|
-
|
|
460
|
-
• SourceTree →
|
|
461
|
-
• Xcode → THY.xcworkspace
|
|
462
|
-
•
|
|
465
|
+
To test:
|
|
466
|
+
• SourceTree → check the commits and diff
|
|
467
|
+
• Xcode → open THY.xcworkspace → Cmd+B → Cmd+U
|
|
468
|
+
• Manual test on the Simulator
|
|
463
469
|
|
|
464
|
-
✅ "tamam" → Phase 6
|
|
465
|
-
❌ "fix: ..." → worktree
|
|
470
|
+
✅ "tamam" → proceeds to Phase 6
|
|
471
|
+
❌ "fix: ..." → worktree is recreated, returns to Phase 3
|
|
466
472
|
```
|
|
467
|
-
4. **Pause and wait**:
|
|
468
|
-
5. **
|
|
469
|
-
-
|
|
470
|
-
- Phase 3
|
|
471
|
-
6. Log: `🧪 Phase 5: Test
|
|
473
|
+
4. **Pause and wait**: Wait for the user's response
|
|
474
|
+
5. **If a fix is needed**:
|
|
475
|
+
- Recreate the worktree: `git worktree add .worktrees/PROJ-{id} {branch-name}`
|
|
476
|
+
- Return to Phase 3
|
|
477
|
+
6. Log: `🧪 Phase 5: Test - {result}`
|
|
472
478
|
|
|
473
|
-
> ⚠️
|
|
479
|
+
> ⚠️ Commits live on the branch - removing the worktree does NOT delete the commits.
|
|
474
480
|
|
|
475
481
|
### Phase 6: Commit & PR
|
|
476
482
|
|
|
477
483
|
**Project-specific commit strategy:**
|
|
478
484
|
|
|
479
485
|
#### my-figma-app
|
|
480
|
-
1. **
|
|
481
|
-
- **
|
|
482
|
-
- **
|
|
483
|
-
2. `/figma-iteration-commit {ComponentName}`
|
|
484
|
-
- Build
|
|
485
|
-
-
|
|
486
|
-
3. Log: `📦 Phase 6: figma-iteration-commit
|
|
486
|
+
1. **Ask**: "Want to commit?"
|
|
487
|
+
- **No** → Pause; the user continues with `resume` when ready
|
|
488
|
+
- **Yes** → continue:
|
|
489
|
+
2. Run `/figma-iteration-commit {ComponentName}`
|
|
490
|
+
- Build verification, test, key sync, code review, submodule commits to `iteration/develop`, push with rebase-retry, issue housekeeping, auto-unblock dependents - the skill handles all of it
|
|
491
|
+
- Do NOT commit manually - the skill manages everything
|
|
492
|
+
3. Log: `📦 Phase 6: figma-iteration-commit - {ComponentName}`
|
|
487
493
|
|
|
488
494
|
#### my-app / generic
|
|
489
|
-
1. **
|
|
490
|
-
- **
|
|
491
|
-
- **
|
|
492
|
-
2. Stage changes: `git add` with specific files (NOT `git add -A`
|
|
495
|
+
1. **Ask**: "Want to commit?"
|
|
496
|
+
- **No** → Pause; the user continues with `resume` when ready
|
|
497
|
+
- **Yes** → continue:
|
|
498
|
+
2. Stage changes: `git add` with specific files (NOT `git add -A` - avoid committing .env, credentials, or other sensitive files)
|
|
493
499
|
3. Commit with convention: `{type}({scope}): {description} [PROJ-{id}]`
|
|
494
|
-
- Author: resolved from `prefs.global.identities[]` (e.g. `Ada Lovelace <ada@example.com>`)
|
|
500
|
+
- Author: resolved from `prefs.global.identities[]` (e.g. `Ada Lovelace <ada@example.com>`) - NEVER hardcode.
|
|
495
501
|
4. Push to remote
|
|
496
|
-
5. **
|
|
497
|
-
- **
|
|
498
|
-
- **
|
|
502
|
+
5. **Ask**: "Want to open a Pull Request?"
|
|
503
|
+
- **No** → go to Phase 7 (only commit + push will have been done)
|
|
504
|
+
- **Yes** → create the PR (target: source branch)
|
|
499
505
|
6. **Issue body update** (if GitHub Issue exists):
|
|
500
506
|
- Fill PR links in issue body: `- **common:** {PR URL}`, `- **uicomponents:** {PR URL}`
|
|
501
507
|
- Update Progress flags: `Implementation 🟢`, `Testing 🟢`, `Code Connect 🟢`
|
|
502
|
-
- Use `gh issue edit {issueNo} --body "{updated body}"`
|
|
503
|
-
7. Log: `📦 Phase 6: Commit {sha}
|
|
508
|
+
- Use `gh issue edit {issueNo} --body "{updated body}"` - preserve all existing sections
|
|
509
|
+
7. Log: `📦 Phase 6: Commit {sha} - PR #{number}`
|
|
504
510
|
|
|
505
511
|
### Phase 7 Report Step 2: WIKI + Figma Screenshots (for component tasks with GitHub Issue)
|
|
506
512
|
|
|
507
513
|
Skip this sub-step if the task is NOT a component implementation (e.g., bug fix, refactor).
|
|
508
514
|
|
|
509
|
-
**Wiki submodule location**: `~/my-figma-app/
|
|
515
|
+
**Wiki submodule location**: `~/my-figma-app/<project>Packages/Packages/my-ui-components-wiki`
|
|
510
516
|
|
|
511
517
|
1. **Determine wiki path** from component location:
|
|
512
518
|
- `DesignSystemCore/SeatMap/SeatMapAircraftDetails/` → `{wikiRoot}/DesignSystemCore/SeatMap/SeatMapAircraftDetails/`
|
|
@@ -536,18 +542,18 @@ Skip this sub-step if the task is NOT a component implementation (e.g., bug fix,
|
|
|
536
542
|
git push origin HEAD:master
|
|
537
543
|
```
|
|
538
544
|
7. **Update issue Wiki flag**: Set `Wiki` → `🟢` in issue body
|
|
539
|
-
8. Log: `📖 Phase 7 Step 2: Wiki
|
|
545
|
+
8. Log: `📖 Phase 7 Step 2: Wiki - {ComponentName}.md + {ComponentName}-iOS.md + screenshot`
|
|
540
546
|
|
|
541
547
|
### Phase 7: Report
|
|
542
548
|
1. Finalize `agent-log.md` with ALL sections:
|
|
543
549
|
- **Timeline table**: phase, agent, model, duration, status, detail
|
|
544
550
|
- **Agent Activity Report**: per-agent call count, total duration, models used, skill count
|
|
545
|
-
- **Token
|
|
546
|
-
- **
|
|
547
|
-
- **Review
|
|
551
|
+
- **Token Estimate**: estimated token usage per agent + total
|
|
552
|
+
- **Per-Phase Time Distribution**: ASCII bar chart showing time per phase
|
|
553
|
+
- **Review Iterations**: blocking/important/suggestion counts per iteration
|
|
548
554
|
- **Files Changed**: `git diff --stat` output
|
|
549
555
|
- **Review Consensus**: final 🔴/🟡/🟢 status
|
|
550
|
-
- **Test Scenarios**: Turkish, for Jira (
|
|
556
|
+
- **Test Scenarios**: Turkish, for Jira (Precondition → Steps → Expected result)
|
|
551
557
|
2. Print compact summary to terminal:
|
|
552
558
|
```
|
|
553
559
|
✅ PROJ-{id} complete
|
|
@@ -565,7 +571,7 @@ Skip this sub-step if the task is NOT a component implementation (e.g., bug fix,
|
|
|
565
571
|
Create at `.worktrees/PROJ-{id}/agent-log.md`:
|
|
566
572
|
|
|
567
573
|
```markdown
|
|
568
|
-
# PROJ-{id}
|
|
574
|
+
# PROJ-{id} - {Task Title}
|
|
569
575
|
**Branch**: {branch-name}
|
|
570
576
|
**Project**: {my-ios-app | my-figma-app}
|
|
571
577
|
**Started**: {YYYY-MM-DD HH:mm}
|
|
@@ -578,44 +584,44 @@ Create at `.worktrees/PROJ-{id}/agent-log.md`:
|
|
|
578
584
|
| # | Phase | Agent | Model | Duration | Tokens (in/out) | Status | Detail |
|
|
579
585
|
|---|-------|-------|-------|----------|-----------------|--------|--------|
|
|
580
586
|
|
|
581
|
-
> `Tokens (in/out)`
|
|
587
|
+
> `Tokens (in/out)` is fed per row from the `phase-tracker.sh tokens` accumulator. If there is no token telemetry, the cell is printed as ` - `.
|
|
582
588
|
|
|
583
589
|
## Agent Activity Report
|
|
584
590
|
|
|
585
|
-
### Agent
|
|
586
|
-
| Agent |
|
|
591
|
+
### Agent Usage
|
|
592
|
+
| Agent | Call Count | Total Duration | Model(s) | Skill Count |
|
|
587
593
|
|-------|-------------|-------------|------------|-------------|
|
|
588
594
|
| explore | 3 | 12s | haiku | 0 |
|
|
589
595
|
| ios-architect | 1 | 8s | opus | 6 |
|
|
590
596
|
| code-reviewer | 3 | 37s | opus, gpt-5.4, sonnet | 5 each |
|
|
591
597
|
| security-auditor | 1 | 6s | sonnet | 4 |
|
|
592
598
|
| task (build) | 4 | 2m 15s | haiku | 0 |
|
|
593
|
-
| **
|
|
599
|
+
| **TOTAL** | **12** | **3m 18s** | | |
|
|
594
600
|
|
|
595
|
-
### Token
|
|
596
|
-
|
|
|
601
|
+
### Token Estimate
|
|
602
|
+
| Category | Amount |
|
|
597
603
|
|----------|--------|
|
|
598
|
-
|
|
|
599
|
-
|
|
|
600
|
-
| **
|
|
601
|
-
| Premium request
|
|
604
|
+
| Main agent (orchestrator) | ~{N}K tokens |
|
|
605
|
+
| Sub-agents (total) | ~{N}K tokens |
|
|
606
|
+
| **Total estimate** | **~{N}K tokens** |
|
|
607
|
+
| Premium request count | ~{N} |
|
|
602
608
|
|
|
603
|
-
> Token
|
|
609
|
+
> Token amounts are estimates. For exact usage, run the `/usage` command.
|
|
604
610
|
|
|
605
|
-
###
|
|
611
|
+
### Per-Phase Time Distribution
|
|
606
612
|
```
|
|
607
613
|
Phase 0: Init ████░░░░░░░░░░░░ 5s
|
|
608
614
|
Phase 1: Analysis ██████░░░░░░░░░░ 12s
|
|
609
615
|
Phase 2: Planning █████░░░░░░░░░░░ 8s
|
|
610
|
-
Phase 3: Dev ████████████████ 2m 35s ←
|
|
616
|
+
Phase 3: Dev ████████████████ 2m 35s ← longest
|
|
611
617
|
Phase 4: Review ████████░░░░░░░░ 37s
|
|
612
|
-
Phase 5: Test ██░░░░░░░░░░░░░░ (
|
|
618
|
+
Phase 5: Test ██░░░░░░░░░░░░░░ (waiting on user)
|
|
613
619
|
Phase 6: Commit ██░░░░░░░░░░░░░░ 3s
|
|
614
620
|
Phase 7: Report ███░░░░░░░░░░░░░ 17s ← Jira + Wiki + Confluence + Log + Knowledge
|
|
615
621
|
```
|
|
616
622
|
|
|
617
|
-
### Review
|
|
618
|
-
|
|
|
623
|
+
### Review Iterations
|
|
624
|
+
| Iteration | Blocking | Important | Suggestion | Decision |
|
|
619
625
|
|-----------|----------|-----------|------------|-------|
|
|
620
626
|
| R1 | 0 | 1 | 2 | 🟡 fix + re-review |
|
|
621
627
|
| R2 | 0 | 0 | 1 | 🟢 pass |
|
|
@@ -626,7 +632,7 @@ Phase 7: Report ███░░░░░░░░░░░░░ 17s ← Ji
|
|
|
626
632
|
|
|
627
633
|
## Cost Breakdown
|
|
628
634
|
|
|
629
|
-
(Phase 7
|
|
635
|
+
(Printed in Phase 7 via `pipeline/scripts/render-agent-log-cost.sh <task-id>`. If there is no token data in the tracker, the renderer returns exit 2 and this section is silently skipped.)
|
|
630
636
|
|
|
631
637
|
| Phase | Model | Tokens in | Tokens out | Est. USD |
|
|
632
638
|
|-------|-------|-----------|------------|----------|
|
|
@@ -634,16 +640,16 @@ Phase 7: Report ███░░░░░░░░░░░░░ 17s ← Ji
|
|
|
634
640
|
## Test Scenarios (Jira)
|
|
635
641
|
```
|
|
636
642
|
|
|
637
|
-
### Cost Breakdown
|
|
643
|
+
### Cost Breakdown - emit contract
|
|
638
644
|
|
|
639
|
-
Phase 7 agent-log compose
|
|
645
|
+
The Phase 7 agent-log compose step always attempts this render:
|
|
640
646
|
|
|
641
647
|
```bash
|
|
642
648
|
COST_BLOCK=$(bash pipeline/scripts/render-agent-log-cost.sh "$TASK_ID" 2>/dev/null) && \
|
|
643
649
|
printf '\n%s\n' "$COST_BLOCK" >> "$AGENT_LOG"
|
|
644
650
|
```
|
|
645
651
|
|
|
646
|
-
`reportContent.costSummary`
|
|
652
|
+
Independent of `reportContent.costSummary` - agent-log always carries it, PR/Jira bodies are opt-in. The renderer uses `cost-table.json`; a price update flows from a single point to both surfaces at once.
|
|
647
653
|
|
|
648
654
|
---
|
|
649
655
|
|
|
@@ -668,7 +674,7 @@ Every component produces up to 5 files:
|
|
|
668
674
|
Configuration structs hold ONLY declarative, value-type properties:
|
|
669
675
|
|
|
670
676
|
```swift
|
|
671
|
-
// ✅ CORRECT
|
|
677
|
+
// ✅ CORRECT - pure value type
|
|
672
678
|
struct ButtonConfiguration {
|
|
673
679
|
var title: String = ""
|
|
674
680
|
var style: ButtonStyle = .primary
|
|
@@ -676,7 +682,7 @@ struct ButtonConfiguration {
|
|
|
676
682
|
var icon: Image? = nil
|
|
677
683
|
}
|
|
678
684
|
|
|
679
|
-
// ❌ WRONG
|
|
685
|
+
// ❌ WRONG - these do NOT belong in Configuration
|
|
680
686
|
// Closures → View property
|
|
681
687
|
// @Binding → View property
|
|
682
688
|
// @State → View property
|
|
@@ -730,7 +736,7 @@ extension ButtonView {
|
|
|
730
736
|
| Criteria | Simple | Complex |
|
|
731
737
|
|----------|--------|---------|
|
|
732
738
|
| Properties | ≤3 | >3 |
|
|
733
|
-
| Configuration file | No
|
|
739
|
+
| Configuration file | No - props in View directly | Yes - separate struct |
|
|
734
740
|
| +Modifiers file | No | Yes |
|
|
735
741
|
| View file | All-in-one | Renders Configuration |
|
|
736
742
|
|
|
@@ -742,24 +748,24 @@ extension ButtonView {
|
|
|
742
748
|
| Visual | Snapshot Tests | Pixel-correct render: light/dark, RTL/LTR |
|
|
743
749
|
| Behavioral | Unit Tests | State changes, closures, configuration mutations |
|
|
744
750
|
|
|
745
|
-
### Component Checklist (Commit
|
|
751
|
+
### Component Checklist (Before Commit)
|
|
746
752
|
|
|
747
|
-
1.
|
|
748
|
-
2. Configuration purity
|
|
749
|
-
3. Modifier
|
|
750
|
-
4. Accessibility
|
|
751
|
-
5. Preview
|
|
752
|
-
6. Test
|
|
753
|
-
7. Dark mode
|
|
754
|
-
8. Dynamic Type
|
|
753
|
+
1. No magic numbers - all values are design tokens or named constants
|
|
754
|
+
2. Configuration purity - no side-effects or view logic in Config
|
|
755
|
+
3. Modifier correctness - fluent API valid, paired modifiers live in the View
|
|
756
|
+
4. Accessibility - accessibility label/trait on every interactive element
|
|
757
|
+
5. Preview - all meaningful variants in the preview
|
|
758
|
+
6. Test - structural + unit tests written
|
|
759
|
+
7. Dark mode - renders correctly in both color schemes
|
|
760
|
+
8. Dynamic Type - text scales at large sizes without breaking the layout
|
|
755
761
|
|
|
756
|
-
### Figma URL
|
|
762
|
+
### When a Figma URL Is Provided
|
|
757
763
|
|
|
758
|
-
|
|
759
|
-
1.
|
|
760
|
-
2.
|
|
761
|
-
3.
|
|
762
|
-
4.
|
|
764
|
+
If the user provides a Figma URL:
|
|
765
|
+
1. Fetch the design data with Figma MCP tools (get_design_context, get_screenshot)
|
|
766
|
+
2. Map the design's colors, spacing, and typography onto the project's token system
|
|
767
|
+
3. Apply the Configuration/View/Modifiers pattern above
|
|
768
|
+
4. Use the screenshot as a reference, do not copy it - adapt to the project's existing components
|
|
763
769
|
|
|
764
770
|
---
|
|
765
771
|
|
|
@@ -773,9 +779,9 @@ Eğer kullanıcı bir Figma URL verirse:
|
|
|
773
779
|
- ✅ Every public method must have tests
|
|
774
780
|
- ✅ Xcode header on new Swift files
|
|
775
781
|
- ✅ Commit message format:
|
|
776
|
-
- Jira
|
|
777
|
-
- Jira
|
|
778
|
-
- ✅ Git author: resolved from `prefs.global.identities[]` (e.g. `{identity.name} <{identity.email}>`)
|
|
782
|
+
- With Jira: `{type}({scope}): description [PROJ-{id}]`
|
|
783
|
+
- Without Jira (generic): `{type}({scope}): description [#{shortId}]`
|
|
784
|
+
- ✅ Git author: resolved from `prefs.global.identities[]` (e.g. `{identity.name} <{identity.email}>`) - NEVER hardcoded
|
|
779
785
|
|
|
780
786
|
---
|
|
781
787
|
|
|
@@ -795,7 +801,7 @@ Sub-agents have embedded skills in their `.agent.md` files. Each agent is pre-lo
|
|
|
795
801
|
|
|
796
802
|
```
|
|
797
803
|
Phase 1: Analysis
|
|
798
|
-
├─ explore agents (no skills needed
|
|
804
|
+
├─ explore agents (no skills needed - pure file reading)
|
|
799
805
|
└─ security-auditor agent
|
|
800
806
|
└─ Skills: iOS Security Deep Dive, App Store Review Gates, SDK Risk
|
|
801
807
|
|
|
@@ -805,7 +811,7 @@ Phase 2: Planning
|
|
|
805
811
|
|
|
806
812
|
Phase 3: Dev
|
|
807
813
|
└─ Ana agent (reads copilot-instructions.md directly)
|
|
808
|
-
└─ TDD, token rules, code style
|
|
814
|
+
└─ TDD, token rules, code style - from global instructions
|
|
809
815
|
|
|
810
816
|
Phase 4: Review (parallel + triage)
|
|
811
817
|
Claude Code (2 parallel):
|
|
@@ -865,24 +871,24 @@ When called with no args or `help`, detect project and show relevant usage with
|
|
|
865
871
|
First show how it works:
|
|
866
872
|
```
|
|
867
873
|
🤖 How it works (8 phases):
|
|
868
|
-
0. Init
|
|
869
|
-
1. Analysis
|
|
870
|
-
2. Planning
|
|
871
|
-
3. Dev
|
|
872
|
-
4. Review
|
|
873
|
-
• Claude Code → Opus + Sonnet (2
|
|
874
|
-
• Copilot CLI → GPT-5.4 + Opus + Sonnet (3
|
|
875
|
-
5. Test
|
|
876
|
-
6. Commit
|
|
877
|
-
7. Report
|
|
878
|
-
1) Jira comment (
|
|
879
|
-
2) Component wiki + Figma screenshot + wiki push (component
|
|
880
|
-
3)
|
|
881
|
-
4) agent-log.md
|
|
874
|
+
0. Init - Project detection, worktree creation, state file
|
|
875
|
+
1. Analysis - Codebase scan (parallel explore agents, Opus)
|
|
876
|
+
2. Planning - Task breakdown, architecture review, user approval
|
|
877
|
+
3. Dev - TDD loop: write test → write code → build (Sonnet)
|
|
878
|
+
4. Review - Parallel review + Opus triage. Reviewer set by CLI:
|
|
879
|
+
• Claude Code → Opus + Sonnet (2 parallel)
|
|
880
|
+
• Copilot CLI → GPT-5.4 + Opus + Sonnet (3 parallel)
|
|
881
|
+
5. Test - Optional: switch to the branch, manual test in Xcode
|
|
882
|
+
6. Commit - Commit + push + PR + issue body update (PR links + progress flags)
|
|
883
|
+
7. Report - A single logical phase (5 steps):
|
|
884
|
+
1) Jira comment (humanized analysis + test scenarios)
|
|
885
|
+
2) Component wiki + Figma screenshot + wiki push (for component tasks)
|
|
886
|
+
3) Optional Confluence page update
|
|
887
|
+
4) Detailed report into agent-log.md + Quality & Metrics + telemetry
|
|
882
888
|
5) Knowledge capture (architecture, patterns, gotchas) + memory
|
|
883
889
|
|
|
884
|
-
|
|
885
|
-
resume
|
|
890
|
+
Every step is logged to agent-log.md. An error in any phase → pause.
|
|
891
|
+
resume continues from where it left off.
|
|
886
892
|
```
|
|
887
893
|
|
|
888
894
|
Then show project-specific usage:
|
|
@@ -937,7 +943,7 @@ Usage:
|
|
|
937
943
|
multi-agent purge → ⚠️ Full reset: delete everything
|
|
938
944
|
multi-agent review → Review current diff only
|
|
939
945
|
|
|
940
|
-
Example: multi-agent "LoginView
|
|
946
|
+
Example: multi-agent "In LoginView the button color is invisible in dark mode"
|
|
941
947
|
```
|
|
942
948
|
|
|
943
949
|
Pipeline: Init → Analysis → Planning → Development → Review → User Test → Commit → Wiki → Report
|