mandrel 1.57.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/.agents/README.md +954 -0
- package/.agents/docs/SDLC.md +1420 -0
- package/.agents/docs/agentrc-reference.json +278 -0
- package/.agents/docs/configuration.md +1040 -0
- package/.agents/docs/workflows.md +59 -0
- package/.agents/instructions.md +384 -0
- package/.agents/personas/architect.md +107 -0
- package/.agents/personas/devops-engineer.md +36 -0
- package/.agents/personas/engineer-mobile.md +119 -0
- package/.agents/personas/engineer-web.md +110 -0
- package/.agents/personas/engineer.md +90 -0
- package/.agents/personas/product.md +88 -0
- package/.agents/personas/project-manager.md +110 -0
- package/.agents/personas/qa-engineer.md +91 -0
- package/.agents/personas/refactorer.md +110 -0
- package/.agents/personas/security-engineer.md +112 -0
- package/.agents/personas/sre.md +86 -0
- package/.agents/personas/technical-writer.md +100 -0
- package/.agents/personas/ux-designer.md +95 -0
- package/.agents/rules/api-conventions.md +75 -0
- package/.agents/rules/changelog-style.md +238 -0
- package/.agents/rules/gherkin-standards.md +146 -0
- package/.agents/rules/git-conventions.md +146 -0
- package/.agents/rules/orchestration-error-handling.md +35 -0
- package/.agents/rules/security-baseline.md +92 -0
- package/.agents/rules/shell-conventions.md +70 -0
- package/.agents/rules/test-seams.md +59 -0
- package/.agents/rules/testing-standards.md +177 -0
- package/.agents/runtime-deps.json +18 -0
- package/.agents/schemas/acceptance-eval-verdict.schema.json +93 -0
- package/.agents/schemas/agentrc.schema.json +1583 -0
- package/.agents/schemas/audit-results.schema.json +69 -0
- package/.agents/schemas/audit-rules.json +134 -0
- package/.agents/schemas/audit-rules.schema.json +69 -0
- package/.agents/schemas/baselines/baseline-envelope.schema.json +44 -0
- package/.agents/schemas/baselines/bundle-size.schema.json +47 -0
- package/.agents/schemas/baselines/coverage.schema.json +50 -0
- package/.agents/schemas/baselines/crap.schema.json +52 -0
- package/.agents/schemas/baselines/duplication.schema.json +62 -0
- package/.agents/schemas/baselines/lighthouse.schema.json +59 -0
- package/.agents/schemas/baselines/lint.schema.json +47 -0
- package/.agents/schemas/baselines/maintainability.schema.json +71 -0
- package/.agents/schemas/baselines/mutation.schema.json +52 -0
- package/.agents/schemas/crap-baseline.schema.json +57 -0
- package/.agents/schemas/crap-report.schema.json +102 -0
- package/.agents/schemas/dispatch-manifest.json +232 -0
- package/.agents/schemas/epic-perf-report.schema.json +89 -0
- package/.agents/schemas/epic-spec.schema.json +183 -0
- package/.agents/schemas/friction-event.schema.json +56 -0
- package/.agents/schemas/lifecycle/README.md +18 -0
- package/.agents/schemas/lifecycle/acceptance.reconcile.failed.schema.json +13 -0
- package/.agents/schemas/lifecycle/acceptance.reconcile.ok.schema.json +13 -0
- package/.agents/schemas/lifecycle/acceptance.reconcile.skipped.schema.json +13 -0
- package/.agents/schemas/lifecycle/acceptance.reconcile.start.schema.json +12 -0
- package/.agents/schemas/lifecycle/acceptance.reconcile.waived.schema.json +13 -0
- package/.agents/schemas/lifecycle/checkpoint.written.schema.json +13 -0
- package/.agents/schemas/lifecycle/close-validate.end.schema.json +18 -0
- package/.agents/schemas/lifecycle/close-validate.start.schema.json +13 -0
- package/.agents/schemas/lifecycle/code-review.end.schema.json +30 -0
- package/.agents/schemas/lifecycle/code-review.start.schema.json +12 -0
- package/.agents/schemas/lifecycle/epic.automerge.end.schema.json +14 -0
- package/.agents/schemas/lifecycle/epic.automerge.start.schema.json +13 -0
- package/.agents/schemas/lifecycle/epic.blocked.schema.json +13 -0
- package/.agents/schemas/lifecycle/epic.cleanup.end.schema.json +12 -0
- package/.agents/schemas/lifecycle/epic.cleanup.start.schema.json +12 -0
- package/.agents/schemas/lifecycle/epic.close.end.schema.json +12 -0
- package/.agents/schemas/lifecycle/epic.complete.schema.json +13 -0
- package/.agents/schemas/lifecycle/epic.finalize.end.schema.json +13 -0
- package/.agents/schemas/lifecycle/epic.finalize.start.schema.json +12 -0
- package/.agents/schemas/lifecycle/epic.merge.armed.schema.json +13 -0
- package/.agents/schemas/lifecycle/epic.merge.blocked.schema.json +14 -0
- package/.agents/schemas/lifecycle/epic.merge.confirmed.schema.json +17 -0
- package/.agents/schemas/lifecycle/epic.merge.ready.schema.json +15 -0
- package/.agents/schemas/lifecycle/epic.plan.end.schema.json +18 -0
- package/.agents/schemas/lifecycle/epic.plan.start.schema.json +12 -0
- package/.agents/schemas/lifecycle/epic.snapshot.end.schema.json +16 -0
- package/.agents/schemas/lifecycle/epic.snapshot.start.schema.json +12 -0
- package/.agents/schemas/lifecycle/epic.watch.end.schema.json +28 -0
- package/.agents/schemas/lifecycle/epic.watch.start.schema.json +16 -0
- package/.agents/schemas/lifecycle/intervention.recorded.schema.json +15 -0
- package/.agents/schemas/lifecycle/ledger-record.schema.json +59 -0
- package/.agents/schemas/lifecycle/notification.emitted.schema.json +18 -0
- package/.agents/schemas/lifecycle/pr.created.schema.json +14 -0
- package/.agents/schemas/lifecycle/retro.end.schema.json +16 -0
- package/.agents/schemas/lifecycle/retro.start.schema.json +12 -0
- package/.agents/schemas/lifecycle/story.blocked.schema.json +13 -0
- package/.agents/schemas/lifecycle/story.dispatch.end.schema.json +17 -0
- package/.agents/schemas/lifecycle/story.dispatch.start.schema.json +15 -0
- package/.agents/schemas/lifecycle/story.heartbeat.schema.json +20 -0
- package/.agents/schemas/lifecycle/story.merged.schema.json +13 -0
- package/.agents/schemas/mi-report.schema.json +58 -0
- package/.agents/schemas/model-attribution.schema.json +49 -0
- package/.agents/schemas/qa-finding.schema.json +133 -0
- package/.agents/schemas/qa-ledger.schema.json +89 -0
- package/.agents/schemas/risk-verdict.schema.json +53 -0
- package/.agents/schemas/signal-event.schema.json +58 -0
- package/.agents/schemas/skill.schema.json +31 -0
- package/.agents/schemas/skills-index.schema.json +81 -0
- package/.agents/schemas/story-perf-summary.schema.json +73 -0
- package/.agents/schemas/validation-evidence.schema.json +78 -0
- package/.agents/scripts/README.md +93 -0
- package/.agents/scripts/acceptance-eval.js +284 -0
- package/.agents/scripts/acceptance-spec-reconciler.js +556 -0
- package/.agents/scripts/agents-bootstrap-github.js +634 -0
- package/.agents/scripts/analyze-execution.js +369 -0
- package/.agents/scripts/assert-branch.js +83 -0
- package/.agents/scripts/audit-labels-bootstrap.js +253 -0
- package/.agents/scripts/audit-to-stories.js +257 -0
- package/.agents/scripts/bootstrap.js +1378 -0
- package/.agents/scripts/check-baselines.js +81 -0
- package/.agents/scripts/check-dead-exports.js +311 -0
- package/.agents/scripts/check-doc-links.js +401 -0
- package/.agents/scripts/check-gherkin-placeholders.js +663 -0
- package/.agents/scripts/check-lifecycle-doc-drift.js +402 -0
- package/.agents/scripts/check-lifecycle-lint.js +379 -0
- package/.agents/scripts/check-prepush-recovery.js +90 -0
- package/.agents/scripts/check-windows-git-perf.js +138 -0
- package/.agents/scripts/cleanup-repo-test-temp.js +67 -0
- package/.agents/scripts/coverage-capture.js +112 -0
- package/.agents/scripts/detect-merges.js +111 -0
- package/.agents/scripts/diagnose-friction.js +257 -0
- package/.agents/scripts/diagnose.js +240 -0
- package/.agents/scripts/dispatcher.js +295 -0
- package/.agents/scripts/drain-pending-cleanup.js +147 -0
- package/.agents/scripts/epic-audit-prepare.js +419 -0
- package/.agents/scripts/epic-audit-recheck.js +241 -0
- package/.agents/scripts/epic-deliver-note-intervention.js +192 -0
- package/.agents/scripts/epic-deliver-preflight.js +407 -0
- package/.agents/scripts/epic-deliver-prepare.js +383 -0
- package/.agents/scripts/epic-execute-record-wave.js +463 -0
- package/.agents/scripts/epic-plan-clarity.js +201 -0
- package/.agents/scripts/epic-plan-decompose.js +79 -0
- package/.agents/scripts/epic-plan-healthcheck.js +363 -0
- package/.agents/scripts/epic-plan-spec-validate.js +111 -0
- package/.agents/scripts/epic-plan-spec.js +198 -0
- package/.agents/scripts/epic-reconcile.js +637 -0
- package/.agents/scripts/evidence-gate.js +235 -0
- package/.agents/scripts/generate-config-docs.js +516 -0
- package/.agents/scripts/generate-lifecycle-docs.js +224 -0
- package/.agents/scripts/generate-skills-index.js +252 -0
- package/.agents/scripts/generate-workflows-doc.js +168 -0
- package/.agents/scripts/git-cleanup.js +124 -0
- package/.agents/scripts/git-pr-quality-gate.js +203 -0
- package/.agents/scripts/git-rebase-and-resolve.js +234 -0
- package/.agents/scripts/hierarchy-gate.js +176 -0
- package/.agents/scripts/hydrate-context.js +179 -0
- package/.agents/scripts/install-matrix-assert.js +282 -0
- package/.agents/scripts/lib/Graph.js +326 -0
- package/.agents/scripts/lib/ITicketingProvider.js +349 -0
- package/.agents/scripts/lib/Logger.js +194 -0
- package/.agents/scripts/lib/audit-suite/cli.js +64 -0
- package/.agents/scripts/lib/audit-suite/findings.js +164 -0
- package/.agents/scripts/lib/audit-suite/frontmatter-lint.js +32 -0
- package/.agents/scripts/lib/audit-suite/frontmatter.js +110 -0
- package/.agents/scripts/lib/audit-suite/index.js +22 -0
- package/.agents/scripts/lib/audit-suite/runner.js +233 -0
- package/.agents/scripts/lib/audit-suite/selector.js +235 -0
- package/.agents/scripts/lib/audit-suite/substitutions.js +124 -0
- package/.agents/scripts/lib/audit-suite/workflow-loader.js +49 -0
- package/.agents/scripts/lib/audit-to-stories/build-story-body.js +130 -0
- package/.agents/scripts/lib/audit-to-stories/dedupe-against-github.js +114 -0
- package/.agents/scripts/lib/audit-to-stories/finding-adapter.js +93 -0
- package/.agents/scripts/lib/audit-to-stories/group-findings.js +265 -0
- package/.agents/scripts/lib/audit-to-stories/parse-audit-md.js +246 -0
- package/.agents/scripts/lib/audit-to-stories/seed-epic-from-findings.js +160 -0
- package/.agents/scripts/lib/auto-refresh-baselines.js +308 -0
- package/.agents/scripts/lib/baseline-loader.js +0 -0
- package/.agents/scripts/lib/baseline-schema-registry.js +69 -0
- package/.agents/scripts/lib/baseline-snapshot.js +716 -0
- package/.agents/scripts/lib/baselines/component-matcher.js +21 -0
- package/.agents/scripts/lib/baselines/components.js +126 -0
- package/.agents/scripts/lib/baselines/diff-scope-cli.js +203 -0
- package/.agents/scripts/lib/baselines/duplication-scanner.js +220 -0
- package/.agents/scripts/lib/baselines/env-overrides.js +129 -0
- package/.agents/scripts/lib/baselines/envelope.js +368 -0
- package/.agents/scripts/lib/baselines/exit-codes.js +89 -0
- package/.agents/scripts/lib/baselines/git-base.js +0 -0
- package/.agents/scripts/lib/baselines/kernel.js +111 -0
- package/.agents/scripts/lib/baselines/kinds/_shared-metric.js +220 -0
- package/.agents/scripts/lib/baselines/kinds/bundle-size.js +157 -0
- package/.agents/scripts/lib/baselines/kinds/coverage.js +194 -0
- package/.agents/scripts/lib/baselines/kinds/crap.js +555 -0
- package/.agents/scripts/lib/baselines/kinds/duplication.js +197 -0
- package/.agents/scripts/lib/baselines/kinds/lighthouse.js +185 -0
- package/.agents/scripts/lib/baselines/kinds/lint.js +172 -0
- package/.agents/scripts/lib/baselines/kinds/maintainability.js +340 -0
- package/.agents/scripts/lib/baselines/kinds/mutation.js +153 -0
- package/.agents/scripts/lib/baselines/path-canon.js +279 -0
- package/.agents/scripts/lib/baselines/preview-gates.js +298 -0
- package/.agents/scripts/lib/baselines/reader.js +321 -0
- package/.agents/scripts/lib/baselines/refresh-service.js +733 -0
- package/.agents/scripts/lib/baselines/scope.js +291 -0
- package/.agents/scripts/lib/baselines/writer.js +312 -0
- package/.agents/scripts/lib/bdd-runner-detect.js +417 -0
- package/.agents/scripts/lib/bdd-scenario-scanner.js +310 -0
- package/.agents/scripts/lib/bootstrap/baselines-layout-migration.js +202 -0
- package/.agents/scripts/lib/bootstrap/branch-protection.js +222 -0
- package/.agents/scripts/lib/bootstrap/ci-workflow-template.js +171 -0
- package/.agents/scripts/lib/bootstrap/commit-push.js +146 -0
- package/.agents/scripts/lib/bootstrap/gh-list.js +153 -0
- package/.agents/scripts/lib/bootstrap/gh-preflight.js +306 -0
- package/.agents/scripts/lib/bootstrap/hitl-confirm.js +89 -0
- package/.agents/scripts/lib/bootstrap/install-ledger.js +174 -0
- package/.agents/scripts/lib/bootstrap/manifest.js +272 -0
- package/.agents/scripts/lib/bootstrap/merge-methods.js +108 -0
- package/.agents/scripts/lib/bootstrap/preflight.js +195 -0
- package/.agents/scripts/lib/bootstrap/project-bootstrap.js +801 -0
- package/.agents/scripts/lib/bootstrap/prompt.js +480 -0
- package/.agents/scripts/lib/bootstrap/quality-bootstrap.js +370 -0
- package/.agents/scripts/lib/bootstrap/summary.js +75 -0
- package/.agents/scripts/lib/bootstrap/workflow-audit.js +256 -0
- package/.agents/scripts/lib/branch-name-guard.js +98 -0
- package/.agents/scripts/lib/c8-cli-path.js +21 -0
- package/.agents/scripts/lib/changed-files.js +184 -0
- package/.agents/scripts/lib/checks/baseline-drift-main-checkout.js +104 -0
- package/.agents/scripts/lib/checks/core-bare-clean.js +48 -0
- package/.agents/scripts/lib/checks/epic-merge-lock-stale.js +54 -0
- package/.agents/scripts/lib/checks/index.js +288 -0
- package/.agents/scripts/lib/checks/push-hook-parity.js +106 -0
- package/.agents/scripts/lib/checks/stale-origin-epic.js +49 -0
- package/.agents/scripts/lib/checks/state.js +558 -0
- package/.agents/scripts/lib/checks/story-init-not-backgrounded.js +186 -0
- package/.agents/scripts/lib/checks/subagent-agent-tool-required.js +182 -0
- package/.agents/scripts/lib/checks/windows-coverage-noise-floor.js +92 -0
- package/.agents/scripts/lib/checks/worktree-bootstrap-env.js +81 -0
- package/.agents/scripts/lib/checks/worktree-residue-biome.js +55 -0
- package/.agents/scripts/lib/cli/parse-numeric.js +60 -0
- package/.agents/scripts/lib/cli/standard-args.js +351 -0
- package/.agents/scripts/lib/cli-args.js +286 -0
- package/.agents/scripts/lib/cli-utils.js +69 -0
- package/.agents/scripts/lib/close-validation/projections/head-sha.js +44 -0
- package/.agents/scripts/lib/close-validation/projections/inputs.js +86 -0
- package/.agents/scripts/lib/close-validation/projections/maintainability.js +286 -0
- package/.agents/scripts/lib/close-validation.js +897 -0
- package/.agents/scripts/lib/codebase-snapshot.js +513 -0
- package/.agents/scripts/lib/command-header.js +33 -0
- package/.agents/scripts/lib/config/acceptance-eval.js +95 -0
- package/.agents/scripts/lib/config/baselines.js +60 -0
- package/.agents/scripts/lib/config/ci.js +30 -0
- package/.agents/scripts/lib/config/commands.js +36 -0
- package/.agents/scripts/lib/config/defaults.js +119 -0
- package/.agents/scripts/lib/config/explain.js +348 -0
- package/.agents/scripts/lib/config/gates/bundle-size.schema.js +23 -0
- package/.agents/scripts/lib/config/gates/coverage.schema.js +18 -0
- package/.agents/scripts/lib/config/gates/crap.schema.js +33 -0
- package/.agents/scripts/lib/config/gates/duplication.schema.js +26 -0
- package/.agents/scripts/lib/config/gates/index.js +36 -0
- package/.agents/scripts/lib/config/gates/lighthouse.schema.js +23 -0
- package/.agents/scripts/lib/config/gates/lint.schema.js +9 -0
- package/.agents/scripts/lib/config/gates/maintainability.schema.js +20 -0
- package/.agents/scripts/lib/config/gates/mutation.schema.js +12 -0
- package/.agents/scripts/lib/config/gates/shared.js +117 -0
- package/.agents/scripts/lib/config/github.js +122 -0
- package/.agents/scripts/lib/config/lifecycle.js +40 -0
- package/.agents/scripts/lib/config/limits.js +211 -0
- package/.agents/scripts/lib/config/paths.js +73 -0
- package/.agents/scripts/lib/config/preflight.js +58 -0
- package/.agents/scripts/lib/config/quality.js +665 -0
- package/.agents/scripts/lib/config/retro.js +77 -0
- package/.agents/scripts/lib/config/runners.js +105 -0
- package/.agents/scripts/lib/config/runtime.js +167 -0
- package/.agents/scripts/lib/config/shared.js +46 -0
- package/.agents/scripts/lib/config/sync-agentrc.js +243 -0
- package/.agents/scripts/lib/config/temp-paths.js +373 -0
- package/.agents/scripts/lib/config/validate-orchestration.js +81 -0
- package/.agents/scripts/lib/config/worktree-isolation.js +80 -0
- package/.agents/scripts/lib/config-resolver.js +298 -0
- package/.agents/scripts/lib/config-schema-shared.js +32 -0
- package/.agents/scripts/lib/config-schema.js +20 -0
- package/.agents/scripts/lib/config-settings-schema-delivery.js +332 -0
- package/.agents/scripts/lib/config-settings-schema-quality.js +165 -0
- package/.agents/scripts/lib/config-settings-schema.js +420 -0
- package/.agents/scripts/lib/coverage-baseline.js +352 -0
- package/.agents/scripts/lib/coverage-capture.js +195 -0
- package/.agents/scripts/lib/coverage-utils.js +239 -0
- package/.agents/scripts/lib/cpu-pool.js +223 -0
- package/.agents/scripts/lib/crap-engine.js +119 -0
- package/.agents/scripts/lib/crap-utils.js +479 -0
- package/.agents/scripts/lib/degraded-mode.js +69 -0
- package/.agents/scripts/lib/dependency-parser.js +129 -0
- package/.agents/scripts/lib/duplicate-search.js +189 -0
- package/.agents/scripts/lib/dynamic-workflow/architecture-report-contract.js +70 -0
- package/.agents/scripts/lib/dynamic-workflow/audit-orchestrator.js +197 -0
- package/.agents/scripts/lib/dynamic-workflow/capability.js +396 -0
- package/.agents/scripts/lib/dynamic-workflow/clean-code-report-contract.js +80 -0
- package/.agents/scripts/lib/dynamic-workflow/performance-report-contract.js +72 -0
- package/.agents/scripts/lib/dynamic-workflow/quality-report-contract.js +90 -0
- package/.agents/scripts/lib/dynamic-workflow/report-contract-core.js +43 -0
- package/.agents/scripts/lib/dynamic-workflow/security-report-contract.js +83 -0
- package/.agents/scripts/lib/env-loader.js +52 -0
- package/.agents/scripts/lib/epic-merge-lock.js +239 -0
- package/.agents/scripts/lib/epic-plan-clarity.js +142 -0
- package/.agents/scripts/lib/epic-plan-ideation.js +228 -0
- package/.agents/scripts/lib/error-redactor.js +125 -0
- package/.agents/scripts/lib/errors/index.js +67 -0
- package/.agents/scripts/lib/feedback-loop/audit-results-graduator.js +230 -0
- package/.agents/scripts/lib/feedback-loop/code-review-graduator.js +207 -0
- package/.agents/scripts/lib/feedback-loop/graduator-core.js +421 -0
- package/.agents/scripts/lib/feedback-loop/memory-freshness.js +480 -0
- package/.agents/scripts/lib/feedback-loop/prior-feedback-fetcher.js +229 -0
- package/.agents/scripts/lib/findings/classify-finding.js +195 -0
- package/.agents/scripts/lib/findings/promote-finding.js +353 -0
- package/.agents/scripts/lib/findings/route-finding.js +283 -0
- package/.agents/scripts/lib/findings/semantic-issue-search.js +179 -0
- package/.agents/scripts/lib/findings/severity.js +102 -0
- package/.agents/scripts/lib/gates/baseline-store.js +106 -0
- package/.agents/scripts/lib/gates/friction.js +43 -0
- package/.agents/scripts/lib/gh-exec.js +553 -0
- package/.agents/scripts/lib/git/cached-fetch.js +0 -0
- package/.agents/scripts/lib/git/sync-from-base.js +162 -0
- package/.agents/scripts/lib/git-branch-cleanup.js +213 -0
- package/.agents/scripts/lib/git-branch-lifecycle.js +353 -0
- package/.agents/scripts/lib/git-merge-orchestrator.js +261 -0
- package/.agents/scripts/lib/git-utils.js +363 -0
- package/.agents/scripts/lib/github-url.js +29 -0
- package/.agents/scripts/lib/install-cmd-parser.js +51 -0
- package/.agents/scripts/lib/issue-link-parser.js +74 -0
- package/.agents/scripts/lib/json-utils.js +60 -0
- package/.agents/scripts/lib/label-constants.js +169 -0
- package/.agents/scripts/lib/label-taxonomy.js +200 -0
- package/.agents/scripts/lib/maintainability-engine.js +164 -0
- package/.agents/scripts/lib/maintainability-utils.js +343 -0
- package/.agents/scripts/lib/mandrel-catalog.js +170 -0
- package/.agents/scripts/lib/mutation/baseline-snapshot.js +238 -0
- package/.agents/scripts/lib/mutation/config-detector.js +119 -0
- package/.agents/scripts/lib/mutation/stryker-runner.js +306 -0
- package/.agents/scripts/lib/mutation/survivor-report.js +160 -0
- package/.agents/scripts/lib/notifications/notifier.js +75 -0
- package/.agents/scripts/lib/observability/active-story-env.js +182 -0
- package/.agents/scripts/lib/observability/baseline-refresh-rate.js +221 -0
- package/.agents/scripts/lib/observability/perf-aggregator.js +887 -0
- package/.agents/scripts/lib/observability/perf-report-readers.js +319 -0
- package/.agents/scripts/lib/observability/perf-report-render.js +182 -0
- package/.agents/scripts/lib/observability/signals-writer.js +296 -0
- package/.agents/scripts/lib/observability/source-classifier.js +103 -0
- package/.agents/scripts/lib/observability/tool-trace-hook.js +417 -0
- package/.agents/scripts/lib/onboard/detect-stack.js +300 -0
- package/.agents/scripts/lib/onboard/scaffold-docs.js +128 -0
- package/.agents/scripts/lib/orchestration/acceptance-eval-decision.js +173 -0
- package/.agents/scripts/lib/orchestration/cascade-grouping.js +275 -0
- package/.agents/scripts/lib/orchestration/check-baselines/phases/compare.js +131 -0
- package/.agents/scripts/lib/orchestration/check-baselines/phases/evaluate.js +80 -0
- package/.agents/scripts/lib/orchestration/check-baselines/phases/floors.js +132 -0
- package/.agents/scripts/lib/orchestration/check-baselines/phases/friction.js +142 -0
- package/.agents/scripts/lib/orchestration/check-baselines/phases/parse-args.js +149 -0
- package/.agents/scripts/lib/orchestration/check-baselines/phases/pipeline.js +158 -0
- package/.agents/scripts/lib/orchestration/check-baselines/phases/report.js +56 -0
- package/.agents/scripts/lib/orchestration/code-review.js +652 -0
- package/.agents/scripts/lib/orchestration/column-sync.js +286 -0
- package/.agents/scripts/lib/orchestration/context-envelope.js +280 -0
- package/.agents/scripts/lib/orchestration/context-hydration-engine.js +581 -0
- package/.agents/scripts/lib/orchestration/dependency-analyzer.js +88 -0
- package/.agents/scripts/lib/orchestration/detectors-phase.js +188 -0
- package/.agents/scripts/lib/orchestration/dispatch-engine.js +144 -0
- package/.agents/scripts/lib/orchestration/dispatch-pipeline.js +206 -0
- package/.agents/scripts/lib/orchestration/doc-reader.js +94 -0
- package/.agents/scripts/lib/orchestration/epic-cleanup.js +473 -0
- package/.agents/scripts/lib/orchestration/epic-deliver-lease-guard.js +310 -0
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/cli.js +167 -0
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/context.js +151 -0
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/creation.js +74 -0
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/dag.js +78 -0
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/diagnostics.js +72 -0
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/persist-helpers.js +155 -0
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/persist.js +321 -0
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/planning-artifacts.js +75 -0
- package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/reconcile-spawn.js +86 -0
- package/.agents/scripts/lib/orchestration/epic-plan-lease-guard.js +235 -0
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/authoring-context.js +197 -0
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/cli-args.js +48 -0
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/drain.js +94 -0
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/plan-epic.js +414 -0
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/prompts.js +55 -0
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/risk-verdict.js +105 -0
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/run-spec-phase.js +235 -0
- package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/spec-freshness.js +120 -0
- package/.agents/scripts/lib/orchestration/epic-plan-state-store.js +118 -0
- package/.agents/scripts/lib/orchestration/epic-run-state-store.js +295 -0
- package/.agents/scripts/lib/orchestration/epic-runner/concurrency-gate.js +186 -0
- package/.agents/scripts/lib/orchestration/epic-runner/deliver-phases.js +50 -0
- package/.agents/scripts/lib/orchestration/epic-runner/phases/build-wave-dag.js +146 -0
- package/.agents/scripts/lib/orchestration/epic-runner/phases/snapshot.js +110 -0
- package/.agents/scripts/lib/orchestration/epic-runner/progress-reporter/composition.js +392 -0
- package/.agents/scripts/lib/orchestration/epic-runner/progress-reporter/signals.js +217 -0
- package/.agents/scripts/lib/orchestration/epic-runner/progress-reporter/transport.js +235 -0
- package/.agents/scripts/lib/orchestration/epic-runner/progress-reporter.js +69 -0
- package/.agents/scripts/lib/orchestration/epic-runner/progress-signals/_bullet-format.js +32 -0
- package/.agents/scripts/lib/orchestration/epic-runner/progress-signals/crap-drift.js +291 -0
- package/.agents/scripts/lib/orchestration/epic-runner/progress-signals/maintainability-drift.js +175 -0
- package/.agents/scripts/lib/orchestration/epic-runner/progress-signals/stalled-worktree.js +37 -0
- package/.agents/scripts/lib/orchestration/epic-runner/story-launcher.js +127 -0
- package/.agents/scripts/lib/orchestration/epic-runner/story-run-progress-writer.js +400 -0
- package/.agents/scripts/lib/orchestration/epic-runner/sub-agent-return.js +285 -0
- package/.agents/scripts/lib/orchestration/epic-runner/wave-scheduler.js +66 -0
- package/.agents/scripts/lib/orchestration/epic-spec-reconciler-apply.js +797 -0
- package/.agents/scripts/lib/orchestration/epic-spec-reconciler-diff.js +619 -0
- package/.agents/scripts/lib/orchestration/epic-spec-reconciler-discriminator.js +335 -0
- package/.agents/scripts/lib/orchestration/epic-spec-reconciler-format.js +230 -0
- package/.agents/scripts/lib/orchestration/epic-spec-reconciler-ops.js +363 -0
- package/.agents/scripts/lib/orchestration/error-journal.js +139 -0
- package/.agents/scripts/lib/orchestration/file-assumption-enum.js +31 -0
- package/.agents/scripts/lib/orchestration/file-assumptions.js +506 -0
- package/.agents/scripts/lib/orchestration/finalize/close-planning-tickets.js +116 -0
- package/.agents/scripts/lib/orchestration/finalize/open-or-locate-pr.js +241 -0
- package/.agents/scripts/lib/orchestration/finalize/post-handoff-comment.js +489 -0
- package/.agents/scripts/lib/orchestration/finalize/sanitize-skip-ci.js +88 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/branches-reap.js +219 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/branches.js +309 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/cli.js +99 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/fast-forward.js +123 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/filters.js +57 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/git-probes-ff.js +114 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/git-probes.js +426 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/parse-args.js +84 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/phase-drivers.js +365 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/prompts.js +72 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/prune.js +69 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/render.js +214 -0
- package/.agents/scripts/lib/orchestration/git-cleanup/phases/stashes.js +137 -0
- package/.agents/scripts/lib/orchestration/label-transitions.js +43 -0
- package/.agents/scripts/lib/orchestration/lifecycle/bus.js +309 -0
- package/.agents/scripts/lib/orchestration/lifecycle/emit-story-dispatch-end.js +147 -0
- package/.agents/scripts/lib/orchestration/lifecycle/emit-story-heartbeat.js +155 -0
- package/.agents/scripts/lib/orchestration/lifecycle/ledger-writer.js +226 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/README.md +69 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/acceptance-reconciler.js +378 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/automerge-armer.js +248 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/automerge-predicate.js +527 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/branch-cleaner.js +259 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/checkpoint-pointer-writer.js +278 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/cleaner.js +355 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/finalizer.js +647 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/index.js +331 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/intervention-recorder.js +140 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/merge-watcher.js +421 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/notify-dispatcher.js +168 -0
- package/.agents/scripts/lib/orchestration/lifecycle/listeners/watcher.js +668 -0
- package/.agents/scripts/lib/orchestration/lifecycle/trace-logger.js +322 -0
- package/.agents/scripts/lib/orchestration/lint-baseline-service.js +114 -0
- package/.agents/scripts/lib/orchestration/manifest-builder.js +216 -0
- package/.agents/scripts/lib/orchestration/model-attribution.js +390 -0
- package/.agents/scripts/lib/orchestration/parked-follow-ons.js +147 -0
- package/.agents/scripts/lib/orchestration/phase-runner.js +87 -0
- package/.agents/scripts/lib/orchestration/plan-review-routing.js +63 -0
- package/.agents/scripts/lib/orchestration/plan-runner/plan-router.js +86 -0
- package/.agents/scripts/lib/orchestration/plan-runner/worktree-sweep.js +212 -0
- package/.agents/scripts/lib/orchestration/planning-context-budget.js +213 -0
- package/.agents/scripts/lib/orchestration/planning-risk.js +155 -0
- package/.agents/scripts/lib/orchestration/planning-state-manager.js +318 -0
- package/.agents/scripts/lib/orchestration/post-merge/phases/branch-cleanup.js +56 -0
- package/.agents/scripts/lib/orchestration/post-merge/phases/dashboard-refresh.js +33 -0
- package/.agents/scripts/lib/orchestration/post-merge/phases/notification.js +78 -0
- package/.agents/scripts/lib/orchestration/post-merge/phases/temp-cleanup.js +68 -0
- package/.agents/scripts/lib/orchestration/post-merge/phases/ticket-closure.js +118 -0
- package/.agents/scripts/lib/orchestration/post-merge/phases/worktree-reap.js +396 -0
- package/.agents/scripts/lib/orchestration/post-merge-pipeline.js +205 -0
- package/.agents/scripts/lib/orchestration/pr-base-guard.js +47 -0
- package/.agents/scripts/lib/orchestration/preflight-cache.js +164 -0
- package/.agents/scripts/lib/orchestration/reassert-status-column.js +202 -0
- package/.agents/scripts/lib/orchestration/reconciler.js +137 -0
- package/.agents/scripts/lib/orchestration/recurring-failure-detector.js +152 -0
- package/.agents/scripts/lib/orchestration/recut.js +56 -0
- package/.agents/scripts/lib/orchestration/resolves-token.js +127 -0
- package/.agents/scripts/lib/orchestration/retro/phases/checks.js +94 -0
- package/.agents/scripts/lib/orchestration/retro/phases/compose-body.js +448 -0
- package/.agents/scripts/lib/orchestration/retro/phases/gather-signals.js +335 -0
- package/.agents/scripts/lib/orchestration/retro/phases/post-and-mirror.js +133 -0
- package/.agents/scripts/lib/orchestration/retro-heuristics.js +57 -0
- package/.agents/scripts/lib/orchestration/retro-perf-heuristics.js +275 -0
- package/.agents/scripts/lib/orchestration/retro-proposals.js +395 -0
- package/.agents/scripts/lib/orchestration/retro-runner.js +171 -0
- package/.agents/scripts/lib/orchestration/review-depth.js +93 -0
- package/.agents/scripts/lib/orchestration/review-providers/codex.js +363 -0
- package/.agents/scripts/lib/orchestration/review-providers/findings-renderer.js +205 -0
- package/.agents/scripts/lib/orchestration/review-providers/native.js +805 -0
- package/.agents/scripts/lib/orchestration/review-providers/review-depth.js +73 -0
- package/.agents/scripts/lib/orchestration/review-providers/review-provider-factory.js +396 -0
- package/.agents/scripts/lib/orchestration/review-providers/security-review.js +373 -0
- package/.agents/scripts/lib/orchestration/review-providers/types.js +89 -0
- package/.agents/scripts/lib/orchestration/review-providers/ultrareview.js +107 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/auto-merge.js +159 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/base-sync.js +194 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/close-validation.js +81 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/code-review.js +190 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/options.js +70 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/pull-request.js +106 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/push.js +42 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/worktree-reap.js +73 -0
- package/.agents/scripts/lib/orchestration/single-story-close/phases/wrong-tree-guard.js +225 -0
- package/.agents/scripts/lib/orchestration/single-story-close/runner.js +315 -0
- package/.agents/scripts/lib/orchestration/single-story-lease-guard.js +149 -0
- package/.agents/scripts/lib/orchestration/skill-capsule-loader.js +110 -0
- package/.agents/scripts/lib/orchestration/spec-freshness.js +320 -0
- package/.agents/scripts/lib/orchestration/spec-renderer.js +456 -0
- package/.agents/scripts/lib/orchestration/spec-section-validator.js +80 -0
- package/.agents/scripts/lib/orchestration/story-close/auto-refresh-runner.js +797 -0
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/gate-failure.js +163 -0
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/pre-merge-attribution.js +152 -0
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/refresh-commit.js +387 -0
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/regression-projection.js +266 -0
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/scope-discovery.js +48 -0
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution-wiring.js +67 -0
- package/.agents/scripts/lib/orchestration/story-close/baseline-attribution.js +161 -0
- package/.agents/scripts/lib/orchestration/story-close/baseline-friction-body.js +117 -0
- package/.agents/scripts/lib/orchestration/story-close/cd-out-guard.js +86 -0
- package/.agents/scripts/lib/orchestration/story-close/cleanup-reconciler.js +147 -0
- package/.agents/scripts/lib/orchestration/story-close/close-inputs.js +142 -0
- package/.agents/scripts/lib/orchestration/story-close/comment-bodies.js +62 -0
- package/.agents/scripts/lib/orchestration/story-close/format-autofix-scoped.js +221 -0
- package/.agents/scripts/lib/orchestration/story-close/format-autofix-shared.js +123 -0
- package/.agents/scripts/lib/orchestration/story-close/format-autofix.js +216 -0
- package/.agents/scripts/lib/orchestration/story-close/merge-runner.js +636 -0
- package/.agents/scripts/lib/orchestration/story-close/merge-subject.js +198 -0
- package/.agents/scripts/lib/orchestration/story-close/phases/branch-restore.js +105 -0
- package/.agents/scripts/lib/orchestration/story-close/phases/close.js +222 -0
- package/.agents/scripts/lib/orchestration/story-close/phases/code-review.js +220 -0
- package/.agents/scripts/lib/orchestration/story-close/phases/gates.js +291 -0
- package/.agents/scripts/lib/orchestration/story-close/phases/locked-pipeline.js +234 -0
- package/.agents/scripts/lib/orchestration/story-close/phases/preflight.js +110 -0
- package/.agents/scripts/lib/orchestration/story-close/phases/refresh.js +86 -0
- package/.agents/scripts/lib/orchestration/story-close/phases/timeout-blocked-emitter.js +112 -0
- package/.agents/scripts/lib/orchestration/story-close/phases/timeout-blocked.js +157 -0
- package/.agents/scripts/lib/orchestration/story-close/post-merge-close.js +434 -0
- package/.agents/scripts/lib/orchestration/story-close/pre-merge-validation.js +290 -0
- package/.agents/scripts/lib/orchestration/story-close-recovery.js +643 -0
- package/.agents/scripts/lib/orchestration/structured-comment-parser.js +67 -0
- package/.agents/scripts/lib/orchestration/task-body-validator.js +391 -0
- package/.agents/scripts/lib/orchestration/ticket-lease.js +358 -0
- package/.agents/scripts/lib/orchestration/ticket-validator-conflicts.js +783 -0
- package/.agents/scripts/lib/orchestration/ticket-validator-sizing.js +367 -0
- package/.agents/scripts/lib/orchestration/ticket-validator.js +691 -0
- package/.agents/scripts/lib/orchestration/ticketing/bulk.js +723 -0
- package/.agents/scripts/lib/orchestration/ticketing/reads.js +474 -0
- package/.agents/scripts/lib/orchestration/ticketing/state.js +559 -0
- package/.agents/scripts/lib/orchestration/ticketing.js +55 -0
- package/.agents/scripts/lib/orchestration/wave-marker.js +28 -0
- package/.agents/scripts/lib/orchestration/wave-record-io.js +277 -0
- package/.agents/scripts/lib/orchestration/wave-record-notifications.js +189 -0
- package/.agents/scripts/lib/orchestration/wave-record-projection.js +423 -0
- package/.agents/scripts/lib/path-security.js +25 -0
- package/.agents/scripts/lib/plan-phase-cleanup.js +125 -0
- package/.agents/scripts/lib/preflight-runner.js +196 -0
- package/.agents/scripts/lib/presentation/dispatch-manifest-render.js +95 -0
- package/.agents/scripts/lib/presentation/manifest-builder.js +245 -0
- package/.agents/scripts/lib/presentation/manifest-formatter.js +243 -0
- package/.agents/scripts/lib/presentation/manifest-helpers.js +213 -0
- package/.agents/scripts/lib/presentation/manifest-persistence.js +262 -0
- package/.agents/scripts/lib/presentation/manifest-procedures.js +55 -0
- package/.agents/scripts/lib/presentation/manifest-render-waves.js +252 -0
- package/.agents/scripts/lib/presentation/manifest-renderer.js +188 -0
- package/.agents/scripts/lib/presentation/manifest-story-views.js +119 -0
- package/.agents/scripts/lib/provider-factory.js +80 -0
- package/.agents/scripts/lib/push-epic-retry.js +209 -0
- package/.agents/scripts/lib/qa/console-allowlist.js +151 -0
- package/.agents/scripts/lib/qa/coverage-report.js +181 -0
- package/.agents/scripts/lib/qa/coverage-verdict.js +296 -0
- package/.agents/scripts/lib/qa/propose-missing-test.js +95 -0
- package/.agents/scripts/lib/qa/qa-context-hydrator.js +296 -0
- package/.agents/scripts/lib/qa/qa-session.js +197 -0
- package/.agents/scripts/lib/qa/redact-evidence.js +245 -0
- package/.agents/scripts/lib/qa/resolve-qa-contract.js +190 -0
- package/.agents/scripts/lib/qa/resolve-selection.js +373 -0
- package/.agents/scripts/lib/runtime-deps/ensure-installed.js +100 -0
- package/.agents/scripts/lib/runtime-deps/manifest.js +96 -0
- package/.agents/scripts/lib/runtime-deps/preflight.js +78 -0
- package/.agents/scripts/lib/runtime-deps/scan-imports.js +202 -0
- package/.agents/scripts/lib/signals/detectors/common.js +36 -0
- package/.agents/scripts/lib/signals/detectors/hotspot.js +298 -0
- package/.agents/scripts/lib/signals/detectors/index.js +14 -0
- package/.agents/scripts/lib/signals/detectors/retry.js +289 -0
- package/.agents/scripts/lib/signals/detectors/rework.js +204 -0
- package/.agents/scripts/lib/signals/index.js +39 -0
- package/.agents/scripts/lib/signals/read.js +268 -0
- package/.agents/scripts/lib/signals/schema.js +225 -0
- package/.agents/scripts/lib/signals/span-tree.js +290 -0
- package/.agents/scripts/lib/signals/write.js +19 -0
- package/.agents/scripts/lib/single-story/confirm-merge.js +201 -0
- package/.agents/scripts/lib/single-story/story-merged-notify.js +126 -0
- package/.agents/scripts/lib/single-story-sweep/protection.js +274 -0
- package/.agents/scripts/lib/single-story-sweep/sweep-lock.js +169 -0
- package/.agents/scripts/lib/single-story-sweep.js +329 -0
- package/.agents/scripts/lib/skills/parse-skill.js +202 -0
- package/.agents/scripts/lib/skills/walk-skill-files.js +56 -0
- package/.agents/scripts/lib/spec/index.js +36 -0
- package/.agents/scripts/lib/spec/loader.js +425 -0
- package/.agents/scripts/lib/spec/state.js +217 -0
- package/.agents/scripts/lib/story-body/story-body.js +743 -0
- package/.agents/scripts/lib/story-init/blocker-validator.js +68 -0
- package/.agents/scripts/lib/story-init/branch-initializer.js +422 -0
- package/.agents/scripts/lib/story-init/context-resolver.js +92 -0
- package/.agents/scripts/lib/story-init/donor-precheck.js +207 -0
- package/.agents/scripts/lib/story-init/hierarchy-tracer.js +36 -0
- package/.agents/scripts/lib/story-init/state-transitioner.js +80 -0
- package/.agents/scripts/lib/story-init/task-graph-builder.js +114 -0
- package/.agents/scripts/lib/story-init/transition-summary.js +34 -0
- package/.agents/scripts/lib/story-lifecycle.js +186 -0
- package/.agents/scripts/lib/story-plan.js +246 -0
- package/.agents/scripts/lib/task-utils.js +26 -0
- package/.agents/scripts/lib/templates/decomposer-prompts.js +168 -0
- package/.agents/scripts/lib/test-env.js +30 -0
- package/.agents/scripts/lib/test-isolate/env-snapshot-loader.js +52 -0
- package/.agents/scripts/lib/test-isolate/list-files.js +90 -0
- package/.agents/scripts/lib/test-isolate/parse-tap.js +75 -0
- package/.agents/scripts/lib/test-isolate/runner.js +483 -0
- package/.agents/scripts/lib/test-profile/parse-tap.js +136 -0
- package/.agents/scripts/lib/test-profile/render-report.js +45 -0
- package/.agents/scripts/lib/test-reserved-epic-temp-ids.js +35 -0
- package/.agents/scripts/lib/test-tiers.js +94 -0
- package/.agents/scripts/lib/util/concurrent-map.js +59 -0
- package/.agents/scripts/lib/util/phase-timer-state.js +72 -0
- package/.agents/scripts/lib/util/phase-timer.js +163 -0
- package/.agents/scripts/lib/util/poll-loop.js +86 -0
- package/.agents/scripts/lib/util/with-timeout.js +32 -0
- package/.agents/scripts/lib/validation-evidence.js +323 -0
- package/.agents/scripts/lib/wave-runner/tick.js +665 -0
- package/.agents/scripts/lib/wave-runner/wave-checkpoint.js +91 -0
- package/.agents/scripts/lib/wave-runner/wave-runner-error.js +19 -0
- package/.agents/scripts/lib/workers/crap-worker.js +197 -0
- package/.agents/scripts/lib/workers/maintainability-report-worker.js +137 -0
- package/.agents/scripts/lib/workers/maintainability-worker.js +79 -0
- package/.agents/scripts/lib/workspace-provisioner.js +189 -0
- package/.agents/scripts/lib/worktree/bootstrapper.js +48 -0
- package/.agents/scripts/lib/worktree/inspector.js +140 -0
- package/.agents/scripts/lib/worktree/lifecycle/creation.js +118 -0
- package/.agents/scripts/lib/worktree/lifecycle/drift-detection.js +62 -0
- package/.agents/scripts/lib/worktree/lifecycle/force-drain.js +276 -0
- package/.agents/scripts/lib/worktree/lifecycle/gc.js +49 -0
- package/.agents/scripts/lib/worktree/lifecycle/merge-reachability.js +178 -0
- package/.agents/scripts/lib/worktree/lifecycle/pending-cleanup.js +264 -0
- package/.agents/scripts/lib/worktree/lifecycle/precheck.js +100 -0
- package/.agents/scripts/lib/worktree/lifecycle/reap.js +588 -0
- package/.agents/scripts/lib/worktree/lifecycle/registry-sync.js +124 -0
- package/.agents/scripts/lib/worktree/lifecycle/shared.js +26 -0
- package/.agents/scripts/lib/worktree/lifecycle-manager.js +40 -0
- package/.agents/scripts/lib/worktree/node-modules-strategy.js +349 -0
- package/.agents/scripts/lib/worktree-manager.js +243 -0
- package/.agents/scripts/lifecycle-diff.js +206 -0
- package/.agents/scripts/lifecycle-emit-story-dispatch.js +194 -0
- package/.agents/scripts/lifecycle-emit.js +479 -0
- package/.agents/scripts/lint-baseline.js +507 -0
- package/.agents/scripts/lint-label-vocabulary.js +237 -0
- package/.agents/scripts/loc-delta.js +205 -0
- package/.agents/scripts/notify.js +307 -0
- package/.agents/scripts/package.json +3 -0
- package/.agents/scripts/post-structured-comment.js +127 -0
- package/.agents/scripts/pr-watch-with-update.js +152 -0
- package/.agents/scripts/providers/github/auth.js +65 -0
- package/.agents/scripts/providers/github/board-add.js +63 -0
- package/.agents/scripts/providers/github/branch-protection.js +186 -0
- package/.agents/scripts/providers/github/cache.js +72 -0
- package/.agents/scripts/providers/github/comments.js +131 -0
- package/.agents/scripts/providers/github/compose.js +111 -0
- package/.agents/scripts/providers/github/errors.js +242 -0
- package/.agents/scripts/providers/github/issues.js +242 -0
- package/.agents/scripts/providers/github/labels.js +179 -0
- package/.agents/scripts/providers/github/mappers.js +126 -0
- package/.agents/scripts/providers/github/merge-methods.js +82 -0
- package/.agents/scripts/providers/github/project-board.js +47 -0
- package/.agents/scripts/providers/github/projects-v2-graphql.js +472 -0
- package/.agents/scripts/providers/github/prs.js +103 -0
- package/.agents/scripts/providers/github/request-helpers.js +110 -0
- package/.agents/scripts/providers/github/sub-issues.js +369 -0
- package/.agents/scripts/providers/github/tickets.js +381 -0
- package/.agents/scripts/providers/github/transient-retry.js +62 -0
- package/.agents/scripts/providers/github.js +157 -0
- package/.agents/scripts/quality-preview.js +327 -0
- package/.agents/scripts/quality-watch.js +223 -0
- package/.agents/scripts/render-manifest.js +143 -0
- package/.agents/scripts/resync-status-column.js +176 -0
- package/.agents/scripts/retro-run.js +167 -0
- package/.agents/scripts/run-audit-suite.js +97 -0
- package/.agents/scripts/run-coverage.js +103 -0
- package/.agents/scripts/run-lint.js +94 -0
- package/.agents/scripts/run-test-profile.js +126 -0
- package/.agents/scripts/run-tests.js +185 -0
- package/.agents/scripts/run-verify.js +56 -0
- package/.agents/scripts/select-audits.js +155 -0
- package/.agents/scripts/signals-view.js +294 -0
- package/.agents/scripts/single-story-close.js +83 -0
- package/.agents/scripts/single-story-confirm-merge.js +183 -0
- package/.agents/scripts/single-story-init.js +692 -0
- package/.agents/scripts/stories-wave-tick.js +415 -0
- package/.agents/scripts/story-close.js +246 -0
- package/.agents/scripts/story-deliver-prepare.js +267 -0
- package/.agents/scripts/story-init.js +516 -0
- package/.agents/scripts/story-phase.js +327 -0
- package/.agents/scripts/story-plan.js +284 -0
- package/.agents/scripts/sync-agentrc.js +71 -0
- package/.agents/scripts/sync-branch-from-base.js +138 -0
- package/.agents/scripts/sync-claude-commands.js +151 -0
- package/.agents/scripts/test-isolate.js +222 -0
- package/.agents/scripts/test-wrapper.js +108 -0
- package/.agents/scripts/update-coverage-baseline.js +129 -0
- package/.agents/scripts/update-crap-baseline.js +177 -0
- package/.agents/scripts/update-duplication-baseline.js +134 -0
- package/.agents/scripts/update-maintainability-baseline.js +183 -0
- package/.agents/scripts/update-mutation-baseline.js +189 -0
- package/.agents/scripts/update-ticket-state.js +107 -0
- package/.agents/scripts/validate-docs-freshness.js +259 -0
- package/.agents/scripts/validate-skills.js +278 -0
- package/.agents/scripts/wave-tick.js +335 -0
- package/.agents/skills/core/analyze-execution/SKILL.md +98 -0
- package/.agents/skills/core/api-and-interface-design/SKILL.md +327 -0
- package/.agents/skills/core/baseline-refresh/SKILL.md +181 -0
- package/.agents/skills/core/browser-testing-with-devtools/SKILL.md +352 -0
- package/.agents/skills/core/ci-cd-and-automation/SKILL.md +274 -0
- package/.agents/skills/core/ci-cd-and-automation/examples.md +211 -0
- package/.agents/skills/core/code-review-and-quality/SKILL.md +421 -0
- package/.agents/skills/core/code-simplification/SKILL.md +389 -0
- package/.agents/skills/core/context-engineering/SKILL.md +309 -0
- package/.agents/skills/core/context-engineering/examples.md +58 -0
- package/.agents/skills/core/debugging-and-error-recovery/SKILL.md +338 -0
- package/.agents/skills/core/deprecation-and-migration/SKILL.md +250 -0
- package/.agents/skills/core/diagnose-friction/SKILL.md +79 -0
- package/.agents/skills/core/documentation-and-adrs/SKILL.md +323 -0
- package/.agents/skills/core/epic-plan-consolidate/SKILL.md +145 -0
- package/.agents/skills/core/epic-plan-decompose-author/SKILL.md +425 -0
- package/.agents/skills/core/epic-plan-spec-author/SKILL.md +393 -0
- package/.agents/skills/core/frontend-ui-engineering/SKILL.md +357 -0
- package/.agents/skills/core/git-workflow-and-versioning/SKILL.md +352 -0
- package/.agents/skills/core/hydrate-context/SKILL.md +118 -0
- package/.agents/skills/core/idea-refinement/SKILL.md +317 -0
- package/.agents/skills/core/idea-refinement/examples.md +437 -0
- package/.agents/skills/core/idea-refinement/frameworks.md +135 -0
- package/.agents/skills/core/idea-refinement/refinement-criteria.md +155 -0
- package/.agents/skills/core/idea-refinement/scripts/idea-refine.sh +15 -0
- package/.agents/skills/core/incremental-implementation/SKILL.md +271 -0
- package/.agents/skills/core/introducing-a-baseline-gate/SKILL.md +213 -0
- package/.agents/skills/core/knowledge-transfer/SKILL.md +175 -0
- package/.agents/skills/core/mutation-survivor-remediation/SKILL.md +117 -0
- package/.agents/skills/core/performance-optimization/SKILL.md +314 -0
- package/.agents/skills/core/planning-and-task-breakdown/SKILL.md +277 -0
- package/.agents/skills/core/property-based-testing/SKILL.md +148 -0
- package/.agents/skills/core/qa-coverage-mapping/SKILL.md +105 -0
- package/.agents/skills/core/refactoring-discipline/SKILL.md +111 -0
- package/.agents/skills/core/scope-triage/SKILL.md +127 -0
- package/.agents/skills/core/security-and-hardening/SKILL.md +400 -0
- package/.agents/skills/core/shipping-and-launch/SKILL.md +328 -0
- package/.agents/skills/core/spec-driven-development/SKILL.md +252 -0
- package/.agents/skills/core/test-driven-development/SKILL.md +475 -0
- package/.agents/skills/core/using-agent-skills/SKILL.md +232 -0
- package/.agents/skills/skills.index.json +596 -0
- package/.agents/skills/stack/architecture/monorepo-path-strategist/SKILL.md +31 -0
- package/.agents/skills/stack/architecture/structured-output-zod/SKILL.md +51 -0
- package/.agents/skills/stack/architecture/subagent-orchestration/SKILL.md +48 -0
- package/.agents/skills/stack/backend/cloudflare-hono-architect/SKILL.md +31 -0
- package/.agents/skills/stack/backend/cloudflare-hono-architect/examples/route-template.ts +33 -0
- package/.agents/skills/stack/backend/cloudflare-queue-manager/SKILL.md +31 -0
- package/.agents/skills/stack/backend/cloudflare-workers/SKILL.md +51 -0
- package/.agents/skills/stack/backend/highlevel-crm/SKILL.md +54 -0
- package/.agents/skills/stack/backend/sqlite-drizzle-expert/SKILL.md +29 -0
- package/.agents/skills/stack/backend/sqlite-drizzle-expert/examples/schema-template.ts +30 -0
- package/.agents/skills/stack/backend/stripe-integration/SKILL.md +57 -0
- package/.agents/skills/stack/backend/stripe-integration/scripts/listen-stripe.sh +9 -0
- package/.agents/skills/stack/backend/turso-sqlite/SKILL.md +48 -0
- package/.agents/skills/stack/frontend/astro/SKILL.md +62 -0
- package/.agents/skills/stack/frontend/astro-react-island-strategist/SKILL.md +30 -0
- package/.agents/skills/stack/frontend/expo-react-native-developer/SKILL.md +29 -0
- package/.agents/skills/stack/frontend/google-analytics-v4/SKILL.md +50 -0
- package/.agents/skills/stack/frontend/tailwind-v4/SKILL.md +58 -0
- package/.agents/skills/stack/frontend/ui-accessibility-engineer/SKILL.md +34 -0
- package/.agents/skills/stack/qa/audit-accessibility/SKILL.md +51 -0
- package/.agents/skills/stack/qa/gherkin-authoring/SKILL.md +257 -0
- package/.agents/skills/stack/qa/gherkin-authoring/examples/invoice-issue.feature +41 -0
- package/.agents/skills/stack/qa/lighthouse-baseline/SKILL.md +199 -0
- package/.agents/skills/stack/qa/playwright/SKILL.md +50 -0
- package/.agents/skills/stack/qa/playwright-bdd/SKILL.md +188 -0
- package/.agents/skills/stack/qa/qa-explore-driving/SKILL.md +142 -0
- package/.agents/skills/stack/qa/qa-harness/SKILL.md +220 -0
- package/.agents/skills/stack/qa/vitest/SKILL.md +51 -0
- package/.agents/skills/stack/security/backend-security-patterns/SKILL.md +68 -0
- package/.agents/starter-agentrc.json +22 -0
- package/.agents/templates/agent-protocol.md +72 -0
- package/.agents/templates/docs/architecture.md +30 -0
- package/.agents/templates/docs/decisions.md +24 -0
- package/.agents/templates/epic-from-idea.md +21 -0
- package/.agents/templates/single-story-body.md +17 -0
- package/.agents/workflows/agents-update.md +415 -0
- package/.agents/workflows/audit-architecture.md +312 -0
- package/.agents/workflows/audit-clean-code.md +179 -0
- package/.agents/workflows/audit-dependencies.md +91 -0
- package/.agents/workflows/audit-devops.md +110 -0
- package/.agents/workflows/audit-lighthouse.md +260 -0
- package/.agents/workflows/audit-performance.md +161 -0
- package/.agents/workflows/audit-privacy.md +104 -0
- package/.agents/workflows/audit-quality.md +191 -0
- package/.agents/workflows/audit-security.md +156 -0
- package/.agents/workflows/audit-seo.md +118 -0
- package/.agents/workflows/audit-sre.md +139 -0
- package/.agents/workflows/audit-to-stories.md +257 -0
- package/.agents/workflows/audit-ux-ui.md +102 -0
- package/.agents/workflows/epic-deliver.md +864 -0
- package/.agents/workflows/epic-plan.md +998 -0
- package/.agents/workflows/explain.md +118 -0
- package/.agents/workflows/git-cleanup.md +250 -0
- package/.agents/workflows/git-commit-all.md +15 -0
- package/.agents/workflows/git-merge-pr.md +377 -0
- package/.agents/workflows/git-pr-all.md +278 -0
- package/.agents/workflows/git-push.md +60 -0
- package/.agents/workflows/helpers/_merge-conflict-template.md +54 -0
- package/.agents/workflows/helpers/acceptance-self-eval.md +74 -0
- package/.agents/workflows/helpers/agents-sync-config.md +129 -0
- package/.agents/workflows/helpers/code-quality-guardrails.md +101 -0
- package/.agents/workflows/helpers/code-review.md +370 -0
- package/.agents/workflows/helpers/diagnose.md +117 -0
- package/.agents/workflows/helpers/epic-audit.md +295 -0
- package/.agents/workflows/helpers/epic-deliver-story.md +370 -0
- package/.agents/workflows/helpers/epic-plan-decompose.md +199 -0
- package/.agents/workflows/helpers/epic-plan-spec.md +184 -0
- package/.agents/workflows/helpers/epic-testing.md +125 -0
- package/.agents/workflows/helpers/parallel-tooling.md +88 -0
- package/.agents/workflows/helpers/signals.md +112 -0
- package/.agents/workflows/helpers/single-story-deliver.md +636 -0
- package/.agents/workflows/helpers/worktree-lifecycle.md +317 -0
- package/.agents/workflows/onboard.md +207 -0
- package/.agents/workflows/qa-assist.md +293 -0
- package/.agents/workflows/qa-explore.md +350 -0
- package/.agents/workflows/qa-run-harness.md +288 -0
- package/.agents/workflows/story-deliver.md +327 -0
- package/.agents/workflows/story-plan.md +233 -0
- package/LICENSE +21 -0
- package/README.md +193 -0
- package/bin/mandrel.js +56 -0
- package/bin/postinstall.js +195 -0
- package/lib/cli/__tests__/migrate.test.js +268 -0
- package/lib/cli/__tests__/sync-local-zone.test.js +247 -0
- package/lib/cli/__tests__/sync.test.js +372 -0
- package/lib/cli/__tests__/update-major.test.js +217 -0
- package/lib/cli/__tests__/update.test.js +696 -0
- package/lib/cli/__tests__/version-check.test.js +398 -0
- package/lib/cli/doctor.js +124 -0
- package/lib/cli/explain.js +107 -0
- package/lib/cli/migrate.js +260 -0
- package/lib/cli/registry.js +830 -0
- package/lib/cli/sync-commands.js +50 -0
- package/lib/cli/sync.js +200 -0
- package/lib/cli/uninstall.js +795 -0
- package/lib/cli/update.js +854 -0
- package/lib/cli/version-check.js +206 -0
- package/lib/migrations/README.md +69 -0
- package/lib/migrations/__tests__/index.test.js +216 -0
- package/lib/migrations/index.js +164 -0
- package/package.json +105 -0
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: >-
|
|
3
|
+
Analyze, validate, resolve conflicts, and merge a given pull request by
|
|
4
|
+
number.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /git-merge-pr [#PR_LIST]
|
|
8
|
+
|
|
9
|
+
This workflow performs a full end-to-end merge of one or more pull requests: it
|
|
10
|
+
analyzes each PR diff, validates linting and tests, resolves any merge
|
|
11
|
+
conflicts, and completes the merge into the target base branch.
|
|
12
|
+
|
|
13
|
+
> **When to run**: Any time one or more PRs are ready for merge review and you
|
|
14
|
+
> want an automated merge with conflict resolution and quality gates enforced.
|
|
15
|
+
>
|
|
16
|
+
> **Persona**: `devops-engineer` · **Skills**:
|
|
17
|
+
> `core/git-workflow-and-versioning`
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Step 0 — Resolve Context
|
|
22
|
+
|
|
23
|
+
1. Resolve one or more `[PR_NUMBER]` values from the slash-command argument
|
|
24
|
+
(e.g. `/git-merge-pr 42 43 45` → `PR_LIST=[42, 43, 45]`).
|
|
25
|
+
2. **Sequential Loop**: Steps 1 through 7 must be performed **sequentially** for
|
|
26
|
+
each PR in the `PR_LIST`. Complete the full merge and cleanup for one PR
|
|
27
|
+
before starting the next.
|
|
28
|
+
3. For the current `[PR_NUMBER]`, fetch metadata from GitHub by calling
|
|
29
|
+
`mcp__github__pull_request_read` (method `get`) with the repo's
|
|
30
|
+
`owner` / `repo` and `pullNumber: [PR_NUMBER]`. From the response, read
|
|
31
|
+
`number`, `title`, `headRefName`, `baseRefName`, `state`, `mergeable`,
|
|
32
|
+
and `mergeStateStatus`.
|
|
33
|
+
|
|
34
|
+
4. From the output, resolve:
|
|
35
|
+
- `[PR_TITLE]` — the PR title.
|
|
36
|
+
- `[HEAD_BRANCH]` — the source branch (`headRefName`).
|
|
37
|
+
- `[BASE_BRANCH]` — the merge target (`baseRefName`).
|
|
38
|
+
- `[PR_STATE]` — must be `OPEN`. If `CLOSED` or `MERGED`, **SKIP** this PR
|
|
39
|
+
and proceed to the next one in the list.
|
|
40
|
+
- `[MERGEABLE]` — initial GitHub mergeability signal (`MERGEABLE`,
|
|
41
|
+
`CONFLICTING`, or `UNKNOWN`).
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Step 1 — PR Analysis
|
|
46
|
+
|
|
47
|
+
Fetch the full diff and review the scope of changes:
|
|
48
|
+
|
|
49
|
+
```powershell
|
|
50
|
+
gh pr diff [PR_NUMBER]
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
> **Why `gh pr diff` and not MCP?** `mcp__github__pull_request_read`'s
|
|
54
|
+
> `get_diff` method returns a structured response rather than the raw
|
|
55
|
+
> unified diff this step renders to the operator. `gh pr diff` stays
|
|
56
|
+
> until MCP exposes a raw-diff equivalent.
|
|
57
|
+
|
|
58
|
+
Summarize the following to the operator before proceeding:
|
|
59
|
+
|
|
60
|
+
- **Files changed** (count and list).
|
|
61
|
+
- **Lines added / removed**.
|
|
62
|
+
- **Areas of concern** — any files that touch shared utilities, schemas,
|
|
63
|
+
migrations, or critical infrastructure.
|
|
64
|
+
- **Initial mergeability status** from Step 0.
|
|
65
|
+
|
|
66
|
+
> This is a read-only analysis step. No files are modified yet.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Step 2 — Checkout & Sync
|
|
71
|
+
|
|
72
|
+
Delegate the rebase orchestration to `git-rebase-and-resolve.js`. It fetches
|
|
73
|
+
`origin`, checks out the head branch, and rebases it onto the base — then
|
|
74
|
+
reports the outcome in structured form so this skill routes on outcome
|
|
75
|
+
instead of re-implementing the retry loop.
|
|
76
|
+
|
|
77
|
+
```powershell
|
|
78
|
+
node .agents/scripts/git-rebase-and-resolve.js --onto origin/[BASE_BRANCH] --head [HEAD_BRANCH] --json
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Parse the JSON result. Route on `outcome`:
|
|
82
|
+
|
|
83
|
+
- `clean` → rebase landed with no conflicts. Proceed to Step 3.
|
|
84
|
+
- `conflict` → `conflictedFiles[]` lists the unmerged paths. Proceed to
|
|
85
|
+
Step 2.5.
|
|
86
|
+
- `error` → git returned an error unrelated to conflicts. **STOP** and
|
|
87
|
+
surface `stderr` to the operator.
|
|
88
|
+
|
|
89
|
+
### Step 2.5 — Conflict Resolution
|
|
90
|
+
|
|
91
|
+
Follow the shared conflict-resolution procedure in
|
|
92
|
+
[`helpers/_merge-conflict-template.md`](helpers/_merge-conflict-template.md):
|
|
93
|
+
read both sides
|
|
94
|
+
of each file in `conflictedFiles[]`, apply both when compatible (or choose a
|
|
95
|
+
side with an explicit rationale), never silently drop code, then stage the
|
|
96
|
+
resolutions.
|
|
97
|
+
|
|
98
|
+
Continue the rebase via the script — it calls `git rebase --continue` and
|
|
99
|
+
reports whether the rebase is now clean, still has conflicts (cascading
|
|
100
|
+
conflict), or hit a different error:
|
|
101
|
+
|
|
102
|
+
```powershell
|
|
103
|
+
node .agents/scripts/git-rebase-and-resolve.js --continue --json
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Loop until `outcome` is `continued`. If you need to bail out entirely:
|
|
107
|
+
|
|
108
|
+
```powershell
|
|
109
|
+
node .agents/scripts/git-rebase-and-resolve.js --abort --json
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Once the rebase completes cleanly, force-push the rebased branch:
|
|
113
|
+
|
|
114
|
+
```powershell
|
|
115
|
+
git push --force-with-lease origin [HEAD_BRANCH]
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Step 3 — Quality Gate (Lint + Format + Test)
|
|
121
|
+
|
|
122
|
+
Run the full lint / format / test suite via the gate wrapper. The wrapper
|
|
123
|
+
owns the command list so this skill doesn't rot when a project renames
|
|
124
|
+
`lint` → `lint:ci` or swaps Biome for ESLint. The default check set is
|
|
125
|
+
`lint`, `format:check`, `test`; override via `.agentrc.json → github.branchProtection`.
|
|
126
|
+
|
|
127
|
+
```powershell
|
|
128
|
+
node .agents/scripts/git-pr-quality-gate.js --json
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
The script emits a JSON result `{ ok, checks: [...], failed: [...] }`.
|
|
132
|
+
Exit code 0 means every check passed. On failure:
|
|
133
|
+
|
|
134
|
+
1. Read the `failed[]` entries (each has `name` and `reason`).
|
|
135
|
+
2. For **format** failures, run `npx biome format --write .` to auto-fix,
|
|
136
|
+
then re-run the gate.
|
|
137
|
+
3. For **lint** failures, apply the minimal manual fix.
|
|
138
|
+
4. For **test** failures, classify before fixing:
|
|
139
|
+
- **Pre-existing failures** (unrelated to this PR's diff): alert the
|
|
140
|
+
operator and ask whether to proceed or block.
|
|
141
|
+
- **Regression introduced by this PR**: apply the fix.
|
|
142
|
+
5. Commit the fixes and re-push:
|
|
143
|
+
|
|
144
|
+
```powershell
|
|
145
|
+
git add .
|
|
146
|
+
# justification: post-CI remediation; CI lint+test gate ran upstream and produced the failure being fixed here. Local hook would re-run the same gate.
|
|
147
|
+
git commit --no-verify -m "fix(ci): resolve quality-gate failures on [HEAD_BRANCH] for PR #[PR_NUMBER]"
|
|
148
|
+
git push origin [HEAD_BRANCH]
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
6. Re-run the gate until it exits 0 before continuing to Step 3.5.
|
|
152
|
+
|
|
153
|
+
> If a failure cannot be resolved after exhausting reasonable remediation
|
|
154
|
+
> attempts, **STOP** and escalate to the operator with a detailed summary.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Step 3.5 — Unified Baselines Gate (`check-baselines`)
|
|
159
|
+
|
|
160
|
+
`check-baselines.js` is the single canonical floor + tolerance + schema
|
|
161
|
+
gate for every baseline kind (coverage, crap, maintainability, mutation).
|
|
162
|
+
It owns absolute-floor enforcement, schema validation, and kernel-mismatch
|
|
163
|
+
surfacing. The per-kind regression CLIs that previously layered on top of
|
|
164
|
+
this gate were removed in Epic #1943 — `check-baselines.js` is now the
|
|
165
|
+
sole source of truth for baseline regressions at merge time.
|
|
166
|
+
|
|
167
|
+
```powershell
|
|
168
|
+
node .agents/scripts/check-baselines.js --format text
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Exit codes:
|
|
172
|
+
|
|
173
|
+
- `0` — every enabled gate's floors are met and no schema errors.
|
|
174
|
+
- `1` — any floor breach. Inspect the JSON output
|
|
175
|
+
(`--format json`, the default) to see which kind / component / axis
|
|
176
|
+
fell below floor.
|
|
177
|
+
- `2` — any baseline failed schema validation. Regenerate the offending
|
|
178
|
+
baseline through its per-kind update script.
|
|
179
|
+
- `3` — config resolution error (typically a malformed `.agentrc.json`).
|
|
180
|
+
|
|
181
|
+
Treat any non-zero exit as a hard merge block before proceeding to Step 4.
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Step 4 — Final Mergeability Check
|
|
186
|
+
|
|
187
|
+
Re-query GitHub to confirm the PR is now clean and ready to merge by
|
|
188
|
+
calling `mcp__github__pull_request_read` (method `get`) with the repo's
|
|
189
|
+
`owner` / `repo` and `pullNumber: [PR_NUMBER]`. Read `mergeable`,
|
|
190
|
+
`mergeStateStatus`, `reviewDecision`, and `statusCheckRollup` from the
|
|
191
|
+
response (the same fields the prior `gh pr view --json` shape exposed).
|
|
192
|
+
|
|
193
|
+
Verify:
|
|
194
|
+
|
|
195
|
+
- `mergeable` is `MERGEABLE`.
|
|
196
|
+
- `mergeStateStatus` is `CLEAN` or `HAS_HOOKS`.
|
|
197
|
+
- Required CI checks (if any) are passing (`statusCheckRollup` → all `SUCCESS`
|
|
198
|
+
or `NEUTRAL`).
|
|
199
|
+
|
|
200
|
+
If any blocking condition remains, resolve it before proceeding to the merge
|
|
201
|
+
step.
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Step 5 — Merge
|
|
206
|
+
|
|
207
|
+
Merge the PR as a squash commit and delete the head branch. Call
|
|
208
|
+
`mcp__github__merge_pull_request` with the repo's `owner` / `repo`,
|
|
209
|
+
`pullNumber: [PR_NUMBER]`, `merge_method: "squash"`, and
|
|
210
|
+
`delete_branch: true`.
|
|
211
|
+
|
|
212
|
+
> **MCP coverage gap — auto-merge queueing.** `mcp__github__merge_pull_request`
|
|
213
|
+
> performs an **immediate** merge; it does not enable GitHub's native
|
|
214
|
+
> auto-merge queue. When the workflow needs to queue the merge behind
|
|
215
|
+
> required-check completion (the default `--auto` posture), fall back to
|
|
216
|
+
> the shell form `gh pr merge [PR_NUMBER] --auto --squash --delete-branch`.
|
|
217
|
+
> Use the MCP call when CI is already green and the merge can fire
|
|
218
|
+
> synchronously (the common case after a clean Step 4 verdict).
|
|
219
|
+
>
|
|
220
|
+
> **Merge strategy guidance** (override with operator instruction):
|
|
221
|
+
>
|
|
222
|
+
> - `mcp__github__merge_pull_request` with `merge_method: "squash"` — the
|
|
223
|
+
> default for an already-green PR; clean history, single squash commit.
|
|
224
|
+
> - `gh pr merge [PR_NUMBER] --auto --squash --delete-branch` — auto-merge
|
|
225
|
+
> queueing fallback when required checks are still pending. Requires
|
|
226
|
+
> `allow_auto_merge=true` on the repo (Story #1239 turns this on).
|
|
227
|
+
> - `gh pr merge [PR_NUMBER] --squash` (no `--auto`) — synchronous merge;
|
|
228
|
+
> use only when bypassing auto-merge is intentional (e.g. CI is broken
|
|
229
|
+
> and a hotfix is going in under admin override).
|
|
230
|
+
> - `--merge` — preserves the full commit history from `[HEAD_BRANCH]` (use for
|
|
231
|
+
> Epic branches with meaningful commit granularity); pass `merge_method:
|
|
232
|
+
> "merge"` to the MCP call or `--merge` to `gh pr merge`.
|
|
233
|
+
> - `--rebase` — linear history; ideal for small, atomic PRs; pass
|
|
234
|
+
> `merge_method: "rebase"` to the MCP call or `--rebase` to `gh pr merge`.
|
|
235
|
+
|
|
236
|
+
After the merge command returns, perform a conflict marker scan to confirm no
|
|
237
|
+
stray markers entered the base branch. Delegate to `detect-merges.js` — it
|
|
238
|
+
owns the scan logic and is the same script used by `/epic-deliver` Phase 5.3.
|
|
239
|
+
|
|
240
|
+
```powershell
|
|
241
|
+
git checkout [BASE_BRANCH]
|
|
242
|
+
git pull origin [BASE_BRANCH]
|
|
243
|
+
node .agents/scripts/detect-merges.js
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
If the script exits non-zero: **STOP**, alert the operator immediately, and
|
|
247
|
+
do not proceed until the conflict markers are resolved.
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## Step 6 — Post-Merge Verification & Cleanup
|
|
252
|
+
|
|
253
|
+
Confirm the merge landed correctly on the base branch:
|
|
254
|
+
|
|
255
|
+
```powershell
|
|
256
|
+
git log origin/[BASE_BRANCH] -5 --oneline
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Verify that the top commit corresponds to the merged PR.
|
|
260
|
+
|
|
261
|
+
Explicitly delete the remote head branch. This is **mandatory** and must always
|
|
262
|
+
succeed — even if the Husky pre-push hook blocks `git push origin --delete`. Use
|
|
263
|
+
the **two-stage** approach below:
|
|
264
|
+
|
|
265
|
+
**Stage 1 — git push (fast path):**
|
|
266
|
+
|
|
267
|
+
```powershell
|
|
268
|
+
# Attempt standard deletion first (fast, uses existing auth)
|
|
269
|
+
git push origin --delete [HEAD_BRANCH] 2>$null
|
|
270
|
+
$gitDeleteOk = $LASTEXITCODE -eq 0
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
**Stage 2 — REST API fallback (always run if Stage 1 failed):**
|
|
274
|
+
|
|
275
|
+
If Stage 1 fails (exit code ≠ 0, e.g., due to Husky hook blocking the push),
|
|
276
|
+
fall back to the GitHub REST API using the token from the git credential store:
|
|
277
|
+
|
|
278
|
+
```powershell
|
|
279
|
+
if (-not $gitDeleteOk) {
|
|
280
|
+
# Retrieve token from git's native credential manager
|
|
281
|
+
$creds = "protocol=https`nhost=github.com`n" | git credential fill 2>$null
|
|
282
|
+
$token = ($creds | Select-String 'password=(.+)').Matches[0].Groups[1].Value
|
|
283
|
+
|
|
284
|
+
if ($token) {
|
|
285
|
+
$url = "https://api.github.com/repos/[OWNER]/[REPO]/git/refs/heads/[HEAD_BRANCH]"
|
|
286
|
+
$headers = @{ Authorization = "token $token"; Accept = "application/vnd.github.v3+json" }
|
|
287
|
+
try {
|
|
288
|
+
Invoke-RestMethod -Method DELETE -Uri $url -Headers $headers -ErrorAction Stop
|
|
289
|
+
Write-Host "Remote branch deleted via REST API: [HEAD_BRANCH]"
|
|
290
|
+
} catch {
|
|
291
|
+
$status = $_.Exception.Response.StatusCode.value__
|
|
292
|
+
if ($status -eq 422 -or $status -eq 404) {
|
|
293
|
+
Write-Host "Branch already gone (HTTP $status) — skipping."
|
|
294
|
+
} else {
|
|
295
|
+
Write-Warning "Failed to delete remote branch via API (HTTP $status): [HEAD_BRANCH]"
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
} else {
|
|
299
|
+
Write-Warning "No GitHub token found in credential store — remote branch may not be deleted."
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
Prune stale remote-tracking refs and delete the local branch:
|
|
305
|
+
|
|
306
|
+
```powershell
|
|
307
|
+
git fetch --prune
|
|
308
|
+
git branch -D [HEAD_BRANCH] 2>$null
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
> **Note:** `git branch -D` is safe to ignore if the local branch does not
|
|
312
|
+
> exist. `git fetch --prune` must always run to keep the local ref list clean.
|
|
313
|
+
|
|
314
|
+
Explicitly close the GitHub PR object. Because this workflow squash-merges
|
|
315
|
+
directly into the base branch (bypassing GitHub's native merge flow), GitHub
|
|
316
|
+
**will not** auto-close the PR — it must be closed explicitly.
|
|
317
|
+
|
|
318
|
+
Call `mcp__github__update_pull_request` with the repo's `owner` / `repo`,
|
|
319
|
+
`pullNumber: [PR_NUMBER]`, and `state: "closed"`.
|
|
320
|
+
|
|
321
|
+
> **Note:** This is a hard requirement — leaving the PR open after merging
|
|
322
|
+
> pollutes the repository's open PR list and causes confusion for reviewers.
|
|
323
|
+
|
|
324
|
+
Optionally, run the test suite one final time on the base branch to confirm no
|
|
325
|
+
regressions were introduced by the merge:
|
|
326
|
+
|
|
327
|
+
```powershell
|
|
328
|
+
npm test
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## Step 7 — Summary Report
|
|
334
|
+
|
|
335
|
+
Post a structured summary comment to the PR (now closed) for traceability.
|
|
336
|
+
Call `mcp__github__add_issue_comment` with the repo's `owner` / `repo`,
|
|
337
|
+
`issue_number: [PR_NUMBER]` (PR comments use the issues comments endpoint),
|
|
338
|
+
and `body` set to:
|
|
339
|
+
|
|
340
|
+
```markdown
|
|
341
|
+
✅ **Merged by agent** via `/git-merge-pr`
|
|
342
|
+
|
|
343
|
+
- **Branch**: `[HEAD_BRANCH]` → `[BASE_BRANCH]`
|
|
344
|
+
- **Conflicts resolved**: [YES/NO — list files if YES]
|
|
345
|
+
- **Lint fixes applied**: [YES/NO]
|
|
346
|
+
- **Test fixes applied**: [YES/NO]
|
|
347
|
+
- **Merge strategy**: squash
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## Constraint
|
|
353
|
+
|
|
354
|
+
- **Never** merge a PR that has unresolved lint errors or failing tests. Running
|
|
355
|
+
a passing quality gate is mandatory before the merge commit.
|
|
356
|
+
- **Never** silently drop code when resolving merge conflicts. When in doubt,
|
|
357
|
+
ask the operator.
|
|
358
|
+
- **Never** bypass required GitHub branch protection checks (required reviewers,
|
|
359
|
+
required status checks). If these are blocking, surface them to the operator
|
|
360
|
+
rather than attempting to force-merge.
|
|
361
|
+
- **Always** explicitly delete the remote head branch in Step 6 with
|
|
362
|
+
`git push origin --delete [HEAD_BRANCH]`. Do **not** rely solely on the
|
|
363
|
+
Step 5 merge call's `delete_branch` flag (whether passed via
|
|
364
|
+
`mcp__github__merge_pull_request` or `gh pr merge --delete-branch`) — that
|
|
365
|
+
flag is silently skipped when a PR auto-closes without a normal merge
|
|
366
|
+
commit (e.g., duplicate rebase scenarios).
|
|
367
|
+
- **Always** treat a "remote ref not found" error from the delete command as a
|
|
368
|
+
non-fatal, idempotent success — the branch is already gone.
|
|
369
|
+
- **Always** use `--force-with-lease` (never bare `--force`) when pushing
|
|
370
|
+
rebased branches to avoid overwriting concurrent pushes.
|
|
371
|
+
- **Always** explicitly close the GitHub PR via
|
|
372
|
+
`mcp__github__update_pull_request` with `state: "closed"` in Step 6 after
|
|
373
|
+
branch cleanup. Because this workflow pushes directly to the base branch,
|
|
374
|
+
GitHub will **never** auto-close the PR — it must be closed manually
|
|
375
|
+
every time.
|
|
376
|
+
- **Always** post a Step 7 summary comment for auditability, even if no fixes
|
|
377
|
+
were required.
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: >-
|
|
3
|
+
Stage all outstanding changes, commit, push to a feature branch, and open a
|
|
4
|
+
pull request with native auto-merge enabled.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /git-pr-all [Message] [--draft] [--no-auto-merge] [--branch <name>] [--base <branch>]
|
|
8
|
+
|
|
9
|
+
This workflow is the **ad-hoc PR ergonomics** counterpart to the heavyweight
|
|
10
|
+
`/epic-deliver` pipeline. Use it when you have outstanding changes that do not
|
|
11
|
+
belong to a planned Epic (typo fixes, file deletions, doc tweaks, dependency
|
|
12
|
+
bumps, operator housekeeping) and you want a single command to take them from
|
|
13
|
+
the working tree to a PR queued for auto-merge.
|
|
14
|
+
|
|
15
|
+
It composes the three steps that used to live in
|
|
16
|
+
[`/git-commit-all`](git-commit-all.md), [`/git-push`](git-push.md), and a
|
|
17
|
+
manual `gh pr create` — no more dance, no more manually slugging branch
|
|
18
|
+
names. Quality gates remain enforced by the existing pre-push hook; this
|
|
19
|
+
workflow does not bypass them.
|
|
20
|
+
|
|
21
|
+
> **When to run**: After making changes on `main` (or any base branch) that
|
|
22
|
+
> are too small or too out-of-band for `/epic-plan` + `/epic-deliver` but
|
|
23
|
+
> still need to land via the PR-required flow.
|
|
24
|
+
>
|
|
25
|
+
> **Persona**: `devops-engineer` · **Skills**:
|
|
26
|
+
> `core/git-workflow-and-versioning`
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Arguments
|
|
31
|
+
|
|
32
|
+
```text
|
|
33
|
+
/git-pr-all [Message] [--draft] [--no-auto-merge] [--branch <name>] [--base <branch>]
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
- `Message` — the commit subject. First line becomes the PR title; if
|
|
37
|
+
the message contains a blank line, everything after the blank line
|
|
38
|
+
becomes the PR body. When omitted, an interactive prompt is suppressed
|
|
39
|
+
and a timestamped fallback (`chore: ad-hoc changes <ISO>`) is used.
|
|
40
|
+
- `--draft` — open the PR in draft state and skip the auto-merge enable
|
|
41
|
+
step. Useful when you want CI to run before flipping to ready-for-review.
|
|
42
|
+
- `--no-auto-merge` — open a normal (non-draft) PR but do not enable
|
|
43
|
+
GitHub's native auto-merge queue. The operator merges through the UI
|
|
44
|
+
when ready. Default behaviour is `gh pr merge --auto --squash --delete-branch`.
|
|
45
|
+
- `--branch <name>` — override the auto-generated feature branch name.
|
|
46
|
+
When omitted, the branch is slugged from the commit subject (see
|
|
47
|
+
Step 2).
|
|
48
|
+
- `--base <branch>` — override the merge target. When omitted, reads
|
|
49
|
+
`project.baseBranch` from `.agentrc.json` (default `main`).
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Step 0 — Resolve Context
|
|
54
|
+
|
|
55
|
+
1. Resolve `[BASE_BRANCH]` from `--base` or `.agentrc.json` →
|
|
56
|
+
`project.baseBranch` (default `main`).
|
|
57
|
+
2. Read the current branch with `git rev-parse --abbrev-ref HEAD`.
|
|
58
|
+
3. Determine the operating mode:
|
|
59
|
+
- **`from-base` mode** — current branch equals `[BASE_BRANCH]`. The
|
|
60
|
+
workflow must cut a feature branch in Step 2 before committing.
|
|
61
|
+
- **`from-feature` mode** — current branch is anything else. The
|
|
62
|
+
workflow commits + pushes to the existing branch in Step 3 and
|
|
63
|
+
opens (or updates) a PR from it.
|
|
64
|
+
4. Verify the working tree has outstanding changes with
|
|
65
|
+
`git status --porcelain`. If the output is empty: **STOP** and tell
|
|
66
|
+
the operator there is nothing to PR.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Step 1 — Compose Commit Message
|
|
71
|
+
|
|
72
|
+
If the operator passed `[Message]`, use it verbatim. Otherwise, fall back
|
|
73
|
+
to `chore: ad-hoc changes <ISO 8601 timestamp>` so the commit is never
|
|
74
|
+
unmessageable.
|
|
75
|
+
|
|
76
|
+
Split the message on the first blank line:
|
|
77
|
+
|
|
78
|
+
- **Subject** — the first line, used as the commit subject AND the PR
|
|
79
|
+
title.
|
|
80
|
+
- **Body** — everything after the first blank line, used as the commit
|
|
81
|
+
body AND the PR body. May be empty.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Step 2 — Cut Feature Branch (from-base mode only)
|
|
86
|
+
|
|
87
|
+
Skip this step in `from-feature` mode — the branch already exists.
|
|
88
|
+
|
|
89
|
+
When `--branch <name>` is set, use it verbatim. Otherwise generate a
|
|
90
|
+
branch slug from the commit subject:
|
|
91
|
+
|
|
92
|
+
1. Detect the Conventional Commit type prefix (`<type>(<scope>): …`).
|
|
93
|
+
If matched, use `<type>` as the branch namespace. Allowed types:
|
|
94
|
+
`feat`, `fix`, `chore`, `docs`, `refactor`, `test`, `build`, `ci`,
|
|
95
|
+
`perf`, `style`. Anything else (or no prefix) → `chore`.
|
|
96
|
+
2. Strip the type prefix and any leading punctuation from the subject.
|
|
97
|
+
3. Lowercase, replace non-alphanumeric runs with `-`, collapse repeated
|
|
98
|
+
hyphens, trim leading/trailing hyphens.
|
|
99
|
+
4. Truncate to 50 chars on a word boundary.
|
|
100
|
+
5. Combine: `<type>/<slug>`. Example: `"Delete unused files"` →
|
|
101
|
+
`chore/delete-unused-files`. `"fix(observability): drop stale handler"`
|
|
102
|
+
→ `fix/observability-drop-stale-handler`.
|
|
103
|
+
|
|
104
|
+
Cut and check out the branch:
|
|
105
|
+
|
|
106
|
+
```powershell
|
|
107
|
+
git checkout -b <branch-name>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
If a local branch with that name already exists: pick a fresh name by
|
|
111
|
+
appending `-2` (then `-3`, etc.) until `git rev-parse --verify` returns
|
|
112
|
+
non-zero, and check that out instead.
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Step 3 — Stage + Commit
|
|
117
|
+
|
|
118
|
+
Stage all outstanding changes:
|
|
119
|
+
|
|
120
|
+
```powershell
|
|
121
|
+
git add -A
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
> **Why `-A` and not explicit paths?** `/git-pr-all` is operator-driven
|
|
125
|
+
> (not parallel-agent-driven), so the single-tree assumption that
|
|
126
|
+
> blocks `git add .` inside `/story-deliver` does not apply here. See
|
|
127
|
+
> the parallel-execution warning at the bottom of this file.
|
|
128
|
+
|
|
129
|
+
Commit:
|
|
130
|
+
|
|
131
|
+
```powershell
|
|
132
|
+
git commit -m "<subject>" -m "<body>"
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
If the body is empty, omit the second `-m`. If the pre-commit hook
|
|
136
|
+
fails:
|
|
137
|
+
|
|
138
|
+
1. Read the failure output.
|
|
139
|
+
2. Fix the issue (run `npm run format`, fix lint errors, etc.).
|
|
140
|
+
3. `git add -A` again.
|
|
141
|
+
4. Re-run `git commit` (do **not** pass `--no-verify`).
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Step 4 — Push with Upstream
|
|
146
|
+
|
|
147
|
+
Push the branch and set its upstream so subsequent pushes do not need
|
|
148
|
+
the explicit ref:
|
|
149
|
+
|
|
150
|
+
```powershell
|
|
151
|
+
git push -u origin <branch-name>
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
If the pre-push hook fails:
|
|
155
|
+
|
|
156
|
+
1. Read the failure output.
|
|
157
|
+
2. Fix the offending baseline / test / lint issue in the working tree.
|
|
158
|
+
3. `git add -A`, `git commit --amend --no-edit` (the original commit
|
|
159
|
+
has not been pushed yet, so amend is safe).
|
|
160
|
+
4. Re-run the push.
|
|
161
|
+
|
|
162
|
+
If the pre-push hook is correctly blocking a real regression, fix the
|
|
163
|
+
regression — never bypass the hook with `--no-verify`.
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Step 5 — Open PR
|
|
168
|
+
|
|
169
|
+
```powershell
|
|
170
|
+
gh pr create --base <BASE_BRANCH> --head <branch-name> \
|
|
171
|
+
--title "<subject>" --body "<body-or-default>"
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
When `--body` would otherwise be empty, fall back to a single line:
|
|
175
|
+
`Opened via /git-pr-all`. Pass `--draft` to `gh pr create` when the
|
|
176
|
+
operator set the `--draft` flag.
|
|
177
|
+
|
|
178
|
+
Capture the resulting PR URL from `gh pr create`'s stdout for the
|
|
179
|
+
final summary.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Step 6 — Enable Auto-Merge (default)
|
|
184
|
+
|
|
185
|
+
Skip this step when `--draft` or `--no-auto-merge` is set.
|
|
186
|
+
|
|
187
|
+
```powershell
|
|
188
|
+
gh pr merge <PR_NUMBER> --auto --squash --delete-branch
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
This queues the PR for merge as soon as required checks turn green and
|
|
192
|
+
schedules deletion of the head branch on merge. Auto-merge requires
|
|
193
|
+
`allow_auto_merge: true` on the repo (set by `/agents-bootstrap-github`,
|
|
194
|
+
Story #1239).
|
|
195
|
+
|
|
196
|
+
If `gh pr merge --auto` fails (missing repo feature, insufficient
|
|
197
|
+
token scope), log the failure and surface it to the operator — the PR
|
|
198
|
+
itself remains open and mergeable through the GitHub UI.
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## Step 7 — Summary
|
|
203
|
+
|
|
204
|
+
Print a single block to the operator:
|
|
205
|
+
|
|
206
|
+
```text
|
|
207
|
+
✅ Opened PR #<PR_NUMBER>: <subject>
|
|
208
|
+
<PR_URL>
|
|
209
|
+
branch: <branch-name> → <BASE_BRANCH>
|
|
210
|
+
auto-merge: <enabled | draft | disabled>
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
Do **not** poll CI. That is the `/epic-deliver` Phase 7 job and is
|
|
214
|
+
overkill for ad-hoc changes. The operator (or GitHub's email
|
|
215
|
+
notification) is the next watcher.
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Troubleshooting
|
|
220
|
+
|
|
221
|
+
- **Hook failures**: Treat the same way `/git-push` does — read the
|
|
222
|
+
output, fix the underlying issue, never `--no-verify`. The pre-push
|
|
223
|
+
hook (lint + format + maintainability + audit + coverage + CRAP) is
|
|
224
|
+
the same gate every PR has to pass eventually; failing here lets you
|
|
225
|
+
fix it before opening the PR rather than after CI fails.
|
|
226
|
+
- **Branch already exists locally**: appended `-2`/`-3` per Step 2; this
|
|
227
|
+
is the same behaviour `gh repo` uses. If you want a specific name,
|
|
228
|
+
pass `--branch <name>` explicitly.
|
|
229
|
+
- **`gh pr create` fails with "no commits between branches"**: the push
|
|
230
|
+
in Step 4 did not actually move the branch (e.g., it was already at
|
|
231
|
+
the same SHA as `[BASE_BRANCH]`). Verify `git log <BASE_BRANCH>..HEAD`
|
|
232
|
+
shows commits before re-running.
|
|
233
|
+
- **PR template wins over `--body`**: if `.github/pull_request_template.md`
|
|
234
|
+
exists, `gh pr create --body` overrides it. To opt into the template
|
|
235
|
+
flow, drop the `--body` flag in Step 5 and pass `--editor` instead —
|
|
236
|
+
but that requires an interactive session. For ad-hoc PRs the explicit
|
|
237
|
+
body is the right default.
|
|
238
|
+
- **Auto-merge does not fire after CI green**: confirm the PR's required
|
|
239
|
+
checks match the auto-merge requirements. The framework's quality gate
|
|
240
|
+
(`Validate and Test`) is the canonical required check; other checks
|
|
241
|
+
may be informational. Use the GitHub UI's "Merge when ready" surface
|
|
242
|
+
to inspect the queue state.
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## Constraint
|
|
247
|
+
|
|
248
|
+
- **Never** push directly to `[BASE_BRANCH]`. Step 2's branch cut is
|
|
249
|
+
mandatory in `from-base` mode; remove it and the workflow becomes a
|
|
250
|
+
silent bypass of the PR-required policy.
|
|
251
|
+
- **Never** pass `--no-verify` to `git commit` or `git push` to bypass
|
|
252
|
+
the quality gate. Fix the failure at the source.
|
|
253
|
+
- **Never** force-push from `/git-pr-all`. This workflow is for opening
|
|
254
|
+
new PRs, not for rewriting history. Force-pushes belong to
|
|
255
|
+
`/git-merge-pr` (with `--force-with-lease` after a rebase) and
|
|
256
|
+
`/epic-deliver` Phase 7 (with the operator's explicit context).
|
|
257
|
+
- **Always** delete the head branch on merge (Step 6's
|
|
258
|
+
`--delete-branch` flag handles this for `--auto` mode; for
|
|
259
|
+
`--no-auto-merge` PRs the operator is responsible for the cleanup).
|
|
260
|
+
- **Always** prefer `--auto --squash --delete-branch` unless the
|
|
261
|
+
operator explicitly opts out. The squash + auto-merge default gives
|
|
262
|
+
the same merge ergonomics `/epic-deliver` produces, so main's commit
|
|
263
|
+
history stays uniform across both surfaces.
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## ⚠️ Parallel Story Execution
|
|
268
|
+
|
|
269
|
+
Do **not** use this workflow from inside a parallel story-execution
|
|
270
|
+
context (`/story-deliver #<storyId>`, `/epic-deliver` wave dispatch).
|
|
271
|
+
`git add -A` sweeps any untracked files in the working tree, which in
|
|
272
|
+
a shared working directory may belong to another agent. Use the
|
|
273
|
+
explicit-staging + branch-guard pattern documented in
|
|
274
|
+
`story-deliver.md` Step 1 in those contexts.
|
|
275
|
+
|
|
276
|
+
The same warning applies to any workflow that calls `git add .` or
|
|
277
|
+
`git add -A`; this is not unique to `/git-pr-all` (see
|
|
278
|
+
[`git-push.md`](git-push.md) for the canonical version).
|