@mmerterden/multi-agent-pipeline 12.6.0 → 12.8.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 +209 -0
- package/README.md +18 -18
- package/docs/FIGMA_PIPELINE.md +34 -34
- package/docs/adr/0001-three-model-triage.md +12 -12
- package/docs/adr/0002-instruction-driven-flag.md +5 -5
- package/docs/adr/0003-unified-shared-skills.md +5 -5
- package/docs/adr/0004-zero-dependency-philosophy.md +5 -5
- package/docs/adr/0005-lazy-phase-docs.md +2 -2
- package/docs/adr/0006-skills-core-external-split.md +6 -6
- package/docs/adr/0007-multi-tool-adapter-framework.md +19 -19
- package/docs/adr/0008-installer-modularization-and-secret-leak-defense.md +19 -19
- package/docs/adr/README.md +1 -1
- package/docs/best-practices.md +3 -3
- package/docs/features.md +28 -28
- package/docs/performance.md +16 -16
- package/docs/recovery-guide.md +39 -39
- package/index.js +4 -4
- package/install/_common.mjs +53 -11
- package/install/_copilot-instructions.mjs +2 -2
- package/install/_dev-only-files.mjs +126 -6
- package/install/_platform-filter.mjs +1 -1
- package/install/_telemetry.mjs +1 -1
- package/install/claude.mjs +20 -13
- package/install/copilot.mjs +11 -23
- package/install/index.mjs +7 -15
- package/install/templates/copilot-instructions.md +54 -54
- package/install.js +1 -1
- package/package.json +29 -11
- package/pipeline/commands/multi-agent/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/analysis/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/analysis-resolve/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/autopilot/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/build-optimize/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/create-jira/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/design-check/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/dev/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/dev-autopilot/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/dev-local/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/dev-local-autopilot/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/diff-explain/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/finish/SKILL.md +6 -6
- package/pipeline/commands/multi-agent/forget/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/garbage-collect/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/help/SKILL.md +3 -3
- package/pipeline/commands/multi-agent/issue/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/jira/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/kill/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/language/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/local/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/local-autopilot/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/log/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/manual-test/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/prune-logs/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/purge/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/refactor/SKILL.md +16 -8
- package/pipeline/commands/multi-agent/resume/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/review/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/review-issue/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/review-jira/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/routines/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/save/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/scan/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/search/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/setup/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/stack/SKILL.md +3 -3
- package/pipeline/commands/multi-agent/status/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/sync/SKILL.md +5 -5
- package/pipeline/commands/multi-agent/test/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/uninstall/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/update/SKILL.md +3 -3
- package/pipeline/lib/account-resolver.sh +1 -1
- package/pipeline/lib/channels-multi-repo.sh +1 -1
- package/pipeline/lib/context-link-extractor.sh +1 -1
- package/pipeline/lib/credential-store.sh +21 -1
- package/pipeline/lib/fetch-confluence.sh +1 -1
- package/pipeline/lib/fetch-crashlytics.sh +1 -1
- package/pipeline/lib/fetch-fortify.sh +1 -1
- package/pipeline/lib/fetch-graylog.sh +1 -1
- package/pipeline/lib/fetch-swagger.sh +1 -1
- package/pipeline/lib/issue-fetcher.sh +1 -1
- package/pipeline/lib/multi-repo-pipeline.sh +1 -1
- package/pipeline/lib/repo-cache.sh +1 -1
- package/pipeline/lib/submodule-detector.sh +1 -1
- package/pipeline/multi-agent-refs/_account-picker.md +1 -1
- package/pipeline/multi-agent-refs/_dev-context.md +1 -1
- package/pipeline/multi-agent-refs/_repo-picker.md +1 -1
- package/pipeline/multi-agent-refs/component-dispatch.md +1 -1
- package/pipeline/multi-agent-refs/component-generation.md +121 -0
- package/pipeline/multi-agent-refs/cross-cli-contract.md +1 -1
- package/pipeline/multi-agent-refs/features/model-fallback.md +2 -2
- package/pipeline/multi-agent-refs/phases/operations.md +28 -0
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +1 -0
- package/pipeline/multi-agent-refs/phases/phase-2-planning.md +1 -1
- package/pipeline/multi-agent-refs/phases/phase-3-dev.md +1 -2
- package/pipeline/multi-agent-refs/phases/phase-4-review.md +50 -5
- package/pipeline/preferences-template.json +5 -11
- package/pipeline/schemas/agent-state.schema.json +39 -9
- package/pipeline/schemas/analysis-output.schema.json +18 -4
- package/pipeline/schemas/analysis-spec.schema.json +120 -32
- package/pipeline/schemas/clarify-output.schema.json +15 -5
- package/pipeline/schemas/design-check-config.schema.json +32 -11
- package/pipeline/schemas/dev-critic-output.schema.json +20 -5
- package/pipeline/schemas/figma-project-config.schema.json +42 -10
- package/pipeline/schemas/learnings-ledger.schema.json +10 -2
- package/pipeline/schemas/migrations/figma-config-1.0.0-to-2.0.0.mjs +1 -4
- package/pipeline/schemas/migrations/prefs-2.0.0-to-2.1.0.mjs +24 -7
- package/pipeline/schemas/plan-todos.schema.json +6 -3
- package/pipeline/schemas/planning-output.schema.json +5 -1
- package/pipeline/schemas/prefs.schema.json +97 -229
- package/pipeline/schemas/test-gap.schema.json +5 -5
- package/pipeline/schemas/token-budget.json +8 -8
- package/pipeline/schemas/triage-corpus.schema.json +1 -1
- package/pipeline/scripts/_smoke-root.sh +61 -0
- package/pipeline/scripts/aggregate-metrics.mjs +18 -6
- package/pipeline/scripts/audit-log.sh +25 -0
- package/pipeline/scripts/build-skills-index.mjs +6 -2
- package/pipeline/scripts/build-stack-plugins.mjs +142 -39
- package/pipeline/scripts/check-derived-drift.mjs +196 -0
- package/pipeline/scripts/classify-plan-safety.mjs +20 -7
- package/pipeline/scripts/cost-budget-check.mjs +2 -1
- package/pipeline/scripts/cost-table.json +1 -1
- package/pipeline/scripts/diff-explain.mjs +7 -3
- package/pipeline/scripts/diff-risk-score.mjs +13 -3
- package/pipeline/scripts/evidence-gate.mjs +7 -2
- package/pipeline/scripts/gen-mode-dispatch.mjs +38 -21
- package/pipeline/scripts/gen-skills-index.mjs +18 -3
- package/pipeline/scripts/learning-curve.mjs +13 -3
- package/pipeline/scripts/learnings-ledger.mjs +103 -36
- package/pipeline/scripts/localize-commands.mjs +6 -1
- package/pipeline/scripts/match-skills.mjs +15 -4
- package/pipeline/scripts/migrate-prefs.mjs +33 -16
- package/pipeline/scripts/phase-tracker.sh +3 -1
- package/pipeline/scripts/repo-map.mjs +110 -64
- package/pipeline/scripts/review-scope.mjs +7 -1
- package/pipeline/scripts/routine-registry.mjs +4 -9
- package/pipeline/scripts/run-aggregator.mjs +11 -5
- package/pipeline/scripts/run-metrics.mjs +13 -8
- package/pipeline/scripts/smoke-cross-cli-behavior.sh +21 -7
- package/pipeline/scripts/test-gap-scan.mjs +44 -12
- package/pipeline/scripts/test-integrity-gate.mjs +5 -1
- package/pipeline/scripts/token-budget-report.mjs +44 -21
- package/pipeline/scripts/triage-memory.mjs +126 -34
- package/pipeline/scripts/uninstall.mjs +74 -30
- package/pipeline/scripts/validate-analysis-doc.mjs +15 -5
- package/pipeline/scripts/validate-diff-risk.mjs +32 -18
- package/pipeline/scripts/validate-test-gap.mjs +17 -7
- package/pipeline/scripts/validate-triage.mjs +17 -5
- package/pipeline/scripts/write-state.mjs +32 -9
- package/pipeline/skills/.skills-index.json +91 -91
- package/pipeline/skills/shared/README.md +57 -57
- package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +1 -1
- package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +26 -279
- package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-create-jira/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-design-check/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-dev/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-dev-autopilot/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-dev-local/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-dev-local-autopilot/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-diff-explain/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-finish/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-forget/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-garbage-collect/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-issue/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-jira/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-kill/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-local/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-local-autopilot/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-log/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-manual-test/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-prune-logs/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-purge/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +16 -8
- package/pipeline/skills/shared/core/multi-agent-resume/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-review-issue/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-review-jira/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-routines/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-save/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-scan/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-search/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-setup/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-stack/SKILL.md +3 -3
- package/pipeline/skills/shared/core/multi-agent-status/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-test/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-uninstall/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-update/SKILL.md +1 -1
- package/pipeline/skills/shared/external/accessibility-compliance-accessibility-audit/SKILL.md +1 -1
- package/pipeline/skills/shared/external/agent-introspection-debugging/SKILL.md +4 -4
- package/pipeline/skills/shared/external/agentflow/SKILL.md +1 -1
- package/pipeline/skills/shared/external/android-jetpack-compose-expert/SKILL.md +1 -1
- package/pipeline/skills/shared/external/android_ui_verification/SKILL.md +1 -1
- package/pipeline/skills/shared/external/api-patterns/SKILL.md +1 -1
- package/pipeline/skills/shared/external/api-security-best-practices/SKILL.md +1 -1
- package/pipeline/skills/shared/external/app-store-changelog/SKILL.md +1 -1
- package/pipeline/skills/shared/external/backlog/BACKLOG.md +1 -1
- package/pipeline/skills/shared/external/backlog/SKILL.md +12 -12
- package/pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md +1 -1
- package/pipeline/skills/shared/external/context-compression/SKILL.md +1 -1
- package/pipeline/skills/shared/external/council/SKILL.md +3 -3
- package/pipeline/skills/shared/external/css-modern/SKILL.md +1 -1
- package/pipeline/skills/shared/external/database-patterns/SKILL.md +1 -1
- package/pipeline/skills/shared/external/debugging-strategies/SKILL.md +1 -1
- package/pipeline/skills/shared/external/docker-expert/SKILL.md +1 -1
- package/pipeline/skills/shared/external/fastapi-pro/SKILL.md +1 -1
- package/pipeline/skills/shared/external/firebase/SKILL.md +1 -1
- package/pipeline/skills/shared/external/github-actions-templates/SKILL.md +1 -1
- package/pipeline/skills/shared/external/help-skills/SKILL.md +1 -1
- package/pipeline/skills/shared/external/hig-components-content/SKILL.md +1 -1
- package/pipeline/skills/shared/external/hig-components-layout/SKILL.md +1 -1
- package/pipeline/skills/shared/external/hig-components-status/SKILL.md +1 -1
- package/pipeline/skills/shared/external/hig-components-system/SKILL.md +1 -1
- package/pipeline/skills/shared/external/hig-foundations/SKILL.md +1 -1
- package/pipeline/skills/shared/external/hig-inputs/SKILL.md +1 -1
- package/pipeline/skills/shared/external/hig-patterns/SKILL.md +1 -1
- package/pipeline/skills/shared/external/hig-platforms/SKILL.md +1 -1
- package/pipeline/skills/shared/external/hig-technologies/SKILL.md +1 -1
- package/pipeline/skills/shared/external/html-semantic/SKILL.md +1 -1
- package/pipeline/skills/shared/external/humanizer/SKILL.md +1 -1
- package/pipeline/skills/shared/external/ios-debugger-agent/SKILL.md +1 -1
- package/pipeline/skills/shared/external/ios-developer/SKILL.md +1 -1
- package/pipeline/skills/shared/external/kotlin-coroutines-expert/SKILL.md +1 -1
- package/pipeline/skills/shared/external/macos-menubar-tuist-app/SKILL.md +1 -1
- package/pipeline/skills/shared/external/macos-spm-app-packaging/SKILL.md +1 -1
- package/pipeline/skills/shared/external/monorepo-architect/SKILL.md +1 -1
- package/pipeline/skills/shared/external/nextjs-app-router/SKILL.md +1 -1
- package/pipeline/skills/shared/external/nodejs-backend-patterns/SKILL.md +1 -1
- package/pipeline/skills/shared/external/observability-engineer/SKILL.md +1 -1
- package/pipeline/skills/shared/external/python-patterns/SKILL.md +1 -1
- package/pipeline/skills/shared/external/react-best-practices/SKILL.md +1 -1
- package/pipeline/skills/shared/external/rest-api-design/SKILL.md +1 -1
- package/pipeline/skills/shared/external/search-first/SKILL.md +2 -2
- package/pipeline/skills/shared/external/skill-creator/SKILL.md +12 -12
- package/pipeline/skills/shared/external/skill-creator/audit.md +21 -21
- package/pipeline/skills/shared/external/skill-creator/checklist.md +3 -3
- package/pipeline/skills/shared/external/skill-creator/examples.md +10 -10
- package/pipeline/skills/shared/external/skill-creator/label-check.md +17 -17
- package/pipeline/skills/shared/external/skill-creator/scripts/audit-panel.js +86 -50
- package/pipeline/skills/shared/external/skill-creator/template.md +9 -9
- package/pipeline/skills/shared/external/swift-concurrency-expert/SKILL.md +1 -1
- package/pipeline/skills/shared/external/swiftui-performance-audit/SKILL.md +1 -1
- package/pipeline/skills/shared/external/swiftui-ui-patterns/SKILL.md +1 -1
- package/pipeline/skills/shared/external/swiftui-view-refactor/SKILL.md +1 -1
- package/pipeline/skills/shared/external/tailwind-css/SKILL.md +1 -1
- package/pipeline/skills/shared/external/testing-backend/SKILL.md +1 -1
- package/pipeline/skills/shared/external/typescript-patterns/SKILL.md +1 -1
- package/pipeline/skills/shared/external/vue-composition/SKILL.md +1 -1
- package/pipeline/skills/shared/external/web-accessibility/SKILL.md +1 -1
- package/pipeline/skills/shared/external/web-performance/SKILL.md +1 -1
- package/pipeline/skills/shared/external/web-testing/SKILL.md +1 -1
- package/pipeline/skills/shared/external/xcode-build-benchmark/schemas/build-benchmark.schema.json +9 -49
- package/pipeline/skills/skills-index.md +57 -57
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-1-analysis.json +0 -25
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-2-plan.json +0 -30
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-4-review.json +0 -20
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/expected/phase-4-triage.json +0 -15
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/metadata.json +0 -14
- package/pipeline/eval/golden-tasks/01-ios-bugfix-darkmode/task.json +0 -12
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-1-analysis.json +0 -29
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-2-plan.json +0 -43
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-4-review.json +0 -35
- package/pipeline/eval/golden-tasks/02-android-feature-compose/expected/phase-4-triage.json +0 -35
- package/pipeline/eval/golden-tasks/02-android-feature-compose/metadata.json +0 -14
- package/pipeline/eval/golden-tasks/02-android-feature-compose/task.json +0 -12
- package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-1-analysis.json +0 -29
- package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-2-plan.json +0 -42
- package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-4-review.json +0 -20
- package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/expected/phase-4-triage.json +0 -15
- package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/metadata.json +0 -14
- package/pipeline/eval/golden-tasks/03-backend-python-ratelimit/task.json +0 -12
- package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-1-analysis.json +0 -29
- package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-2-plan.json +0 -40
- package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-4-review.json +0 -20
- package/pipeline/eval/golden-tasks/04-frontend-next-hydration/expected/phase-4-triage.json +0 -15
- package/pipeline/eval/golden-tasks/04-frontend-next-hydration/metadata.json +0 -14
- package/pipeline/eval/golden-tasks/04-frontend-next-hydration/task.json +0 -12
- package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-1-analysis.json +0 -29
- package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-2-plan.json +0 -42
- package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-4-review.json +0 -28
- package/pipeline/eval/golden-tasks/05-ios-security-keychain/expected/phase-4-triage.json +0 -27
- package/pipeline/eval/golden-tasks/05-ios-security-keychain/metadata.json +0 -14
- package/pipeline/eval/golden-tasks/05-ios-security-keychain/task.json +0 -12
- package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-1-analysis.json +0 -29
- package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-2-plan.json +0 -41
- package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-4-review.json +0 -12
- package/pipeline/eval/golden-tasks/06-android-refactor-usecase/expected/phase-4-triage.json +0 -6
- package/pipeline/eval/golden-tasks/06-android-refactor-usecase/metadata.json +0 -14
- package/pipeline/eval/golden-tasks/06-android-refactor-usecase/task.json +0 -12
- package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-1-analysis.json +0 -29
- package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-2-plan.json +0 -42
- package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-4-review.json +0 -28
- package/pipeline/eval/golden-tasks/07-backend-node-idempotency/expected/phase-4-triage.json +0 -27
- package/pipeline/eval/golden-tasks/07-backend-node-idempotency/metadata.json +0 -14
- package/pipeline/eval/golden-tasks/07-backend-node-idempotency/task.json +0 -12
- package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-1-analysis.json +0 -25
- package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-2-plan.json +0 -31
- package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-4-review.json +0 -12
- package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/expected/phase-4-triage.json +0 -18
- package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/metadata.json +0 -14
- package/pipeline/eval/golden-tasks/08-ios-auth-consensus-unverified/task.json +0 -12
- package/pipeline/eval/golden-tasks/README.md +0 -65
- package/pipeline/eval/intent-cases.json +0 -40
- package/pipeline/eval/run-metrics-fixture.json +0 -46
- package/pipeline/eval/triage/01-empty-findings/expected.json +0 -6
- package/pipeline/eval/triage/01-empty-findings/input.json +0 -5
- package/pipeline/eval/triage/01-empty-findings/notes.md +0 -7
- package/pipeline/eval/triage/02-real-blocker/expected.json +0 -15
- package/pipeline/eval/triage/02-real-blocker/input.json +0 -14
- package/pipeline/eval/triage/02-real-blocker/notes.md +0 -7
- package/pipeline/eval/triage/03-out-of-scope-defer/expected.json +0 -18
- package/pipeline/eval/triage/03-out-of-scope-defer/input.json +0 -14
- package/pipeline/eval/triage/03-out-of-scope-defer/notes.md +0 -10
- package/pipeline/eval/triage/04-false-positive-reject/expected.json +0 -18
- package/pipeline/eval/triage/04-false-positive-reject/input.json +0 -14
- package/pipeline/eval/triage/04-false-positive-reject/notes.md +0 -10
- package/pipeline/eval/triage/05-mixed-classification/expected.json +0 -43
- package/pipeline/eval/triage/05-mixed-classification/input.json +0 -38
- package/pipeline/eval/triage/05-mixed-classification/notes.md +0 -17
- package/pipeline/eval/triage/06-severity-mismatch/expected.json +0 -15
- package/pipeline/eval/triage/06-severity-mismatch/input.json +0 -14
- package/pipeline/eval/triage/06-severity-mismatch/notes.md +0 -9
- package/pipeline/eval/triage/07-duplicate-reviewers/expected.json +0 -27
- package/pipeline/eval/triage/07-duplicate-reviewers/input.json +0 -22
- package/pipeline/eval/triage/07-duplicate-reviewers/notes.md +0 -9
- package/pipeline/eval/triage/08-style-misclassified/expected.json +0 -18
- package/pipeline/eval/triage/08-style-misclassified/input.json +0 -14
- package/pipeline/eval/triage/08-style-misclassified/notes.md +0 -9
- package/pipeline/eval/triage/09-cascading-finding/expected.json +0 -23
- package/pipeline/eval/triage/09-cascading-finding/input.json +0 -22
- package/pipeline/eval/triage/09-cascading-finding/notes.md +0 -9
- package/pipeline/eval/triage/10-deferred-crossref/expected.json +0 -18
- package/pipeline/eval/triage/10-deferred-crossref/input.json +0 -14
- package/pipeline/eval/triage/10-deferred-crossref/notes.md +0 -9
- package/pipeline/eval/triage/11-vercel-token-leak-blocker/expected.json +0 -27
- package/pipeline/eval/triage/11-vercel-token-leak-blocker/input.json +0 -22
- package/pipeline/eval/triage/11-vercel-token-leak-blocker/notes.md +0 -14
- package/pipeline/eval/triage/README.md +0 -54
- package/pipeline/scripts/benchmark-phase-0.sh +0 -128
- package/pipeline/scripts/check-md-links.mjs +0 -84
- package/pipeline/scripts/eval-golden-tasks-live.mjs +0 -297
- package/pipeline/scripts/eval-golden-tasks.mjs +0 -212
- package/pipeline/scripts/eval-intent.mjs +0 -103
- package/pipeline/scripts/eval-mine-corpus.mjs +0 -201
- package/pipeline/scripts/eval-triage.mjs +0 -171
- package/pipeline/scripts/fixtures/diff-risk-android.diff +0 -40
- package/pipeline/scripts/fixtures/diff-risk-ios.diff +0 -48
- package/pipeline/scripts/fixtures/diff-risk-test-removal.diff +0 -40
- package/pipeline/scripts/fixtures/install-layout.tsv +0 -19
- package/pipeline/scripts/fixtures/pack-expected-count.txt +0 -1
- package/pipeline/scripts/fixtures/test-gap-node.diff +0 -30
- package/pipeline/scripts/fixtures/test-gap-python.diff +0 -32
- package/pipeline/scripts/lint-mcp-refs.mjs +0 -207
- package/pipeline/scripts/lint-skills.mjs +0 -143
- package/pipeline/scripts/run-smokes.mjs +0 -76
- package/pipeline/scripts/smoke-add-detail.sh +0 -137
- package/pipeline/scripts/smoke-agent-guard.sh +0 -74
- package/pipeline/scripts/smoke-agent-log-cost.sh +0 -262
- package/pipeline/scripts/smoke-agent-model-routing.sh +0 -87
- package/pipeline/scripts/smoke-ask-choice.sh +0 -42
- package/pipeline/scripts/smoke-autopilot-circuit-breaker.sh +0 -36
- package/pipeline/scripts/smoke-bitbucket-contract.sh +0 -255
- package/pipeline/scripts/smoke-changelog-version.sh +0 -47
- package/pipeline/scripts/smoke-channels-approval-gate.sh +0 -60
- package/pipeline/scripts/smoke-channels-flow.sh +0 -130
- package/pipeline/scripts/smoke-ci-workflows.sh +0 -88
- package/pipeline/scripts/smoke-clarify.sh +0 -148
- package/pipeline/scripts/smoke-command-inventory.sh +0 -81
- package/pipeline/scripts/smoke-commands-skills-parity.sh +0 -87
- package/pipeline/scripts/smoke-community-gates.sh +0 -75
- package/pipeline/scripts/smoke-compliance-skills.sh +0 -119
- package/pipeline/scripts/smoke-config-hygiene.sh +0 -58
- package/pipeline/scripts/smoke-cost-budget.sh +0 -70
- package/pipeline/scripts/smoke-cost-summary.sh +0 -139
- package/pipeline/scripts/smoke-cross-phase-cohesion.sh +0 -128
- package/pipeline/scripts/smoke-description-tr.sh +0 -82
- package/pipeline/scripts/smoke-dev-critic.sh +0 -144
- package/pipeline/scripts/smoke-diff-explain.sh +0 -147
- package/pipeline/scripts/smoke-diff-risk.sh +0 -190
- package/pipeline/scripts/smoke-dynamic-skill-loading.sh +0 -160
- package/pipeline/scripts/smoke-eval-live.sh +0 -136
- package/pipeline/scripts/smoke-evidence-gate.sh +0 -93
- package/pipeline/scripts/smoke-extract-conventions.sh +0 -163
- package/pipeline/scripts/smoke-fetchers-offline.sh +0 -448
- package/pipeline/scripts/smoke-figma-dispatch.sh +0 -112
- package/pipeline/scripts/smoke-gate-hooks.sh +0 -74
- package/pipeline/scripts/smoke-gc-tmp.sh +0 -130
- package/pipeline/scripts/smoke-gc-worktrees.sh +0 -125
- package/pipeline/scripts/smoke-generate-issue.sh +0 -120
- package/pipeline/scripts/smoke-handoff-contract.sh +0 -92
- package/pipeline/scripts/smoke-identity-isolation.sh +0 -70
- package/pipeline/scripts/smoke-install-layout.sh +0 -248
- package/pipeline/scripts/smoke-intent-guard.sh +0 -86
- package/pipeline/scripts/smoke-issue-comment-template.sh +0 -86
- package/pipeline/scripts/smoke-issue-jira-triad.sh +0 -120
- package/pipeline/scripts/smoke-keychain.sh +0 -158
- package/pipeline/scripts/smoke-language-axis.sh +0 -109
- package/pipeline/scripts/smoke-learning-curve.sh +0 -61
- package/pipeline/scripts/smoke-learnings-ledger.sh +0 -86
- package/pipeline/scripts/smoke-lib-scripts.sh +0 -448
- package/pipeline/scripts/smoke-mcp-gate.sh +0 -68
- package/pipeline/scripts/smoke-md-links.sh +0 -8
- package/pipeline/scripts/smoke-md2confluence.sh +0 -126
- package/pipeline/scripts/smoke-metrics-cache-ratio.sh +0 -72
- package/pipeline/scripts/smoke-migrate-state.sh +0 -102
- package/pipeline/scripts/smoke-mode-dispatch-drift.sh +0 -161
- package/pipeline/scripts/smoke-model-fallback.sh +0 -89
- package/pipeline/scripts/smoke-multi-repo-integration.sh +0 -116
- package/pipeline/scripts/smoke-multi-repo-worktree.sh +0 -61
- package/pipeline/scripts/smoke-no-mcp-in-dev-phases.sh +0 -115
- package/pipeline/scripts/smoke-no-token-prompt.sh +0 -85
- package/pipeline/scripts/smoke-pack-contents.sh +0 -140
- package/pipeline/scripts/smoke-pat-audit.sh +0 -128
- package/pipeline/scripts/smoke-per-repo-memory.sh +0 -156
- package/pipeline/scripts/smoke-phase-0-multi-repo.sh +0 -170
- package/pipeline/scripts/smoke-phase-6-multi.sh +0 -79
- package/pipeline/scripts/smoke-phase-banner.sh +0 -101
- package/pipeline/scripts/smoke-phase-tracker.sh +0 -324
- package/pipeline/scripts/smoke-phase0-bridge-contract.sh +0 -241
- package/pipeline/scripts/smoke-phase4-gates.sh +0 -45
- package/pipeline/scripts/smoke-phase4-triage.sh +0 -229
- package/pipeline/scripts/smoke-plan-approval-gate.sh +0 -71
- package/pipeline/scripts/smoke-plan-safety.sh +0 -139
- package/pipeline/scripts/smoke-plan-todos.sh +0 -196
- package/pipeline/scripts/smoke-plugin-validate.sh +0 -64
- package/pipeline/scripts/smoke-pr-review-actions.sh +0 -152
- package/pipeline/scripts/smoke-pre-commit.sh +0 -170
- package/pipeline/scripts/smoke-pref-migration.sh +0 -226
- package/pipeline/scripts/smoke-prefs-language.sh +0 -134
- package/pipeline/scripts/smoke-progress-contract.sh +0 -127
- package/pipeline/scripts/smoke-prune-logs.sh +0 -137
- package/pipeline/scripts/smoke-purge.sh +0 -138
- package/pipeline/scripts/smoke-push-retry.sh +0 -75
- package/pipeline/scripts/smoke-repo-map.sh +0 -300
- package/pipeline/scripts/smoke-review-readiness.sh +0 -92
- package/pipeline/scripts/smoke-review-watch.sh +0 -146
- package/pipeline/scripts/smoke-routines.sh +0 -84
- package/pipeline/scripts/smoke-run-aggregator.sh +0 -216
- package/pipeline/scripts/smoke-run-metrics.sh +0 -50
- package/pipeline/scripts/smoke-search.sh +0 -187
- package/pipeline/scripts/smoke-shadow-git.sh +0 -224
- package/pipeline/scripts/smoke-skill-authoring.sh +0 -137
- package/pipeline/scripts/smoke-skill-language.sh +0 -83
- package/pipeline/scripts/smoke-skill-manifest.sh +0 -138
- package/pipeline/scripts/smoke-skill-scan.sh +0 -198
- package/pipeline/scripts/smoke-source-parity.sh +0 -85
- package/pipeline/scripts/smoke-subagent-validators.sh +0 -108
- package/pipeline/scripts/smoke-sync-parity.sh +0 -92
- package/pipeline/scripts/smoke-tasklist-ordering.sh +0 -112
- package/pipeline/scripts/smoke-telemetry.sh +0 -147
- package/pipeline/scripts/smoke-test-gap.sh +0 -183
- package/pipeline/scripts/smoke-token-budget.sh +0 -67
- package/pipeline/scripts/smoke-token-preflight.sh +0 -82
- package/pipeline/scripts/smoke-tracker-contract.sh +0 -191
- package/pipeline/scripts/smoke-tracker-tokens-invocation.sh +0 -73
- package/pipeline/scripts/smoke-triage-memory.sh +0 -174
- package/pipeline/scripts/smoke-update-check.sh +0 -135
- package/pipeline/scripts/smoke-url-enrichment.sh +0 -70
- package/pipeline/scripts/smoke-validate-analysis-doc.sh +0 -161
- package/pipeline/scripts/smoke-validator-contradiction.sh +0 -67
- package/pipeline/scripts/smoke-validator-gates.sh +0 -164
- package/pipeline/scripts/smoke-vercel-deploy-redact.sh +0 -129
- package/pipeline/scripts/smoke-verify-by-test.sh +0 -148
- package/pipeline/scripts/smoke-wiki-integration.sh +0 -122
- package/pipeline/scripts/smoke-work-summary.sh +0 -163
- package/pipeline/scripts/smoke-workflow-audit.sh +0 -69
- package/pipeline/scripts/smoke-worktree-path-convention.sh +0 -86
- package/pipeline/scripts/smoke-wrapper-preservation.sh +0 -68
- package/pipeline/scripts/smoke-write-state.sh +0 -115
- package/pipeline/scripts/sync-parity-check.sh +0 -135
- package/pipeline/scripts/test-gap-rules/android.json +0 -25
- package/pipeline/scripts/test-gap-rules/ios.json +0 -29
- package/pipeline/scripts/test-gap-rules/node.json +0 -17
- package/pipeline/scripts/test-gap-rules/python.json +0 -19
- package/pipeline/scripts/validate-schemas.mjs +0 -88
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# smoke-phase-0-multi-repo.sh - asserts the v2.1.0+ multi-repo + identity-routing
|
|
3
|
-
# + fetch-fail contract is fully documented in phase-0-init.md.
|
|
4
|
-
#
|
|
5
|
-
# This is a doc-shape smoke (Phase 0 is spec-driven; the executable behavior
|
|
6
|
-
# lives in the orchestrator, not a single .sh). Failures here mean the spec
|
|
7
|
-
# diverged from the schema or feedback memory.
|
|
8
|
-
|
|
9
|
-
set -uo pipefail
|
|
10
|
-
|
|
11
|
-
# Source-tree read (authoritative). Installed tree may lag behind.
|
|
12
|
-
HERE="$(cd "$(dirname "$0")" && pwd)"
|
|
13
|
-
ROOT="$(cd "$HERE/../.." && pwd)"
|
|
14
|
-
PHASE0="$ROOT/pipeline/multi-agent-refs/phases/phase-0-init.md"
|
|
15
|
-
PREFS_SCHEMA="$ROOT/pipeline/schemas/prefs.schema.json"
|
|
16
|
-
STATE_SCHEMA="$ROOT/pipeline/schemas/agent-state.schema.json"
|
|
17
|
-
|
|
18
|
-
PASS=0
|
|
19
|
-
FAIL=0
|
|
20
|
-
pass() { PASS=$((PASS + 1)); echo " ✓ $1"; }
|
|
21
|
-
fail() { FAIL=$((FAIL + 1)); echo " ✗ $1"; }
|
|
22
|
-
|
|
23
|
-
if [ ! -f "$PHASE0" ]; then
|
|
24
|
-
fail "phase-0-init.md missing at $PHASE0"
|
|
25
|
-
echo "══ phase-0-multi-repo smoke: aborted ══"
|
|
26
|
-
exit 2
|
|
27
|
-
fi
|
|
28
|
-
|
|
29
|
-
# ──────────────────────────────────────────────────────────────────────────
|
|
30
|
-
echo "→ 1. Multi-repo project-selection contract"
|
|
31
|
-
grep -q "v2.1.0+ Multi-Repo Mode" "$PHASE0" \
|
|
32
|
-
&& pass "Step 2 has 'v2.1.0+ Multi-Repo Mode' subsection" \
|
|
33
|
-
|| fail "Step 2 missing v2.1.0+ multi-repo subsection"
|
|
34
|
-
grep -q "state.projects\[\]" "$PHASE0" \
|
|
35
|
-
&& pass "Step 2 references state.projects[] population" \
|
|
36
|
-
|| fail "Step 2 missing state.projects[] reference"
|
|
37
|
-
grep -q "recentGroups" "$PHASE0" \
|
|
38
|
-
&& pass "Step 2 mentions recentGroups (LRU bump)" \
|
|
39
|
-
|| fail "Step 2 missing recentGroups reference"
|
|
40
|
-
grep -q "settings.multiRepoEnabled" "$PHASE0" \
|
|
41
|
-
&& pass "Step 2 multi-repo gated by settings.multiRepoEnabled flag" \
|
|
42
|
-
|| fail "Step 2 missing settings.multiRepoEnabled gate"
|
|
43
|
-
|
|
44
|
-
# ──────────────────────────────────────────────────────────────────────────
|
|
45
|
-
echo ""
|
|
46
|
-
echo "→ 2. Branch TTL + collision detection"
|
|
47
|
-
grep -q "branchTtlDays" "$PHASE0" \
|
|
48
|
-
&& pass "TTL filter references settings.branchTtlDays" \
|
|
49
|
-
|| fail "TTL filter not anchored to settings.branchTtlDays"
|
|
50
|
-
grep -q "default 15" "$PHASE0" \
|
|
51
|
-
&& pass "TTL default 15d documented" \
|
|
52
|
-
|| fail "TTL default 15d not documented"
|
|
53
|
-
grep -qE "Collision handling|Branch-collision" "$PHASE0" \
|
|
54
|
-
&& pass "Collision handling section present" \
|
|
55
|
-
|| fail "Collision handling section missing"
|
|
56
|
-
# Post-10caff1: collision handling is automatic (`-v2`, `-v3` suffix), no prompt.
|
|
57
|
-
grep -qE "append \`-v2\`|append -v2" "$PHASE0" \
|
|
58
|
-
&& pass "Collision handling appends -v2/-v3 suffix automatically" \
|
|
59
|
-
|| fail "Collision automatic-suffix rule missing"
|
|
60
|
-
grep -qE "ls-remote --exit-code --heads" "$PHASE0" \
|
|
61
|
-
&& pass "Remote collision probe uses ls-remote --exit-code" \
|
|
62
|
-
|| fail "Remote collision probe missing ls-remote --exit-code"
|
|
63
|
-
|
|
64
|
-
# ──────────────────────────────────────────────────────────────────────────
|
|
65
|
-
echo ""
|
|
66
|
-
echo "→ 3. Fetch-fail flow (4 options per feedback memory)"
|
|
67
|
-
grep -q "Fetch-fail handling" "$PHASE0" \
|
|
68
|
-
&& pass "Fetch-fail handling subsection present" \
|
|
69
|
-
|| fail "Fetch-fail handling subsection missing"
|
|
70
|
-
for opt in "Connect VPN" "Use cached origin" "Use local branch" "Abort"; do
|
|
71
|
-
grep -q "$opt" "$PHASE0" \
|
|
72
|
-
&& pass "Fetch-fail option present: $opt" \
|
|
73
|
-
|| fail "Fetch-fail option missing: $opt"
|
|
74
|
-
done
|
|
75
|
-
grep -q '"baseFetchStatus"' "$PHASE0" \
|
|
76
|
-
&& pass "baseFetchStatus state field documented" \
|
|
77
|
-
|| fail "baseFetchStatus state field missing"
|
|
78
|
-
for v in "fresh" "cached-stale" "local-branch" "aborted"; do
|
|
79
|
-
grep -qE "\"$v\"" "$PHASE0" \
|
|
80
|
-
&& pass "baseFetchStatus enum value: $v" \
|
|
81
|
-
|| fail "baseFetchStatus enum value missing: $v"
|
|
82
|
-
done
|
|
83
|
-
|
|
84
|
-
# ──────────────────────────────────────────────────────────────────────────
|
|
85
|
-
echo ""
|
|
86
|
-
echo "→ 4. Branch-naming kebab rules + multi-repo shared name"
|
|
87
|
-
grep -q "Kebab rules" "$PHASE0" \
|
|
88
|
-
&& pass "Kebab rules block present" \
|
|
89
|
-
|| fail "Kebab rules block missing"
|
|
90
|
-
grep -q "shared across all repos" "$PHASE0" \
|
|
91
|
-
&& pass "Multi-repo shared-name rule documented" \
|
|
92
|
-
|| fail "Multi-repo shared-name rule missing"
|
|
93
|
-
|
|
94
|
-
# ──────────────────────────────────────────────────────────────────────────
|
|
95
|
-
echo ""
|
|
96
|
-
echo "→ 5. Identity routing (Step 6 v2.1.0+)"
|
|
97
|
-
grep -q "platformIdentityRouting" "$PHASE0" \
|
|
98
|
-
&& pass "Step 6 references platformIdentityRouting" \
|
|
99
|
-
|| fail "Step 6 missing platformIdentityRouting reference"
|
|
100
|
-
# Post-10caff1: identity routing is ALWAYS on (no gate); previous
|
|
101
|
-
# settings.identityRoutingEnabled is obsolete. Verify no stale gate remains.
|
|
102
|
-
if grep -q "settings.identityRoutingEnabled" "$PHASE0"; then
|
|
103
|
-
fail "legacy settings.identityRoutingEnabled gate still present (should be removed)"
|
|
104
|
-
else
|
|
105
|
-
pass "no legacy settings.identityRoutingEnabled gate"
|
|
106
|
-
fi
|
|
107
|
-
grep -q "longest-prefix wins\|Most-specific" "$PHASE0" \
|
|
108
|
-
&& pass "Glob match semantics: longest-prefix / most-specific wins" \
|
|
109
|
-
|| fail "Glob match semantics not documented"
|
|
110
|
-
# Schema renamed gitIdentities → identities in v2.1.0. Step 6 must not use
|
|
111
|
-
# the legacy name.
|
|
112
|
-
if grep -q "gitIdentities" "$PHASE0"; then
|
|
113
|
-
fail "Step 6 still reading legacy gitIdentities path"
|
|
114
|
-
else
|
|
115
|
-
pass "no legacy gitIdentities reference"
|
|
116
|
-
fi
|
|
117
|
-
grep -qE "per repo( independently)?" "$PHASE0" \
|
|
118
|
-
&& pass "Multi-repo: identity routed per-repo" \
|
|
119
|
-
|| fail "Multi-repo per-repo routing not stated"
|
|
120
|
-
|
|
121
|
-
# ──────────────────────────────────────────────────────────────────────────
|
|
122
|
-
echo ""
|
|
123
|
-
echo "→ 6. Step 8 multi-repo worktree setup"
|
|
124
|
-
grep -q "v2.1.0+ Multi-Repo Worktree Setup" "$PHASE0" \
|
|
125
|
-
&& pass "Step 8 has multi-repo worktree subsection" \
|
|
126
|
-
|| fail "Step 8 missing multi-repo worktree subsection"
|
|
127
|
-
grep -q "serially per repo" "$PHASE0" \
|
|
128
|
-
&& pass "Multi-repo worktrees created serially (not parallel)" \
|
|
129
|
-
|| fail "Serial worktree creation rule missing"
|
|
130
|
-
grep -q "roll back already-created worktrees" "$PHASE0" \
|
|
131
|
-
&& pass "Atomicity: rollback on partial failure documented" \
|
|
132
|
-
|| fail "Atomicity rollback rule missing"
|
|
133
|
-
grep -q "worktree remove --force" "$PHASE0" \
|
|
134
|
-
&& pass "Rollback uses git worktree remove --force" \
|
|
135
|
-
|| fail "Rollback command not specified"
|
|
136
|
-
|
|
137
|
-
# ──────────────────────────────────────────────────────────────────────────
|
|
138
|
-
echo ""
|
|
139
|
-
echo "→ 7. Recents update map (Step 0 v2.1.0+)"
|
|
140
|
-
grep -q "v2.1.0+ Recents update map" "$PHASE0" \
|
|
141
|
-
&& pass "Recents update map table present" \
|
|
142
|
-
|| fail "Recents update map table missing"
|
|
143
|
-
for path in recentProjects recentGroups recentBranches serviceStatus; do
|
|
144
|
-
grep -q "\`global\.$path" "$PHASE0" \
|
|
145
|
-
&& pass "Recents map covers global.$path" \
|
|
146
|
-
|| fail "Recents map missing global.$path"
|
|
147
|
-
done
|
|
148
|
-
|
|
149
|
-
# ──────────────────────────────────────────────────────────────────────────
|
|
150
|
-
echo ""
|
|
151
|
-
echo "→ 8. Schema cross-reference sanity"
|
|
152
|
-
if [ -f "$STATE_SCHEMA" ]; then
|
|
153
|
-
if grep -q "projects" "$STATE_SCHEMA"; then
|
|
154
|
-
pass "agent-state.schema.json has projects field"
|
|
155
|
-
else
|
|
156
|
-
fail "agent-state.schema.json missing projects field"
|
|
157
|
-
fi
|
|
158
|
-
fi
|
|
159
|
-
if [ -f "$PREFS_SCHEMA" ]; then
|
|
160
|
-
for f in platformIdentityRouting recentGroups recentBranches serviceStatus settings; do
|
|
161
|
-
grep -q "\"$f\":" "$PREFS_SCHEMA" \
|
|
162
|
-
&& pass "prefs schema declares $f" \
|
|
163
|
-
|| fail "prefs schema missing $f"
|
|
164
|
-
done
|
|
165
|
-
fi
|
|
166
|
-
|
|
167
|
-
# ──────────────────────────────────────────────────────────────────────────
|
|
168
|
-
echo ""
|
|
169
|
-
echo "══ phase-0-multi-repo smoke: $PASS passed, $FAIL failed ══"
|
|
170
|
-
[ "$FAIL" -eq 0 ]
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# smoke-phase-6-multi.sh - asserts Phase 6 multi-repo commit + per-repo PR
|
|
3
|
-
# + cross-link contract is documented.
|
|
4
|
-
|
|
5
|
-
set -uo pipefail
|
|
6
|
-
|
|
7
|
-
PHASE6="$HOME/.claude/multi-agent-refs/phases/phase-6-commit.md"
|
|
8
|
-
|
|
9
|
-
PASS=0; FAIL=0
|
|
10
|
-
pass() { PASS=$((PASS+1)); echo " ✓ $1"; }
|
|
11
|
-
fail() { FAIL=$((FAIL+1)); echo " ✗ $1"; }
|
|
12
|
-
|
|
13
|
-
if [ ! -f "$PHASE6" ]; then
|
|
14
|
-
fail "phase-6-commit.md missing"; echo "══ aborted ══"; exit 2
|
|
15
|
-
fi
|
|
16
|
-
|
|
17
|
-
echo "→ 1. v2.1.0+ Multi-Repo Mode subsection present"
|
|
18
|
-
grep -q "v2.1.0+ Multi-Repo Mode" "$PHASE6" \
|
|
19
|
-
&& pass "Phase 6 has v2.1.0+ Multi-Repo Mode subsection" \
|
|
20
|
-
|| fail "Phase 6 missing v2.1.0+ Multi-Repo Mode subsection"
|
|
21
|
-
|
|
22
|
-
echo "→ 2. Per-repo commit (shared subject + per-repo scope)"
|
|
23
|
-
grep -q "shared subject" "$PHASE6" \
|
|
24
|
-
&& pass "Shared subject across repos documented" \
|
|
25
|
-
|| fail "Shared subject rule missing"
|
|
26
|
-
grep -q "per-repo scope" "$PHASE6" \
|
|
27
|
-
&& pass "Per-repo scope rule documented" \
|
|
28
|
-
|| fail "Per-repo scope rule missing"
|
|
29
|
-
grep -q "Part of multi-repo change" "$PHASE6" \
|
|
30
|
-
&& pass "Body mentions sibling repos in commit message" \
|
|
31
|
-
|| fail "Sibling repo mention missing from commit body"
|
|
32
|
-
grep -q "state.projects\[i\].commit" "$PHASE6" \
|
|
33
|
-
&& pass "Per-repo commit sha persisted to state" \
|
|
34
|
-
|| fail "Per-repo commit sha persistence missing"
|
|
35
|
-
|
|
36
|
-
echo "→ 3. Per-repo PR with sibling cross-links"
|
|
37
|
-
grep -q "Sibling PRs (multi-repo task)" "$PHASE6" \
|
|
38
|
-
&& pass "PR body has Sibling PRs section" \
|
|
39
|
-
|| fail "PR body Sibling PRs section missing"
|
|
40
|
-
grep -q "update_sibling_links" "$PHASE6" \
|
|
41
|
-
&& pass "Idempotent sibling-link update documented" \
|
|
42
|
-
|| fail "Sibling-link update missing"
|
|
43
|
-
grep -q "version+1\|version +1" "$PHASE6" \
|
|
44
|
-
&& pass "Bitbucket version-bump for PR update mentioned" \
|
|
45
|
-
|| fail "Bitbucket PUT version-bump missing"
|
|
46
|
-
grep -q "gh pr edit --body-file" "$PHASE6" \
|
|
47
|
-
&& pass "GitHub gh pr edit for sibling-link update" \
|
|
48
|
-
|| fail "GitHub PR update command missing"
|
|
49
|
-
|
|
50
|
-
echo "→ 4. GitHub issue body - multi-repo PR list"
|
|
51
|
-
grep -q "one row per repo" "$PHASE6" \
|
|
52
|
-
&& pass "Issue body lists one row per repo" \
|
|
53
|
-
|| fail "Issue body multi-repo expansion missing"
|
|
54
|
-
grep -q '\*\*common:\*\*\|\*\*uicomponents:\*\*' "$PHASE6" \
|
|
55
|
-
&& pass "Per-repo row format example present" \
|
|
56
|
-
|| fail "Per-repo row example missing"
|
|
57
|
-
|
|
58
|
-
echo "→ 5. recentGroups update on success"
|
|
59
|
-
grep -q "recentGroups\` update on success" "$PHASE6" \
|
|
60
|
-
&& pass "recentGroups update section present" \
|
|
61
|
-
|| fail "recentGroups update section missing"
|
|
62
|
-
grep -q "order-independent compare" "$PHASE6" \
|
|
63
|
-
&& pass "Group dedup by order-independent compare" \
|
|
64
|
-
|| fail "Order-independent compare rule missing"
|
|
65
|
-
grep -q '"skipped"' "$PHASE6" \
|
|
66
|
-
&& pass "Skipped repos excluded from LRU bump" \
|
|
67
|
-
|| fail "LRU bump exclusion for skipped repos missing"
|
|
68
|
-
|
|
69
|
-
echo "→ 6. Telemetry per-repo"
|
|
70
|
-
grep -q "commit.created.*repo=\|push.attempted.*repo=" "$PHASE6" \
|
|
71
|
-
&& pass "Per-repo commit/push telemetry documented" \
|
|
72
|
-
|| fail "Per-repo telemetry missing"
|
|
73
|
-
grep -q "multi_repo.completed" "$PHASE6" \
|
|
74
|
-
&& pass "Aggregate multi_repo.completed metric present" \
|
|
75
|
-
|| fail "multi_repo.completed metric missing"
|
|
76
|
-
|
|
77
|
-
echo ""
|
|
78
|
-
echo "══ phase-6-multi smoke: $PASS passed, $FAIL failed ══"
|
|
79
|
-
[ "$FAIL" -eq 0 ]
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# smoke-phase-banner.sh - contract check for phase-banner.sh.
|
|
3
|
-
#
|
|
4
|
-
# Verifies:
|
|
5
|
-
# 1. start/end/sub render with phase + name
|
|
6
|
-
# 2. status enum on `end` is enforced (done|failed|skipped only)
|
|
7
|
-
# 3. plain-text mode (no TTY, TERM=dumb) strips ANSI codes
|
|
8
|
-
# 4. bad action / bad status → non-zero exit
|
|
9
|
-
# 5. minimal args allowed (no name, no detail)
|
|
10
|
-
|
|
11
|
-
set -uo pipefail
|
|
12
|
-
|
|
13
|
-
HERE="$(cd "$(dirname "$0")" && pwd)"
|
|
14
|
-
ROOT="$(cd "$HERE/../.." && pwd)"
|
|
15
|
-
SCRIPT="$ROOT/pipeline/scripts/phase-banner.sh"
|
|
16
|
-
|
|
17
|
-
PASS=0
|
|
18
|
-
FAIL=0
|
|
19
|
-
pass() { PASS=$((PASS+1)); echo " ✓ $1"; }
|
|
20
|
-
fail() { FAIL=$((FAIL+1)); echo " ✗ $1"; }
|
|
21
|
-
|
|
22
|
-
# Capture in plain-text mode (no TTY, TERM=dumb so colors are off).
|
|
23
|
-
run_plain() {
|
|
24
|
-
TERM=dumb "$SCRIPT" "$@" 2>/tmp/banner-err
|
|
25
|
-
}
|
|
26
|
-
run_plain_status() {
|
|
27
|
-
local rc=0
|
|
28
|
-
TERM=dumb "$SCRIPT" "$@" >/dev/null 2>/tmp/banner-err || rc=$?
|
|
29
|
-
echo "$rc"
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
echo "→ 1. start renders phase + name"
|
|
33
|
-
OUT=$(run_plain start 4 "Review" "demo")
|
|
34
|
-
echo "$OUT" | grep -q "Phase 4: Review" && pass "start banner contains phase + name" || fail "start banner missing phase or name"
|
|
35
|
-
echo "$OUT" | grep -q "demo" && pass "start banner contains detail" || fail "missing detail"
|
|
36
|
-
|
|
37
|
-
echo ""
|
|
38
|
-
echo "→ 2. end renders phase + status glyph"
|
|
39
|
-
OUT_DONE=$(run_plain end 4 done "Review")
|
|
40
|
-
echo "$OUT_DONE" | grep -q "✓ done" && pass "end done shows ✓" || fail "missing ✓ on done"
|
|
41
|
-
OUT_FAIL=$(run_plain end 3 failed "Dev")
|
|
42
|
-
echo "$OUT_FAIL" | grep -q "✗ failed" && pass "end failed shows ✗" || fail "missing ✗ on failed"
|
|
43
|
-
OUT_SKIP=$(run_plain end 5 skipped "Test")
|
|
44
|
-
echo "$OUT_SKIP" | grep -q "↷ skipped" && pass "end skipped shows ↷" || fail "missing ↷ on skipped"
|
|
45
|
-
|
|
46
|
-
echo ""
|
|
47
|
-
echo "→ 3. sub renders Sub <phase>.<sub>"
|
|
48
|
-
OUT_SUB=$(run_plain sub 4 2 "Triage" "validating")
|
|
49
|
-
echo "$OUT_SUB" | grep -q "Sub 4.2 Triage" && pass "sub line correct" || fail "sub line wrong: $OUT_SUB"
|
|
50
|
-
|
|
51
|
-
echo ""
|
|
52
|
-
echo "→ 4. plain-text mode strips ANSI"
|
|
53
|
-
if echo "$OUT" | grep -q $'\033\['; then
|
|
54
|
-
fail "ANSI escape codes leaked into TERM=dumb output"
|
|
55
|
-
else
|
|
56
|
-
pass "no ANSI escapes when TERM=dumb"
|
|
57
|
-
fi
|
|
58
|
-
|
|
59
|
-
echo ""
|
|
60
|
-
echo "→ 5. bad status → exit 64"
|
|
61
|
-
RC=$(run_plain_status end 4 unknownstatus "name")
|
|
62
|
-
[ "$RC" = "64" ] && pass "bad status rejected (exit 64)" || fail "bad status didn't fail (rc=$RC)"
|
|
63
|
-
|
|
64
|
-
echo ""
|
|
65
|
-
echo "→ 6. bad action → exit 64"
|
|
66
|
-
RC=$(run_plain_status flapdoodle 4)
|
|
67
|
-
[ "$RC" = "64" ] && pass "bad action rejected (exit 64)" || fail "bad action didn't fail (rc=$RC)"
|
|
68
|
-
|
|
69
|
-
echo ""
|
|
70
|
-
echo "→ 7. missing args → exit 64"
|
|
71
|
-
RC=$(run_plain_status start)
|
|
72
|
-
[ "$RC" = "64" ] && pass "missing args rejected (exit 64)" || fail "missing args didn't fail (rc=$RC)"
|
|
73
|
-
|
|
74
|
-
echo ""
|
|
75
|
-
echo "→ 8. minimal args (no name, no detail) work"
|
|
76
|
-
RC=$(run_plain_status start 0)
|
|
77
|
-
[ "$RC" = "0" ] && pass "minimal start works (just phase)" || fail "minimal start failed (rc=$RC)"
|
|
78
|
-
|
|
79
|
-
echo ""
|
|
80
|
-
echo "→ 9. label action prints canonical EN name"
|
|
81
|
-
OUT_LBL=$(TERM=dumb "$SCRIPT" label 4)
|
|
82
|
-
[ "$OUT_LBL" = "Review" ] && pass "label 4 en → Review" || fail "label 4 en unexpected: '$OUT_LBL'"
|
|
83
|
-
|
|
84
|
-
echo ""
|
|
85
|
-
echo "→ 10. PHASE_LANG=tr resolves TR label"
|
|
86
|
-
OUT_TR=$(TERM=dumb PHASE_LANG=tr "$SCRIPT" label 4)
|
|
87
|
-
[ "$OUT_TR" = "İnceleme" ] && pass "label 4 tr → İnceleme" || fail "label 4 tr unexpected: '$OUT_TR'"
|
|
88
|
-
|
|
89
|
-
echo ""
|
|
90
|
-
echo "→ 11. auto sentinel resolves from table (en)"
|
|
91
|
-
OUT_AUTO=$(run_plain start 3 auto)
|
|
92
|
-
echo "$OUT_AUTO" | grep -q "Phase 3: Dev" && pass "auto en → Phase 3: Dev" || fail "auto en unexpected: $OUT_AUTO"
|
|
93
|
-
|
|
94
|
-
echo ""
|
|
95
|
-
echo "→ 12. auto sentinel + PHASE_LANG=tr → Faz N: <tr-label>"
|
|
96
|
-
OUT_AUTO_TR=$(TERM=dumb PHASE_LANG=tr "$SCRIPT" start 3 auto)
|
|
97
|
-
echo "$OUT_AUTO_TR" | grep -q "Faz 3: Geliştirme" && pass "auto tr → Faz 3: Geliştirme" || fail "auto tr unexpected: $OUT_AUTO_TR"
|
|
98
|
-
|
|
99
|
-
echo ""
|
|
100
|
-
echo "══ phase-banner smoke: $PASS passed, $FAIL failed ══"
|
|
101
|
-
[ "$FAIL" -eq 0 ]
|