@mmerterden/multi-agent-pipeline 8.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2623 -0
- package/LICENSE +21 -0
- package/README.md +852 -0
- package/docs/FIGMA_PIPELINE.md +138 -0
- package/docs/GENERICITY-REVIEW.md +277 -0
- package/docs/STABILITY-FIX-PLAN.md +168 -0
- package/docs/adr/0001-three-model-triage.md +81 -0
- package/docs/adr/0002-instruction-driven-flag.md +62 -0
- package/docs/adr/0003-unified-shared-skills.md +55 -0
- package/docs/adr/0004-zero-dependency-philosophy.md +60 -0
- package/docs/adr/0005-lazy-phase-docs.md +68 -0
- package/docs/adr/0006-skills-core-external-split.md +52 -0
- package/docs/adr/0007-multi-tool-adapter-framework.md +110 -0
- package/docs/adr/0008-installer-modularization-and-secret-leak-defense.md +98 -0
- package/docs/adr/README.md +33 -0
- package/docs/architecture.md +181 -0
- package/docs/best-practices.md +93 -0
- package/docs/features.md +274 -0
- package/docs/performance.md +116 -0
- package/docs/recovery-guide.md +479 -0
- package/index.js +76 -0
- package/install/_adapters.mjs +69 -0
- package/install/_common.mjs +150 -0
- package/install/_copilot-instructions.mjs +32 -0
- package/install/_dev-only-files.mjs +23 -0
- package/install/_platform-filter.mjs +132 -0
- package/install/_telemetry.mjs +79 -0
- package/install/claude.mjs +332 -0
- package/install/copilot.mjs +254 -0
- package/install/index.mjs +179 -0
- package/install/templates/copilot-instructions.md +319 -0
- package/install.js +24 -0
- package/package.json +78 -0
- package/pipeline/adapters/_base.mjs +288 -0
- package/pipeline/adapters/copilot-chat.mjs +158 -0
- package/pipeline/adapters/cursor.mjs +187 -0
- package/pipeline/agents/android-architect.md +42 -0
- package/pipeline/agents/backend-architect.md +43 -0
- package/pipeline/agents/code-reviewer.md +57 -0
- package/pipeline/agents/dev-critic.md +148 -0
- package/pipeline/agents/explorer.md +34 -0
- package/pipeline/agents/ios-architect.md +41 -0
- package/pipeline/agents/security-auditor.md +98 -0
- package/pipeline/agents/task-clarifier.md +113 -0
- package/pipeline/claude-md-template.md +55 -0
- package/pipeline/commands/archive-guard.md +45 -0
- package/pipeline/commands/deploy.md +54 -0
- package/pipeline/commands/figma-to-swiftui.md +295 -0
- package/pipeline/commands/multi-agent/_account-picker.md +90 -0
- package/pipeline/commands/multi-agent/_dev-context.md +111 -0
- package/pipeline/commands/multi-agent/_input-parser.md +43 -0
- package/pipeline/commands/multi-agent/_repo-picker.md +76 -0
- package/pipeline/commands/multi-agent/autopilot.md +116 -0
- package/pipeline/commands/multi-agent/channels.md +465 -0
- package/pipeline/commands/multi-agent/delete.md +66 -0
- package/pipeline/commands/multi-agent/dev-autopilot.md +120 -0
- package/pipeline/commands/multi-agent/dev-local-autopilot.md +110 -0
- package/pipeline/commands/multi-agent/dev-local.md +105 -0
- package/pipeline/commands/multi-agent/dev.md +246 -0
- package/pipeline/commands/multi-agent/diff-explain.md +68 -0
- package/pipeline/commands/multi-agent/help.md +422 -0
- package/pipeline/commands/multi-agent/issue.md +79 -0
- package/pipeline/commands/multi-agent/jira.md +132 -0
- package/pipeline/commands/multi-agent/kill.md +38 -0
- package/pipeline/commands/multi-agent/language.md +94 -0
- package/pipeline/commands/multi-agent/local-autopilot.md +139 -0
- package/pipeline/commands/multi-agent/local.md +117 -0
- package/pipeline/commands/multi-agent/log.md +25 -0
- package/pipeline/commands/multi-agent/manual-test.md +43 -0
- package/pipeline/commands/multi-agent/purge.md +39 -0
- package/pipeline/commands/multi-agent/refactor.md +188 -0
- package/pipeline/commands/multi-agent/refs/android-guide.md +250 -0
- package/pipeline/commands/multi-agent/refs/audit-guide.md +240 -0
- package/pipeline/commands/multi-agent/refs/backend-guide.md +135 -0
- package/pipeline/commands/multi-agent/refs/channels/confluence.md +153 -0
- package/pipeline/commands/multi-agent/refs/channels/issue-comment.md +141 -0
- package/pipeline/commands/multi-agent/refs/channels/jira.md +127 -0
- package/pipeline/commands/multi-agent/refs/channels/pr-review-actions.md +135 -0
- package/pipeline/commands/multi-agent/refs/channels/pr.md +139 -0
- package/pipeline/commands/multi-agent/refs/channels/wiki.md +66 -0
- package/pipeline/commands/multi-agent/refs/component-dispatch.md +92 -0
- package/pipeline/commands/multi-agent/refs/cross-cli-contract.md +326 -0
- package/pipeline/commands/multi-agent/refs/frontend-guide.md +136 -0
- package/pipeline/commands/multi-agent/refs/issue-jira-triad.md +104 -0
- package/pipeline/commands/multi-agent/refs/keychain.md +80 -0
- package/pipeline/commands/multi-agent/refs/knowledge.md +112 -0
- package/pipeline/commands/multi-agent/refs/multi-repo-integration-build.md +207 -0
- package/pipeline/commands/multi-agent/refs/phases/log-format.md +89 -0
- package/pipeline/commands/multi-agent/refs/phases/modes.md +156 -0
- package/pipeline/commands/multi-agent/refs/phases/operations.md +91 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-0-init.md +481 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-1-analysis.md +264 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-2-planning.md +278 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-3-dev.md +364 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-4-review.md +378 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-5-test.md +129 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-6-commit.md +339 -0
- package/pipeline/commands/multi-agent/refs/phases/phase-7-report.md +361 -0
- package/pipeline/commands/multi-agent/refs/phases.md +187 -0
- package/pipeline/commands/multi-agent/refs/progress-contract.md +155 -0
- package/pipeline/commands/multi-agent/refs/rules.md +189 -0
- package/pipeline/commands/multi-agent/refs/swiftui-guide.md +254 -0
- package/pipeline/commands/multi-agent/refs/tracker-contract.md +256 -0
- package/pipeline/commands/multi-agent/refs/wiki-capture.md +109 -0
- package/pipeline/commands/multi-agent/resume.md +28 -0
- package/pipeline/commands/multi-agent/review.md +228 -0
- package/pipeline/commands/multi-agent/scan.md +74 -0
- package/pipeline/commands/multi-agent/search.md +97 -0
- package/pipeline/commands/multi-agent/setup.md +767 -0
- package/pipeline/commands/multi-agent/stack.md +48 -0
- package/pipeline/commands/multi-agent/status.md +38 -0
- package/pipeline/commands/multi-agent/sync.md +319 -0
- package/pipeline/commands/multi-agent/test.md +39 -0
- package/pipeline/commands/multi-agent/update.md +88 -0
- package/pipeline/commands/multi-agent.md +293 -0
- package/pipeline/commands/security-review.md +6 -0
- package/pipeline/commands/sim-test.md +256 -0
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-1-analysis.json +25 -0
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-2-plan.json +30 -0
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-4-review.json +20 -0
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-4-triage.json +15 -0
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/metadata.json +14 -0
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/task.json +12 -0
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-1-analysis.json +29 -0
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-2-plan.json +43 -0
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-4-review.json +35 -0
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-4-triage.json +35 -0
- package/pipeline/eval/golden-tasks/02-android-feature-compose/metadata.json +14 -0
- package/pipeline/eval/golden-tasks/02-android-feature-compose/task.json +12 -0
- package/pipeline/eval/golden-tasks/README.md +65 -0
- package/pipeline/eval/triage/01-empty-findings/expected.json +6 -0
- package/pipeline/eval/triage/01-empty-findings/input.json +5 -0
- package/pipeline/eval/triage/01-empty-findings/notes.md +7 -0
- package/pipeline/eval/triage/02-real-blocker/expected.json +15 -0
- package/pipeline/eval/triage/02-real-blocker/input.json +14 -0
- package/pipeline/eval/triage/02-real-blocker/notes.md +7 -0
- package/pipeline/eval/triage/03-out-of-scope-defer/expected.json +18 -0
- package/pipeline/eval/triage/03-out-of-scope-defer/input.json +14 -0
- package/pipeline/eval/triage/03-out-of-scope-defer/notes.md +10 -0
- package/pipeline/eval/triage/04-false-positive-reject/expected.json +18 -0
- package/pipeline/eval/triage/04-false-positive-reject/input.json +14 -0
- package/pipeline/eval/triage/04-false-positive-reject/notes.md +10 -0
- package/pipeline/eval/triage/05-mixed-classification/expected.json +43 -0
- package/pipeline/eval/triage/05-mixed-classification/input.json +38 -0
- package/pipeline/eval/triage/05-mixed-classification/notes.md +17 -0
- package/pipeline/eval/triage/06-severity-mismatch/expected.json +15 -0
- package/pipeline/eval/triage/06-severity-mismatch/input.json +14 -0
- package/pipeline/eval/triage/06-severity-mismatch/notes.md +9 -0
- package/pipeline/eval/triage/07-duplicate-reviewers/expected.json +27 -0
- package/pipeline/eval/triage/07-duplicate-reviewers/input.json +22 -0
- package/pipeline/eval/triage/07-duplicate-reviewers/notes.md +9 -0
- package/pipeline/eval/triage/08-style-misclassified/expected.json +18 -0
- package/pipeline/eval/triage/08-style-misclassified/input.json +14 -0
- package/pipeline/eval/triage/08-style-misclassified/notes.md +9 -0
- package/pipeline/eval/triage/09-cascading-finding/expected.json +23 -0
- package/pipeline/eval/triage/09-cascading-finding/input.json +22 -0
- package/pipeline/eval/triage/09-cascading-finding/notes.md +9 -0
- package/pipeline/eval/triage/10-deferred-crossref/expected.json +18 -0
- package/pipeline/eval/triage/10-deferred-crossref/input.json +14 -0
- package/pipeline/eval/triage/10-deferred-crossref/notes.md +9 -0
- package/pipeline/eval/triage/11-vercel-token-leak-blocker/expected.json +27 -0
- package/pipeline/eval/triage/11-vercel-token-leak-blocker/input.json +22 -0
- package/pipeline/eval/triage/11-vercel-token-leak-blocker/notes.md +14 -0
- package/pipeline/eval/triage/README.md +54 -0
- package/pipeline/lib/account-resolver.sh +204 -0
- package/pipeline/lib/channels-multi-repo.sh +218 -0
- package/pipeline/lib/context-link-extractor.sh +192 -0
- package/pipeline/lib/credential-store-resolver.sh +57 -0
- package/pipeline/lib/credential-store.sh +226 -0
- package/pipeline/lib/fetch-confluence.sh +358 -0
- package/pipeline/lib/fetch-crashlytics.sh +314 -0
- package/pipeline/lib/fetch-fortify.sh +321 -0
- package/pipeline/lib/fetch-swagger.sh +270 -0
- package/pipeline/lib/issue-fetcher.sh +333 -0
- package/pipeline/lib/multi-repo-pipeline.sh +252 -0
- package/pipeline/lib/plan-todos.sh +284 -0
- package/pipeline/lib/post-pr-review.sh +374 -0
- package/pipeline/lib/repo-cache.sh +231 -0
- package/pipeline/lib/review-watch.sh +244 -0
- package/pipeline/lib/shadow-git.sh +222 -0
- package/pipeline/lib/submodule-detector.sh +177 -0
- package/pipeline/lib/vercel-deploy.sh +170 -0
- package/pipeline/preferences-template.json +132 -0
- package/pipeline/rules/app-store-guidelines.md +59 -0
- package/pipeline/rules/code-review.md +27 -0
- package/pipeline/rules/code-style.md +37 -0
- package/pipeline/rules/debugging.md +24 -0
- package/pipeline/rules/figma-pipeline.md +190 -0
- package/pipeline/rules/git-conventions.md +29 -0
- package/pipeline/rules/kotlin-android.md +92 -0
- package/pipeline/rules/performance.md +23 -0
- package/pipeline/rules/security.md +39 -0
- package/pipeline/rules/swiftui-qa.md +32 -0
- package/pipeline/rules/tdd.md +25 -0
- package/pipeline/rules/testing.md +37 -0
- package/pipeline/schemas/agent-state.schema.json +273 -0
- package/pipeline/schemas/analysis-output.schema.json +59 -0
- package/pipeline/schemas/clarify-output.schema.json +74 -0
- package/pipeline/schemas/dev-critic-output.schema.json +104 -0
- package/pipeline/schemas/diff-risk.schema.json +78 -0
- package/pipeline/schemas/figma-project-config.schema.json +372 -0
- package/pipeline/schemas/migrations/README.md +73 -0
- package/pipeline/schemas/migrations/figma-config-1.0.0-to-2.0.0.mjs +112 -0
- package/pipeline/schemas/migrations/prefs-2.0.0-to-2.1.0.mjs +75 -0
- package/pipeline/schemas/migrations/prefs-2.1.0-to-2.2.0.mjs +64 -0
- package/pipeline/schemas/migrations/prefs-2.2.0-to-2.3.0.mjs +36 -0
- package/pipeline/schemas/migrations/state-2.0.0-to-2.1.0.mjs +34 -0
- package/pipeline/schemas/plan-todos.schema.json +62 -0
- package/pipeline/schemas/planning-output.schema.json +57 -0
- package/pipeline/schemas/prefs.schema.json +1137 -0
- package/pipeline/schemas/reviewer-output.schema.json +55 -0
- package/pipeline/schemas/test-gap.schema.json +64 -0
- package/pipeline/schemas/token-budget.json +17 -0
- package/pipeline/schemas/triage-corpus.schema.json +31 -0
- package/pipeline/schemas/triage-output.schema.json +115 -0
- package/pipeline/scripts/.last-figma-sync-plan.json +23 -0
- package/pipeline/scripts/README-figma-smokes.md +34 -0
- package/pipeline/scripts/README.md +104 -0
- package/pipeline/scripts/aggregate-metrics.mjs +310 -0
- package/pipeline/scripts/audit-log-rotate.sh +61 -0
- package/pipeline/scripts/audit-log.sh +69 -0
- package/pipeline/scripts/benchmark-phase-0.sh +128 -0
- package/pipeline/scripts/build-skills-index.mjs +139 -0
- package/pipeline/scripts/classify-plan-safety.mjs +177 -0
- package/pipeline/scripts/cost-table.json +27 -0
- package/pipeline/scripts/diff-explain.mjs +276 -0
- package/pipeline/scripts/diff-risk-score.mjs +328 -0
- package/pipeline/scripts/eval-golden-tasks-live.mjs +294 -0
- package/pipeline/scripts/eval-golden-tasks.mjs +223 -0
- package/pipeline/scripts/eval-triage.mjs +171 -0
- package/pipeline/scripts/figma-placeholder-map.json +191 -0
- package/pipeline/scripts/fixtures/diff-risk-android.diff +40 -0
- package/pipeline/scripts/fixtures/diff-risk-ios.diff +48 -0
- package/pipeline/scripts/fixtures/install-layout.tsv +16 -0
- package/pipeline/scripts/fixtures/test-gap-node.diff +30 -0
- package/pipeline/scripts/fixtures/test-gap-python.diff +32 -0
- package/pipeline/scripts/gen-mode-dispatch.mjs +170 -0
- package/pipeline/scripts/gen-skills-index.mjs +90 -0
- package/pipeline/scripts/github-ssh-setup.sh +103 -0
- package/pipeline/scripts/import-figma-skills.sh +253 -0
- package/pipeline/scripts/keychain-save.sh +74 -0
- package/pipeline/scripts/keychain.py +294 -0
- package/pipeline/scripts/log-metric.sh +98 -0
- package/pipeline/scripts/match-skills.mjs +167 -0
- package/pipeline/scripts/memory-load.sh +46 -0
- package/pipeline/scripts/memory-save.sh +76 -0
- package/pipeline/scripts/migrate-prefs.mjs +390 -0
- package/pipeline/scripts/migrate-state.mjs +215 -0
- package/pipeline/scripts/output-quality-check.sh +125 -0
- package/pipeline/scripts/phase-banner.sh +158 -0
- package/pipeline/scripts/phase-tracker.sh +548 -0
- package/pipeline/scripts/pre-commit-check.sh +69 -0
- package/pipeline/scripts/pre-push-check.sh +77 -0
- package/pipeline/scripts/render-agent-log-cost.sh +149 -0
- package/pipeline/scripts/render-cost-summary.sh +137 -0
- package/pipeline/scripts/render-work-summary.sh +195 -0
- package/pipeline/scripts/repo-map.mjs +367 -0
- package/pipeline/scripts/run-aggregator.mjs +298 -0
- package/pipeline/scripts/scan-skills.sh +332 -0
- package/pipeline/scripts/search-logs.sh +291 -0
- package/pipeline/scripts/sign-skills.sh +67 -0
- package/pipeline/scripts/smoke-adapters.sh +207 -0
- package/pipeline/scripts/smoke-add-detail.sh +137 -0
- package/pipeline/scripts/smoke-agent-log-cost.sh +183 -0
- package/pipeline/scripts/smoke-agent-model-routing.sh +87 -0
- package/pipeline/scripts/smoke-bitbucket-contract.sh +223 -0
- package/pipeline/scripts/smoke-channels-flow.sh +130 -0
- package/pipeline/scripts/smoke-ci-workflows.sh +88 -0
- package/pipeline/scripts/smoke-clarify.sh +148 -0
- package/pipeline/scripts/smoke-commands-skills-parity.sh +87 -0
- package/pipeline/scripts/smoke-compliance-skills.sh +119 -0
- package/pipeline/scripts/smoke-cost-summary.sh +139 -0
- package/pipeline/scripts/smoke-cross-cli-behavior.sh +198 -0
- package/pipeline/scripts/smoke-cross-phase-cohesion.sh +128 -0
- package/pipeline/scripts/smoke-delete-flow.sh +151 -0
- package/pipeline/scripts/smoke-dev-critic.sh +144 -0
- package/pipeline/scripts/smoke-diff-explain.sh +128 -0
- package/pipeline/scripts/smoke-diff-risk.sh +161 -0
- package/pipeline/scripts/smoke-dynamic-skill-loading.sh +160 -0
- package/pipeline/scripts/smoke-eval-live.sh +136 -0
- package/pipeline/scripts/smoke-existing-discovery-gate.sh +71 -0
- package/pipeline/scripts/smoke-figma-android-parity.sh +148 -0
- package/pipeline/scripts/smoke-figma-config-schema.sh +144 -0
- package/pipeline/scripts/smoke-figma-credential-store.sh +105 -0
- package/pipeline/scripts/smoke-figma-cross-cli-inventory.sh +177 -0
- package/pipeline/scripts/smoke-figma-dispatch.sh +123 -0
- package/pipeline/scripts/smoke-figma-skill-import.sh +174 -0
- package/pipeline/scripts/smoke-figma-sync.sh +149 -0
- package/pipeline/scripts/smoke-identity-isolation.sh +70 -0
- package/pipeline/scripts/smoke-install-layout.sh +241 -0
- package/pipeline/scripts/smoke-install-leak-gate.sh +125 -0
- package/pipeline/scripts/smoke-issue-comment-template.sh +86 -0
- package/pipeline/scripts/smoke-issue-jira-triad.sh +120 -0
- package/pipeline/scripts/smoke-keychain.sh +158 -0
- package/pipeline/scripts/smoke-language-axis.sh +109 -0
- package/pipeline/scripts/smoke-lib-scripts.sh +395 -0
- package/pipeline/scripts/smoke-migrate-state.sh +102 -0
- package/pipeline/scripts/smoke-mode-dispatch-drift.sh +158 -0
- package/pipeline/scripts/smoke-multi-repo-integration.sh +116 -0
- package/pipeline/scripts/smoke-multi-repo-worktree.sh +61 -0
- package/pipeline/scripts/smoke-no-token-prompt.sh +69 -0
- package/pipeline/scripts/smoke-pat-audit.sh +107 -0
- package/pipeline/scripts/smoke-per-repo-memory.sh +156 -0
- package/pipeline/scripts/smoke-personal-data.sh +82 -0
- package/pipeline/scripts/smoke-phase-0-multi-repo.sh +170 -0
- package/pipeline/scripts/smoke-phase-6-multi.sh +79 -0
- package/pipeline/scripts/smoke-phase-banner.sh +101 -0
- package/pipeline/scripts/smoke-phase-tracker.sh +255 -0
- package/pipeline/scripts/smoke-phase0-bridge-contract.sh +241 -0
- package/pipeline/scripts/smoke-phase4-triage.sh +142 -0
- package/pipeline/scripts/smoke-plan-approval-gate.sh +71 -0
- package/pipeline/scripts/smoke-plan-safety.sh +139 -0
- package/pipeline/scripts/smoke-plan-todos.sh +193 -0
- package/pipeline/scripts/smoke-pr-review-actions.sh +152 -0
- package/pipeline/scripts/smoke-pre-commit.sh +138 -0
- package/pipeline/scripts/smoke-pref-migration.sh +224 -0
- package/pipeline/scripts/smoke-prefs-language.sh +134 -0
- package/pipeline/scripts/smoke-progress-contract.sh +118 -0
- package/pipeline/scripts/smoke-push-retry.sh +75 -0
- package/pipeline/scripts/smoke-readme-counts.sh +120 -0
- package/pipeline/scripts/smoke-repo-map.sh +300 -0
- package/pipeline/scripts/smoke-review-watch.sh +134 -0
- package/pipeline/scripts/smoke-run-aggregator.sh +216 -0
- package/pipeline/scripts/smoke-schema-validation.sh +173 -0
- package/pipeline/scripts/smoke-search.sh +187 -0
- package/pipeline/scripts/smoke-shadow-git.sh +175 -0
- package/pipeline/scripts/smoke-skill-authoring.sh +142 -0
- package/pipeline/scripts/smoke-skill-language.sh +83 -0
- package/pipeline/scripts/smoke-skill-manifest.sh +138 -0
- package/pipeline/scripts/smoke-skill-scan.sh +198 -0
- package/pipeline/scripts/smoke-stack-swap.sh +132 -0
- package/pipeline/scripts/smoke-subagent-validators.sh +105 -0
- package/pipeline/scripts/smoke-sync-delegation.sh +74 -0
- package/pipeline/scripts/smoke-sync-parity.sh +92 -0
- package/pipeline/scripts/smoke-tasklist-ordering.sh +111 -0
- package/pipeline/scripts/smoke-telemetry.sh +147 -0
- package/pipeline/scripts/smoke-test-gap.sh +183 -0
- package/pipeline/scripts/smoke-token-budget.sh +67 -0
- package/pipeline/scripts/smoke-tracker-contract.sh +129 -0
- package/pipeline/scripts/smoke-tracker-tokens-invocation.sh +65 -0
- package/pipeline/scripts/smoke-triage-memory.sh +174 -0
- package/pipeline/scripts/smoke-url-enrichment.sh +70 -0
- package/pipeline/scripts/smoke-validator-contradiction.sh +67 -0
- package/pipeline/scripts/smoke-vercel-deploy-redact.sh +129 -0
- package/pipeline/scripts/smoke-wiki-integration.sh +146 -0
- package/pipeline/scripts/smoke-work-summary.sh +163 -0
- package/pipeline/scripts/smoke-worktree-path-convention.sh +86 -0
- package/pipeline/scripts/smoke-write-state.sh +115 -0
- package/pipeline/scripts/stack-swap.sh +182 -0
- package/pipeline/scripts/sync-figma-source.sh +228 -0
- package/pipeline/scripts/sync-parity-check.sh +135 -0
- package/pipeline/scripts/test-gap-rules/android.json +25 -0
- package/pipeline/scripts/test-gap-rules/ios.json +29 -0
- package/pipeline/scripts/test-gap-rules/node.json +17 -0
- package/pipeline/scripts/test-gap-rules/python.json +19 -0
- package/pipeline/scripts/test-gap-scan.mjs +343 -0
- package/pipeline/scripts/token-budget-report.mjs +145 -0
- package/pipeline/scripts/triage-memory.mjs +258 -0
- package/pipeline/scripts/ui-tree-dumper.swift +122 -0
- package/pipeline/scripts/uninstall.mjs +331 -0
- package/pipeline/scripts/update-issue-progress.sh +146 -0
- package/pipeline/scripts/validate-analysis.mjs +132 -0
- package/pipeline/scripts/validate-diff-risk.mjs +117 -0
- package/pipeline/scripts/validate-planning.mjs +180 -0
- package/pipeline/scripts/validate-reviewer.mjs +131 -0
- package/pipeline/scripts/validate-schemas.mjs +88 -0
- package/pipeline/scripts/validate-test-gap.mjs +90 -0
- package/pipeline/scripts/validate-triage.mjs +175 -0
- package/pipeline/scripts/verify-skills.sh +126 -0
- package/pipeline/scripts/write-state.mjs +175 -0
- package/pipeline/skills/.skill-manifest.json +779 -0
- package/pipeline/skills/.skills-index.json +1771 -0
- package/pipeline/skills/figma-android/README.md +36 -0
- package/pipeline/skills/figma-android/figma-component-code-connect/SKILL.md +62 -0
- package/pipeline/skills/figma-android/figma-component-implement/SKILL.md +158 -0
- package/pipeline/skills/figma-android/figma-component-test/SKILL.md +120 -0
- package/pipeline/skills/figma-android/figma-component-wiki/SKILL.md +35 -0
- package/pipeline/skills/figma-android/figma-to-component/SKILL.md +124 -0
- package/pipeline/skills/figma-common/README.md +57 -0
- package/pipeline/skills/figma-common/figma-cli-iterate/SKILL.md +277 -0
- package/pipeline/skills/figma-common/figma-cli-iterate-mend/SKILL.md +498 -0
- package/pipeline/skills/figma-common/figma-cli-lean-iterate/SKILL.md +283 -0
- package/pipeline/skills/figma-common/figma-cli-skip/SKILL.md +362 -0
- package/pipeline/skills/figma-common/figma-commit/COMMON_REBASE.md +206 -0
- package/pipeline/skills/figma-common/figma-commit/REVIEW.md +337 -0
- package/pipeline/skills/figma-common/figma-commit/SKILL.md +211 -0
- package/pipeline/skills/figma-common/figma-component-confluence-sync/SKILL.md +218 -0
- package/pipeline/skills/figma-common/figma-component-start/SKILL.md +246 -0
- package/pipeline/skills/figma-common/figma-component-status-update/SKILL.md +73 -0
- package/pipeline/skills/figma-common/figma-fix/SKILL.md +316 -0
- package/pipeline/skills/figma-common/figma-form-integration/SKILL.md +542 -0
- package/pipeline/skills/figma-common/figma-issue/SKILL.md +745 -0
- package/pipeline/skills/figma-common/figma-iterate/SKILL.md +203 -0
- package/pipeline/skills/figma-common/figma-iteration-commit/SKILL.md +1015 -0
- package/pipeline/skills/figma-common/figma-mend/SKILL.md +331 -0
- package/pipeline/skills/figma-common/figma-price-integration/SKILL.md +398 -0
- package/pipeline/skills/figma-common/figma-remote-mcp-auth/SKILL.md +104 -0
- package/pipeline/skills/figma-common/figma-review/SKILL.md +395 -0
- package/pipeline/skills/figma-common/figma-setup/SKILL.md +514 -0
- package/pipeline/skills/figma-common/figma-setup/scripts/fetch-mcp-token.py +592 -0
- package/pipeline/skills/figma-common/figma-skip/SKILL.md +129 -0
- package/pipeline/skills/figma-common/figma-ui-patterns/SKILL.md +104 -0
- package/pipeline/skills/figma-common/figma-utility/SKILL.md +274 -0
- package/pipeline/skills/figma-common/figma-utility/scripts/figma-utility.py +808 -0
- package/pipeline/skills/figma-common/figma-validate/SKILL.md +633 -0
- package/pipeline/skills/figma-common/performance-iteration-commit-all/SKILL.md +711 -0
- package/pipeline/skills/figma-common/performance-review-next/SKILL.md +233 -0
- package/pipeline/skills/figma-common/performance-start/SKILL.md +425 -0
- package/pipeline/skills/figma-common/performance-swiftui/SKILL.md +706 -0
- package/pipeline/skills/figma-common/performance-tour/SKILL.md +418 -0
- package/pipeline/skills/figma-ios/REVIEW_CHECKLIST.md +67 -0
- package/pipeline/skills/figma-ios/figma-component-code-connect/SKILL.md +178 -0
- package/pipeline/skills/figma-ios/figma-component-implement/SKILL.md +184 -0
- package/pipeline/skills/figma-ios/figma-component-test/SKILL.md +219 -0
- package/pipeline/skills/figma-ios/figma-component-wiki/SKILL.md +274 -0
- package/pipeline/skills/figma-ios/figma-to-component/SKILL.md +401 -0
- package/pipeline/skills/figma-ios/figma-to-component/halt-return-protocol.md +57 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-0-init.md +307 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1-gathering.md +119 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-1.5-existing-discovery.md +174 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2-orchestrator.md +333 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2a-testing-identifiers.md +368 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2b-localization.md +393 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2c-accessibility.md +617 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-2d-analytics.md +352 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3-orchestrator.md +337 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3a-location.md +206 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3b-tokens.md +235 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3c-nested.md +214 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3d-patterns.md +871 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3e-assets.md +156 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3f-utilities.md +175 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3g-property-coverage.md +176 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-3h-variant-config.md +333 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4-orchestrator.md +412 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4a-configuration.md +336 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4b-view.md +695 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4c-documentation.md +332 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4d-preview.md +380 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-4e-modifiers.md +262 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5-orchestrator.md +482 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5a-viewinspector.md +274 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5b-snapshot.md +636 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-5c-unit.md +142 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-6-code-connect.md +547 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7-wiki.md +39 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-confluence-generate.md +659 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-7a-wiki-generate.md +580 -0
- package/pipeline/skills/figma-ios/figma-to-component/phases/phase-8-cleanup.md +51 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/accessibility.md +129 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/analytics-events.md +64 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/code-connect.md +531 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-api.md +89 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/confluence-xhtml.md +155 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/figma-to-swiftui-effects.md +196 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/halt-return-protocol.md +57 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/localization-naming.md +89 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/macros.md +227 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/missing-tokens.md +157 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/orchestrator-discipline.md +90 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/registry.md +116 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/remote-mcp-script.md +153 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/rest-api-script.md +130 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/scripts-inventory.md +218 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/snapshot-testing.md +188 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/subcomponent-graph.md +93 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/testing-identifiers-naming.md +98 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/tools.md +261 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/viewinspector.md +147 -0
- package/pipeline/skills/figma-ios/figma-to-component/reference/wiki-to-confluence-mapping.md +182 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/apply-author-login-map.py +185 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/backfill-status.py +609 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/build-author-registry.py +332 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/bulk-sync-issues.py +261 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-data-gather.py +184 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/code-connect-publish.sh +188 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status-upload.py +768 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-component-status.py +191 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-data-gather.py +420 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-page-ids.json +94 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/confluence-publish.py +336 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-subcomponent-graph.py +391 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/figma-update.py +292 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/__init__.py +1 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/issue_sync_propagate.py +93 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/registry_writer.py +299 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_backfill_status.py +343 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update.py +206 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_figma_update_http.py +149 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_phase_clis.py +281 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_registry_writer.py +332 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_issue.py +176 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_skill_figma_review.py +98 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue.py +298 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/lib/test_update_issue_gh.py +195 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase1-gather.py +1298 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase2-finalize.py +228 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase3-scripts.py +1089 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase4-finalize.py +141 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase5-finalize.py +106 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase6-finalize.py +162 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/phase7-finalize.py +105 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/register-icons-codeconnect.py +179 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/remote-mcp-fetch.py +260 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/resolve-author-logins.py +260 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/run-uicomponents-tests.sh +86 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/sidebar-generator.py +321 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/update-issue-from-registry.py +1470 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase4.sh +176 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase6.sh +147 -0
- package/pipeline/skills/figma-ios/figma-to-component/scripts/validate-phase7a.py +629 -0
- package/pipeline/skills/shared/README.md +212 -0
- package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +315 -0
- package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +348 -0
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +944 -0
- package/pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md +51 -0
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +300 -0
- package/pipeline/skills/shared/core/multi-agent-delete/SKILL.md +63 -0
- package/pipeline/skills/shared/core/multi-agent-dev/SKILL.md +64 -0
- package/pipeline/skills/shared/core/multi-agent-dev-autopilot/SKILL.md +56 -0
- package/pipeline/skills/shared/core/multi-agent-dev-local/SKILL.md +36 -0
- package/pipeline/skills/shared/core/multi-agent-dev-local-autopilot/SKILL.md +42 -0
- package/pipeline/skills/shared/core/multi-agent-diff-explain/SKILL.md +66 -0
- package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +292 -0
- package/pipeline/skills/shared/core/multi-agent-issue/SKILL.md +35 -0
- package/pipeline/skills/shared/core/multi-agent-jira/SKILL.md +38 -0
- package/pipeline/skills/shared/core/multi-agent-kill/SKILL.md +41 -0
- package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +87 -0
- package/pipeline/skills/shared/core/multi-agent-local/SKILL.md +37 -0
- package/pipeline/skills/shared/core/multi-agent-local-autopilot/SKILL.md +53 -0
- package/pipeline/skills/shared/core/multi-agent-log/SKILL.md +28 -0
- package/pipeline/skills/shared/core/multi-agent-manual-test/SKILL.md +47 -0
- package/pipeline/skills/shared/core/multi-agent-purge/SKILL.md +42 -0
- package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +191 -0
- package/pipeline/skills/shared/core/multi-agent-resume/SKILL.md +31 -0
- package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +61 -0
- package/pipeline/skills/shared/core/multi-agent-scan/SKILL.md +61 -0
- package/pipeline/skills/shared/core/multi-agent-search/SKILL.md +62 -0
- package/pipeline/skills/shared/core/multi-agent-setup/SKILL.md +309 -0
- package/pipeline/skills/shared/core/multi-agent-stack/SKILL.md +55 -0
- package/pipeline/skills/shared/core/multi-agent-status/SKILL.md +41 -0
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +184 -0
- package/pipeline/skills/shared/core/multi-agent-test/SKILL.md +44 -0
- package/pipeline/skills/shared/core/multi-agent-update/SKILL.md +34 -0
- package/pipeline/skills/shared/external/accessibility-compliance-accessibility-audit/SKILL.md +45 -0
- package/pipeline/skills/shared/external/agentflow/SKILL.md +199 -0
- package/pipeline/skills/shared/external/alarmkit/SKILL.md +438 -0
- package/pipeline/skills/shared/external/alarmkit/references/alarmkit-patterns.md +584 -0
- package/pipeline/skills/shared/external/android-architecture/SKILL.md +407 -0
- package/pipeline/skills/shared/external/android-jetpack-compose-expert/SKILL.md +153 -0
- package/pipeline/skills/shared/external/android-performance/SKILL.md +736 -0
- package/pipeline/skills/shared/external/android-security/SKILL.md +577 -0
- package/pipeline/skills/shared/external/android_ui_verification/SKILL.md +66 -0
- package/pipeline/skills/shared/external/api-patterns/SKILL.md +85 -0
- package/pipeline/skills/shared/external/api-security-best-practices/SKILL.md +910 -0
- package/pipeline/skills/shared/external/app-clips/SKILL.md +436 -0
- package/pipeline/skills/shared/external/app-intents/SKILL.md +489 -0
- package/pipeline/skills/shared/external/app-intents/references/appintents-advanced.md +1076 -0
- package/pipeline/skills/shared/external/app-store-changelog/SKILL.md +75 -0
- package/pipeline/skills/shared/external/app-store-optimization/SKILL.md +409 -0
- package/pipeline/skills/shared/external/app-store-review/SKILL.md +411 -0
- package/pipeline/skills/shared/external/app-store-review/references/code-signing.md +259 -0
- package/pipeline/skills/shared/external/app-store-review/references/privacy-manifest.md +90 -0
- package/pipeline/skills/shared/external/app-store-review/references/rejection-patterns.md +152 -0
- package/pipeline/skills/shared/external/app-store-review/references/review-checklists.md +118 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/SKILL.md +500 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-conversion.md +425 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-optimization.md +344 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/foundation-models.md +508 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/mlx-swift.md +285 -0
- package/pipeline/skills/shared/external/architecture/SKILL.md +60 -0
- package/pipeline/skills/shared/external/authentication/SKILL.md +496 -0
- package/pipeline/skills/shared/external/authentication/references/keychain-biometric.md +211 -0
- package/pipeline/skills/shared/external/background-processing/SKILL.md +499 -0
- package/pipeline/skills/shared/external/background-processing/references/background-task-patterns.md +390 -0
- package/pipeline/skills/shared/external/callkit-voip/SKILL.md +461 -0
- package/pipeline/skills/shared/external/callkit-voip/references/callkit-patterns.md +425 -0
- package/pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md +462 -0
- package/pipeline/skills/shared/external/clean-code/SKILL.md +94 -0
- package/pipeline/skills/shared/external/closed-loop-delivery/SKILL.md +116 -0
- package/pipeline/skills/shared/external/cloudkit-sync/SKILL.md +492 -0
- package/pipeline/skills/shared/external/cloudkit-sync/references/cloudkit-patterns.md +461 -0
- package/pipeline/skills/shared/external/compose-components/SKILL.md +441 -0
- package/pipeline/skills/shared/external/compose-navigation/SKILL.md +436 -0
- package/pipeline/skills/shared/external/compose-testing/SKILL.md +527 -0
- package/pipeline/skills/shared/external/contacts-framework/SKILL.md +425 -0
- package/pipeline/skills/shared/external/contacts-framework/references/contacts-patterns.md +409 -0
- package/pipeline/skills/shared/external/context-compression/SKILL.md +266 -0
- package/pipeline/skills/shared/external/core-bluetooth/SKILL.md +491 -0
- package/pipeline/skills/shared/external/core-bluetooth/references/ble-patterns.md +435 -0
- package/pipeline/skills/shared/external/core-motion/SKILL.md +388 -0
- package/pipeline/skills/shared/external/core-motion/references/motion-patterns.md +405 -0
- package/pipeline/skills/shared/external/core-nfc/SKILL.md +495 -0
- package/pipeline/skills/shared/external/core-nfc/references/nfc-patterns.md +420 -0
- package/pipeline/skills/shared/external/coreml/SKILL.md +458 -0
- package/pipeline/skills/shared/external/coreml/references/coreml-swift-integration.md +765 -0
- package/pipeline/skills/shared/external/css-modern/SKILL.md +467 -0
- package/pipeline/skills/shared/external/database-patterns/SKILL.md +335 -0
- package/pipeline/skills/shared/external/debugging-instruments/SKILL.md +422 -0
- package/pipeline/skills/shared/external/debugging-instruments/references/instruments-guide.md +387 -0
- package/pipeline/skills/shared/external/debugging-instruments/references/lldb-patterns.md +298 -0
- package/pipeline/skills/shared/external/debugging-strategies/SKILL.md +37 -0
- package/pipeline/skills/shared/external/device-integrity/SKILL.md +477 -0
- package/pipeline/skills/shared/external/docker-expert/SKILL.md +413 -0
- package/pipeline/skills/shared/external/energykit/SKILL.md +460 -0
- package/pipeline/skills/shared/external/energykit/references/energykit-patterns.md +541 -0
- package/pipeline/skills/shared/external/eventkit-calendar/SKILL.md +483 -0
- package/pipeline/skills/shared/external/eventkit-calendar/references/eventkit-patterns.md +326 -0
- package/pipeline/skills/shared/external/fastapi-pro/SKILL.md +190 -0
- package/pipeline/skills/shared/external/firebase/SKILL.md +61 -0
- package/pipeline/skills/shared/external/github-actions-templates/SKILL.md +348 -0
- package/pipeline/skills/shared/external/gradle-kotlin-dsl/SKILL.md +552 -0
- package/pipeline/skills/shared/external/healthkit/SKILL.md +498 -0
- package/pipeline/skills/shared/external/healthkit/references/healthkit-patterns.md +602 -0
- package/pipeline/skills/shared/external/help-skills/SKILL.md +166 -0
- package/pipeline/skills/shared/external/hig-components-content/SKILL.md +81 -0
- package/pipeline/skills/shared/external/hig-components-layout/SKILL.md +95 -0
- package/pipeline/skills/shared/external/hig-components-status/SKILL.md +82 -0
- package/pipeline/skills/shared/external/hig-components-system/SKILL.md +101 -0
- package/pipeline/skills/shared/external/hig-foundations/SKILL.md +94 -0
- package/pipeline/skills/shared/external/hig-inputs/SKILL.md +110 -0
- package/pipeline/skills/shared/external/hig-patterns/SKILL.md +99 -0
- package/pipeline/skills/shared/external/hig-platforms/SKILL.md +81 -0
- package/pipeline/skills/shared/external/hig-technologies/SKILL.md +125 -0
- package/pipeline/skills/shared/external/homekit-matter/SKILL.md +496 -0
- package/pipeline/skills/shared/external/homekit-matter/references/matter-commissioning.md +455 -0
- package/pipeline/skills/shared/external/html-semantic/SKILL.md +301 -0
- package/pipeline/skills/shared/external/humanizer/SKILL.md +118 -0
- package/pipeline/skills/shared/external/ios-accessibility/SKILL.md +301 -0
- package/pipeline/skills/shared/external/ios-accessibility/references/a11y-patterns.md +140 -0
- package/pipeline/skills/shared/external/ios-debugger-agent/SKILL.md +59 -0
- package/pipeline/skills/shared/external/ios-developer/SKILL.md +217 -0
- package/pipeline/skills/shared/external/ios-localization/SKILL.md +418 -0
- package/pipeline/skills/shared/external/ios-localization/references/formatstyle-locale.md +627 -0
- package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +462 -0
- package/pipeline/skills/shared/external/ios-networking/SKILL.md +441 -0
- package/pipeline/skills/shared/external/ios-networking/references/background-websocket.md +862 -0
- package/pipeline/skills/shared/external/ios-networking/references/lightweight-clients.md +93 -0
- package/pipeline/skills/shared/external/ios-networking/references/network-framework.md +563 -0
- package/pipeline/skills/shared/external/ios-networking/references/urlsession-patterns.md +1116 -0
- package/pipeline/skills/shared/external/ios-security/SKILL.md +496 -0
- package/pipeline/skills/shared/external/ios-security/references/app-review-guidelines.md +174 -0
- package/pipeline/skills/shared/external/ios-security/references/cryptokit-advanced.md +297 -0
- package/pipeline/skills/shared/external/ios-security/references/file-storage-patterns.md +354 -0
- package/pipeline/skills/shared/external/ios-security/references/privacy-manifest.md +117 -0
- package/pipeline/skills/shared/external/kotlin-coroutines-expert/SKILL.md +101 -0
- package/pipeline/skills/shared/external/live-activities/SKILL.md +500 -0
- package/pipeline/skills/shared/external/live-activities/references/live-activity-patterns.md +868 -0
- package/pipeline/skills/shared/external/macos-menubar-tuist-app/SKILL.md +109 -0
- package/pipeline/skills/shared/external/macos-spm-app-packaging/SKILL.md +110 -0
- package/pipeline/skills/shared/external/mapkit-location/SKILL.md +485 -0
- package/pipeline/skills/shared/external/mapkit-location/references/corelocation-patterns.md +730 -0
- package/pipeline/skills/shared/external/mapkit-location/references/mapkit-patterns.md +748 -0
- package/pipeline/skills/shared/external/metrickit-diagnostics/SKILL.md +479 -0
- package/pipeline/skills/shared/external/monorepo-architect/SKILL.md +64 -0
- package/pipeline/skills/shared/external/musickit-audio/SKILL.md +395 -0
- package/pipeline/skills/shared/external/musickit-audio/references/musickit-patterns.md +363 -0
- package/pipeline/skills/shared/external/natural-language/SKILL.md +412 -0
- package/pipeline/skills/shared/external/natural-language/references/translation-patterns.md +311 -0
- package/pipeline/skills/shared/external/nextjs-app-router/SKILL.md +418 -0
- package/pipeline/skills/shared/external/nodejs-backend-patterns/SKILL.md +38 -0
- package/pipeline/skills/shared/external/observability-engineer/SKILL.md +235 -0
- package/pipeline/skills/shared/external/passkit-wallet/SKILL.md +398 -0
- package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +254 -0
- package/pipeline/skills/shared/external/pencilkit-drawing/SKILL.md +387 -0
- package/pipeline/skills/shared/external/pencilkit-drawing/references/paperkit-integration.md +376 -0
- package/pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md +302 -0
- package/pipeline/skills/shared/external/permissionkit/SKILL.md +446 -0
- package/pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md +435 -0
- package/pipeline/skills/shared/external/photos-camera-media/SKILL.md +501 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/av-playback.md +701 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/camera-capture.md +774 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/image-loading-caching.md +869 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/photospicker-patterns.md +597 -0
- package/pipeline/skills/shared/external/play-store-review/SKILL.md +350 -0
- package/pipeline/skills/shared/external/push-notifications/SKILL.md +501 -0
- package/pipeline/skills/shared/external/push-notifications/references/notification-patterns.md +677 -0
- package/pipeline/skills/shared/external/push-notifications/references/rich-notifications.md +745 -0
- package/pipeline/skills/shared/external/python-patterns/SKILL.md +383 -0
- package/pipeline/skills/shared/external/react-best-practices/SKILL.md +290 -0
- package/pipeline/skills/shared/external/realitykit-ar/SKILL.md +479 -0
- package/pipeline/skills/shared/external/realitykit-ar/references/realitykit-patterns.md +480 -0
- package/pipeline/skills/shared/external/rest-api-design/SKILL.md +386 -0
- package/pipeline/skills/shared/external/retrofit-networking/SKILL.md +506 -0
- package/pipeline/skills/shared/external/room-database/SKILL.md +564 -0
- package/pipeline/skills/shared/external/shareplay-activities/SKILL.md +483 -0
- package/pipeline/skills/shared/external/shareplay-activities/references/shareplay-patterns.md +544 -0
- package/pipeline/skills/shared/external/speech-recognition/SKILL.md +485 -0
- package/pipeline/skills/shared/external/storekit/SKILL.md +478 -0
- package/pipeline/skills/shared/external/storekit/references/app-review-guidelines.md +58 -0
- package/pipeline/skills/shared/external/storekit/references/storekit-advanced.md +755 -0
- package/pipeline/skills/shared/external/swift-charts/SKILL.md +487 -0
- package/pipeline/skills/shared/external/swift-charts/references/charts-patterns.md +895 -0
- package/pipeline/skills/shared/external/swift-codable/SKILL.md +467 -0
- package/pipeline/skills/shared/external/swift-concurrency/SKILL.md +408 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/approachable-concurrency.md +80 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/swift-6-2-concurrency.md +233 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/swiftui-concurrency.md +187 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/synchronization-primitives.md +341 -0
- package/pipeline/skills/shared/external/swift-concurrency-expert/SKILL.md +113 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/SKILL.md +124 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/actors.md +155 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/async-streams.md +67 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/bridging.md +52 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/bug-patterns.md +100 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/cancellation.md +107 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/diagnostics.md +70 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/hotspots.md +47 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/interop.md +129 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/new-features.md +224 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/structured.md +101 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/testing.md +218 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/unstructured.md +61 -0
- package/pipeline/skills/shared/external/swift-language/SKILL.md +498 -0
- package/pipeline/skills/shared/external/swift-language/references/swift-patterns-extended.md +505 -0
- package/pipeline/skills/shared/external/swift-testing/SKILL.md +462 -0
- package/pipeline/skills/shared/external/swift-testing/references/testing-patterns.md +504 -0
- package/pipeline/skills/shared/external/swift-testing-pro/SKILL.md +97 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/async-tests.md +252 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/core-rules.md +52 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/migrating-from-xctest.md +34 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/new-features.md +318 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/writing-better-tests.md +254 -0
- package/pipeline/skills/shared/external/swiftdata/SKILL.md +334 -0
- package/pipeline/skills/shared/external/swiftdata/references/core-data-coexistence.md +504 -0
- package/pipeline/skills/shared/external/swiftdata/references/swiftdata-advanced.md +975 -0
- package/pipeline/skills/shared/external/swiftdata/references/swiftdata-queries.md +675 -0
- package/pipeline/skills/shared/external/swiftdata-pro/SKILL.md +102 -0
- package/pipeline/skills/shared/external/swiftdata-pro/references/class-inheritance.md +104 -0
- package/pipeline/skills/shared/external/swiftdata-pro/references/cloudkit.md +10 -0
- package/pipeline/skills/shared/external/swiftdata-pro/references/core-rules.md +20 -0
- package/pipeline/skills/shared/external/swiftdata-pro/references/indexing.md +27 -0
- package/pipeline/skills/shared/external/swiftdata-pro/references/predicates.md +73 -0
- package/pipeline/skills/shared/external/swiftui-animation/SKILL.md +503 -0
- package/pipeline/skills/shared/external/swiftui-animation/references/animation-advanced.md +821 -0
- package/pipeline/skills/shared/external/swiftui-animation/references/core-animation-bridge.md +553 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/SKILL.md +102 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/accessibility-patterns.md +215 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-advanced.md +403 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-basics.md +284 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-transitions.md +326 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts-accessibility.md +135 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts.md +602 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/image-optimization.md +203 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/latest-apis.md +464 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/layout-best-practices.md +266 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/liquid-glass.md +416 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/list-patterns.md +394 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-scenes.md +318 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-views.md +357 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-window-styling.md +303 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/performance-patterns.md +403 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/scroll-patterns.md +293 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/sheet-navigation-patterns.md +363 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/state-management.md +417 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/view-structure.md +389 -0
- package/pipeline/skills/shared/external/swiftui-gestures/SKILL.md +450 -0
- package/pipeline/skills/shared/external/swiftui-gestures/references/gesture-patterns.md +425 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/SKILL.md +336 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/references/form.md +97 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/references/grids.md +69 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/references/list.md +99 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/references/scrollview.md +147 -0
- package/pipeline/skills/shared/external/swiftui-liquid-glass/SKILL.md +98 -0
- package/pipeline/skills/shared/external/swiftui-navigation/SKILL.md +262 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/deeplinks.md +207 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/navigationstack.md +177 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/sheets.md +169 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/tabview.md +178 -0
- package/pipeline/skills/shared/external/swiftui-patterns/SKILL.md +371 -0
- package/pipeline/skills/shared/external/swiftui-patterns/references/architecture-patterns.md +486 -0
- package/pipeline/skills/shared/external/swiftui-patterns/references/deprecated-migration.md +1097 -0
- package/pipeline/skills/shared/external/swiftui-patterns/references/design-polish.md +780 -0
- package/pipeline/skills/shared/external/swiftui-patterns/references/platform-and-sharing.md +696 -0
- package/pipeline/skills/shared/external/swiftui-performance/SKILL.md +487 -0
- package/pipeline/skills/shared/external/swiftui-performance/references/demystify-swiftui-performance-wwdc23.md +46 -0
- package/pipeline/skills/shared/external/swiftui-performance/references/optimizing-swiftui-performance-instruments.md +29 -0
- package/pipeline/skills/shared/external/swiftui-performance/references/understanding-hangs-in-your-app.md +33 -0
- package/pipeline/skills/shared/external/swiftui-performance/references/understanding-improving-swiftui-performance.md +52 -0
- package/pipeline/skills/shared/external/swiftui-performance-audit/SKILL.md +114 -0
- package/pipeline/skills/shared/external/swiftui-pro/SKILL.md +108 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/accessibility.md +13 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/api.md +39 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/data.md +43 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/design.md +31 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/hygiene.md +9 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/navigation.md +14 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/performance.md +46 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/swift.md +56 -0
- package/pipeline/skills/shared/external/swiftui-pro/references/views.md +35 -0
- package/pipeline/skills/shared/external/swiftui-ui-patterns/SKILL.md +103 -0
- package/pipeline/skills/shared/external/swiftui-uikit-interop/SKILL.md +428 -0
- package/pipeline/skills/shared/external/swiftui-uikit-interop/references/hosting-migration.md +534 -0
- package/pipeline/skills/shared/external/swiftui-uikit-interop/references/representable-recipes.md +948 -0
- package/pipeline/skills/shared/external/swiftui-view-refactor/SKILL.md +210 -0
- package/pipeline/skills/shared/external/swiftui-webkit/SKILL.md +273 -0
- package/pipeline/skills/shared/external/swiftui-webkit/references/loading-and-observation.md +151 -0
- package/pipeline/skills/shared/external/swiftui-webkit/references/local-content-and-custom-schemes.md +95 -0
- package/pipeline/skills/shared/external/swiftui-webkit/references/migration-and-fallbacks.md +51 -0
- package/pipeline/skills/shared/external/swiftui-webkit/references/navigation-and-javascript.md +111 -0
- package/pipeline/skills/shared/external/tailwind-css/SKILL.md +309 -0
- package/pipeline/skills/shared/external/testing-backend/SKILL.md +393 -0
- package/pipeline/skills/shared/external/tipkit/SKILL.md +494 -0
- package/pipeline/skills/shared/external/tipkit/references/tipkit-patterns.md +782 -0
- package/pipeline/skills/shared/external/typescript-patterns/SKILL.md +336 -0
- package/pipeline/skills/shared/external/vision-framework/SKILL.md +475 -0
- package/pipeline/skills/shared/external/vision-framework/references/vision-requests.md +736 -0
- package/pipeline/skills/shared/external/vision-framework/references/visionkit-scanner.md +738 -0
- package/pipeline/skills/shared/external/vue-composition/SKILL.md +371 -0
- package/pipeline/skills/shared/external/weatherkit/SKILL.md +410 -0
- package/pipeline/skills/shared/external/weatherkit/references/weatherkit-patterns.md +567 -0
- package/pipeline/skills/shared/external/web-accessibility/SKILL.md +373 -0
- package/pipeline/skills/shared/external/web-performance/SKILL.md +345 -0
- package/pipeline/skills/shared/external/web-testing/SKILL.md +385 -0
- package/pipeline/skills/shared/external/widgetkit/SKILL.md +497 -0
- package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +871 -0
- package/pipeline/skills/skills-index.md +205 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
# Architecture
|
|
2
|
+
|
|
3
|
+
## 9-Phase Pipeline Flow
|
|
4
|
+
|
|
5
|
+
```mermaid
|
|
6
|
+
graph TD
|
|
7
|
+
INPUT["🎯 Input<br/>(Issue # / Jira URL / free text)"]
|
|
8
|
+
P0["Phase 0: Init<br/>Project detect, worktree, branch, identity"]
|
|
9
|
+
P1["Phase 1: Analysis<br/>Codebase scan (parallel Explore agents)"]
|
|
10
|
+
P2["Phase 2: Planning<br/>Task breakdown, architecture review"]
|
|
11
|
+
P3["Phase 3: Dev<br/>TDD: RED → GREEN → REFACTOR"]
|
|
12
|
+
P4["Phase 4: Review<br/>Parallel + Opus triage<br/>(Claude: 2-model · Copilot: 3-model)"]
|
|
13
|
+
P5["Phase 5: Test<br/>Optional manual testing"]
|
|
14
|
+
P6["Phase 6: Commit<br/>Git commit, PR creation"]
|
|
15
|
+
P7["Phase 7: Report<br/>Jira · Wiki+Figma · Confluence · Log · Knowledge"]
|
|
16
|
+
|
|
17
|
+
INPUT --> P0
|
|
18
|
+
P0 --> P1
|
|
19
|
+
P1 --> P2
|
|
20
|
+
P2 --> P3
|
|
21
|
+
P3 --> P4
|
|
22
|
+
P4 -->|approved| P5
|
|
23
|
+
P4 -->|fix needed| P3
|
|
24
|
+
P5 --> P6
|
|
25
|
+
P6 --> P7
|
|
26
|
+
|
|
27
|
+
style INPUT fill:#f9f,stroke:#333
|
|
28
|
+
style P3 fill:#ffd,stroke:#333
|
|
29
|
+
style P4 fill:#dff,stroke:#333
|
|
30
|
+
style P7 fill:#a855f7,stroke:#333,color:#fff
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Operating Modes
|
|
34
|
+
|
|
35
|
+
```mermaid
|
|
36
|
+
graph LR
|
|
37
|
+
subgraph Normal ["Normal (Full 8-phase)"]
|
|
38
|
+
N0[Init] --> N1[Analysis] --> N2[Planning] --> N3[Dev] --> N4[Review] --> N5[Test] --> N6[Commit] --> N7[Report]
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
subgraph Dev ["Dev Mode (--dev, Opus)"]
|
|
42
|
+
D0[Init] --> D3[Dev<br/>Opus] --> D6[Commit] --> D7[Report]
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
subgraph Autopilot ["Autopilot (skip confirmations)"]
|
|
46
|
+
A0[Init] --> A1[Analysis] --> A2[Planning] --> A3[Dev] --> A4[Review] --> A6[Commit] --> A7[Report]
|
|
47
|
+
end
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Review Architecture (Phase 4)
|
|
51
|
+
|
|
52
|
+
```mermaid
|
|
53
|
+
graph TD
|
|
54
|
+
DIFF["Code Diff"]
|
|
55
|
+
|
|
56
|
+
DIFF --> OPUS["Opus<br/>Security + Architecture"]
|
|
57
|
+
DIFF --> GPT["GPT-5.4<br/>Quality + Edge Cases"]
|
|
58
|
+
DIFF --> SON["Sonnet<br/>Correctness + Style"]
|
|
59
|
+
|
|
60
|
+
OPUS --> TRIAGE["Opus Triage"]
|
|
61
|
+
GPT --> TRIAGE
|
|
62
|
+
SON --> TRIAGE
|
|
63
|
+
|
|
64
|
+
TRIAGE -->|PASS| P5["Phase 5: Test"]
|
|
65
|
+
TRIAGE -->|FIX_REQUIRED| P3["Phase 3: Dev (retry ≤3x)"]
|
|
66
|
+
|
|
67
|
+
style TRIAGE fill:#ffd,stroke:#333
|
|
68
|
+
style P3 fill:#fdd,stroke:#333
|
|
69
|
+
style P5 fill:#dfd,stroke:#333
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Figma SubPhase Integration (Phase 3)
|
|
73
|
+
|
|
74
|
+
When `figmaConfigPath` is set, Phase 3 dispatches the Figma-to-SwiftUI pipeline:
|
|
75
|
+
|
|
76
|
+
```mermaid
|
|
77
|
+
graph TD
|
|
78
|
+
P3["Phase 3: Dev"]
|
|
79
|
+
|
|
80
|
+
P3 -->|figmaConfigPath set| FIGMA
|
|
81
|
+
P3 -->|default| TDD["Standard TDD<br/>RED → GREEN → REFACTOR"]
|
|
82
|
+
|
|
83
|
+
subgraph FIGMA ["Figma Pipeline (17 SubPhases)"]
|
|
84
|
+
direction TB
|
|
85
|
+
S0["3.0 Init"] --> S1["3.1 Gather"]
|
|
86
|
+
S1 --> S2A["3.2A TestingIDs"]
|
|
87
|
+
S1 --> S2B["3.2B Localization"]
|
|
88
|
+
S1 --> S2C["3.2C Accessibility"]
|
|
89
|
+
S1 --> S2D["3.2D Analytics"]
|
|
90
|
+
S2A --> S3["3.3 Token Mapping"]
|
|
91
|
+
S2B --> S3
|
|
92
|
+
S2C --> S3
|
|
93
|
+
S2D --> S3
|
|
94
|
+
S3 --> S4A["3.4A Config"]
|
|
95
|
+
S4A --> S4B["3.4B View"]
|
|
96
|
+
S4B --> S4C["3.4C Docs"]
|
|
97
|
+
S4C --> S4D["3.4D Preview"]
|
|
98
|
+
S4D --> S4E["3.4E Modifiers"]
|
|
99
|
+
S4E --> S4F["3.4F Wiki"]
|
|
100
|
+
S4F --> S5A["3.5A ViewInspector"]
|
|
101
|
+
S5A --> S5B["3.5B Snapshot"]
|
|
102
|
+
S5B --> S5C["3.5C Unit"]
|
|
103
|
+
S5C --> S6["3.6 CodeConnect"]
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
style P3 fill:#ffd,stroke:#333
|
|
107
|
+
style TDD fill:#dfd,stroke:#333
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Component Architecture
|
|
111
|
+
|
|
112
|
+
```mermaid
|
|
113
|
+
graph TB
|
|
114
|
+
subgraph "CLI Layer"
|
|
115
|
+
IDX[index.js<br/>Command router]
|
|
116
|
+
INS[install.js<br/>Zero-dep installer]
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
subgraph "Pipeline Specs"
|
|
120
|
+
CMD[commands/<br/>25 sub-commands]
|
|
121
|
+
AGT[agents/<br/>6 agent definitions]
|
|
122
|
+
RUL[rules/<br/>12 domain rules]
|
|
123
|
+
PHS[refs/phases/<br/>8 phase specs]
|
|
124
|
+
FIG[skills/figma-{ios,android,common}/<br/>37 figma skills]
|
|
125
|
+
CMP[skills/shared/core/<br/>28 orchestration skills<br/>incl. compliance]
|
|
126
|
+
EXT[skills/shared/external/<br/>127 curated skills]
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
subgraph "Quality Gates"
|
|
130
|
+
SCH[schemas/<br/>7 JSON schemas + token-budget]
|
|
131
|
+
EVL[eval/triage/<br/>10 regression fixtures]
|
|
132
|
+
SMK[scripts/smoke-*<br/>45 smoke suites]
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
IDX --> INS
|
|
136
|
+
INS -->|copies to ~/.claude/| CMD
|
|
137
|
+
INS -->|copies to ~/.claude/| AGT
|
|
138
|
+
INS -->|copies to ~/.claude/| RUL
|
|
139
|
+
CMD --> PHS
|
|
140
|
+
CMD --> FIG
|
|
141
|
+
SCH --> EVL
|
|
142
|
+
SCH --> SMK
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Data Flow
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
User Input → Phase 0 (Init)
|
|
149
|
+
↓
|
|
150
|
+
agent-state.json (created)
|
|
151
|
+
↓
|
|
152
|
+
Phase 1-2 (Analysis + Planning)
|
|
153
|
+
↓
|
|
154
|
+
Phase 3 (Dev) ←──── retry loop (max 3x)
|
|
155
|
+
↓ ↑
|
|
156
|
+
Phase 4 (Review) ────────┘ (if fix needed)
|
|
157
|
+
↓
|
|
158
|
+
Phase 5-6 (Test + Commit)
|
|
159
|
+
↓
|
|
160
|
+
Phase 7 REPORT (Jira → Wiki+Figma → Confluence → Log → Knowledge)
|
|
161
|
+
↓
|
|
162
|
+
agent-log.md + agent-state.json (final)
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## Ecosystem Sync Targets
|
|
166
|
+
|
|
167
|
+
```mermaid
|
|
168
|
+
graph TD
|
|
169
|
+
CC["Claude Code<br/>(source of truth)"]
|
|
170
|
+
COP["Copilot CLI<br/>(instructions + 145 unified skills)"]
|
|
171
|
+
REPO["Pipeline Repo<br/>(npm package)"]
|
|
172
|
+
WEB["Website<br/>(optional)"]
|
|
173
|
+
RC["Remote Control<br/>(optional)"]
|
|
174
|
+
|
|
175
|
+
CC -->|instructions + unified skills| COP
|
|
176
|
+
CC -->|genericized pipeline/| REPO
|
|
177
|
+
CC -->|version + features| WEB
|
|
178
|
+
CC -->|pipeline refs| RC
|
|
179
|
+
REPO -->|npm publish| NPM["GitHub Packages"]
|
|
180
|
+
WEB -->|auto-deploy| VERCEL["Vercel"]
|
|
181
|
+
```
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Best Practices
|
|
2
|
+
|
|
3
|
+
> Competitor-informed patterns adopted from research across 4 open-source multi-agent pipelines (ralph-loop 116★, claude-pipeline 104★, atelier 13★, ai-first-framework).
|
|
4
|
+
|
|
5
|
+
## 1. Symlink Distribution (from ralph-loop)
|
|
6
|
+
|
|
7
|
+
**Problem**: Copying pipeline files on install duplicates ~10K tokens of content per session.
|
|
8
|
+
**Solution**: `--link` flag creates symlinks instead of copies. Updates propagate instantly.
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
npx @mmerterden/multi-agent-pipeline install --link
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
**Trade-off**: Requires the source package to remain installed. Best for development; use copy mode for production installs.
|
|
15
|
+
|
|
16
|
+
## 2. FIX_FIRST Pattern (from claude-pipeline)
|
|
17
|
+
|
|
18
|
+
**Rule**: When a bug or test failure is discovered during development, fix it immediately before continuing with the current task. Never defer fixes to "later".
|
|
19
|
+
|
|
20
|
+
Applied in Phase 3 (Development):
|
|
21
|
+
|
|
22
|
+
- If a test fails → fix the failing test before writing new code
|
|
23
|
+
- If lint errors appear → fix them before the next TDD cycle
|
|
24
|
+
- If a build breaks → stop and fix before proceeding
|
|
25
|
+
|
|
26
|
+
## 3. Wave-Based Parallel Execution (from atelier)
|
|
27
|
+
|
|
28
|
+
**Problem**: Running all explore agents in parallel can cause coverage overlap and wasted tokens.
|
|
29
|
+
**Solution**: Group parallel work into waves with clear boundaries.
|
|
30
|
+
|
|
31
|
+
Applied in Phase 1 (Analysis):
|
|
32
|
+
|
|
33
|
+
- **Wave 1**: 3 explore agents scan independent areas (architecture, security, CI/docs)
|
|
34
|
+
- **Wave 2**: Merge results, identify gaps, launch targeted follow-ups only if needed
|
|
35
|
+
- Never launch more than 5 parallel agents per wave
|
|
36
|
+
|
|
37
|
+
## 4. Roz-First TDD (from atelier)
|
|
38
|
+
|
|
39
|
+
**Rule**: Tests are written STRICTLY before implementation. No exceptions.
|
|
40
|
+
|
|
41
|
+
Applied in Phase 3:
|
|
42
|
+
|
|
43
|
+
1. RED — Write the failing test
|
|
44
|
+
2. Verify it fails for the RIGHT reason
|
|
45
|
+
3. GREEN — Write minimal code to pass
|
|
46
|
+
4. Verify ALL tests pass
|
|
47
|
+
5. REFACTOR — Clean up without changing behavior
|
|
48
|
+
|
|
49
|
+
## 5. Deterministic Quality Gates (from claude-pipeline)
|
|
50
|
+
|
|
51
|
+
**Rule**: Every phase transition must pass an explicit gate. No implicit transitions.
|
|
52
|
+
|
|
53
|
+
| Gate | Condition | Blocks |
|
|
54
|
+
| ----------- | ------------------------------------------ | -------- |
|
|
55
|
+
| Phase 1 → 2 | Analysis complete, no unanswered questions | Planning |
|
|
56
|
+
| Phase 3 → 4 | Build passes, lint clean, tests green | Review |
|
|
57
|
+
| Phase 4 → 6 | All blocking findings resolved | Commit |
|
|
58
|
+
| Phase 6 → 7 | Push successful, PR created | Report |
|
|
59
|
+
|
|
60
|
+
## 6. 3-Iteration Hard Kill (original)
|
|
61
|
+
|
|
62
|
+
**Rule**: Any retry loop (build fix, test fix, API call) is killed after 3 attempts. The agent must escalate to the user instead of spinning.
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
Attempt 1 → fix → retry
|
|
66
|
+
Attempt 2 → different fix → retry
|
|
67
|
+
Attempt 3 → STOP → ask user for guidance
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## 7. Layer-Based Memory (from ralph-loop)
|
|
71
|
+
|
|
72
|
+
**Problem**: Loading full project context at session start wastes tokens.
|
|
73
|
+
**Solution**: Lazy-load reference files only when the current phase needs them.
|
|
74
|
+
|
|
75
|
+
Applied via modular loading:
|
|
76
|
+
|
|
77
|
+
- **L0 (always)**: Main command routing (~300 tokens)
|
|
78
|
+
- **L1 (on demand)**: Phase definitions, rules (~2K tokens each)
|
|
79
|
+
- **L2 (rare)**: Platform guides, knowledge base (~5K tokens each)
|
|
80
|
+
|
|
81
|
+
This reduces wake-up tokens from ~19K to ~800.
|
|
82
|
+
|
|
83
|
+
## 8. Single Source of Truth (from ai-first)
|
|
84
|
+
|
|
85
|
+
**Rule**: Every configuration, rule, or standard exists in exactly ONE authoritative location. All other instances are derived via sync.
|
|
86
|
+
|
|
87
|
+
Applied via `multi-agent-sync`:
|
|
88
|
+
|
|
89
|
+
- Claude Code commands → source of truth
|
|
90
|
+
- Copilot CLI skills → derived (synced)
|
|
91
|
+
- Pipeline repo → derived (genericized, personal data scrubbed)
|
|
92
|
+
- Website → derived (version + feature counts)
|
|
93
|
+
- Remote Control → derived (pipeline references)
|
package/docs/features.md
ADDED
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
# Features — Full Reference
|
|
2
|
+
|
|
3
|
+
Comprehensive list of every feature the pipeline ships. The top-level `README.md` only highlights the 5–7 most important; this file is the complete catalog.
|
|
4
|
+
|
|
5
|
+
## Core Pipeline
|
|
6
|
+
|
|
7
|
+
### 9-Phase Orchestration
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
Phase 0: Init Project selection, branch setup, identity, worktree
|
|
11
|
+
Phase 1: Analysis Stack detection, codebase exploration (parallel Explore agents)
|
|
12
|
+
Phase 2: Planning Task decomposition, architecture review, user approval
|
|
13
|
+
Phase 3: Dev TDD cycle: test → code → build (Sonnet)
|
|
14
|
+
Phase 4: Review Deterministic gates + parallel AI review + Opus triage
|
|
15
|
+
(Claude Code: Opus + Sonnet · Copilot CLI: GPT-5.4 + Opus + Sonnet)
|
|
16
|
+
Phase 5: Test Optional manual testing + on-demand device audits
|
|
17
|
+
Phase 6: Commit Git commit, push, PR with default reviewers + draft/ready prompt
|
|
18
|
+
Phase 7: Report External: Jira comment · Wiki + Figma screenshots · Confluence
|
|
19
|
+
Internal: agent-log.md + Quality & Metrics + knowledge + memory
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Each phase reads its own spec file under `pipeline/commands/multi-agent/refs/phases/phase-N-*.md` — lazy-loaded so the orchestrator only pays the token cost for the phase it's currently in.
|
|
23
|
+
|
|
24
|
+
### Modifier Flags (orthogonal, combinable)
|
|
25
|
+
|
|
26
|
+
| Flag | Effect |
|
|
27
|
+
| ----------- | ----------------------------------------------------------------------------------- |
|
|
28
|
+
| `autopilot` | Skip all confirmation prompts; still fails safe on review blockers + build retries. |
|
|
29
|
+
| `--dev` | Strip to Init → Dev(Opus self-contained) → Commit → Report. No Phase 1/2/4/5. |
|
|
30
|
+
| `--local` | No worktree — works directly in `$PROJECT_ROOT` on a local branch. |
|
|
31
|
+
|
|
32
|
+
Compose freely: `--dev --local autopilot` = shortest, least-friction path.
|
|
33
|
+
|
|
34
|
+
### Stack Auto-Detection
|
|
35
|
+
|
|
36
|
+
| Platform | Detection | Guide Loaded |
|
|
37
|
+
| -------------- | -------------------------------------------- | ------------------------ |
|
|
38
|
+
| iOS/Swift | `.xcodeproj`, `Package.swift` | `refs/swiftui-guide.md` |
|
|
39
|
+
| Android/Kotlin | `build.gradle[.kts]` | `refs/android-guide.md` |
|
|
40
|
+
| Backend | `requirements.txt`, `package.json`, `go.mod` | `refs/backend-guide.md` |
|
|
41
|
+
| Frontend | `package.json` + framework detection | `refs/frontend-guide.md` |
|
|
42
|
+
| Docker | `Dockerfile`, `docker-compose.yml` | `refs/docker-guide.md` |
|
|
43
|
+
|
|
44
|
+
Build commands, test runners, lint tools, and review focus areas all adapt to the detected stack.
|
|
45
|
+
|
|
46
|
+
### Stack Swap
|
|
47
|
+
|
|
48
|
+
Switch skill sets mid-session without restarting the CLI:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
/multi-agent stack ios # SwiftUI, Xcode, ViewInspector
|
|
52
|
+
/multi-agent stack android # Compose, Gradle, Hilt
|
|
53
|
+
/multi-agent stack backend # FastAPI, Node.js, Docker
|
|
54
|
+
/multi-agent stack frontend # React, Next.js, Vue
|
|
55
|
+
/multi-agent stack mobile # iOS + Android combined
|
|
56
|
+
/multi-agent stack all # Load everything
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Task Type Detection (v2.0.0)
|
|
60
|
+
|
|
61
|
+
Phase 0 Step 9 classifies every task before Phase 1 starts. Deterministic priority order: Figma URL → instruction file path → git diff heuristic → Jira issue type → branch name → description keywords → user prompt (autopilot defaults to `feature`).
|
|
62
|
+
|
|
63
|
+
Result persisted to `agent-state.taskType`:
|
|
64
|
+
|
|
65
|
+
| Type | Downstream effects |
|
|
66
|
+
| ----------- | ----------------------------------------------------------------------------- |
|
|
67
|
+
| `component` | Phase 3 loads figma-to-swiftui skill with SubPhase dispatch |
|
|
68
|
+
| `bugfix` | Phase 4 emphasizes test coverage + regression; Phase 6 uses `fix(...)` prefix |
|
|
69
|
+
| `feature` | Standard TDD flow; Phase 6 uses `feat(...)` prefix |
|
|
70
|
+
| `refactor` | Phase 4 emphasizes behavior preservation; Phase 6 uses `refactor(...)` prefix |
|
|
71
|
+
| `chore` | Lightweight flow; Phase 6 uses `chore(...)` prefix |
|
|
72
|
+
|
|
73
|
+
### SubPhase Convention (v2.0.0)
|
|
74
|
+
|
|
75
|
+
When a specialized skill takes over a main pipeline phase, progress is reported as SubPhases (e.g. `SubPhase 3.0: Init`, `SubPhase 3.1: Gather`). The top-level pipeline stays fixed at 8 phases (0-7 — Phase 6.5 was merged into Phase 7 REPORT in v5.1.0) — specialized work slots into its parent phase without inflating the count.
|
|
76
|
+
|
|
77
|
+
## PR & Review Flow
|
|
78
|
+
|
|
79
|
+
### Default Reviewers (v1.6.1, hardened in v2.0.0)
|
|
80
|
+
|
|
81
|
+
- **Bitbucket**: Fetches via `/rest/default-reviewers/1.0/`. Every PUT must re-send `reviewers`, `fromRef`, `toRef`, `draft` (regression guarded by smoke test).
|
|
82
|
+
- **GitHub**: Honors `CODEOWNERS` + falls back to `prefs.projects[].githubDefaultReviewers`.
|
|
83
|
+
- PR author always filtered out (Bitbucket: 409, GitHub: GraphQL error).
|
|
84
|
+
|
|
85
|
+
### Draft vs Ready Prompt (v1.7.0)
|
|
86
|
+
|
|
87
|
+
Phase 6 asks `DRAFT or READY?` before creating the PR and persists the choice in `prefs.projects[].defaultPrMode`.
|
|
88
|
+
|
|
89
|
+
- Bitbucket: `draft: true` flag (DC 8.x+) with `[DRAFT]` title fallback for older servers.
|
|
90
|
+
- GitHub: `gh pr create --draft` + `gh pr ready` for promotion.
|
|
91
|
+
|
|
92
|
+
### `channels` Command (v5.7.0 — replaces `enrich`)
|
|
93
|
+
|
|
94
|
+
Multi-channel reporter — Phase 7 delegates to it, and it's also invocable post-hoc for fixes closed outside the pipeline:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
/multi-agent:channels # current branch, current PR
|
|
98
|
+
/multi-agent:channels https://jira.company/browse/PROJ-12345
|
|
99
|
+
/multi-agent:channels #42 --channels pr # PR only
|
|
100
|
+
/multi-agent:channels --message "manual fix description"
|
|
101
|
+
/multi-agent:channels DIJITAL-1234 --channels jira,confluence --content test
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Multi-select **channels** (Jira / Confluence / Wiki / PR description) × multi-select **content** (normal analysis / test scenarios / auto-diff summary / manual note). Each body runs through the humanizer skill per-channel. Bitbucket PR updates use the reviewer-preserving PUT pattern (title + description + reviewers + fromRef + toRef + version mandatory). Replaces the pre-v5.7 `enrich` command — all its capabilities (diff auto-summarize, manual mode, reviewer-preserving) are preserved; Confluence + Wiki are new.
|
|
105
|
+
|
|
106
|
+
### Body Preservation Contract (v1.6.1, verified by smoke test in v2.0.0)
|
|
107
|
+
|
|
108
|
+
Every external-system body (PR description, Jira comment, GitHub issue) uses `jq -n --rawfile body body.md '{description: $body}'` → `curl --data-binary @payload.json`. No literal `\n` strings, no HTML entities (`&`, `<`, `"`). UTF-8 preserved end-to-end. `scripts/smoke-add-detail.sh` runs 14 contract assertions.
|
|
109
|
+
|
|
110
|
+
### Issue Safety
|
|
111
|
+
|
|
112
|
+
Never auto-closes issues — uses `Ref: #N` / `Related: #N` / `See: PROJ-12345`, never `Closes` / `Fixes` / `Resolves`. Closure requires team review (configurable, typically 4 approvals).
|
|
113
|
+
|
|
114
|
+
## Review Quality
|
|
115
|
+
|
|
116
|
+
### Deterministic Gates (Phase 4 Step 1)
|
|
117
|
+
|
|
118
|
+
Cheap, objective checks run BEFORE any AI token is spent:
|
|
119
|
+
|
|
120
|
+
1. Build (acquires xcodebuild lock, isolated DerivedData per worktree)
|
|
121
|
+
2. Lint (SwiftLint / detekt / ruff / eslint — stack-dependent)
|
|
122
|
+
3. Tests pass
|
|
123
|
+
4. Secret scan
|
|
124
|
+
|
|
125
|
+
If any gate fails, fix first. Don't waste AI tokens reviewing broken code.
|
|
126
|
+
|
|
127
|
+
### 3-Model Parallel Review + Opus Triage (Phase 4 Steps 2–3)
|
|
128
|
+
|
|
129
|
+
| Reviewer | Model | Focus |
|
|
130
|
+
| ---------- | ------------------- | --------------------------------- |
|
|
131
|
+
| Reviewer 1 | `claude-opus-4.6` | Deep security + architecture |
|
|
132
|
+
| Reviewer 2 | `gpt-5.4` | Edge cases, different perspective |
|
|
133
|
+
| Reviewer 3 | `claude-sonnet-4.6` | Quality + correctness + naming |
|
|
134
|
+
|
|
135
|
+
All three dispatched in parallel. Each returns structured JSON for deterministic aggregation. Cross-model diversity catches blind spots that any single model family would miss.
|
|
136
|
+
|
|
137
|
+
**Opus Triage** (Phase 4 Step 3): Evaluates merged raw findings against task scope. Classifies each as `accepted` (fix now), `deferred` (out of scope, log for later), or `rejected` (false positive / noise). Only triage-accepted blocking items loop back to Phase 3.
|
|
138
|
+
|
|
139
|
+
### Runtime Triage Validator (v2.3.0)
|
|
140
|
+
|
|
141
|
+
After Opus triage returns, output is validated by `validate-triage.mjs`:
|
|
142
|
+
|
|
143
|
+
| Exit | Meaning |
|
|
144
|
+
| ----- | ------------------------------------------------------------ |
|
|
145
|
+
| **0** | Valid and clean — act on triage output |
|
|
146
|
+
| **1** | Invalid structure — retry once, then fallback |
|
|
147
|
+
| **2** | Over-rejection guard tripped — pause for human |
|
|
148
|
+
| **3** | Contradiction auto-corrected — proceed with corrected output |
|
|
149
|
+
|
|
150
|
+
### Bidirectional Approved↔Blocking Auto-Correction (v2.6.1)
|
|
151
|
+
|
|
152
|
+
If triage returns `approved: false` but has no blocking items, the validator forces `approved: true`. Conversely, if `approved: true` but blocking items exist, it forces `approved: false`. Hardened with `if`/`then` constraint in schema v3.0.0.
|
|
153
|
+
|
|
154
|
+
### Accessibility Code Review (Phase 4 Step 1.5)
|
|
155
|
+
|
|
156
|
+
If changes include UI files, reviewers check for:
|
|
157
|
+
|
|
158
|
+
- Missing `.accessibilityLabel` / `contentDescription` on interactive elements (→ blocking)
|
|
159
|
+
- Small tap targets (<44×44pt iOS / <48×48dp Android) (→ important)
|
|
160
|
+
- Missing identifiers + Dynamic Type support (→ suggestion)
|
|
161
|
+
|
|
162
|
+
Pure code analysis — no simulator needed. Device-level audits run in Phase 5 when requested.
|
|
163
|
+
|
|
164
|
+
### Status Enforcement (v1.5.0)
|
|
165
|
+
|
|
166
|
+
Phase 3 marks issue-tracker status update as MANDATORY with a post-mutation verify step that re-reads the field and retries once on silent `VALIDATION` failures (e.g. stale Projects V2 option IDs after a board rebuild).
|
|
167
|
+
|
|
168
|
+
## Safety & Hygiene
|
|
169
|
+
|
|
170
|
+
- **Pre-Commit Secret Detection** (12 patterns): `PreToolUse` hook scans staged files for API keys/tokens, AWS access keys, private keys, `.env` files, service account JSON. Commit **blocked** if found.
|
|
171
|
+
- **Build Queue**: All `xcodebuild` calls acquire a lock. Each worktree uses own `-derivedDataPath`. Stale locks auto-clean after 15 min. Non-Xcode builds don't need the lock.
|
|
172
|
+
- **Context Management**: `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=65` — compaction at 65% usage (prevents degradation in 8-phase sessions).
|
|
173
|
+
- **3-Iteration Hard Kill**: Any retry loop stops after 3 attempts, then pauses for user. No infinite loops.
|
|
174
|
+
|
|
175
|
+
## Testing & Quality
|
|
176
|
+
|
|
177
|
+
### Schema-Validated State (v2.0.0)
|
|
178
|
+
|
|
179
|
+
All critical state files are schema-validated at read and write time:
|
|
180
|
+
|
|
181
|
+
- `agent-state.schema.json` — validates `$HOME/.claude/logs/multi-agent/.../agent-state.json`
|
|
182
|
+
- `prefs.schema.json` — validates `$HOME/.claude/multi-agent-preferences.json` (extended v2.5.0)
|
|
183
|
+
- `triage-output.schema.json` — validates triage output (v2.3.0, hardened v2.6.1, `if`/`then` constraint v3.0.0)
|
|
184
|
+
|
|
185
|
+
### Smoke Test Suites (v2.0.0–v2.5.0)
|
|
186
|
+
|
|
187
|
+
10 suites: add-detail (14 body-preservation assertions), review-triage (validator exit codes), prefs (schema round-trip), state (agent-state lifecycle), metrics (telemetry emission), sync (instruction parity), secret-scan (hook patterns), phase-banner (terminal UI), token-budget (per-phase limits), phase-tracker (progress tracking).
|
|
188
|
+
|
|
189
|
+
### Adversarial Eval Fixtures (v2.5.0–v2.6.0)
|
|
190
|
+
|
|
191
|
+
10 fixtures that test triage resilience against adversarial reviewer output: over-rejection, hallucinated findings, contradictions, invalid JSON, schema violations, duplicate findings, scope creep, empty results, timeout simulation, and combined edge cases.
|
|
192
|
+
|
|
193
|
+
### Sync Parity Check (v2.3.0)
|
|
194
|
+
|
|
195
|
+
Detects drift between Claude Code instructions (`~/.claude/commands/multi-agent.md`), Copilot CLI instructions (`~/.copilot/copilot-instructions.md`), and the repo's pipeline spec files. Reports discrepancies during Phase 0 Init.
|
|
196
|
+
|
|
197
|
+
### Token Budget Enforcement (v3.0.0)
|
|
198
|
+
|
|
199
|
+
Per-phase token budgets prevent runaway sessions. If a phase exceeds its budget, the pipeline pauses and offers: continue (extend budget), skip phase, or abort. Budgets are configurable in `prefs.global.tokenBudgets`.
|
|
200
|
+
|
|
201
|
+
## Telemetry & Observability
|
|
202
|
+
|
|
203
|
+
- **Pipeline Metrics** (v2.3.0): Structured metrics to `metrics.jsonl` via `log-metric.sh`. Aggregated by `aggregate-metrics.mjs`.
|
|
204
|
+
- **Cost Telemetry** (v2.5.0): Per-phase token cost tracking (`tokens_in`, `tokens_out`, `model`, `duration_ms`). Omitted fields handled gracefully.
|
|
205
|
+
- **Phase Tracker** (v2.4.0): Cross-CLI visual progress (current phase, elapsed time, iteration count).
|
|
206
|
+
- **Phase Banner** (v2.4.0): Terminal UI for phase transitions with Unicode box-drawing characters.
|
|
207
|
+
- **Per-task Cost Breakdown in agent-log.md** (v8.3.0): Phase 7 appends a 4-column block (Phase · Model · Tokens in/out · Est. USD) to every run's `agent-log.md`. Sourced from `phase-tracker.sh tokens` accumulators × `cost-table.json` prices. Independent of the channels-side `reportContent.costSummary` toggle. The `LOG_METRIC_FORWARD_TO_TRACKER=1` env flag mirrors `tokens_in`/`tokens_out`/`model` from `log-metric.sh` into the tracker so JSONL metrics and the cost block stay in sync from one call site.
|
|
208
|
+
|
|
209
|
+
### Diff Risk Scoring (v8.3.0)
|
|
210
|
+
|
|
211
|
+
`pipeline/scripts/diff-risk-score.mjs` runs at Phase 4 Step 1.75 — before reviewer dispatch. Heuristic, deterministic, sub-second, no LLM. Top-N risk-ranked files inject into each reviewer's prompt as a `${PRIORITY_FILES}` block; reviewers read those files first but still review the entire diff.
|
|
212
|
+
|
|
213
|
+
Signals + weights: `security_path` ×3, `migration` ×4, `public_api` ×2, `no_test_change` ×2.5, `complexity_delta` ×1.5, `ui_critical` ×1.5, `loc_changed` ×1. Toggle via `prefs.global.diffRiskAdvisory` (default ON).
|
|
214
|
+
|
|
215
|
+
### Test Gap Detection (v8.3.0)
|
|
216
|
+
|
|
217
|
+
`pipeline/scripts/test-gap-scan.mjs` runs at Phase 5 Step 0. Walks the diff for newly added public symbols and reports those with no paired test. Stack-specific rules ship for iOS, Android, Python, Node.js. iOS Views and Android `@Composable` symbols default to `important`; other public API additions to `suggestion`. Optional gating via `prefs.testGap.blockingThreshold` — when set, the report becomes a Phase 4 rework finding once `important + blocking` count exceeds the threshold.
|
|
218
|
+
|
|
219
|
+
### Triage Memory (v8.3.0)
|
|
220
|
+
|
|
221
|
+
Per-repo append-only JSONL corpus at `~/.claude/memory/multi-agent/<repo-slug>/triage-corpus.jsonl`. Phase 7 ingests every triage output (idempotent), Phase 1 enriches the analysis with similar past tasks, Phase 4 triage attaches prior-art hits to each raw finding with an explicit bias hedge. Token-overlap recall, zero deps, Node-18-compatible. `/multi-agent:search "<text>" --semantic` routes the query to the corpus instead of agent-log grep. Toggle via `prefs.global.priorArtEnrichment.enabled` (default ON).
|
|
222
|
+
|
|
223
|
+
## Learning
|
|
224
|
+
|
|
225
|
+
### Knowledge Base (per project)
|
|
226
|
+
|
|
227
|
+
Incremental learning. Phase 7 captures architecture, patterns, gotchas, and decisions into `$HOME/.claude/knowledge/{project}/`. Phase 1 reads it on the next run. Token cost decreases over time as the base grows.
|
|
228
|
+
|
|
229
|
+
### Memory Capture (cross-session)
|
|
230
|
+
|
|
231
|
+
Pipeline learns behavioral signals (feedback corrections, project constraints, external references). Phase 7 saves, Phase 1 injects. Max 3 new memories per run. Merge-over-duplicate. Stale memories verified before use.
|
|
232
|
+
|
|
233
|
+
**What does NOT go in memory**: architecture, code patterns, build gotchas, design decisions — those belong in the knowledge base.
|
|
234
|
+
|
|
235
|
+
## Integrations
|
|
236
|
+
|
|
237
|
+
### Figma → SwiftUI
|
|
238
|
+
|
|
239
|
+
Full component generation pipeline from a Figma URL. Generates `{Name}Configuration.swift`, `{Name}View.swift`, `{Name}+Modifiers.swift`, `{Name}.figma.swift`, `FIGMA.md` with variant matrix. 14-item pre-commit checklist covers design tokens, accessibility, tests, Code Connect.
|
|
240
|
+
|
|
241
|
+
### UI Bug Hunter + Audits
|
|
242
|
+
|
|
243
|
+
Automated visual testing and compliance audits via direct Bash (no MCP server dependency):
|
|
244
|
+
|
|
245
|
+
| Audit | When | Command |
|
|
246
|
+
| --------------------- | ------------------- | ---------------------------- |
|
|
247
|
+
| iOS Accessibility | Phase 5, on request | `swift ui-tree-dumper.swift` |
|
|
248
|
+
| Android Accessibility | Phase 5, on request | `adb shell uiautomator dump` |
|
|
249
|
+
| iOS Biometric | Phase 5, auth flow | `xcrun simctl keychain` |
|
|
250
|
+
| Android Launch Time | Phase 5, perf | `adb shell am start -W` |
|
|
251
|
+
| iOS Archive | Phase 6, release | `codesign`, `plutil`, `nm` |
|
|
252
|
+
| Android APK | Phase 6, release | `aapt2`, `apksigner` |
|
|
253
|
+
|
|
254
|
+
Audits are **on-demand** — triggered by user, never automatic.
|
|
255
|
+
|
|
256
|
+
### Jira + Confluence
|
|
257
|
+
|
|
258
|
+
- Phase 3: transition issue to `In Progress` (verified post-mutation).
|
|
259
|
+
- Phase 7: post analysis + test scenarios as Jira comment (Turkish by default, configurable).
|
|
260
|
+
- Phase 7 (optional): create Confluence page under chosen parent, cached per project.
|
|
261
|
+
|
|
262
|
+
### Keychain
|
|
263
|
+
|
|
264
|
+
Token registry maps logical names (`jira`, `bitbucket`, `github`, `confluence`) to Keychain item names. Tokens never land in a config file, never synced to the repo.
|
|
265
|
+
|
|
266
|
+
## Schemas & Validation
|
|
267
|
+
|
|
268
|
+
- `pipeline/schemas/agent-state.schema.json` — validates agent state lifecycle (v2.0.0)
|
|
269
|
+
- `pipeline/schemas/prefs.schema.json` — validates preferences (v2.0.0, extended v2.5.0)
|
|
270
|
+
- `pipeline/schemas/triage-output.schema.json` — validates triage output (v2.3.0, hardened v2.6.1, `if`/`then` constraint v3.0.0)
|
|
271
|
+
|
|
272
|
+
## File Layout (v1.9.0)
|
|
273
|
+
|
|
274
|
+
`commands/multi-agent/{add-detail,setup,help}.md` → slash commands. `commands/multi-agent/refs/**` → guides, phase specs, rules (`refs:` prefix signals "not an action"). Modifier flags and ops stay inline in `multi-agent.md`.
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Pipeline Performance
|
|
2
|
+
|
|
3
|
+
The pipeline logs per-event metrics to `~/.claude/logs/multi-agent/metrics.jsonl`
|
|
4
|
+
as it runs. The `aggregate-metrics.mjs` script turns that file into a summary
|
|
5
|
+
you can read, embed in a report, or feed into a dashboard.
|
|
6
|
+
|
|
7
|
+
## Quick Start
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Plain-text summary (the default — fits in a terminal)
|
|
11
|
+
node pipeline/scripts/aggregate-metrics.mjs
|
|
12
|
+
|
|
13
|
+
# Markdown table (for PR descriptions, wikis, dashboards)
|
|
14
|
+
node pipeline/scripts/aggregate-metrics.mjs --markdown
|
|
15
|
+
|
|
16
|
+
# JSON (for machine consumption — Phase 7 report uses this)
|
|
17
|
+
node pipeline/scripts/aggregate-metrics.mjs --json
|
|
18
|
+
|
|
19
|
+
# Filtered — only recent runs
|
|
20
|
+
node pipeline/scripts/aggregate-metrics.mjs --since=2026-04-01
|
|
21
|
+
|
|
22
|
+
# Per-task or per-phase drill-down
|
|
23
|
+
node pipeline/scripts/aggregate-metrics.mjs --task-id=PROJ-123
|
|
24
|
+
node pipeline/scripts/aggregate-metrics.mjs --phase=4
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## What Gets Measured
|
|
28
|
+
|
|
29
|
+
Each event in `metrics.jsonl` is a single-line JSON object written by
|
|
30
|
+
`log-metric.sh`. Events cover:
|
|
31
|
+
|
|
32
|
+
- **Review cycles** — how many iterations of Phase 3 → Phase 4 → Phase 3 a task
|
|
33
|
+
needed before triage approved.
|
|
34
|
+
- **Triage classification** — accepted / deferred / rejected counts per review.
|
|
35
|
+
- **Triage edge cases** — over-rejection guard trips, contradictions, invalid-
|
|
36
|
+
JSON retries, timeouts.
|
|
37
|
+
- **Phase 3 retries** — build / test / lint retry distribution per task.
|
|
38
|
+
- **Cost per model** — calls, duration, tokens in/out, broken down by model
|
|
39
|
+
(Opus, Sonnet, GPT-5.4).
|
|
40
|
+
- **Language preference** — distribution of EN vs TR prompts.
|
|
41
|
+
|
|
42
|
+
## Typical Output (Markdown)
|
|
43
|
+
|
|
44
|
+
```markdown
|
|
45
|
+
# Pipeline Metrics Summary
|
|
46
|
+
|
|
47
|
+
_Source: ~/.claude/logs/multi-agent/metrics.jsonl · Events: 421 (0 parse errors) · Unique tasks: 34_
|
|
48
|
+
|
|
49
|
+
## Reviews
|
|
50
|
+
|
|
51
|
+
| Metric | Value |
|
|
52
|
+
|--------|-------|
|
|
53
|
+
| Completed | 28 |
|
|
54
|
+
| Cycles per task (avg) | 1.3 |
|
|
55
|
+
| Cycles per task (p95) | 2 |
|
|
56
|
+
|
|
57
|
+
## Triage Classification
|
|
58
|
+
|
|
59
|
+
| Category | Count | Rate |
|
|
60
|
+
|----------|-------|------|
|
|
61
|
+
| Raw findings | 167 | — |
|
|
62
|
+
| Accepted | 41 | 0.25 |
|
|
63
|
+
| Deferred | 19 | — |
|
|
64
|
+
| Rejected | 107 | 0.64 |
|
|
65
|
+
|
|
66
|
+
## Cost Per Model
|
|
67
|
+
|
|
68
|
+
| Model | Calls | Duration (ms) | Tokens In | Tokens Out |
|
|
69
|
+
|-------|-------|---------------|-----------|------------|
|
|
70
|
+
| `claude-opus-4.6` | 124 | 612430 | 380221 | 92114 |
|
|
71
|
+
| `claude-sonnet-4.6` | 89 | 412318 | 201445 | 58903 |
|
|
72
|
+
| `gpt-5.4` | 88 | 398214 | 194302 | 55128 |
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Interpreting Review-Cycle Metrics
|
|
76
|
+
|
|
77
|
+
- **`cycles per task avg` > 2.0** — triage is rejecting too many real findings
|
|
78
|
+
or Phase 3 isn't converging. Inspect the edge-cases table.
|
|
79
|
+
- **Most-common edge case = `over_rejection_guard_tripped`** — the triage
|
|
80
|
+
prompt lost scope context. Look at `phase-4-review.md:57-91`.
|
|
81
|
+
- **`p95` much higher than `avg`** — a few tasks are looping 3+ times. Usually
|
|
82
|
+
means one of: bad acceptance criteria in Phase 2, tests that flake, or
|
|
83
|
+
environment-dependent build failures.
|
|
84
|
+
|
|
85
|
+
## Phase-by-Phase Token Budget
|
|
86
|
+
|
|
87
|
+
Phase docs have hard-capped token limits in
|
|
88
|
+
`pipeline/schemas/token-budget.json`. `smoke-token-budget.sh` enforces them.
|
|
89
|
+
Current totals (v3.5.0):
|
|
90
|
+
|
|
91
|
+
| Phase | Warn | Max | Typical |
|
|
92
|
+
|-------|------|-----|---------|
|
|
93
|
+
| 0 INIT | 3500 | 4000 | 3434 |
|
|
94
|
+
| 1 ANALYSIS | 1200 | 1500 | 1315 |
|
|
95
|
+
| 2 PLANNING | 800 | 1000 | 798 |
|
|
96
|
+
| 3 DEV | 1500 | 1800 | 1451 |
|
|
97
|
+
| 4 REVIEW | 1800 | 2200 | 2110 |
|
|
98
|
+
| 5 TEST | 600 | 800 | 796 |
|
|
99
|
+
| 6 COMMIT | 2400 | 2800 | 2537 |
|
|
100
|
+
| 7 REPORT | 1800 | 2200 | 1851 |
|
|
101
|
+
| **Total** | **13600** | **16300** | **~14.3k** |
|
|
102
|
+
|
|
103
|
+
Lazy loading keeps these off the model's context until each phase actually
|
|
104
|
+
runs — the full 14 k total is never loaded at once.
|
|
105
|
+
|
|
106
|
+
## Embedding Metrics in Phase 7 Reports
|
|
107
|
+
|
|
108
|
+
Phase 7 automatically calls `aggregate-metrics.mjs --json` with the current
|
|
109
|
+
task id and embeds the last 30 days' summary into the report body. See the
|
|
110
|
+
template in `phase-7-report.md`.
|
|
111
|
+
|
|
112
|
+
## Disabling Metrics
|
|
113
|
+
|
|
114
|
+
Remove or rename `~/.claude/logs/multi-agent/metrics.jsonl`. The pipeline
|
|
115
|
+
will not error — `log-metric.sh` fails silently if the file isn't writable.
|
|
116
|
+
Nothing is sent off-device.
|