dorfl 0.0.0 → 0.1.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/dist/advance-ci-template.d.ts +73 -0
- package/dist/advance-ci-template.d.ts.map +1 -0
- package/dist/advance-ci-template.js +104 -0
- package/dist/advance-ci-template.js.map +1 -0
- package/dist/advance-classify.d.ts +132 -0
- package/dist/advance-classify.d.ts.map +1 -0
- package/dist/advance-classify.js +120 -0
- package/dist/advance-classify.js.map +1 -0
- package/dist/advance-drivers.d.ts +182 -0
- package/dist/advance-drivers.d.ts.map +1 -0
- package/dist/advance-drivers.js +231 -0
- package/dist/advance-drivers.js.map +1 -0
- package/dist/advance-isolated.d.ts +156 -0
- package/dist/advance-isolated.d.ts.map +1 -0
- package/dist/advance-isolated.js +256 -0
- package/dist/advance-isolated.js.map +1 -0
- package/dist/advance-lifecycle-template.d.ts +107 -0
- package/dist/advance-lifecycle-template.d.ts.map +1 -0
- package/dist/advance-lifecycle-template.js +668 -0
- package/dist/advance-lifecycle-template.js.map +1 -0
- package/dist/advance-loop-driver.d.ts +325 -0
- package/dist/advance-loop-driver.d.ts.map +1 -0
- package/dist/advance-loop-driver.js +437 -0
- package/dist/advance-loop-driver.js.map +1 -0
- package/dist/advance-treeless-publish.d.ts +108 -0
- package/dist/advance-treeless-publish.d.ts.map +1 -0
- package/dist/advance-treeless-publish.js +71 -0
- package/dist/advance-treeless-publish.js.map +1 -0
- package/dist/advance.d.ts +340 -0
- package/dist/advance.d.ts.map +1 -0
- package/dist/advance.js +1122 -0
- package/dist/advance.js.map +1 -0
- package/dist/advancing-lock.d.ts +294 -0
- package/dist/advancing-lock.d.ts.map +1 -0
- package/dist/advancing-lock.js +594 -0
- package/dist/advancing-lock.js.map +1 -0
- package/dist/agent-launch.d.ts +79 -0
- package/dist/agent-launch.d.ts.map +1 -0
- package/dist/agent-launch.js +61 -0
- package/dist/agent-launch.js.map +1 -0
- package/dist/agent-stop.d.ts +149 -0
- package/dist/agent-stop.d.ts.map +1 -0
- package/dist/agent-stop.js +307 -0
- package/dist/agent-stop.js.map +1 -0
- package/dist/apply-decide.d.ts +127 -0
- package/dist/apply-decide.d.ts.map +1 -0
- package/dist/apply-decide.js +176 -0
- package/dist/apply-decide.js.map +1 -0
- package/dist/apply-merge-action.d.ts +206 -0
- package/dist/apply-merge-action.d.ts.map +1 -0
- package/dist/apply-merge-action.js +307 -0
- package/dist/apply-merge-action.js.map +1 -0
- package/dist/apply-persist.d.ts +174 -0
- package/dist/apply-persist.d.ts.map +1 -0
- package/dist/apply-persist.js +359 -0
- package/dist/apply-persist.js.map +1 -0
- package/dist/arbiter.d.ts +120 -0
- package/dist/arbiter.d.ts.map +1 -0
- package/dist/arbiter.js +255 -0
- package/dist/arbiter.js.map +1 -0
- package/dist/brand.d.ts +70 -0
- package/dist/brand.d.ts.map +1 -0
- package/dist/brand.js +84 -0
- package/dist/brand.js.map +1 -0
- package/dist/buildable-body.d.ts +132 -0
- package/dist/buildable-body.d.ts.map +1 -0
- package/dist/buildable-body.js +131 -0
- package/dist/buildable-body.js.map +1 -0
- package/dist/categorise.d.ts +66 -0
- package/dist/categorise.d.ts.map +1 -0
- package/dist/categorise.js +106 -0
- package/dist/categorise.js.map +1 -0
- package/dist/claim-cas.d.ts +117 -0
- package/dist/claim-cas.d.ts.map +1 -0
- package/dist/claim-cas.js +312 -0
- package/dist/claim-cas.js.map +1 -0
- package/dist/cli-spinner.d.ts +112 -0
- package/dist/cli-spinner.d.ts.map +1 -0
- package/dist/cli-spinner.js +157 -0
- package/dist/cli-spinner.js.map +1 -0
- package/dist/cli.d.ts +11 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +3094 -0
- package/dist/cli.js.map +1 -0
- package/dist/close-job-template.d.ts +70 -0
- package/dist/close-job-template.d.ts.map +1 -0
- package/dist/close-job-template.js +180 -0
- package/dist/close-job-template.js.map +1 -0
- package/dist/close-job.d.ts +95 -0
- package/dist/close-job.d.ts.map +1 -0
- package/dist/close-job.js +226 -0
- package/dist/close-job.js.map +1 -0
- package/dist/complete.d.ts +361 -0
- package/dist/complete.d.ts.map +1 -0
- package/dist/complete.js +885 -0
- package/dist/complete.js.map +1 -0
- package/dist/concurrency.d.ts +68 -0
- package/dist/concurrency.d.ts.map +1 -0
- package/dist/concurrency.js +112 -0
- package/dist/concurrency.js.map +1 -0
- package/dist/config-override.d.ts +76 -0
- package/dist/config-override.d.ts.map +1 -0
- package/dist/config-override.js +50 -0
- package/dist/config-override.js.map +1 -0
- package/dist/config.d.ts +668 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +241 -0
- package/dist/config.js.map +1 -0
- package/dist/continue-branch.d.ts +249 -0
- package/dist/continue-branch.d.ts.map +1 -0
- package/dist/continue-branch.js +389 -0
- package/dist/continue-branch.js.map +1 -0
- package/dist/cwd-section.d.ts +186 -0
- package/dist/cwd-section.d.ts.map +1 -0
- package/dist/cwd-section.js +209 -0
- package/dist/cwd-section.js.map +1 -0
- package/dist/decision-engine.d.ts +170 -0
- package/dist/decision-engine.d.ts.map +1 -0
- package/dist/decision-engine.js +136 -0
- package/dist/decision-engine.js.map +1 -0
- package/dist/detect.d.ts +17 -0
- package/dist/detect.d.ts.map +1 -0
- package/dist/detect.js +118 -0
- package/dist/detect.js.map +1 -0
- package/dist/do-autopick.d.ts +85 -0
- package/dist/do-autopick.d.ts.map +1 -0
- package/dist/do-autopick.js +112 -0
- package/dist/do-autopick.js.map +1 -0
- package/dist/do-config.d.ts +312 -0
- package/dist/do-config.d.ts.map +1 -0
- package/dist/do-config.js +358 -0
- package/dist/do-config.js.map +1 -0
- package/dist/do-remote-auto.d.ts +75 -0
- package/dist/do-remote-auto.d.ts.map +1 -0
- package/dist/do-remote-auto.js +111 -0
- package/dist/do-remote-auto.js.map +1 -0
- package/dist/do.d.ts +621 -0
- package/dist/do.d.ts.map +1 -0
- package/dist/do.js +1882 -0
- package/dist/do.js.map +1 -0
- package/dist/drop-source.d.ts +96 -0
- package/dist/drop-source.d.ts.map +1 -0
- package/dist/drop-source.js +91 -0
- package/dist/drop-source.js.map +1 -0
- package/dist/eligibility.d.ts +46 -0
- package/dist/eligibility.d.ts.map +1 -0
- package/dist/eligibility.js +34 -0
- package/dist/eligibility.js.map +1 -0
- package/dist/env-config.d.ts +51 -0
- package/dist/env-config.d.ts.map +1 -0
- package/dist/env-config.js +272 -0
- package/dist/env-config.js.map +1 -0
- package/dist/failure-cause.d.ts +70 -0
- package/dist/failure-cause.d.ts.map +1 -0
- package/dist/failure-cause.js +126 -0
- package/dist/failure-cause.js.map +1 -0
- package/dist/format.d.ts +43 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +256 -0
- package/dist/format.js.map +1 -0
- package/dist/frontmatter.d.ts +215 -0
- package/dist/frontmatter.d.ts.map +1 -0
- package/dist/frontmatter.js +345 -0
- package/dist/frontmatter.js.map +1 -0
- package/dist/gate-readiness.d.ts +84 -0
- package/dist/gate-readiness.d.ts.map +1 -0
- package/dist/gate-readiness.js +103 -0
- package/dist/gate-readiness.js.map +1 -0
- package/dist/gc.d.ts +165 -0
- package/dist/gc.d.ts.map +1 -0
- package/dist/gc.js +313 -0
- package/dist/gc.js.map +1 -0
- package/dist/gh-failure.d.ts +42 -0
- package/dist/gh-failure.d.ts.map +1 -0
- package/dist/gh-failure.js +49 -0
- package/dist/gh-failure.js.map +1 -0
- package/dist/git.d.ts +75 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +130 -0
- package/dist/git.js.map +1 -0
- package/dist/github.d.ts +187 -0
- package/dist/github.d.ts.map +1 -0
- package/dist/github.js +343 -0
- package/dist/github.js.map +1 -0
- package/dist/harness.d.ts +242 -0
- package/dist/harness.d.ts.map +1 -0
- package/dist/harness.js +157 -0
- package/dist/harness.js.map +1 -0
- package/dist/identity.d.ts +167 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +231 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +147 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +76 -0
- package/dist/index.js.map +1 -0
- package/dist/install-ci-branch-protection.d.ts +147 -0
- package/dist/install-ci-branch-protection.d.ts.map +1 -0
- package/dist/install-ci-branch-protection.js +166 -0
- package/dist/install-ci-branch-protection.js.map +1 -0
- package/dist/install-ci-capabilities/advance-lifecycle.d.ts +15 -0
- package/dist/install-ci-capabilities/advance-lifecycle.d.ts.map +1 -0
- package/dist/install-ci-capabilities/advance-lifecycle.js +28 -0
- package/dist/install-ci-capabilities/advance-lifecycle.js.map +1 -0
- package/dist/install-ci-capabilities/close-job.d.ts +13 -0
- package/dist/install-ci-capabilities/close-job.d.ts.map +1 -0
- package/dist/install-ci-capabilities/close-job.js +26 -0
- package/dist/install-ci-capabilities/close-job.js.map +1 -0
- package/dist/install-ci-capabilities/example-noop.d.ts +16 -0
- package/dist/install-ci-capabilities/example-noop.d.ts.map +1 -0
- package/dist/install-ci-capabilities/example-noop.js +23 -0
- package/dist/install-ci-capabilities/example-noop.js.map +1 -0
- package/dist/install-ci-capabilities/intake.d.ts +15 -0
- package/dist/install-ci-capabilities/intake.d.ts.map +1 -0
- package/dist/install-ci-capabilities/intake.js +28 -0
- package/dist/install-ci-capabilities/intake.js.map +1 -0
- package/dist/install-ci-capabilities/verify.d.ts +14 -0
- package/dist/install-ci-capabilities/verify.d.ts.map +1 -0
- package/dist/install-ci-capabilities/verify.js +27 -0
- package/dist/install-ci-capabilities/verify.js.map +1 -0
- package/dist/install-ci-core.d.ts +446 -0
- package/dist/install-ci-core.d.ts.map +1 -0
- package/dist/install-ci-core.js +760 -0
- package/dist/install-ci-core.js.map +1 -0
- package/dist/install-ci-github.d.ts +167 -0
- package/dist/install-ci-github.d.ts.map +1 -0
- package/dist/install-ci-github.js +315 -0
- package/dist/install-ci-github.js.map +1 -0
- package/dist/install-ci.d.ts +105 -0
- package/dist/install-ci.d.ts.map +1 -0
- package/dist/install-ci.js +363 -0
- package/dist/install-ci.js.map +1 -0
- package/dist/intake-event.d.ts +88 -0
- package/dist/intake-event.d.ts.map +1 -0
- package/dist/intake-event.js +66 -0
- package/dist/intake-event.js.map +1 -0
- package/dist/intake-marker.d.ts +95 -0
- package/dist/intake-marker.d.ts.map +1 -0
- package/dist/intake-marker.js +127 -0
- package/dist/intake-marker.js.map +1 -0
- package/dist/intake-triage.d.ts +48 -0
- package/dist/intake-triage.d.ts.map +1 -0
- package/dist/intake-triage.js +95 -0
- package/dist/intake-triage.js.map +1 -0
- package/dist/intake-trigger-template.d.ts +185 -0
- package/dist/intake-trigger-template.d.ts.map +1 -0
- package/dist/intake-trigger-template.js +449 -0
- package/dist/intake-trigger-template.js.map +1 -0
- package/dist/intake.d.ts +569 -0
- package/dist/intake.d.ts.map +1 -0
- package/dist/intake.js +1628 -0
- package/dist/intake.js.map +1 -0
- package/dist/integration-core.d.ts +539 -0
- package/dist/integration-core.d.ts.map +1 -0
- package/dist/integration-core.js +2195 -0
- package/dist/integration-core.js.map +1 -0
- package/dist/integrator.d.ts +343 -0
- package/dist/integrator.d.ts.map +1 -0
- package/dist/integrator.js +400 -0
- package/dist/integrator.js.map +1 -0
- package/dist/isolation.d.ts +219 -0
- package/dist/isolation.d.ts.map +1 -0
- package/dist/isolation.js +261 -0
- package/dist/isolation.js.map +1 -0
- package/dist/issue-provider.d.ts +349 -0
- package/dist/issue-provider.d.ts.map +1 -0
- package/dist/issue-provider.js +360 -0
- package/dist/issue-provider.js.map +1 -0
- package/dist/item-lock.d.ts +626 -0
- package/dist/item-lock.d.ts.map +1 -0
- package/dist/item-lock.js +1381 -0
- package/dist/item-lock.js.map +1 -0
- package/dist/item-path.d.ts +49 -0
- package/dist/item-path.d.ts.map +1 -0
- package/dist/item-path.js +66 -0
- package/dist/item-path.js.map +1 -0
- package/dist/ledger-lint.d.ts +129 -0
- package/dist/ledger-lint.d.ts.map +1 -0
- package/dist/ledger-lint.js +249 -0
- package/dist/ledger-lint.js.map +1 -0
- package/dist/ledger-read.d.ts +357 -0
- package/dist/ledger-read.d.ts.map +1 -0
- package/dist/ledger-read.js +442 -0
- package/dist/ledger-read.js.map +1 -0
- package/dist/ledger-write.d.ts +330 -0
- package/dist/ledger-write.d.ts.map +1 -0
- package/dist/ledger-write.js +411 -0
- package/dist/ledger-write.js.map +1 -0
- package/dist/lifecycle-gather.d.ts +30 -0
- package/dist/lifecycle-gather.d.ts.map +1 -0
- package/dist/lifecycle-gather.js +205 -0
- package/dist/lifecycle-gather.js.map +1 -0
- package/dist/lifecycle-pools.d.ts +180 -0
- package/dist/lifecycle-pools.d.ts.map +1 -0
- package/dist/lifecycle-pools.js +78 -0
- package/dist/lifecycle-pools.js.map +1 -0
- package/dist/merge-question-surfacer.d.ts +166 -0
- package/dist/merge-question-surfacer.d.ts.map +1 -0
- package/dist/merge-question-surfacer.js +297 -0
- package/dist/merge-question-surfacer.js.map +1 -0
- package/dist/mint-adr.d.ts +126 -0
- package/dist/mint-adr.d.ts.map +1 -0
- package/dist/mint-adr.js +257 -0
- package/dist/mint-adr.js.map +1 -0
- package/dist/mirror-pool-scan.d.ts +125 -0
- package/dist/mirror-pool-scan.d.ts.map +1 -0
- package/dist/mirror-pool-scan.js +104 -0
- package/dist/mirror-pool-scan.js.map +1 -0
- package/dist/needs-attention.d.ts +341 -0
- package/dist/needs-attention.d.ts.map +1 -0
- package/dist/needs-attention.js +900 -0
- package/dist/needs-attention.js.map +1 -0
- package/dist/orphan-sidecar.d.ts +79 -0
- package/dist/orphan-sidecar.d.ts.map +1 -0
- package/dist/orphan-sidecar.js +71 -0
- package/dist/orphan-sidecar.js.map +1 -0
- package/dist/output.d.ts +48 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +66 -0
- package/dist/output.js.map +1 -0
- package/dist/pi-harness.d.ts +179 -0
- package/dist/pi-harness.d.ts.map +1 -0
- package/dist/pi-harness.js +342 -0
- package/dist/pi-harness.js.map +1 -0
- package/dist/placement.d.ts +99 -0
- package/dist/placement.d.ts.map +1 -0
- package/dist/placement.js +67 -0
- package/dist/placement.js.map +1 -0
- package/dist/prd-to-spec.d.ts +315 -0
- package/dist/prd-to-spec.d.ts.map +1 -0
- package/dist/prd-to-spec.js +684 -0
- package/dist/prd-to-spec.js.map +1 -0
- package/dist/prepare.d.ts +121 -0
- package/dist/prepare.d.ts.map +1 -0
- package/dist/prepare.js +140 -0
- package/dist/prepare.js.map +1 -0
- package/dist/prompt.d.ts +360 -0
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +499 -0
- package/dist/prompt.js.map +1 -0
- package/dist/protocol/ADR-FORMAT.md +47 -0
- package/dist/protocol/CLAIM-PROTOCOL.md +217 -0
- package/dist/protocol/REVIEW-PROTOCOL.md +119 -0
- package/dist/protocol/SURFACE-PROTOCOL.md +121 -0
- package/dist/protocol/TASKING-PROTOCOL.md +122 -0
- package/dist/protocol/WORK-CONTRACT.md +276 -0
- package/dist/protocol/spec-template.md +71 -0
- package/dist/protocol/task-template.md +65 -0
- package/dist/readiness.d.ts +66 -0
- package/dist/readiness.d.ts.map +1 -0
- package/dist/readiness.js +36 -0
- package/dist/readiness.js.map +1 -0
- package/dist/reap-branches.d.ts +102 -0
- package/dist/reap-branches.d.ts.map +1 -0
- package/dist/reap-branches.js +149 -0
- package/dist/reap-branches.js.map +1 -0
- package/dist/recover-isolated.d.ts +72 -0
- package/dist/recover-isolated.d.ts.map +1 -0
- package/dist/recover-isolated.js +188 -0
- package/dist/recover-isolated.js.map +1 -0
- package/dist/registry.d.ts +172 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +296 -0
- package/dist/registry.js.map +1 -0
- package/dist/repo-config.d.ts +201 -0
- package/dist/repo-config.d.ts.map +1 -0
- package/dist/repo-config.js +414 -0
- package/dist/repo-config.js.map +1 -0
- package/dist/repo-key.d.ts +20 -0
- package/dist/repo-key.d.ts.map +1 -0
- package/dist/repo-key.js +68 -0
- package/dist/repo-key.js.map +1 -0
- package/dist/repo-mirror.d.ts +177 -0
- package/dist/repo-mirror.d.ts.map +1 -0
- package/dist/repo-mirror.js +271 -0
- package/dist/repo-mirror.js.map +1 -0
- package/dist/retry-backoff.d.ts +90 -0
- package/dist/retry-backoff.d.ts.map +1 -0
- package/dist/retry-backoff.js +98 -0
- package/dist/retry-backoff.js.map +1 -0
- package/dist/review-gate.d.ts +173 -0
- package/dist/review-gate.d.ts.map +1 -0
- package/dist/review-gate.js +261 -0
- package/dist/review-gate.js.map +1 -0
- package/dist/review-verdict.d.ts +149 -0
- package/dist/review-verdict.d.ts.map +1 -0
- package/dist/review-verdict.js +332 -0
- package/dist/review-verdict.js.map +1 -0
- package/dist/run.d.ts +221 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +963 -0
- package/dist/run.js.map +1 -0
- package/dist/scan.d.ts +308 -0
- package/dist/scan.d.ts.map +1 -0
- package/dist/scan.js +374 -0
- package/dist/scan.js.map +1 -0
- package/dist/select-order.d.ts +75 -0
- package/dist/select-order.d.ts.map +1 -0
- package/dist/select-order.js +108 -0
- package/dist/select-order.js.map +1 -0
- package/dist/select-priority.d.ts +188 -0
- package/dist/select-priority.d.ts.map +1 -0
- package/dist/select-priority.js +80 -0
- package/dist/select-priority.js.map +1 -0
- package/dist/select.d.ts +25 -0
- package/dist/select.d.ts.map +1 -0
- package/dist/select.js +43 -0
- package/dist/select.js.map +1 -0
- package/dist/session-path.d.ts +36 -0
- package/dist/session-path.d.ts.map +1 -0
- package/dist/session-path.js +129 -0
- package/dist/session-path.js.map +1 -0
- package/dist/sidecar-apply.d.ts +83 -0
- package/dist/sidecar-apply.d.ts.map +1 -0
- package/dist/sidecar-apply.js +111 -0
- package/dist/sidecar-apply.js.map +1 -0
- package/dist/sidecar.d.ts +245 -0
- package/dist/sidecar.d.ts.map +1 -0
- package/dist/sidecar.js +481 -0
- package/dist/sidecar.js.map +1 -0
- package/dist/slug-namespace.d.ts +204 -0
- package/dist/slug-namespace.d.ts.map +1 -0
- package/dist/slug-namespace.js +229 -0
- package/dist/slug-namespace.js.map +1 -0
- package/dist/spec-complete.d.ts +44 -0
- package/dist/spec-complete.d.ts.map +1 -0
- package/dist/spec-complete.js +69 -0
- package/dist/spec-complete.js.map +1 -0
- package/dist/start.d.ts +97 -0
- package/dist/start.d.ts.map +1 -0
- package/dist/start.js +633 -0
- package/dist/start.js.map +1 -0
- package/dist/status.d.ts +199 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/status.js +228 -0
- package/dist/status.js.map +1 -0
- package/dist/surface-gate.d.ts +162 -0
- package/dist/surface-gate.d.ts.map +1 -0
- package/dist/surface-gate.js +206 -0
- package/dist/surface-gate.js.map +1 -0
- package/dist/surface-persist.d.ts +86 -0
- package/dist/surface-persist.d.ts.map +1 -0
- package/dist/surface-persist.js +129 -0
- package/dist/surface-persist.js.map +1 -0
- package/dist/tasker-review-loop.d.ts +249 -0
- package/dist/tasker-review-loop.d.ts.map +1 -0
- package/dist/tasker-review-loop.js +369 -0
- package/dist/tasker-review-loop.js.map +1 -0
- package/dist/tasking-eligibility.d.ts +74 -0
- package/dist/tasking-eligibility.d.ts.map +1 -0
- package/dist/tasking-eligibility.js +52 -0
- package/dist/tasking-eligibility.js.map +1 -0
- package/dist/tasking-lock.d.ts +111 -0
- package/dist/tasking-lock.d.ts.map +1 -0
- package/dist/tasking-lock.js +256 -0
- package/dist/tasking-lock.js.map +1 -0
- package/dist/tasking.d.ts +275 -0
- package/dist/tasking.d.ts.map +1 -0
- package/dist/tasking.js +952 -0
- package/dist/tasking.js.map +1 -0
- package/dist/triage-gate.d.ts +127 -0
- package/dist/triage-gate.d.ts.map +1 -0
- package/dist/triage-gate.js +139 -0
- package/dist/triage-gate.js.map +1 -0
- package/dist/triage-persist.d.ts +163 -0
- package/dist/triage-persist.d.ts.map +1 -0
- package/dist/triage-persist.js +387 -0
- package/dist/triage-persist.js.map +1 -0
- package/dist/verdict-json.d.ts +32 -0
- package/dist/verdict-json.d.ts.map +1 -0
- package/dist/verdict-json.js +74 -0
- package/dist/verdict-json.js.map +1 -0
- package/dist/verify-workflow-template.d.ts +60 -0
- package/dist/verify-workflow-template.d.ts.map +1 -0
- package/dist/verify-workflow-template.js +126 -0
- package/dist/verify-workflow-template.js.map +1 -0
- package/dist/verify.d.ts +60 -0
- package/dist/verify.d.ts.map +1 -0
- package/dist/verify.js +62 -0
- package/dist/verify.js.map +1 -0
- package/dist/watch-session.d.ts +112 -0
- package/dist/watch-session.d.ts.map +1 -0
- package/dist/watch-session.js +347 -0
- package/dist/watch-session.js.map +1 -0
- package/dist/work-layout.d.ts +198 -0
- package/dist/work-layout.d.ts.map +1 -0
- package/dist/work-layout.js +217 -0
- package/dist/work-layout.js.map +1 -0
- package/dist/work-on.d.ts +154 -0
- package/dist/work-on.d.ts.map +1 -0
- package/dist/work-on.js +387 -0
- package/dist/work-on.js.map +1 -0
- package/dist/workspace.d.ts +224 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +325 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +46 -2
- package/src/advance-ci-template.ts +203 -0
- package/src/advance-classify.ts +197 -0
- package/src/advance-drivers.ts +414 -0
- package/src/advance-isolated.ts +432 -0
- package/src/advance-lifecycle-template.ts +791 -0
- package/src/advance-loop-driver.ts +745 -0
- package/src/advance-treeless-publish.ts +177 -0
- package/src/advance.ts +1564 -0
- package/src/advancing-lock.ts +988 -0
- package/src/agent-launch.ts +137 -0
- package/src/agent-stop.ts +361 -0
- package/src/apply-decide.ts +242 -0
- package/src/apply-merge-action.ts +502 -0
- package/src/apply-persist.ts +518 -0
- package/src/arbiter.ts +372 -0
- package/src/brand.ts +111 -0
- package/src/buildable-body.ts +196 -0
- package/src/categorise.ts +158 -0
- package/src/claim-cas.ts +513 -0
- package/src/cli-spinner.ts +225 -0
- package/src/cli.ts +4369 -0
- package/src/close-job-template.ts +236 -0
- package/src/close-job.ts +319 -0
- package/src/complete.ts +1379 -0
- package/src/concurrency.ts +151 -0
- package/src/config-override.ts +116 -0
- package/src/config.ts +883 -0
- package/src/continue-branch.ts +542 -0
- package/src/cwd-section.ts +392 -0
- package/src/decision-engine.ts +272 -0
- package/src/detect.ts +124 -0
- package/src/do-autopick.ts +223 -0
- package/src/do-config.ts +589 -0
- package/src/do-remote-auto.ts +197 -0
- package/src/do.ts +2623 -0
- package/src/drop-source.ts +194 -0
- package/src/eligibility.ts +79 -0
- package/src/env-config.ts +305 -0
- package/src/failure-cause.ts +142 -0
- package/src/format.ts +313 -0
- package/src/frontmatter.ts +485 -0
- package/src/gate-readiness.ts +147 -0
- package/src/gc.ts +510 -0
- package/src/gh-failure.ts +53 -0
- package/src/git.ts +186 -0
- package/src/github.ts +468 -0
- package/src/harness.ts +355 -0
- package/src/identity.ts +322 -0
- package/src/index.ts +785 -0
- package/src/install-ci-branch-protection.ts +255 -0
- package/src/install-ci-capabilities/advance-lifecycle.ts +34 -0
- package/src/install-ci-capabilities/close-job.ts +32 -0
- package/src/install-ci-capabilities/example-noop.ts +24 -0
- package/src/install-ci-capabilities/intake.ts +34 -0
- package/src/install-ci-capabilities/verify.ts +33 -0
- package/src/install-ci-core.ts +1088 -0
- package/src/install-ci-github.ts +376 -0
- package/src/install-ci.ts +552 -0
- package/src/intake-event.ts +102 -0
- package/src/intake-marker.ts +195 -0
- package/src/intake-triage.ts +138 -0
- package/src/intake-trigger-template.ts +591 -0
- package/src/intake.ts +2445 -0
- package/src/integration-core.ts +3065 -0
- package/src/integrator.ts +771 -0
- package/src/isolation.ts +484 -0
- package/src/issue-provider.ts +733 -0
- package/src/item-lock.ts +1858 -0
- package/src/item-path.ts +75 -0
- package/src/ledger-lint.ts +332 -0
- package/src/ledger-read.ts +924 -0
- package/src/ledger-write.ts +865 -0
- package/src/lifecycle-gather.ts +298 -0
- package/src/lifecycle-pools.ts +250 -0
- package/src/merge-question-surfacer.ts +496 -0
- package/src/mint-adr.ts +362 -0
- package/src/mirror-pool-scan.ts +240 -0
- package/src/needs-attention.ts +1506 -0
- package/src/orphan-sidecar.ts +150 -0
- package/src/output.ts +89 -0
- package/src/pi-harness.ts +403 -0
- package/src/placement.ts +131 -0
- package/src/prd-to-spec.ts +1023 -0
- package/src/prepare.ts +230 -0
- package/src/prompt.ts +760 -0
- package/src/readiness.ts +98 -0
- package/src/reap-branches.ts +278 -0
- package/src/recover-isolated.ts +276 -0
- package/src/registry.ts +475 -0
- package/src/repo-config.ts +550 -0
- package/src/repo-key.ts +74 -0
- package/src/repo-mirror.ts +367 -0
- package/src/retry-backoff.ts +130 -0
- package/src/review-gate.ts +389 -0
- package/src/review-verdict.ts +422 -0
- package/src/run.ts +1430 -0
- package/src/scan.ts +611 -0
- package/src/select-order.ts +143 -0
- package/src/select-priority.ts +266 -0
- package/src/select.ts +62 -0
- package/src/session-path.ts +153 -0
- package/src/sidecar-apply.ts +216 -0
- package/src/sidecar.ts +700 -0
- package/src/slug-namespace.ts +367 -0
- package/src/spec-complete.ts +118 -0
- package/src/start.ts +974 -0
- package/src/status.ts +441 -0
- package/src/surface-gate.ts +337 -0
- package/src/surface-persist.ts +241 -0
- package/src/tasker-review-loop.ts +671 -0
- package/src/tasking-eligibility.ts +114 -0
- package/src/tasking-lock.ts +416 -0
- package/src/tasking.ts +1438 -0
- package/src/triage-gate.ts +248 -0
- package/src/triage-persist.ts +570 -0
- package/src/verdict-json.ts +73 -0
- package/src/verify-workflow-template.ts +159 -0
- package/src/verify.ts +123 -0
- package/src/watch-session.ts +397 -0
- package/src/work-layout.ts +262 -0
- package/src/work-on.ts +660 -0
- package/src/workspace.ts +502 -0
package/dist/intake.d.ts
ADDED
|
@@ -0,0 +1,569 @@
|
|
|
1
|
+
import type { IntegrateResult, ReviewProvider } from './integrator.js';
|
|
2
|
+
import type { IntegrationMode, SpecsLandIn } from './config.js';
|
|
3
|
+
import type { OriginTrust } from './frontmatter.js';
|
|
4
|
+
import { type Identity } from './identity.js';
|
|
5
|
+
import { type Harness } from './harness.js';
|
|
6
|
+
import { type Issue, type IssueComment, type IssueProvider } from './issue-provider.js';
|
|
7
|
+
import { parseReviewVerdict, type ReviewFinding, type ReviewVerdict } from './review-verdict.js';
|
|
8
|
+
import { type IntakeTriageDecision } from './intake-triage.js';
|
|
9
|
+
/**
|
|
10
|
+
* **`intake <N>`** (prd `issue-intake`, task `intake-tracer-slice-outcome`): the
|
|
11
|
+
* KEYSTONE of the issue front-door. A new, GATE-FREE command — explicit invocation
|
|
12
|
+
* IS the authorization (precedent: `explicit-do-prd-not-gated-by-autoslice`), so
|
|
13
|
+
* `autoTask`/`autoBuild` config does NOT apply — that reads a GitHub issue + its
|
|
14
|
+
* thread through the {@link IssueProvider} seam, runs the decision as a
|
|
15
|
+
* **prompt → VERDICT**, and DISPATCHES on the verdict.
|
|
16
|
+
*
|
|
17
|
+
* The engine shape MIRRORS the review gate (prompt → `approve|block` → dispatch):
|
|
18
|
+
* the decision prompt is an INLINE builder ({@link buildIntakeDecisionSpec}, like
|
|
19
|
+
* `buildTaskingPrd`); the **dispatcher is the testable seam** — a STUBBED verdict
|
|
20
|
+
* (injected, no model/network) drives it, exactly as `ReviewGate` is injected. The
|
|
21
|
+
* prompt's JUDGEMENT is NOT unit-tested (like the review prompt's is not); only the
|
|
22
|
+
* dispatch is.
|
|
23
|
+
*
|
|
24
|
+
* The dispatcher implements the FULL four-outcome decision table (prd
|
|
25
|
+
* `issue-intake` — the source of truth):
|
|
26
|
+
* - **ASK** (not clear enough to act on): `postIssueComment` the next clarifying
|
|
27
|
+
* question; emit NOTHING; STOP.
|
|
28
|
+
* - **TASK** (clear AND fits ONE tracer-bullet task): write
|
|
29
|
+
* `work/backlog/<slug>.md` (`covers: []`, NO `prd:`) carrying `issue: N` (the
|
|
30
|
+
* lone-task closure link, NOT `Fixes #N`), integrate via {@link
|
|
31
|
+
* performIntegration} (default `propose`).
|
|
32
|
+
* - **PRD** (clear AND coherent but >1 task — INCLUDING a coupled-but-SMALL pair,
|
|
33
|
+
* which is NEVER bounced): write the prd file (`work/prds/ready/<slug>.md`) with `issue: N` (+ the gate
|
|
34
|
+
* axes the verdict carried), integrate, STOP (tasking is the separate `do prd:`
|
|
35
|
+
* step).
|
|
36
|
+
* - **BOUNCE** (genuinely UNRELATED concerns — no shared vision): the bounce is
|
|
37
|
+
* TERMINAL (the asks are unrelated and must be re-filed), so intake CLOSES the
|
|
38
|
+
* issue ATOMICALLY — the "file separate issues" text as the closing comment +
|
|
39
|
+
* `reason: not planned` (the honest GitHub-native signal) in ONE `closeIssue`
|
|
40
|
+
* call; emit NOTHING. Intake closes on BOUNCE (as not planned); NEVER on
|
|
41
|
+
* task/prd (CI's close-job closes those via the `issue:` field) / ask.
|
|
42
|
+
*
|
|
43
|
+
* The per-outcome integration KNOBS, the processing LOCK, and event-classification
|
|
44
|
+
* are LATER tasks and are NOT built here (default `propose` is fine here).
|
|
45
|
+
*
|
|
46
|
+
* The AGENT only DRAFTS (returns the verdict object); the RUNNER (this dispatcher)
|
|
47
|
+
* owns every git/seam side-effect — the write + integrate (and, in later tasks,
|
|
48
|
+
* the comment + label ops). The agent is git-free AND seam-free: the in-band
|
|
49
|
+
* boundary (the SAME discipline the build/tasker agents follow).
|
|
50
|
+
*/
|
|
51
|
+
/**
|
|
52
|
+
* The four outcomes the decision prompt classifies an issue into (the decision
|
|
53
|
+
* table). EXPAND step (prd
|
|
54
|
+
* `prd-to-spec-vocabulary-cutover-and-migration-command`): the `spec` outcome
|
|
55
|
+
* names the "clear + coherent but >1 task" classification (a parent SPEC). HARD
|
|
56
|
+
* CUTOVER (contract step): the legacy `prd` outcome token is GONE — the prompt
|
|
57
|
+
* emits `spec` and the parser rejects any other token.
|
|
58
|
+
*/
|
|
59
|
+
export type IntakeOutcome = 'ask' | 'task' | 'spec' | 'bounce';
|
|
60
|
+
/**
|
|
61
|
+
* The VERDICT the decision prompt returns — `{ask,task,spec,bounce}` + the drafted
|
|
62
|
+
* content for the chosen outcome. THIS code path consumes only the `task` branch's
|
|
63
|
+
* fields (`taskSlug` / `taskTitle` / `taskBody`); the `ask`/`spec`/`bounce`
|
|
64
|
+
* fields are carried on the shape (so the type is stable for the next task) but
|
|
65
|
+
* not dispatched here.
|
|
66
|
+
*/
|
|
67
|
+
export interface IntakeVerdict {
|
|
68
|
+
/** Which outcome the prompt chose for the issue. */
|
|
69
|
+
outcome: IntakeOutcome;
|
|
70
|
+
/**
|
|
71
|
+
* The drafted task's content-derived slug (`task` outcome). The dispatcher
|
|
72
|
+
* SANITISES it (a content-derived slug, never a counter) before writing
|
|
73
|
+
* `work/backlog/<slug>.md`. Falls back to a slug derived from {@link taskTitle}
|
|
74
|
+
* when absent/empty.
|
|
75
|
+
*/
|
|
76
|
+
taskSlug?: string;
|
|
77
|
+
/** The drafted task's `title:` (`task` outcome). */
|
|
78
|
+
taskTitle?: string;
|
|
79
|
+
/**
|
|
80
|
+
* The drafted task BODY (`task` outcome) — the markdown AFTER the frontmatter
|
|
81
|
+
* (the `## What to build` / `## Acceptance criteria` / `## Prompt` sections). The
|
|
82
|
+
* dispatcher writes the frontmatter (slug/title/`covers: []`, NO `prd:`) carrying
|
|
83
|
+
* the lone-task `issue: N` closure link itself; the agent never writes
|
|
84
|
+
* git-visible files.
|
|
85
|
+
*/
|
|
86
|
+
taskBody?: string;
|
|
87
|
+
/**
|
|
88
|
+
* The drafted clarifying question (`ask` outcome) — the dispatcher posts it via
|
|
89
|
+
* `postIssueComment`, emits nothing, and STOPS (a later run resumes from the
|
|
90
|
+
* updated thread).
|
|
91
|
+
*/
|
|
92
|
+
question?: string;
|
|
93
|
+
/**
|
|
94
|
+
* The drafted spec's content-derived slug (`spec` outcome). The dispatcher
|
|
95
|
+
* SANITISES it through `paramCase` (never a counter) before writing the spec
|
|
96
|
+
* file (`work/specs/ready/<slug>.md`). Falls back to a slug derived from {@link specTitle} when
|
|
97
|
+
* absent/empty.
|
|
98
|
+
*/
|
|
99
|
+
specSlug?: string;
|
|
100
|
+
/** The drafted spec's `title:` (`spec` outcome). */
|
|
101
|
+
specTitle?: string;
|
|
102
|
+
/**
|
|
103
|
+
* The drafted spec BODY (`spec` outcome) — the markdown AFTER the frontmatter
|
|
104
|
+
* (`## Problem Statement` / `## Solution` / `## User Stories` / …). The dispatcher
|
|
105
|
+
* writes the frontmatter (title/slug/`issue: N` + the gate axes) itself; the
|
|
106
|
+
* agent never writes git-visible files.
|
|
107
|
+
*/
|
|
108
|
+
specBody?: string;
|
|
109
|
+
/**
|
|
110
|
+
* The spec's gate axes (`spec` outcome) AS THE PROMPT JUDGED THEM — surfaced onto
|
|
111
|
+
* the emitted spec frontmatter (prd `issue-intake` US #8: "the emitted artifact
|
|
112
|
+
* carries … its own gate axes"). Both omitted (undeclared) by default; the prompt
|
|
113
|
+
* sets `specHumanOnly: true` when a human should drive the TASKING and/or
|
|
114
|
+
* `specNeedsAnswers: true` when open questions remain.
|
|
115
|
+
*/
|
|
116
|
+
specHumanOnly?: boolean;
|
|
117
|
+
specNeedsAnswers?: boolean;
|
|
118
|
+
/**
|
|
119
|
+
* The drafted bounce message (`bounce` outcome) — the dispatcher carries it as
|
|
120
|
+
* the CLOSING COMMENT on the atomic `closeIssue` ("please file separate issues")
|
|
121
|
+
* with `reason: not planned`, then emits nothing. A bounce is TERMINAL, so the
|
|
122
|
+
* issue is CLOSED (not left open).
|
|
123
|
+
*/
|
|
124
|
+
bounceMessage?: string;
|
|
125
|
+
}
|
|
126
|
+
/** The terminal status of one `intake <N>` run. */
|
|
127
|
+
export type IntakeRunOutcome = 'tasked' | 'asked' | 'spec-written' | 'bounced' | 'no-new-input' | 'already-terminal' | 'locked' | 'lock-failed' | 'agent-failed' | 'stale' | 'usage-error';
|
|
128
|
+
export interface IntakeResult {
|
|
129
|
+
exitCode: 0 | 1 | 4;
|
|
130
|
+
outcome: IntakeRunOutcome;
|
|
131
|
+
/** The issue number acted on. */
|
|
132
|
+
issueNumber: number;
|
|
133
|
+
/** The slug of the emitted artifact (task OR prd outcome). */
|
|
134
|
+
emittedSlug?: string;
|
|
135
|
+
/** Repo-relative path of the emitted artifact (task OR prd outcome). */
|
|
136
|
+
emitted?: string;
|
|
137
|
+
/** True iff a comment was posted on the issue (ask / bounce outcomes). */
|
|
138
|
+
commented?: boolean;
|
|
139
|
+
/**
|
|
140
|
+
* True iff the ISSUE was closed (the BOUNCE outcome — a terminal bounce closes
|
|
141
|
+
* the issue atomically as `not planned`). Additive (mirrors {@link commented}),
|
|
142
|
+
* so CI / callers can observe the close. Never set on ask/task/prd.
|
|
143
|
+
*/
|
|
144
|
+
closed?: boolean;
|
|
145
|
+
/** Human-readable summary of the terminal condition. */
|
|
146
|
+
message: string;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* The DECISION step: given the issue + thread, return a VERDICT. Tests inject a
|
|
150
|
+
* canned verdict (the STUBBED seam that drives the dispatcher, no model/network).
|
|
151
|
+
* Production wires the harness through {@link harnessIntakeDecision}.
|
|
152
|
+
*/
|
|
153
|
+
export type IntakeDecider = (input: {
|
|
154
|
+
cwd: string;
|
|
155
|
+
issue: Issue;
|
|
156
|
+
comments: IssueComment[];
|
|
157
|
+
prompt: string;
|
|
158
|
+
env?: NodeJS.ProcessEnv;
|
|
159
|
+
}) => Promise<IntakeVerdict>;
|
|
160
|
+
export interface PerformIntakeOptions {
|
|
161
|
+
/** The issue number to intake (`intake <N>`). */
|
|
162
|
+
issueNumber: number;
|
|
163
|
+
/** The working clone/checkout the intake runs in. */
|
|
164
|
+
cwd: string;
|
|
165
|
+
/** Name of the arbiter git remote. Defaults to `origin`. */
|
|
166
|
+
arbiter?: string;
|
|
167
|
+
/**
|
|
168
|
+
* The issue seam (read the issue + thread). Tests inject a STUB; production
|
|
169
|
+
* defaults to {@link GitHubIssueProvider} (the only place `gh` is shelled out).
|
|
170
|
+
*/
|
|
171
|
+
issueProvider?: IssueProvider;
|
|
172
|
+
/**
|
|
173
|
+
* The DECISION seam (prompt → verdict). Tests inject a CANNED verdict (no
|
|
174
|
+
* model/network) — this is the unit-test target. Production wires the harness.
|
|
175
|
+
*/
|
|
176
|
+
decide?: IntakeDecider;
|
|
177
|
+
/**
|
|
178
|
+
* The LONE-TASK bounded-review seam (prompt → review verdict). After a `task`
|
|
179
|
+
* verdict and BEFORE the write/integrate, {@link dispatchTask} runs a bounded
|
|
180
|
+
* (3-round, HARD-CAPPED) adversarial self-review on the SINGLE drafted task
|
|
181
|
+
* through this seam (observation
|
|
182
|
+
* `intake-lone-task-skips-adversarial-review-the-prd-path-gets`, rulings A/B/C).
|
|
183
|
+
* Tests inject a CANNED review verdict (no model/network) — the new testable
|
|
184
|
+
* seam; production wires the harness ({@link harnessLoneTaskReviewGate}). It
|
|
185
|
+
* mirrors {@link decide}'s injectable shape, NOT the tasker loop (which is a
|
|
186
|
+
* SET-level reviewer this never imports/calls).
|
|
187
|
+
*/
|
|
188
|
+
reviewTask?: LoneTaskReviewGate;
|
|
189
|
+
/** The harness seam used when {@link decide} is omitted; defaults to the null adapter. */
|
|
190
|
+
harness?: Harness;
|
|
191
|
+
/** The configured agent command the harness shells out to (null adapter). */
|
|
192
|
+
agentCmd?: string;
|
|
193
|
+
/** The model routing intent forwarded to the harness (ADR §13). */
|
|
194
|
+
model?: string;
|
|
195
|
+
/** The HOST-ONLY sessions root for the pi session file. */
|
|
196
|
+
sessionsDir?: string;
|
|
197
|
+
/**
|
|
198
|
+
* The PER-OUTCOME integration modes (prd `issue-intake` US #9) the emitted artifact integrates
|
|
199
|
+
* THROUGH the shared core with. Because `intake` decides the artifact TYPE at
|
|
200
|
+
* RUNTIME, the mode is keyed per type: an emitted task integrates with
|
|
201
|
+
* `integration.task`, an emitted prd with `integration.prd` (`propose` =
|
|
202
|
+
* push the `work/<slug>` branch + open a PR, NO `main` touch; `merge` = land on
|
|
203
|
+
* `main`). The CLI resolves this from the granular + aggregate flags via
|
|
204
|
+
* {@link resolveIntakeIntegrationModes}; ask/bounce emit nothing, so the modes
|
|
205
|
+
* are no-ops for them. Unset ⇒ propose for both.
|
|
206
|
+
*/
|
|
207
|
+
integration?: IntakeIntegrationModes;
|
|
208
|
+
/**
|
|
209
|
+
* **The ORIGIN-TRUST verdict, passed IN** (task
|
|
210
|
+
* `untrusted-origin-forces-build-propose`; the `--origin-trust <trusted|untrusted>`
|
|
211
|
+
* CLI flag). `intake` STAMPS `origin: issue` + this `originTrust` onto every prd/
|
|
212
|
+
* task it emits, so the author-trust signal SURVIVES the prd/task merge
|
|
213
|
+
* boundary (a landed-on-main artifact otherwise erases how it was born, the
|
|
214
|
+
* laundering gap). `intake` does NOT resolve trust itself: the verdict is CI's
|
|
215
|
+
* POLICY, computed in the `intake.yml` shell from the SAME `author_association`
|
|
216
|
+
* case as the integration flags and threaded IN here (preserving the ~L296
|
|
217
|
+
* boundary). UNSET means the artifact is emitted UNSTAMPED, read as `human`/trusted:
|
|
218
|
+
* a LOCAL `dorfl intake <N>` (no CI shell, no `--origin-trust`) is the
|
|
219
|
+
* human-IS-the-checkpoint path, gate-free exactly as `do`.
|
|
220
|
+
*/
|
|
221
|
+
originTrust?: OriginTrust;
|
|
222
|
+
/**
|
|
223
|
+
* **The PR-INTENT axis** (config `noPR`, ADR §6): when `true`, intake's propose
|
|
224
|
+
* emissions push the branch but skip the PR (the explicit suppress-PR intent).
|
|
225
|
+
* NOT a provider choice — the provider is purely arbiter-derived. Unset/false ⇒
|
|
226
|
+
* the PR opens normally.
|
|
227
|
+
*/
|
|
228
|
+
noPR?: boolean;
|
|
229
|
+
/**
|
|
230
|
+
* **The per-repo PRD-PLACEMENT default, passed IN** (prd
|
|
231
|
+
* `staging-pool-position-gate-and-trust-model` US #2/#5, task
|
|
232
|
+
* `pre-prd-staging-pool-split-and-untrusted-prd-placement`). The resolved
|
|
233
|
+
* per-repo default landing for `intake`-authored prds (`pre-proposed` =
|
|
234
|
+
* staging; `ready` = the auto-tasking pool), fed as the CONFIGURED-DEFAULT rung
|
|
235
|
+
* into the shared placement resolver (`src/placement.ts`). The resolver
|
|
236
|
+
* overlays an EXPLICIT operator flag ({@link explicitSpecsLandIn}, top) and
|
|
237
|
+
* the UNTRUSTED-ORIGIN force (`originTrust: untrusted` ⇒ staging) on top.
|
|
238
|
+
* Unset ⇒ the resolver's built-in floor applies (`staging` = `prds/proposed/`,
|
|
239
|
+
* the conservative landing). The PRD TWIN of `tasksLandIn` on the tasker
|
|
240
|
+
* path — one resolver, two lifecycles.
|
|
241
|
+
*/
|
|
242
|
+
specsLandIn?: SpecsLandIn;
|
|
243
|
+
/**
|
|
244
|
+
* **The OPERATOR's EXPLICIT spec-placement override** (the TOP precedence
|
|
245
|
+
* rung). When set, the runner-deterministic resolver lands the spec HERE
|
|
246
|
+
* regardless of `originTrust` or {@link specsLandIn} — the positional
|
|
247
|
+
* analogue of `explicitMerge` overriding the untrusted-origin
|
|
248
|
+
* build-propose rule ("the operator is present; CLI always wins, no
|
|
249
|
+
* special force-key"). Set ONLY when the operator typed
|
|
250
|
+
* `--specs-land-in <where>`; never when the value came from config.
|
|
251
|
+
*/
|
|
252
|
+
explicitSpecsLandIn?: SpecsLandIn;
|
|
253
|
+
/**
|
|
254
|
+
* Optional FULLY-FORMED review provider INSTANCE used VERBATIM (the SAME seam
|
|
255
|
+
* `run`/`do` expose; forwarded to `performIntegration` as `providerInstance`).
|
|
256
|
+
* Tests/embeddings inject a stubbed `GitHubProvider` (a custom `gh` path) to
|
|
257
|
+
* drive intake's propose pipeline OFFLINE. The resolved provider OBJECT, NOT a
|
|
258
|
+
* config override. Unset ⇒ the core selects from the arbiter URL.
|
|
259
|
+
*/
|
|
260
|
+
providerInstance?: ReviewProvider;
|
|
261
|
+
/**
|
|
262
|
+
* The optional runner IDENTITY (a bot), threaded from host-only
|
|
263
|
+
* `config.identity`. It scopes intake's GIT + provider operations — the `gh`
|
|
264
|
+
* issue ops (read/label/comment/close), the push, and the PR — via process-
|
|
265
|
+
* scoped env overrides. It is NEVER applied to the intake AGENT launches (the
|
|
266
|
+
* decision agent + the lone-task review agent), which stay ambient: an agent
|
|
267
|
+
* must not act as the bot. Absent ⇒ ambient (today's behaviour).
|
|
268
|
+
*/
|
|
269
|
+
identity?: Identity;
|
|
270
|
+
/** Environment for child git/agent processes (the AGENT-launch ambient env). */
|
|
271
|
+
env?: NodeJS.ProcessEnv;
|
|
272
|
+
/** Sink for human-readable progress notes. */
|
|
273
|
+
note?: (message: string) => void;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* **The STAGED-prds dir** (prd `staging-pool-position-gate-and-trust-model`,
|
|
277
|
+
* task `pre-prd-staging-pool-split-and-untrusted-prd-placement`, governing
|
|
278
|
+
* ADR `placement-is-runner-deterministic-humanonly-is-agent-judgement`). When
|
|
279
|
+
* the runner-deterministic placement resolver picks the staging side for an
|
|
280
|
+
* `intake`-authored prd, the runner writes the prd file HERE instead of in
|
|
281
|
+
* `work/prds/ready/`. An item born in `prds/proposed/` is durable + readable but NOT in
|
|
282
|
+
* the tasking candidate POOL (`work/prds/ready/` is the pool). A runner/human-owned promotion
|
|
283
|
+
* ({@link promoteFromPreSpec} in `needs-attention.ts`) moves an approved prd
|
|
284
|
+
* `prds/proposed/ → prds/ready/` to make it taskable.
|
|
285
|
+
*/
|
|
286
|
+
export declare const STAGED_SPECS_DIR: string;
|
|
287
|
+
/**
|
|
288
|
+
* The emitted artifact TYPE `intake` decides at RUNTIME — a `task` verdict emits
|
|
289
|
+
* `work/backlog/<slug>.md`, a `prd` verdict emits the prd file (`work/prds/ready/<slug>.md`). The two
|
|
290
|
+
* granular flag axes (`--merge-task`/`--propose-task` vs `--merge-spec`/
|
|
291
|
+
* `--propose-spec`) are keyed on this. (ask/bounce emit NOTHING, so the modes are
|
|
292
|
+
* no-ops for them.)
|
|
293
|
+
*/
|
|
294
|
+
export type IntakeArtifactType = 'task' | 'spec';
|
|
295
|
+
/**
|
|
296
|
+
* The PER-OUTCOME integration mode FLAG SET (prd `issue-intake` US #9). Because
|
|
297
|
+
* `intake` decides the artifact TYPE at runtime, a single `--merge`/`--propose`
|
|
298
|
+
* cannot express a type-conditional policy ("merge a prd but propose a task") —
|
|
299
|
+
* hence the four GRANULAR per-type flags layered over the two AGGREGATES:
|
|
300
|
+
*
|
|
301
|
+
* - **granular:** `--merge-spec`/`--propose-spec` apply iff the outcome is a spec;
|
|
302
|
+
* `--merge-task`/`--propose-task` apply iff it is a task.
|
|
303
|
+
* - **aggregates:** `--merge` = merge BOTH types; `--propose` = propose BOTH.
|
|
304
|
+
*
|
|
305
|
+
* `intake` owns only these KNOBS; WHICH knobs CI sets (from gate state +
|
|
306
|
+
* author-trust) is CI's POLICY, authored in `runner-in-ci` — NOT here.
|
|
307
|
+
*/
|
|
308
|
+
export interface IntakeIntegrationFlags {
|
|
309
|
+
/** Aggregate: merge BOTH a task and a prd (the broad knob, overridden per type). */
|
|
310
|
+
merge?: boolean;
|
|
311
|
+
/** Aggregate: propose BOTH a task and a prd. */
|
|
312
|
+
propose?: boolean;
|
|
313
|
+
/** Granular: merge a spec (overrides the aggregate for the spec outcome). */
|
|
314
|
+
mergeSpec?: boolean;
|
|
315
|
+
/** Granular: propose a spec (overrides the aggregate for the spec outcome). */
|
|
316
|
+
proposeSpec?: boolean;
|
|
317
|
+
/** Granular: merge a task (overrides the aggregate for the task outcome). */
|
|
318
|
+
mergeTask?: boolean;
|
|
319
|
+
/** Granular: propose a task (overrides the aggregate for the task outcome). */
|
|
320
|
+
proposeTask?: boolean;
|
|
321
|
+
}
|
|
322
|
+
/** Both per-type integration modes, resolved from the flag set in ONE eager pass. */
|
|
323
|
+
export interface IntakeIntegrationModes {
|
|
324
|
+
/** The mode an EMITTED task integrates with. */
|
|
325
|
+
task: IntegrationMode;
|
|
326
|
+
/**
|
|
327
|
+
* The mode an EMITTED spec integrates with. `spec` is the CANONICAL key (prd →
|
|
328
|
+
* spec cutover); the user-facing `--merge-spec`/`--propose-spec` flags that FEED
|
|
329
|
+
* it carry the same `spec` spelling (the cli-flag rename landed in batch 4f).
|
|
330
|
+
*/
|
|
331
|
+
spec: IntegrationMode;
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* The PURE per-outcome integration mode resolution (prd `issue-intake` US #9 —
|
|
335
|
+
* the canonical table). Given ONLY the flag set, resolve BOTH per-type modes in
|
|
336
|
+
* one eager pass (so a usage error is caught before the runtime verdict is even
|
|
337
|
+
* known). The rules, all decided in the prd:
|
|
338
|
+
*
|
|
339
|
+
* - **unset ⇒ propose for BOTH** (conservative default; matches `do`).
|
|
340
|
+
* - **aggregates:** `--merge` ⇒ merge both; `--propose` ⇒ propose both (this axis
|
|
341
|
+
* COMPOSES the existing {@link integrationFromFlags}, reusing its mutual
|
|
342
|
+
* exclusion + error message).
|
|
343
|
+
* - **granular routes per type:** `--merge-spec` merges a spec (and leaves a task at
|
|
344
|
+
* the aggregate/default), etc.
|
|
345
|
+
* - **GRANULAR OVERRIDES AGGREGATE:** `--merge --propose-task` ⇒ merge a spec,
|
|
346
|
+
* propose a task.
|
|
347
|
+
* - **same type + both modes is a usage ERROR:** `--merge-spec --propose-spec` (and
|
|
348
|
+
* `--merge-task --propose-task`), and the aggregate `--merge --propose`.
|
|
349
|
+
*
|
|
350
|
+
* Throws (a usage error) on any mutually-exclusive pair. The dispatcher picks the
|
|
351
|
+
* field matching the runtime verdict's type; ask/bounce never integrate, so the
|
|
352
|
+
* modes are no-ops for them.
|
|
353
|
+
*
|
|
354
|
+
* `defaultMode` is the FALLBACK when NEITHER a granular nor the aggregate flag
|
|
355
|
+
* selects a mode for a type — it defaults to `propose` (so the pure table reads
|
|
356
|
+
* "unset ⇒ propose for both"), but the CLI passes the per-repo/global
|
|
357
|
+
* config-resolved mode so the established precedence chain (flag > per-repo >
|
|
358
|
+
* global > default) is preserved, exactly as `do`/`complete` resolve it.
|
|
359
|
+
*/
|
|
360
|
+
export declare function resolveIntakeIntegrationModes(flags: IntakeIntegrationFlags, defaultMode?: IntegrationMode): IntakeIntegrationModes;
|
|
361
|
+
/**
|
|
362
|
+
* Run `intake <N>` end-to-end (the LOCAL one-shot). Never throws for the expected
|
|
363
|
+
* agent-failed / stale / usage cases — those are returned with the corresponding
|
|
364
|
+
* exit code and outcome. The runner owns all git/seam side-effects; the agent only
|
|
365
|
+
* DRAFTS the verdict.
|
|
366
|
+
*/
|
|
367
|
+
export declare function performIntake(options: PerformIntakeOptions): Promise<IntakeResult>;
|
|
368
|
+
/**
|
|
369
|
+
* Build the INFORMATIONAL completion-comment BODY (with its FULL `created` marker)
|
|
370
|
+
* for a SUCCESSFUL `task` / `spec` outcome — the PURE, seam-free core of
|
|
371
|
+
* {@link postCompletionComment}, exported so both link variants are unit-testable
|
|
372
|
+
* without a live seam. The comment:
|
|
373
|
+
*
|
|
374
|
+
* - reports `task created` / `spec created` framed as CREATED — NEVER "issue
|
|
375
|
+
* resolved/closed" (intake never closes on the task/spec path).
|
|
376
|
+
* - LINKS the artifact by INTEGRATION MODE: the PR `url` in propose, the landed
|
|
377
|
+
* `commit` (the additive {@link IntegrateResult.commit}) in merge. A degraded
|
|
378
|
+
* propose (no `url`) or a failed merge-tip read (no `commit`) simply OMITS the
|
|
379
|
+
* link — the comment still confirms what was created (the artifact is safe on the
|
|
380
|
+
* branch/main regardless). No prd link beyond the slug.
|
|
381
|
+
* - carries the FULL intake MARKER via the SHARED {@link stampIntakeMarker} helper
|
|
382
|
+
* (`kind=created slug=<slug> seen=<id>,…`) so the triage's `already-terminal`
|
|
383
|
+
* branch consumes it — the comment cannot re-trigger intake.
|
|
384
|
+
*/
|
|
385
|
+
export declare function composeIntakeCompletionComment(params: {
|
|
386
|
+
kind: 'task' | 'spec';
|
|
387
|
+
slug: string;
|
|
388
|
+
integration: IntegrateResult | undefined;
|
|
389
|
+
seen: string[];
|
|
390
|
+
}): string;
|
|
391
|
+
/**
|
|
392
|
+
* Render the backlog task file: the frontmatter (`title`/`slug`/`covers: []`, NO
|
|
393
|
+
* `prd:` — its own source of truth, prd `issue-intake` decision table) carrying the lone-task
|
|
394
|
+
* `issue: N` closure link + the drafted body. The task closes its source issue
|
|
395
|
+
* via its `issue:` field (the provider-agnostic link a FUTURE CI close-job reads
|
|
396
|
+
* from folder + field state); it carries NO `Fixes #N` (a deferred GitHub-only
|
|
397
|
+
* optimisation, structurally unplaceable on the `--merge` path). The number is
|
|
398
|
+
* the task's own closure path — `issue:` XOR `prd:`; a lone task never carries a
|
|
399
|
+
* `prd:` (prd `issue-intake` decision table). When the agent drafted no body, a thin default
|
|
400
|
+
* scaffold keeps the file a valid task.
|
|
401
|
+
*/
|
|
402
|
+
export declare function renderBacklogTask(params: {
|
|
403
|
+
slug: string;
|
|
404
|
+
title: string;
|
|
405
|
+
body: string | undefined;
|
|
406
|
+
issueNumber: number;
|
|
407
|
+
/**
|
|
408
|
+
* The origin-trust STAMP (task `untrusted-origin-forces-build-propose`).
|
|
409
|
+
* Present ⇒ emit `origin: issue` + `originTrust: <value>` so the becomes-code
|
|
410
|
+
* checkpoint survives the merge boundary. UNSET (a local intake, no CI shell)
|
|
411
|
+
* ⇒ NO stamp (the human running intake IS the checkpoint ⇒ human/trusted).
|
|
412
|
+
*/
|
|
413
|
+
originTrust?: OriginTrust;
|
|
414
|
+
}): string;
|
|
415
|
+
/**
|
|
416
|
+
* Render the emitted prd file: the frontmatter (`title`/`slug` + the loop-closure
|
|
417
|
+
* `issue: N` + the gate axes the prompt JUDGED) followed by the drafted prd body.
|
|
418
|
+
* For a FANNED prd the `issue: N` lives ONLY on the prd — never duplicated across
|
|
419
|
+
* the N fanned tasks, which reach it via `task.prd: → prd issue:` (a fanned
|
|
420
|
+
* task carries `prd:`, NOT its own `issue:`; the lone-task outcome is the only
|
|
421
|
+
* one that puts `issue:` on a task). The close JOB reaches the prd's number via
|
|
422
|
+
* `task.prd: → prd issue:`. The gate axes (`humanOnly`/`needsAnswers`) are emitted ONLY when the
|
|
423
|
+
* verdict declared them `true` — an omitted axis is `undefined` (undeclared), the
|
|
424
|
+
* same convention `frontmatter.ts` parses. When the agent drafted no body, a thin
|
|
425
|
+
* default scaffold keeps the file a valid prd that `do prd:` can later task.
|
|
426
|
+
*/
|
|
427
|
+
export declare function renderSpec(params: {
|
|
428
|
+
slug: string;
|
|
429
|
+
title: string;
|
|
430
|
+
body: string | undefined;
|
|
431
|
+
issueNumber: number;
|
|
432
|
+
humanOnly: boolean | undefined;
|
|
433
|
+
needsAnswers: boolean | undefined;
|
|
434
|
+
/**
|
|
435
|
+
* The origin-trust STAMP (task `untrusted-origin-forces-build-propose`).
|
|
436
|
+
* Present ⇒ emit `origin: issue` + `originTrust: <value>`, PROPAGATED onto every
|
|
437
|
+
* emitted task by the tasker so the build transition can read it. UNSET (a
|
|
438
|
+
* local intake) ⇒ NO stamp (human/trusted).
|
|
439
|
+
*/
|
|
440
|
+
originTrust?: OriginTrust;
|
|
441
|
+
}): string;
|
|
442
|
+
/**
|
|
443
|
+
* Parse the decision agent's emitted VERDICT out of its (possibly prose-wrapped /
|
|
444
|
+
* fenced) textual output into an {@link IntakeVerdict} — the PRODUCTION wire
|
|
445
|
+
* between the launched agent and the already-built dispatcher, modeled 1:1 on the
|
|
446
|
+
* review gate's `parseReviewVerdict` twin (`review-gate.ts`). It pulls the first
|
|
447
|
+
* JSON object carrying an `"outcome"` field via the SHARED
|
|
448
|
+
* {@link extractJsonObjectSpan} (NOT a forked second "first JSON object in agent
|
|
449
|
+
* prose" extractor — the review gates anchor on `"verdict"`, intake on
|
|
450
|
+
* `"outcome"`; same need, one implementation — coherence), `JSON.parse`s it, and
|
|
451
|
+
* validates the shape: `outcome ∈ {ask,task,spec,bounce}`.
|
|
452
|
+
*
|
|
453
|
+
* The per-outcome fields map 1:1 onto {@link IntakeVerdict} (`task` →
|
|
454
|
+
* taskSlug?/taskTitle/taskBody, `spec` →
|
|
455
|
+
* specSlug?/specTitle/specBody/specHumanOnly?/specNeedsAnswers?, `ask` → question,
|
|
456
|
+
* `bounce` → bounceMessage). Missing OPTIONALS are tolerated — the dispatcher
|
|
457
|
+
* already has fallbacks (slug-from-title, the thin comment/scaffold defaults).
|
|
458
|
+
*
|
|
459
|
+
* THROWS a clear error on: no JSON object present, invalid JSON, or an `outcome`
|
|
460
|
+
* not in the set. The caller (`decideAndDispatch`) maps any throw onto the
|
|
461
|
+
* `agent-failed` outcome (exit 1) — a malformed verdict degrades honestly, never
|
|
462
|
+
* a crash and never a silent dispatch.
|
|
463
|
+
*/
|
|
464
|
+
export declare function parseIntakeVerdict(output: string): IntakeVerdict;
|
|
465
|
+
/**
|
|
466
|
+
* Backwards-compatible alias for {@link ReviewFinding} (task
|
|
467
|
+
* `review-protocol-doc-and-shared-machinery`). Existing imports keep compiling;
|
|
468
|
+
* new code should reach for `ReviewFinding` from `review-verdict.ts`.
|
|
469
|
+
*/
|
|
470
|
+
export type LoneTaskReviewFinding = ReviewFinding;
|
|
471
|
+
/**
|
|
472
|
+
* The lone-task review verdict shape is now the UNIFIED {@link ReviewVerdict}.
|
|
473
|
+
* The lone-task caller consumes the `edit` / `questions` channels of the wide
|
|
474
|
+
* type; other review callers consume different channels. The SET/graph/overlap
|
|
475
|
+
* lenses are still N=1-OFF in the PROMPT (intake never spawns the tasker loop's
|
|
476
|
+
* set-level sinks); the type itself is shared.
|
|
477
|
+
*/
|
|
478
|
+
export type LoneTaskReviewVerdict = ReviewVerdict;
|
|
479
|
+
/** What the lone-task review gate needs to launch / answer ONE review round. */
|
|
480
|
+
export interface LoneTaskReviewGateInput {
|
|
481
|
+
/** The drafted task's slug (the candidate under review). */
|
|
482
|
+
slug: string;
|
|
483
|
+
/** The source issue number (the destination check's target behaviour). */
|
|
484
|
+
issueNumber: number;
|
|
485
|
+
/** The drafted task's title (the candidate under review). */
|
|
486
|
+
title: string;
|
|
487
|
+
/** The drafted task BODY as it stands THIS round (after any prior in-memory edits). */
|
|
488
|
+
body: string;
|
|
489
|
+
/** Which review ROUND this is (1-based, 1..{@link LONE_TASK_REVIEW_MAX_ROUNDS}). */
|
|
490
|
+
round: number;
|
|
491
|
+
/** The working clone/checkout the review runs in. */
|
|
492
|
+
cwd: string;
|
|
493
|
+
/** Environment for the review-agent launch. */
|
|
494
|
+
env?: NodeJS.ProcessEnv;
|
|
495
|
+
}
|
|
496
|
+
/**
|
|
497
|
+
* The lone-task review SEAM: run ONE adversarial review round on the SINGLE
|
|
498
|
+
* drafted task and return a parsed verdict (incl. an optional in-memory edit).
|
|
499
|
+
* Tests inject a canned verdict (no model/network) — the new testable seam, mirroring
|
|
500
|
+
* {@link IntakeDecider}. Production uses {@link harnessLoneTaskReviewGate}.
|
|
501
|
+
*/
|
|
502
|
+
export type LoneTaskReviewGate = (input: LoneTaskReviewGateInput) => Promise<LoneTaskReviewVerdict>;
|
|
503
|
+
/** Options for the production harness-backed lone-task review gate. */
|
|
504
|
+
export interface HarnessLoneTaskReviewGateOptions {
|
|
505
|
+
/** The harness seam used to launch the fresh-context review agent. */
|
|
506
|
+
harness?: Harness;
|
|
507
|
+
/** The configured agent command the harness shells out to. */
|
|
508
|
+
agentCmd?: string;
|
|
509
|
+
/** The model routing intent forwarded to the harness (ADR §13). */
|
|
510
|
+
model?: string;
|
|
511
|
+
/** The HOST-ONLY sessions root for the review session file. */
|
|
512
|
+
sessionsDir?: string;
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* The PRODUCTION lone-task review gate: launch the `review` SKILL as an agent
|
|
516
|
+
* through the EXISTING harness seam (the SAME wire {@link runDecision} uses), then
|
|
517
|
+
* PARSE the emitted `{verdict, findings, edit, questions}` via
|
|
518
|
+
* {@link parseLoneTaskReviewVerdict}. The agent makes the review JUDGEMENT (the
|
|
519
|
+
* per-task + destination lenses on the ONE task); this gate launches it and parses
|
|
520
|
+
* its verdict. A launch failure THROWS (the dispatcher's try/catch maps it onto
|
|
521
|
+
* `agent-failed`). MIRRORS {@link harnessTaskReviewGate} WITHOUT importing it.
|
|
522
|
+
*/
|
|
523
|
+
export declare function harnessLoneTaskReviewGate(options?: HarnessLoneTaskReviewGateOptions): LoneTaskReviewGate;
|
|
524
|
+
/**
|
|
525
|
+
* Build the LONE-TASK review PROMPT: instruct a fresh-context agent to apply
|
|
526
|
+
* the **review discipline** (`work/protocol/REVIEW-PROTOCOL.md`) to the SINGLE
|
|
527
|
+
* drafted task — per-task well-formedness + the destination check ("if this
|
|
528
|
+
* task is built exactly as written, do we end up with the behaviour issue #N
|
|
529
|
+
* asks for?"). The SET / graph / overlap lenses are N=1 and EXPLICITLY OFF.
|
|
530
|
+
* A round may propose an `edit` (the FULL replacement task body) the runner
|
|
531
|
+
* applies IN MEMORY and re-reviews; converge when a round finds NO new blocking
|
|
532
|
+
* issue, else carry the open `questions` into the ASK comment for the human.
|
|
533
|
+
*
|
|
534
|
+
* The discipline body and the JSON-emitted-shape contract are SHARED helpers
|
|
535
|
+
* (task `review-protocol-doc-and-shared-machinery`); this builder owns ONLY
|
|
536
|
+
* the lone-task-specific framing.
|
|
537
|
+
*/
|
|
538
|
+
export declare function buildLoneTaskReviewPrompt(input: LoneTaskReviewGateInput): string;
|
|
539
|
+
/**
|
|
540
|
+
* Backwards-compatible alias for the unified {@link parseReviewVerdict}
|
|
541
|
+
* (task `review-protocol-doc-and-shared-machinery`). The lone-task review
|
|
542
|
+
* verdict is now the unified {@link ReviewVerdict}; the alias keeps existing
|
|
543
|
+
* tests/callers compiling.
|
|
544
|
+
*/
|
|
545
|
+
export declare const parseLoneTaskReviewVerdict: typeof parseReviewVerdict;
|
|
546
|
+
/**
|
|
547
|
+
* Build the intake decision PRD (an inline prompt builder, like `buildTaskingPrd`
|
|
548
|
+
* in `tasking.ts` / the reviewer prompts in `review-gate.ts` — NOT a standalone
|
|
549
|
+
* asset/`.md` file; no such convention exists in this package). It encodes the FULL
|
|
550
|
+
* four-outcome decision table (prd `issue-intake` — the source of truth) and the
|
|
551
|
+
* three DECISION AIDS stated once there:
|
|
552
|
+
*
|
|
553
|
+
* 1. the **"clear?" bar** = `to-task`/`needsAnswers`' "would I build the wrong
|
|
554
|
+
* thing if I guessed?" — if a material requirement/scope/acceptance question is
|
|
555
|
+
* unanswered, ASK (never guess a spec from a vague issue);
|
|
556
|
+
* 2. the **"one task?" bar** = `to-task`' tracer-bullet test (one thin end-to-end
|
|
557
|
+
* path, demoable on its own) — fits → TASK, needs splitting → PRD;
|
|
558
|
+
* 3. **PRD vs BOUNCE** turns on a **SHARED VISION**: coupled (even if small) → PRD;
|
|
559
|
+
* genuinely unrelated → BOUNCE. Size NEVER forces a bounce — only unrelatedness
|
|
560
|
+
* (the over-bounce guard: a coupled-but-small pair gets a light PRD, never a
|
|
561
|
+
* bounce).
|
|
562
|
+
*
|
|
563
|
+
* The prompt anchors to `to-task`/`to-spec` for the task/spec SHAPES it drafts. Its
|
|
564
|
+
* JUDGEMENT is NOT unit-tested (exactly as the review prompt's is not) — only the
|
|
565
|
+
* dispatch is. The agent only DRAFTS the verdict + its content; it does NO git/seam
|
|
566
|
+
* ops (the runner owns every postComment / write / integrate — the in-band boundary).
|
|
567
|
+
*/
|
|
568
|
+
export declare function buildIntakeDecisionSpec(issue: Issue, comments: IssueComment[], triage?: IntakeTriageDecision): string;
|
|
569
|
+
//# sourceMappingURL=intake.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intake.d.ts","sourceRoot":"","sources":["../src/intake.ts"],"names":[],"mappings":"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"}
|