dorfl 0.1.0 → 0.1.2
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 +3 -3
- package/dist/advance-ci-template.js +1 -1
- package/dist/advance-ci-template.js.map +1 -1
- package/dist/advance-classify.d.ts +5 -5
- package/dist/advance-classify.d.ts.map +1 -1
- package/dist/advance-classify.js +4 -4
- package/dist/advance-drivers.d.ts +7 -7
- package/dist/advance-drivers.d.ts.map +1 -1
- package/dist/advance-drivers.js +5 -5
- package/dist/advance-drivers.js.map +1 -1
- package/dist/advance-isolated.d.ts +3 -3
- package/dist/advance-isolated.d.ts.map +1 -1
- package/dist/advance-isolated.js +1 -1
- package/dist/advance-lifecycle-template.d.ts +2 -2
- package/dist/advance-lifecycle-template.js +9 -9
- package/dist/advance-lifecycle-template.js.map +1 -1
- package/dist/advance-loop-driver.d.ts +3 -3
- package/dist/advance-loop-driver.d.ts.map +1 -1
- package/dist/advance-loop-driver.js +1 -1
- package/dist/advance-treeless-publish.d.ts +1 -1
- package/dist/advance.d.ts +11 -11
- package/dist/advance.d.ts.map +1 -1
- package/dist/advance.js +21 -21
- package/dist/advance.js.map +1 -1
- package/dist/advancing-lock.d.ts +1 -1
- package/dist/advancing-lock.js +5 -5
- package/dist/apply-decide.d.ts +2 -2
- package/dist/apply-decide.js +2 -2
- package/dist/apply-merge-action.d.ts +4 -4
- package/dist/apply-merge-action.js +2 -2
- package/dist/apply-persist.d.ts +5 -5
- package/dist/apply-persist.d.ts.map +1 -1
- package/dist/apply-persist.js +7 -7
- package/dist/apply-persist.js.map +1 -1
- package/dist/buildable-body.d.ts +14 -14
- package/dist/buildable-body.js +9 -9
- package/dist/claim-cas.d.ts +3 -3
- package/dist/claim-cas.js +1 -1
- package/dist/claim-cas.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +83 -77
- package/dist/cli.js.map +1 -1
- package/dist/close-job-template.d.ts +3 -3
- package/dist/close-job-template.js +8 -8
- package/dist/close-job.d.ts +8 -8
- package/dist/close-job.js +25 -25
- package/dist/close-job.js.map +1 -1
- package/dist/complete.d.ts +3 -3
- package/dist/complete.js +8 -8
- package/dist/complete.js.map +1 -1
- package/dist/concurrency.d.ts +1 -1
- package/dist/concurrency.js +1 -1
- package/dist/config.d.ts +32 -32
- package/dist/config.js +5 -5
- package/dist/config.js.map +1 -1
- package/dist/continue-branch.d.ts +1 -1
- package/dist/continue-branch.js +1 -1
- package/dist/cwd-section.js +1 -1
- package/dist/cwd-section.js.map +1 -1
- package/dist/decision-engine.d.ts +2 -2
- package/dist/do-autopick.d.ts +6 -6
- package/dist/do-autopick.d.ts.map +1 -1
- package/dist/do-autopick.js +5 -5
- package/dist/do-autopick.js.map +1 -1
- package/dist/do-config.d.ts +3 -3
- package/dist/do-config.js +3 -3
- package/dist/do-config.js.map +1 -1
- package/dist/do-remote-auto.d.ts +2 -2
- package/dist/do-remote-auto.js +1 -1
- package/dist/do.d.ts +25 -25
- package/dist/do.d.ts.map +1 -1
- package/dist/do.js +22 -22
- package/dist/do.js.map +1 -1
- package/dist/drop-source.d.ts +2 -2
- package/dist/env-config.js +8 -8
- package/dist/env-config.js.map +1 -1
- package/dist/format.js +3 -3
- package/dist/format.js.map +1 -1
- package/dist/frontmatter.d.ts +33 -39
- package/dist/frontmatter.d.ts.map +1 -1
- package/dist/frontmatter.js +18 -31
- package/dist/frontmatter.js.map +1 -1
- package/dist/install-ci-branch-protection.d.ts +1 -1
- package/dist/install-ci-branch-protection.js +1 -1
- package/dist/install-ci-capabilities/advance-lifecycle.d.ts +1 -1
- package/dist/install-ci-capabilities/advance-lifecycle.js +1 -1
- package/dist/install-ci-capabilities/close-job.d.ts +1 -1
- package/dist/install-ci-capabilities/close-job.js +1 -1
- package/dist/install-ci-capabilities/example-noop.d.ts +1 -1
- package/dist/install-ci-capabilities/example-noop.js +1 -1
- package/dist/install-ci-capabilities/intake.d.ts +2 -2
- package/dist/install-ci-capabilities/intake.js +2 -2
- package/dist/install-ci-capabilities/verify.d.ts +1 -1
- package/dist/install-ci-capabilities/verify.js +1 -1
- package/dist/install-ci-core.d.ts +3 -3
- package/dist/install-ci-core.js +2 -2
- package/dist/install-ci-core.js.map +1 -1
- package/dist/install-ci-github.d.ts +1 -1
- package/dist/install-ci-github.js +1 -1
- package/dist/install-ci.d.ts +1 -1
- package/dist/install-ci.js +4 -4
- package/dist/install-ci.js.map +1 -1
- package/dist/intake-event.d.ts +6 -6
- package/dist/intake-event.js +6 -6
- package/dist/intake-marker.d.ts +3 -3
- package/dist/intake-marker.d.ts.map +1 -1
- package/dist/intake-triage.d.ts +1 -1
- package/dist/intake-triage.js +2 -2
- package/dist/intake-trigger-template.d.ts +8 -8
- package/dist/intake-trigger-template.d.ts.map +1 -1
- package/dist/intake-trigger-template.js +16 -16
- package/dist/intake-trigger-template.js.map +1 -1
- package/dist/intake.d.ts +50 -50
- package/dist/intake.d.ts.map +1 -1
- package/dist/intake.js +70 -70
- package/dist/intake.js.map +1 -1
- package/dist/integration-core.d.ts +17 -17
- package/dist/integration-core.js +17 -17
- package/dist/integration-core.js.map +1 -1
- package/dist/isolation.d.ts +3 -3
- package/dist/issue-provider.d.ts +4 -4
- package/dist/issue-provider.js +1 -1
- package/dist/item-lock.d.ts +21 -21
- package/dist/item-lock.d.ts.map +1 -1
- package/dist/item-lock.js +16 -16
- package/dist/item-path.d.ts +2 -2
- package/dist/item-path.js +2 -2
- package/dist/ledger-lint.d.ts +9 -9
- package/dist/ledger-lint.js +9 -9
- package/dist/ledger-read.d.ts +57 -57
- package/dist/ledger-read.d.ts.map +1 -1
- package/dist/ledger-read.js +24 -24
- package/dist/ledger-read.js.map +1 -1
- package/dist/ledger-write.d.ts +2 -2
- package/dist/ledger-write.js +1 -1
- package/dist/lifecycle-gather.d.ts +1 -1
- package/dist/lifecycle-gather.js +16 -16
- package/dist/lifecycle-gather.js.map +1 -1
- package/dist/lifecycle-pools.d.ts +4 -4
- package/dist/lifecycle-pools.js +1 -1
- package/dist/merge-question-surfacer.d.ts +3 -3
- package/dist/merge-question-surfacer.js +2 -2
- package/dist/merge-question-surfacer.js.map +1 -1
- package/dist/mint-adr.js +4 -4
- package/dist/mirror-pool-scan.d.ts +2 -2
- package/dist/mirror-pool-scan.js +3 -3
- package/dist/mirror-pool-scan.js.map +1 -1
- package/dist/needs-attention.d.ts +13 -13
- package/dist/needs-attention.d.ts.map +1 -1
- package/dist/needs-attention.js +11 -11
- package/dist/needs-attention.js.map +1 -1
- package/dist/orphan-sidecar.d.ts +2 -2
- package/dist/placement.d.ts +6 -6
- package/dist/placement.js +2 -2
- package/dist/prd-to-spec.d.ts +15 -1
- package/dist/prd-to-spec.d.ts.map +1 -1
- package/dist/prd-to-spec.js +36 -14
- package/dist/prd-to-spec.js.map +1 -1
- package/dist/prompt.d.ts +24 -24
- package/dist/prompt.d.ts.map +1 -1
- package/dist/prompt.js +29 -31
- package/dist/prompt.js.map +1 -1
- package/dist/protocol/CLAIM-PROTOCOL.md +4 -4
- package/dist/protocol/REVIEW-PROTOCOL.md +1 -1
- package/dist/protocol/TASKING-PROTOCOL.md +12 -12
- package/dist/protocol/WORK-CONTRACT.md +39 -39
- package/dist/protocol/spec-template.md +1 -1
- package/dist/protocol/task-template.md +3 -3
- package/dist/readiness.d.ts +1 -1
- package/dist/recover-isolated.js +1 -1
- package/dist/repo-config.js +12 -12
- package/dist/repo-config.js.map +1 -1
- package/dist/review-gate.d.ts +3 -3
- package/dist/review-gate.d.ts.map +1 -1
- package/dist/review-gate.js +11 -10
- package/dist/review-gate.js.map +1 -1
- package/dist/review-verdict.d.ts +2 -2
- package/dist/review-verdict.d.ts.map +1 -1
- package/dist/review-verdict.js +1 -1
- package/dist/run.d.ts +1 -1
- package/dist/run.js +5 -5
- package/dist/run.js.map +1 -1
- package/dist/scan.d.ts +10 -10
- package/dist/scan.d.ts.map +1 -1
- package/dist/scan.js +8 -8
- package/dist/scan.js.map +1 -1
- package/dist/select-order.d.ts +1 -1
- package/dist/select-priority.d.ts +12 -12
- package/dist/select-priority.d.ts.map +1 -1
- package/dist/select-priority.js +5 -5
- package/dist/select-priority.js.map +1 -1
- package/dist/sidecar.d.ts +2 -2
- package/dist/sidecar.js +2 -2
- package/dist/sidecar.js.map +1 -1
- package/dist/slug-namespace.d.ts +1 -1
- package/dist/slug-namespace.js +3 -3
- package/dist/slug-namespace.js.map +1 -1
- package/dist/spec-complete.js +2 -2
- package/dist/spec-complete.js.map +1 -1
- package/dist/start.d.ts +1 -1
- package/dist/start.js +3 -3
- package/dist/start.js.map +1 -1
- package/dist/status.d.ts +3 -3
- package/dist/status.js +4 -4
- package/dist/status.js.map +1 -1
- package/dist/surface-gate.d.ts +2 -2
- package/dist/surface-gate.d.ts.map +1 -1
- package/dist/surface-persist.d.ts +2 -2
- package/dist/surface-persist.d.ts.map +1 -1
- package/dist/tasker-review-loop.d.ts +8 -8
- package/dist/tasker-review-loop.d.ts.map +1 -1
- package/dist/tasker-review-loop.js +8 -8
- package/dist/tasker-review-loop.js.map +1 -1
- package/dist/tasking-eligibility.d.ts +21 -21
- package/dist/tasking-eligibility.d.ts.map +1 -1
- package/dist/tasking-eligibility.js +10 -10
- package/dist/tasking-lock.d.ts +8 -8
- package/dist/tasking-lock.d.ts.map +1 -1
- package/dist/tasking-lock.js +20 -21
- package/dist/tasking-lock.js.map +1 -1
- package/dist/tasking.d.ts +33 -33
- package/dist/tasking.d.ts.map +1 -1
- package/dist/tasking.js +89 -88
- package/dist/tasking.js.map +1 -1
- package/dist/triage-gate.d.ts +1 -1
- package/dist/triage-persist.d.ts +5 -5
- package/dist/triage-persist.js +15 -15
- package/dist/triage-persist.js.map +1 -1
- package/dist/verify-workflow-template.d.ts +1 -1
- package/dist/verify-workflow-template.js +2 -2
- package/dist/work-layout.d.ts +9 -7
- package/dist/work-layout.d.ts.map +1 -1
- package/dist/work-layout.js +9 -7
- package/dist/work-layout.js.map +1 -1
- package/dist/workspace.d.ts +1 -1
- package/package.json +1 -1
- package/src/advance-ci-template.ts +4 -4
- package/src/advance-classify.ts +5 -5
- package/src/advance-drivers.ts +10 -10
- package/src/advance-isolated.ts +3 -3
- package/src/advance-lifecycle-template.ts +9 -9
- package/src/advance-loop-driver.ts +3 -3
- package/src/advance-treeless-publish.ts +1 -1
- package/src/advance.ts +30 -30
- package/src/advancing-lock.ts +6 -6
- package/src/apply-decide.ts +2 -2
- package/src/apply-merge-action.ts +5 -5
- package/src/apply-persist.ts +8 -8
- package/src/buildable-body.ts +14 -14
- package/src/claim-cas.ts +4 -4
- package/src/cli.ts +94 -84
- package/src/close-job-template.ts +8 -8
- package/src/close-job.ts +26 -26
- package/src/complete.ts +11 -11
- package/src/concurrency.ts +1 -1
- package/src/config.ts +37 -37
- package/src/continue-branch.ts +1 -1
- package/src/cwd-section.ts +1 -1
- package/src/decision-engine.ts +3 -3
- package/src/do-autopick.ts +9 -9
- package/src/do-config.ts +6 -6
- package/src/do-remote-auto.ts +2 -2
- package/src/do.ts +49 -49
- package/src/drop-source.ts +2 -2
- package/src/env-config.ts +8 -8
- package/src/format.ts +3 -3
- package/src/frontmatter.ts +42 -60
- package/src/install-ci-branch-protection.ts +1 -1
- package/src/install-ci-capabilities/advance-lifecycle.ts +1 -1
- package/src/install-ci-capabilities/close-job.ts +1 -1
- package/src/install-ci-capabilities/example-noop.ts +1 -1
- package/src/install-ci-capabilities/intake.ts +2 -2
- package/src/install-ci-capabilities/verify.ts +1 -1
- package/src/install-ci-core.ts +4 -4
- package/src/install-ci-github.ts +1 -1
- package/src/install-ci.ts +4 -4
- package/src/intake-event.ts +6 -6
- package/src/intake-marker.ts +3 -3
- package/src/intake-triage.ts +2 -2
- package/src/intake-trigger-template.ts +17 -17
- package/src/intake.ts +97 -97
- package/src/integration-core.ts +35 -35
- package/src/isolation.ts +3 -3
- package/src/issue-provider.ts +4 -4
- package/src/item-lock.ts +21 -21
- package/src/item-path.ts +2 -2
- package/src/ledger-lint.ts +9 -9
- package/src/ledger-read.ts +81 -81
- package/src/ledger-write.ts +3 -3
- package/src/lifecycle-gather.ts +16 -16
- package/src/lifecycle-pools.ts +4 -4
- package/src/merge-question-surfacer.ts +4 -4
- package/src/mint-adr.ts +4 -4
- package/src/mirror-pool-scan.ts +5 -5
- package/src/needs-attention.ts +22 -22
- package/src/orphan-sidecar.ts +2 -2
- package/src/placement.ts +6 -6
- package/src/prd-to-spec.ts +51 -15
- package/src/prompt.ts +33 -35
- package/src/readiness.ts +1 -1
- package/src/recover-isolated.ts +1 -1
- package/src/repo-config.ts +12 -12
- package/src/review-gate.ts +12 -11
- package/src/review-verdict.ts +2 -2
- package/src/run.ts +6 -6
- package/src/scan.ts +15 -15
- package/src/select-order.ts +1 -1
- package/src/select-priority.ts +13 -13
- package/src/sidecar.ts +3 -3
- package/src/slug-namespace.ts +3 -3
- package/src/spec-complete.ts +2 -2
- package/src/start.ts +4 -4
- package/src/status.ts +7 -7
- package/src/surface-gate.ts +2 -2
- package/src/surface-persist.ts +2 -2
- package/src/tasker-review-loop.ts +15 -15
- package/src/tasking-eligibility.ts +21 -21
- package/src/tasking-lock.ts +27 -28
- package/src/tasking.ts +124 -123
- package/src/triage-gate.ts +1 -1
- package/src/triage-persist.ts +16 -16
- package/src/verify-workflow-template.ts +2 -2
- package/src/work-layout.ts +9 -7
- package/src/workspace.ts +1 -1
package/dist/status.js
CHANGED
|
@@ -48,7 +48,7 @@ export async function status(options) {
|
|
|
48
48
|
// reflects the remote truth. Never fatal — a failed fetch WARNS and falls back
|
|
49
49
|
// to the mirror's last-known `main`.
|
|
50
50
|
fetchMirrorMainOrWarn({ mirrorPath, warn: options.warn, env: options.env });
|
|
51
|
-
// The PER-ITEM LOCK in-flight view (
|
|
51
|
+
// The PER-ITEM LOCK in-flight view (spec US #8): read the mirror's lock refs to
|
|
52
52
|
// surface held (`active` = in-progress) and stuck (`needs-attention`) entries +
|
|
53
53
|
// reasons/questions. A bare hub mirror's arbiter is its `origin` (the SAME
|
|
54
54
|
// handle the `scan` held-slug subtraction reads). Best-effort: a fetch/read
|
|
@@ -58,7 +58,7 @@ export async function status(options) {
|
|
|
58
58
|
if (entries.length > 0) {
|
|
59
59
|
lockHeld.push({ repoPath: mirrorPath, entries });
|
|
60
60
|
}
|
|
61
|
-
// The one-slug-one-folder LINT (
|
|
61
|
+
// The one-slug-one-folder LINT (spec story 3): derive any slug residing in >1
|
|
62
62
|
// status folder from the SAME freshly-fetched `main` ref, surfaced LOUDLY.
|
|
63
63
|
const dups = lintRefLedger('main', mirrorPath, options.env);
|
|
64
64
|
if (dups.length > 0) {
|
|
@@ -153,7 +153,7 @@ export function formatStatus(report) {
|
|
|
153
153
|
lines.push(formatJobLine(job));
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
|
-
// The PER-ITEM LOCK in-flight view (
|
|
156
|
+
// The PER-ITEM LOCK in-flight view (spec US #8; task
|
|
157
157
|
// `cutover-needs-attention-becomes-lock-stuck-recovery-surface`): the held lock
|
|
158
158
|
// refs read from each mirror — `active` holds (in-progress) and `stuck` holds
|
|
159
159
|
// (needs-attention) + their reasons/questions. This is the SOLE stuck-state
|
|
@@ -170,7 +170,7 @@ export function formatStatus(report) {
|
|
|
170
170
|
}
|
|
171
171
|
}
|
|
172
172
|
}
|
|
173
|
-
// The one-slug-one-folder LINT (
|
|
173
|
+
// The one-slug-one-folder LINT (spec `ledger-integrity` story 3): WARN LOUDLY
|
|
174
174
|
// about every slug residing in >1 status folder of a registered mirror's ledger
|
|
175
175
|
// (a corrupt ledger — never a silent pass). A human must resolve each.
|
|
176
176
|
if (dupCount > 0) {
|
package/dist/status.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAa,MAAM,SAAS,CAAC;AACjD,OAAO,EAAC,cAAc,EAAe,MAAM,cAAc,CAAC;AAC1D,8EAA8E;AAC9E,2EAA2E;AAC3E,OAAO,iBAAiB,CAAC;AAEzB,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAC,mBAAmB,EAA2B,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAC,mBAAmB,EAAiB,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAC,gBAAgB,EAAE,oBAAoB,EAAC,MAAM,aAAa,CAAC;AAEnE,OAAO,EACN,aAAa,EACb,uBAAuB,GAEvB,MAAM,kBAAkB,CAAC;AAoL1B;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAsB;IAClD,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAgB,EAAE,CAAC;IAElC,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/C,0EAA0E;QAC1E,sEAAsE;QACtE,qEAAqE;QACrE,qEAAqE;QACrE,mEAAmE;QACnE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACP,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACF,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEvB,wEAAwE;IACxE,8EAA8E;IAC9E,2DAA2D;IAC3D,+EAA+E;IAC/E,8EAA8E;IAC9E,qBAAqB;IACrB,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,MAAM,gBAAgB,GAA2B,EAAE,CAAC;IACpD,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QACpD,8EAA8E;QAC9E,+EAA+E;QAC/E,qCAAqC;QACrC,qBAAqB,CAAC,EAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAC,CAAC,CAAC;QAC1E
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
|
package/dist/surface-gate.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Harness } from './harness.js';
|
|
2
2
|
import type { NewQuestion } from './sidecar.js';
|
|
3
3
|
/**
|
|
4
|
-
* The **SURFACE gate** (
|
|
4
|
+
* The **SURFACE gate** (spec `advance-loop`, task `advance-rung-surface`,
|
|
5
5
|
* US #32/33) — the surface-question rung's fresh-context spawn, the DIRECT mirror
|
|
6
6
|
* of the PR/code review gate ({@link import('./review-gate.js')}). On
|
|
7
7
|
* `classify=surface`, the advance engine spawns a FRESH-CONTEXT agent with the
|
|
@@ -62,7 +62,7 @@ export interface SurfaceEmit {
|
|
|
62
62
|
}
|
|
63
63
|
/** What the surface gate needs to launch a fresh-context surface of one item. */
|
|
64
64
|
export interface SurfaceGateInput {
|
|
65
|
-
/** The namespaced identity the surface is for (`task:foo` / `
|
|
65
|
+
/** The namespaced identity the surface is for (`task:foo` / `spec:bar` / `observation:baz`). */
|
|
66
66
|
item: string;
|
|
67
67
|
/** The working clone/checkout the gate runs in. */
|
|
68
68
|
cwd: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface-gate.d.ts","sourceRoot":"","sources":["../src/surface-gate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,OAAO,EAAC,MAAM,cAAc,CAAC;AAKvD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC/B,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC3B,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,SAAS,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAChC
|
|
1
|
+
{"version":3,"file":"surface-gate.d.ts","sourceRoot":"","sources":["../src/surface-gate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,OAAO,EAAC,MAAM,cAAc,CAAC;AAKvD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC/B,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC3B,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,SAAS,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAChC,gGAAgG;IAChG,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAE5E,wEAAwE;AACxE,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAE/C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAgB5D;AAsCD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,EAAE,CAW/D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuDvD;AAED,4EAA4E;AAC5E,MAAM,WAAW,yBAAyB;IACzC,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC;CACpD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CACjC,OAAO,GAAE,yBAA8B,GACrC,WAAW,CA0Cb"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type NewQuestion } from './sidecar.js';
|
|
2
2
|
/**
|
|
3
|
-
* The engine-owned SURFACE PERSIST (
|
|
3
|
+
* The engine-owned SURFACE PERSIST (spec `advance-loop`, task
|
|
4
4
|
* `advance-rung-surface`, US #15/33) — the half of the surface rung the ENGINE
|
|
5
5
|
* owns (the skill JUDGES, the engine PERSISTS). Given the questions the
|
|
6
6
|
* `surface-questions` skill EMITTED (gathered by `surface-gate.ts`'s spawn), the
|
|
@@ -39,7 +39,7 @@ import { type NewQuestion } from './sidecar.js';
|
|
|
39
39
|
export interface SurfacePersistOptions {
|
|
40
40
|
/** Working clone/worktree the persist commits in. */
|
|
41
41
|
cwd: string;
|
|
42
|
-
/** The namespaced item identity (`task:foo` / `
|
|
42
|
+
/** The namespaced item identity (`task:foo` / `spec:bar` / `observation:baz`). */
|
|
43
43
|
item: string;
|
|
44
44
|
/**
|
|
45
45
|
* The item file path RELATIVE to `cwd` (e.g. `work/backlog/foo.md`). The
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface-persist.d.ts","sourceRoot":"","sources":["../src/surface-persist.ts"],"names":[],"mappings":"AAIA,OAAO,EAMN,KAAK,WAAW,EAEhB,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,MAAM,WAAW,qBAAqB;IACrC,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,
|
|
1
|
+
{"version":3,"file":"surface-persist.d.ts","sourceRoot":"","sources":["../src/surface-persist.ts"],"names":[],"mappings":"AAIA,OAAO,EAMN,KAAK,WAAW,EAEhB,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,MAAM,WAAW,qBAAqB;IACrC,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,+EAA+E;IAC/E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACpC,mFAAmF;IACnF,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,oEAAoE;AACpE,qBAAa,mBAAoB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAI3B;AAiCD;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,qBAAqB,GAC5B,oBAAoB,CA2EtB"}
|
|
@@ -4,9 +4,9 @@ export type { TaskEdit, UncertainTask } from './review-verdict.js';
|
|
|
4
4
|
export { parseReviewVerdict as parseTaskReviewVerdict } from './review-verdict.js';
|
|
5
5
|
/**
|
|
6
6
|
* **The tasker review→edit→re-review→converge LOOP** (`slicer-review-edit-loop`,
|
|
7
|
-
* GATES
|
|
7
|
+
* GATES spec `work/specs/ready/review.md` RESOLVED DESIGN — Shape 2 / insertion point A).
|
|
8
8
|
*
|
|
9
|
-
* On the `do
|
|
9
|
+
* On the `do spec:<slug>` tasking path (`tasking.ts`/`performTask`), AFTER the
|
|
10
10
|
* agent produces a candidate set of `work/tasks/backlog/<slug>.md` tasks and BEFORE the
|
|
11
11
|
* runner finalises/lands them, this loop RUNS the `review` SKILL
|
|
12
12
|
* (`skills/review/SKILL.md`), APPLIES its findings as EDITS to the candidate task
|
|
@@ -22,7 +22,7 @@ export { parseReviewVerdict as parseTaskReviewVerdict } from './review-verdict.j
|
|
|
22
22
|
* N so the loop can never run forever.
|
|
23
23
|
*
|
|
24
24
|
* ⚠️ ASPIRATION-VS-BUILT (2026-06-10): the "single context" wording above is the
|
|
25
|
-
*
|
|
25
|
+
* spec's ASPIRATION, NOT what this module does at runtime. The ACTUAL N loop is
|
|
26
26
|
* RUNNER-DRIVEN and PER-PASS: `runOneExecution` does `for (pass …) { gate(…);
|
|
27
27
|
* applyEdits(…to disk…) }` — ONE agent LAUNCH per pass, the runner writing the
|
|
28
28
|
* agent's edits to the candidate task FILES (`work/tasks/backlog/`) between passes, the
|
|
@@ -50,7 +50,7 @@ export { parseReviewVerdict as parseTaskReviewVerdict } from './review-verdict.j
|
|
|
50
50
|
* - **a specific uncertain task** → emit it `needsAnswers: true` with the
|
|
51
51
|
* questions in its body (created, not agent-buildable until a human answers).
|
|
52
52
|
* - **the whole decomposition unclear / `taskerLoopMax` exhausted with blockers** →
|
|
53
|
-
* route the
|
|
53
|
+
* route the spec to `work/needs-attention/<slug>.md` with the questions as the
|
|
54
54
|
* reason, emitting NO guessed tasks.
|
|
55
55
|
*
|
|
56
56
|
* The verdict sink itself (the git transitions for those three outcomes) is the
|
|
@@ -73,7 +73,7 @@ export type TaskReviewFinding = ReviewFinding;
|
|
|
73
73
|
export type TaskReviewVerdict = ReviewVerdict;
|
|
74
74
|
/** What the review gate needs to launch a fresh-context review+edit pass. */
|
|
75
75
|
export interface TaskReviewGateInput {
|
|
76
|
-
/** The
|
|
76
|
+
/** The spec slug whose candidate tasks are under review. */
|
|
77
77
|
slug: string;
|
|
78
78
|
/** The working clone/checkout the loop runs in (candidate tasks live here). */
|
|
79
79
|
cwd: string;
|
|
@@ -109,7 +109,7 @@ export type LoopOutcome =
|
|
|
109
109
|
'converged'
|
|
110
110
|
/** `taskerLoopMax` hit with blockers → specific uncertain task(s) → needsAnswers. */
|
|
111
111
|
| 'uncertain-tasks'
|
|
112
|
-
/** `taskerLoopMax` hit / decomposition unclear → route the
|
|
112
|
+
/** `taskerLoopMax` hit / decomposition unclear → route the spec to needs-attention. */
|
|
113
113
|
| 'decomposition-unclear';
|
|
114
114
|
/** The result of running the loop — the disposition the caller's sink routes. */
|
|
115
115
|
export interface RunTaskReviewLoopResult {
|
|
@@ -140,7 +140,7 @@ export interface RunTaskReviewLoopResult {
|
|
|
140
140
|
message: string;
|
|
141
141
|
}
|
|
142
142
|
export interface RunTaskReviewLoopOptions {
|
|
143
|
-
/** The
|
|
143
|
+
/** The spec slug whose candidate tasks are being improved. */
|
|
144
144
|
slug: string;
|
|
145
145
|
/** The working clone/checkout the loop runs in. */
|
|
146
146
|
cwd: string;
|
|
@@ -191,7 +191,7 @@ export interface RunTaskReviewLoopOptions {
|
|
|
191
191
|
* to the candidate task files, then re-review — until `verdict === 'approve'` (no
|
|
192
192
|
* NEW blocking issue → converged) or the pass count reaches `taskerLoopMax`. On the cap
|
|
193
193
|
* with a still-`block` verdict, ROUTE per the verdict's channels:
|
|
194
|
-
* - `decompositionUnclear` set ⇒ `decomposition-unclear` (
|
|
194
|
+
* - `decompositionUnclear` set ⇒ `decomposition-unclear` (spec → needs-attention,
|
|
195
195
|
* no guessed tasks);
|
|
196
196
|
* - else `uncertainTasks` (or, as a floor, every candidate task) ⇒
|
|
197
197
|
* `uncertain-tasks` (those tasks emitted `needsAnswers: true` + questions).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasker-review-loop.d.ts","sourceRoot":"","sources":["../src/tasker-review-loop.ts"],"names":[],"mappings":"AASA,OAAO,EAAc,KAAK,OAAO,EAAC,MAAM,cAAc,CAAC;AAEvD,OAAO,EAEN,gBAAgB,EAGhB,KAAK,aAAa,EAClB,KAAK,aAAa,EAElB,KAAK,aAAa,EAClB,MAAM,qBAAqB,CAAC;AAM7B,YAAY,EAAC,QAAQ,EAAE,aAAa,EAAC,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAC,kBAAkB,IAAI,sBAAsB,EAAC,MAAM,qBAAqB,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAE9C,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB;IACnC,
|
|
1
|
+
{"version":3,"file":"tasker-review-loop.d.ts","sourceRoot":"","sources":["../src/tasker-review-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ export { parseReviewVerdict as parseTaskReviewVerdict } from './review-verdict.j
|
|
|
14
14
|
* to the candidate task files, then re-review — until `verdict === 'approve'` (no
|
|
15
15
|
* NEW blocking issue → converged) or the pass count reaches `taskerLoopMax`. On the cap
|
|
16
16
|
* with a still-`block` verdict, ROUTE per the verdict's channels:
|
|
17
|
-
* - `decompositionUnclear` set ⇒ `decomposition-unclear` (
|
|
17
|
+
* - `decompositionUnclear` set ⇒ `decomposition-unclear` (spec → needs-attention,
|
|
18
18
|
* no guessed tasks);
|
|
19
19
|
* - else `uncertainTasks` (or, as a floor, every candidate task) ⇒
|
|
20
20
|
* `uncertain-tasks` (those tasks emitted `needsAnswers: true` + questions).
|
|
@@ -76,7 +76,7 @@ export async function runTaskReviewLoop(options) {
|
|
|
76
76
|
const questions = verdict.decompositionUnclear.questions;
|
|
77
77
|
note(`Tasker review loop did not converge within taskerLoopMax=${taskerLoopMax} ` +
|
|
78
78
|
`across ${executions} fresh context(s); the whole decomposition is ` +
|
|
79
|
-
'unclear — routing the
|
|
79
|
+
'unclear — routing the spec to needs-attention (no guessed tasks).');
|
|
80
80
|
return {
|
|
81
81
|
outcome: 'decomposition-unclear',
|
|
82
82
|
tasks: readCandidates(options.cwd, before),
|
|
@@ -86,7 +86,7 @@ export async function runTaskReviewLoop(options) {
|
|
|
86
86
|
executions,
|
|
87
87
|
message: `The decomposition of '${options.slug}' is still unclear after ` +
|
|
88
88
|
`taskerLoopMax=${taskerLoopMax} review pass(es) across ${executions} fresh ` +
|
|
89
|
-
'context(s); routing the
|
|
89
|
+
'context(s); routing the spec to needs-attention with the open ' +
|
|
90
90
|
'questions, emitting no guessed tasks.',
|
|
91
91
|
};
|
|
92
92
|
}
|
|
@@ -315,18 +315,18 @@ export function buildTaskReviewPrompt(input) {
|
|
|
315
315
|
const list = input.candidateTasks.map((p) => ` - ${p}`).join('\n');
|
|
316
316
|
return [
|
|
317
317
|
`You are a FRESH-CONTEXT reviewer in the TASKER review→edit→converge LOOP`,
|
|
318
|
-
`(insertion point A). Review the CANDIDATE TASKS just produced for the
|
|
318
|
+
`(insertion point A). Review the CANDIDATE TASKS just produced for the spec`,
|
|
319
319
|
`"${input.slug}":`,
|
|
320
320
|
list || ' (no candidate tasks found)',
|
|
321
321
|
``,
|
|
322
322
|
reviewDisciplinePrompt(),
|
|
323
323
|
``,
|
|
324
|
-
`Read the source
|
|
324
|
+
`Read the source spec (${workItemRel('specs-ready', `${input.slug}.md`)}) and review the candidate`,
|
|
325
325
|
`decomposition ADVERSARIALLY. Review the WHOLE SET — graph coherence / gaps /`,
|
|
326
326
|
`overlap / goal-composition (dependency-graph coherence, set-level gaps,`,
|
|
327
|
-
`overlapping/duplicated tasks, and "does the set compose into the
|
|
327
|
+
`overlapping/duplicated tasks, and "does the set compose into the spec goal")`,
|
|
328
328
|
`— not just per-task well-formedness. The DESTINATION CHECK ("if every task`,
|
|
329
|
-
`is built exactly as written, do we end up with the system the
|
|
329
|
+
`is built exactly as written, do we end up with the system the spec describes?")`,
|
|
330
330
|
`is PART OF this pass and may ITSELF trigger edits — that is why this is a`,
|
|
331
331
|
`loop, not a one-shot gate.`,
|
|
332
332
|
``,
|
|
@@ -343,7 +343,7 @@ export function buildTaskReviewPrompt(input) {
|
|
|
343
343
|
` can FIX a finding by editing (the natural improver step).`,
|
|
344
344
|
` - "uncertainTasks" — specific tasks you cannot make buildable (each gets`,
|
|
345
345
|
` \`needsAnswers: true\` with the questions in its body).`,
|
|
346
|
-
` - "decompositionUnclear" — the WHOLE decomposition is unsound (the
|
|
346
|
+
` - "decompositionUnclear" — the WHOLE decomposition is unsound (the spec is`,
|
|
347
347
|
` routed to needs-attention; emit no guessed tasks).`,
|
|
348
348
|
`Do NOT fill "review" / "edit" / "questions" — those are other callers'`,
|
|
349
349
|
`channels. Flag, do not guess: a flagged question costs one human glance; a`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasker-review-loop.js","sourceRoot":"","sources":["../src/tasker-review-loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,WAAW,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AACjE,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EACN,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,cAAc,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,WAAW,EAAe,MAAM,cAAc,CAAC;AACvD,OAAO,EAAC,uBAAuB,EAAC,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,GAKrB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAC,kBAAkB,IAAI,sBAAsB,EAAC,MAAM,qBAAqB,CAAC;AAgMjF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACtC,OAAiC;IAEjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACzD,yEAAyE;IACzE,4EAA4E;IAC5E,+EAA+E;IAC/E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,GAAG,EAAkB,CAAC;IAE3D,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,IAAuC,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,sCAAsC,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC;YAClC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,aAAa;YACb,SAAS,EAAE,CAAC;YACZ,MAAM;YACN,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI;SACJ,CAAC,CAAC;QACH,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,GAAG,IAAI,CAAC;QACZ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CACH,sCAAsC,IAAI,CAAC,MAAM,WAAW;gBAC3D,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9D,4BAA4B,CAC7B,CAAC;YACF,OAAO;gBACN,OAAO,EAAE,WAAW;gBACpB,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;gBAC1C,cAAc,EAAE,EAAE;gBAClB,aAAa,EAAE,EAAE;gBACjB,MAAM,EAAE,WAAW;gBACnB,UAAU,EAAE,CAAC;gBACb,OAAO,EACN,WAAW,OAAO,CAAC,IAAI,qCAAqC;oBAC5D,IAAI,WAAW,cAAc,CAAC,sCAAsC;oBACpE,2CAA2C;aAC5C,CAAC;QACH,CAAC;IACF,CAAC;IAED,gFAAgF;IAChF,mEAAmE;IACnE,MAAM,OAAO,GAAG,IAAK,CAAC,WAAW,CAAC;IAClC,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC;QACzD,IAAI,CACH,4DAA4D,aAAa,GAAG;YAC3E,UAAU,UAAU,gDAAgD;YACpE,
|
|
1
|
+
{"version":3,"file":"tasker-review-loop.js","sourceRoot":"","sources":["../src/tasker-review-loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,WAAW,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AACjE,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EACN,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,cAAc,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,WAAW,EAAe,MAAM,cAAc,CAAC;AACvD,OAAO,EAAC,uBAAuB,EAAC,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,GAKrB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAC,kBAAkB,IAAI,sBAAsB,EAAC,MAAM,qBAAqB,CAAC;AAgMjF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACtC,OAAiC;IAEjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACzD,yEAAyE;IACzE,4EAA4E;IAC5E,+EAA+E;IAC/E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,GAAG,EAAkB,CAAC;IAE3D,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,IAAuC,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,sCAAsC,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC;YAClC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,aAAa;YACb,SAAS,EAAE,CAAC;YACZ,MAAM;YACN,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI;SACJ,CAAC,CAAC;QACH,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,GAAG,IAAI,CAAC;QACZ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CACH,sCAAsC,IAAI,CAAC,MAAM,WAAW;gBAC3D,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9D,4BAA4B,CAC7B,CAAC;YACF,OAAO;gBACN,OAAO,EAAE,WAAW;gBACpB,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;gBAC1C,cAAc,EAAE,EAAE;gBAClB,aAAa,EAAE,EAAE;gBACjB,MAAM,EAAE,WAAW;gBACnB,UAAU,EAAE,CAAC;gBACb,OAAO,EACN,WAAW,OAAO,CAAC,IAAI,qCAAqC;oBAC5D,IAAI,WAAW,cAAc,CAAC,sCAAsC;oBACpE,2CAA2C;aAC5C,CAAC;QACH,CAAC;IACF,CAAC;IAED,gFAAgF;IAChF,mEAAmE;IACnE,MAAM,OAAO,GAAG,IAAK,CAAC,WAAW,CAAC;IAClC,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC;QACzD,IAAI,CACH,4DAA4D,aAAa,GAAG;YAC3E,UAAU,UAAU,gDAAgD;YACpE,mEAAmE,CACpE,CAAC;QACF,OAAO;YACN,OAAO,EAAE,uBAAuB;YAChC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;YAC1C,cAAc,EAAE,EAAE;YAClB,aAAa,EAAE,SAAS;YACxB,MAAM,EAAE,WAAW;YACnB,UAAU;YACV,OAAO,EACN,yBAAyB,OAAO,CAAC,IAAI,2BAA2B;gBAChE,iBAAiB,aAAa,2BAA2B,UAAU,SAAS;gBAC5E,gEAAgE;gBAChE,uCAAuC;SACxC,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,8EAA8E;IAC9E,0EAA0E;IAC1E,+EAA+E;IAC/E,gFAAgF;IAChF,gFAAgF;IAChF,oEAAoE;IACpE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACzD,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACb,CAAC;QACD,IAAI,CACH,qCAAqC,CAAC,CAAC,IAAI,2BAA2B;YACrE,uEAAuE,CACxE,CAAC;QACF,OAAO,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GACd,KAAK,CAAC,MAAM,GAAG,CAAC;QACf,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpC,IAAI;YACJ,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC;SACrC,CAAC,CAAC,CAAC;IACP,IAAI,CACH,4DAA4D,aAAa,UAAU;QAClF,GAAG,UAAU,+BAA+B,SAAS,CAAC,MAAM,aAAa;QACzE,wCAAwC,CACzC,CAAC;IACF,OAAO;QACN,OAAO,EAAE,iBAAiB;QAC1B,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;QAC1C,cAAc,EAAE,SAAS;QACzB,aAAa,EAAE,EAAE;QACjB,MAAM,EAAE,WAAW;QACnB,UAAU;QACV,OAAO,EACN,YAAY,OAAO,CAAC,IAAI,0CAA0C,aAAa,GAAG;YAClF,0BAA0B,UAAU,qBAAqB;YACzD,GAAG,SAAS,CAAC,MAAM,oDAAoD;YACvE,4EAA4E;KAC7E,CAAC;AACH,CAAC;AAYD,8EAA8E;AAC9E,KAAK,UAAU,eAAe,CAAC,MAW9B;IACA,MAAM,EAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAC,GAAG,MAAM,CAAC;IACzE,IAAI,WAAW,GAAsB,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC;IACtE,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;QAClD,yEAAyE;QACzE,4EAA4E;QAC5E,0EAA0E;QAC1E,MAAM,cAAc,GAAG,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC;YAC1B,IAAI;YACJ,GAAG;YACH,cAAc;YACd,IAAI;YACJ,SAAS;YACT,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,GAAG,EAAE,MAAM,CAAC,GAAG;SACf,CAAC,CAAC;QACH,MAAM,GAAG,IAAI,CAAC;QACd,WAAW,GAAG,OAAO,CAAC;QAEtB,wEAAwE;QACxE,4EAA4E;QAC5E,uEAAuE;QACvE,yEAAyE;QACzE,iCAAiC;QACjC,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACnC,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAC,CAAC;QACxD,CAAC;QACD,IAAI,CACH,sBAAsB,IAAI,IAAI,aAAa,aAAa,SAAS,UAAU;YAC1E,GAAG,aAAa,CAAC,OAAO,CAAC,sBAAsB;YAC/C,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,kCAAkC,CAChE,CAAC;IACH,CAAC;IACD,OAAO,EAAC,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAC,CAAC;AAChD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,UAAU,CAClB,GAAW,EACX,KAAiB,EACjB,MAA2B,EAC3B,IAA+B;IAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QACpE,IAAI,QAAQ,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,IAAI,CACH,iCAAiC,gBAAgB,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC,IAAI,UAAU;gBACzF,qCAAqC,CACtC,CAAC;YACF,SAAS;QACV,CAAC;QACD,4EAA4E;QAC5E,yEAAyE;QACzE,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAClC,IAAI,OAA2B,CAAC;YAChC,IAAI,CAAC;gBACJ,OAAO,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO,GAAG,SAAS,CAAC;YACrB,CAAC;YACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/D,IAAI,CACH,yDAAyD,IAAI,CAAC,IAAI,GAAG;oBACpE,0DAA0D,CAC3D,CAAC;gBACF,SAAS;YACV,CAAC;QACF,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAClC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAC3B,GAAW,EACX,MAA2B;IAE3B,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACjD,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACJ,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,CAAC;IACX,CAAC;IACD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,SAAS;QACV,CAAC;QACD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QACtD,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9C,CAAC;IACF,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CACtB,GAAW,EACX,MAA2B;IAE3B,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,GAAG,IAAI,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;QACpD,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,4CAA4C;AAC5C,SAAS,aAAa,CAAC,OAA0B;IAChD,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;AACzE,CAAC;AAED,uFAAuF;AACvF,SAAS,iBAAiB,CAAC,OAA0B;IACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACjE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACvB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CACvD,CAAC;AACH,CAAC;AAmBD;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAGrD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACpC,UAAwC,EAAE;IAE1C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,WAAW,EAAE,CAAC;IACrD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACpE,OAAO,KAAK,EAAE,KAA0B,EAA0B,EAAE;QACnE,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC;YAC9C,OAAO;YACP,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;YAC/B,MAAM,EAAE,qBAAqB,CAAC,KAAK,CAAC;YACpC,KAAK,EAAE,KAAK,CAAC,eAAe;YAC5B,4EAA4E;YAC5E,SAAS,EAAE,eAAe,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,IAAI,EAAE;YACzE,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,GAAG,EAAE,KAAK,CAAC,GAAG;SACd,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClB,MAAM,IAAI,gBAAgB,CACzB,kCACC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAC5C,EAAE,CACF,CAAC;QACH,CAAC;QACD,OAAO,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAA0B;IAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,OAAO;QACN,0EAA0E;QAC1E,4EAA4E;QAC5E,IAAI,KAAK,CAAC,IAAI,IAAI;QAClB,IAAI,IAAI,8BAA8B;QACtC,EAAE;QACF,sBAAsB,EAAE;QACxB,EAAE;QACF,yBAAyB,WAAW,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,4BAA4B;QACnG,8EAA8E;QAC9E,yEAAyE;QACzE,8EAA8E;QAC9E,4EAA4E;QAC5E,iFAAiF;QACjF,2EAA2E;QAC3E,4BAA4B;QAC5B,EAAE;QACF,uBAAuB,KAAK,CAAC,IAAI,mBAAmB,KAAK,CAAC,SAAS,QAAQ;QAC3E,6EAA6E;QAC7E,yEAAyE;QACzE,wEAAwE;QACxE,6DAA6D;QAC7D,EAAE;QACF,qBAAqB,EAAE;QACvB,EAAE;QACF,0EAA0E;QAC1E,2EAA2E;QAC3E,+DAA+D;QAC/D,4EAA4E;QAC5E,6DAA6D;QAC7D,8EAA8E;QAC9E,wDAAwD;QACxD,wEAAwE;QACxE,4EAA4E;QAC5E,8CAA8C;QAC9C,EAAE;QACF,2EAA2E;QAC3E,2EAA2E;QAC3E,8EAA8E;QAC9E,mFAAmF;QACnF,6EAA6E;QAC7E,kFAAkF;QAClF,iDAAiD;QACjD,+EAA+E;QAC/E,6BAA6B;KAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,+DAA+D;AAC/D,6EAA6E;AAC7E,+CAA+C"}
|
|
@@ -1,42 +1,42 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Pure tasking-eligibility resolution — the auto-task decision layer, one level
|
|
3
|
-
* UP from the build gate (`eligibility.ts`). No I/O: callers pass in the
|
|
3
|
+
* UP from the build gate (`eligibility.ts`). No I/O: callers pass in the spec's
|
|
4
4
|
* two autonomy axes (`humanOnly`, `needsAnswers`), the repo's `autoTask` policy,
|
|
5
|
-
* the
|
|
6
|
-
* TASKED (resolved against `work/
|
|
5
|
+
* the spec's `taskedAfter` slugs, and the set of slugs whose prds are already
|
|
6
|
+
* TASKED (resolved against `work/specs/tasked/` residence, NOT `work/done/`).
|
|
7
7
|
*
|
|
8
8
|
* This mirrors the build-gate shape deliberately (CONTEXT.md / the `auto-slice`
|
|
9
|
-
*
|
|
10
|
-
* predicate, applied to a
|
|
11
|
-
* cross-
|
|
9
|
+
* spec): the same `needsAnswers !== true && humanOnly !== true && <repo policy>`
|
|
10
|
+
* predicate, applied to a spec's two axes + the repo's `autoTask` toggle — and a
|
|
11
|
+
* cross-spec ordering check that resolves against tasked-ness rather than done-ness.
|
|
12
12
|
*/
|
|
13
13
|
import type { HumanOnlyGate } from './eligibility.js';
|
|
14
14
|
export type { HumanOnlyGate };
|
|
15
|
-
/** Resolution of a
|
|
15
|
+
/** Resolution of a spec's `taskedAfter` against the set of already-tasked prds. */
|
|
16
16
|
export interface TaskedAfterResult {
|
|
17
|
-
/** True when every listed
|
|
17
|
+
/** True when every listed spec is already tasked. */
|
|
18
18
|
satisfied: boolean;
|
|
19
|
-
/** Listed
|
|
19
|
+
/** Listed spec slugs not yet tasked, in declaration order. */
|
|
20
20
|
missing: string[];
|
|
21
21
|
}
|
|
22
22
|
export interface TaskingEligibilityInput {
|
|
23
|
-
/** Autonomy axis 1 (DECIDED): a human must drive THIS
|
|
23
|
+
/** Autonomy axis 1 (DECIDED): a human must drive THIS spec's tasking. */
|
|
24
24
|
humanOnly: HumanOnlyGate;
|
|
25
|
-
/** Autonomy axis 2 (DISCOVERED): the
|
|
25
|
+
/** Autonomy axis 2 (DISCOVERED): the spec has unresolved questions. */
|
|
26
26
|
needsAnswers: HumanOnlyGate;
|
|
27
|
-
/** Cross-
|
|
27
|
+
/** Cross-spec order: spec slugs that must already be tasked before this one. */
|
|
28
28
|
taskedAfter: string[];
|
|
29
|
-
/** Slugs of prds that are already TASKED (residence in `work/
|
|
29
|
+
/** Slugs of prds that are already TASKED (residence in `work/specs/tasked/`). */
|
|
30
30
|
taskedSlugs: Set<string>;
|
|
31
31
|
/** Per-repo policy: may an agent auto-task *undeclared* prds in this repo? */
|
|
32
32
|
autoTask: boolean;
|
|
33
33
|
/**
|
|
34
|
-
* The target was named EXPLICITLY by the operator (`do
|
|
35
|
-
* `autoTask` POLICY is already satisfied — naming the
|
|
34
|
+
* The target was named EXPLICITLY by the operator (`do spec:<slug>`), so the
|
|
35
|
+
* `autoTask` POLICY is already satisfied — naming the spec IS the authorization,
|
|
36
36
|
* exactly as `do <task>` builds a named task regardless of `autoBuild` (the
|
|
37
37
|
* `autoBuild` precedent: the pool/scan gates the policy, the explicit claim path
|
|
38
38
|
* never re-checks it). When `true`, the policy term drops from the gate and ONLY
|
|
39
|
-
* the
|
|
39
|
+
* the spec's own readiness axes (`humanOnly`/`needsAnswers`) + `taskedAfter` bind.
|
|
40
40
|
* Defaults `false` (the AUTO-PICK pool path, where the `autoTask` policy DOES
|
|
41
41
|
* gate). The pool is the single policy-enforcement point; the per-invocation gate
|
|
42
42
|
* applies the policy only when NOT explicit.
|
|
@@ -44,7 +44,7 @@ export interface TaskingEligibilityInput {
|
|
|
44
44
|
explicit?: boolean;
|
|
45
45
|
}
|
|
46
46
|
export interface TaskingEligibilityResult {
|
|
47
|
-
/** Taskable now = gate passes AND every `taskedAfter`
|
|
47
|
+
/** Taskable now = gate passes AND every `taskedAfter` spec is already tasked. */
|
|
48
48
|
taskable: boolean;
|
|
49
49
|
/** Whether the autonomy gate alone passes (agent-taskable on its own axes). */
|
|
50
50
|
gatePass: boolean;
|
|
@@ -55,7 +55,7 @@ export interface TaskingEligibilityResult {
|
|
|
55
55
|
* `true` AND `humanOnly` is not `true` AND the repo's `autoTask` POLICY is
|
|
56
56
|
* satisfied — where the policy is satisfied either by the repo's `autoTask`
|
|
57
57
|
* toggle being on (the AUTO-PICK pool path) OR by the target being named
|
|
58
|
-
* EXPLICITLY (`explicit: true` — `do
|
|
58
|
+
* EXPLICITLY (`explicit: true` — `do spec:<slug>`, where naming IS the
|
|
59
59
|
* authorization, mirroring `do <task>` vs `autoBuild`). Both readiness axes
|
|
60
60
|
* block orthogonally and are never agent-taskable regardless of policy; a human
|
|
61
61
|
* is never bound by either. The exact mirror of `resolveGate` (the build gate),
|
|
@@ -63,9 +63,9 @@ export interface TaskingEligibilityResult {
|
|
|
63
63
|
*/
|
|
64
64
|
export declare function resolveTaskGate(humanOnly: HumanOnlyGate, needsAnswers: HumanOnlyGate, autoTask: boolean, explicit?: boolean): boolean;
|
|
65
65
|
/**
|
|
66
|
-
* Resolve a
|
|
67
|
-
* `done/`): satisfied iff every listed
|
|
68
|
-
* untasked blocker ⇒ not yet taskable (so this
|
|
66
|
+
* Resolve a spec's `taskedAfter` against the slugs of prds already TASKED (NOT
|
|
67
|
+
* `done/`): satisfied iff every listed spec is present in `taskedSlugs`. An
|
|
68
|
+
* untasked blocker ⇒ not yet taskable (so this spec's emitted tasks can
|
|
69
69
|
* reference the real slugs of those prds' tasks).
|
|
70
70
|
*/
|
|
71
71
|
export declare function resolveTaskedAfter(taskedAfter: string[], taskedSlugs: Set<string>): TaskedAfterResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasking-eligibility.d.ts","sourceRoot":"","sources":["../src/tasking-eligibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAEpD,YAAY,EAAC,aAAa,EAAC,CAAC;AAE5B,
|
|
1
|
+
{"version":3,"file":"tasking-eligibility.d.ts","sourceRoot":"","sources":["../src/tasking-eligibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAEpD,YAAY,EAAC,aAAa,EAAC,CAAC;AAE5B,mFAAmF;AACnF,MAAM,WAAW,iBAAiB;IACjC,qDAAqD;IACrD,SAAS,EAAE,OAAO,CAAC;IACnB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACvC,yEAAyE;IACzE,SAAS,EAAE,aAAa,CAAC;IACzB,uEAAuE;IACvE,YAAY,EAAE,aAAa,CAAC;IAC5B,gFAAgF;IAChF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,iFAAiF;IACjF,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,8EAA8E;IAC9E,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACxC,iFAAiF;IACjF,QAAQ,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,iBAAiB,CAAC;CAC/B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC9B,SAAS,EAAE,aAAa,EACxB,YAAY,EAAE,aAAa,EAC3B,QAAQ,EAAE,OAAO,EACjB,QAAQ,UAAQ,GACd,OAAO,CAOT;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CACjC,WAAW,EAAE,MAAM,EAAE,EACrB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GACtB,iBAAiB,CAGnB;AAED,4EAA4E;AAC5E,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,uBAAuB,GAC5B,wBAAwB,CAa1B"}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Pure tasking-eligibility resolution — the auto-task decision layer, one level
|
|
3
|
-
* UP from the build gate (`eligibility.ts`). No I/O: callers pass in the
|
|
3
|
+
* UP from the build gate (`eligibility.ts`). No I/O: callers pass in the spec's
|
|
4
4
|
* two autonomy axes (`humanOnly`, `needsAnswers`), the repo's `autoTask` policy,
|
|
5
|
-
* the
|
|
6
|
-
* TASKED (resolved against `work/
|
|
5
|
+
* the spec's `taskedAfter` slugs, and the set of slugs whose prds are already
|
|
6
|
+
* TASKED (resolved against `work/specs/tasked/` residence, NOT `work/done/`).
|
|
7
7
|
*
|
|
8
8
|
* This mirrors the build-gate shape deliberately (CONTEXT.md / the `auto-slice`
|
|
9
|
-
*
|
|
10
|
-
* predicate, applied to a
|
|
11
|
-
* cross-
|
|
9
|
+
* spec): the same `needsAnswers !== true && humanOnly !== true && <repo policy>`
|
|
10
|
+
* predicate, applied to a spec's two axes + the repo's `autoTask` toggle — and a
|
|
11
|
+
* cross-spec ordering check that resolves against tasked-ness rather than done-ness.
|
|
12
12
|
*/
|
|
13
13
|
/**
|
|
14
14
|
* Resolve the tasking autonomy gate: agent-taskable iff `needsAnswers` is not
|
|
15
15
|
* `true` AND `humanOnly` is not `true` AND the repo's `autoTask` POLICY is
|
|
16
16
|
* satisfied — where the policy is satisfied either by the repo's `autoTask`
|
|
17
17
|
* toggle being on (the AUTO-PICK pool path) OR by the target being named
|
|
18
|
-
* EXPLICITLY (`explicit: true` — `do
|
|
18
|
+
* EXPLICITLY (`explicit: true` — `do spec:<slug>`, where naming IS the
|
|
19
19
|
* authorization, mirroring `do <task>` vs `autoBuild`). Both readiness axes
|
|
20
20
|
* block orthogonally and are never agent-taskable regardless of policy; a human
|
|
21
21
|
* is never bound by either. The exact mirror of `resolveGate` (the build gate),
|
|
@@ -30,9 +30,9 @@ export function resolveTaskGate(humanOnly, needsAnswers, autoTask, explicit = fa
|
|
|
30
30
|
return explicit || autoTask;
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
|
-
* Resolve a
|
|
34
|
-
* `done/`): satisfied iff every listed
|
|
35
|
-
* untasked blocker ⇒ not yet taskable (so this
|
|
33
|
+
* Resolve a spec's `taskedAfter` against the slugs of prds already TASKED (NOT
|
|
34
|
+
* `done/`): satisfied iff every listed spec is present in `taskedSlugs`. An
|
|
35
|
+
* untasked blocker ⇒ not yet taskable (so this spec's emitted tasks can
|
|
36
36
|
* reference the real slugs of those prds' tasks).
|
|
37
37
|
*/
|
|
38
38
|
export function resolveTaskedAfter(taskedAfter, taskedSlugs) {
|
package/dist/tasking-lock.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export type AcquireTaskingLockOutcome = 'acquired' | 'usage-error' | 'lost' | 'c
|
|
|
3
3
|
/** Maps onto the claim-CAS exit codes (identical semantics). */
|
|
4
4
|
export type AcquireTaskingLockExitCode = 0 | 1 | 2 | 3;
|
|
5
5
|
export interface AcquireTaskingLockOptions {
|
|
6
|
-
/** The
|
|
6
|
+
/** The spec slug to lock (`work/specs/ready/<slug>.md`). */
|
|
7
7
|
slug: string;
|
|
8
8
|
/** Working clone/worktree the lock acquire runs in. */
|
|
9
9
|
cwd: string;
|
|
@@ -26,10 +26,10 @@ export interface AcquireTaskingLockResult {
|
|
|
26
26
|
/** Human-readable summary of the terminal condition. */
|
|
27
27
|
message: string;
|
|
28
28
|
/**
|
|
29
|
-
* On a successful acquire (`acquired`), the git BLOB sha of the
|
|
30
|
-
* the lock TOOK (`work/
|
|
29
|
+
* On a successful acquire (`acquired`), the git BLOB sha of the spec body that
|
|
30
|
+
* the lock TOOK (`work/specs/ready/<slug>.md` on the arbiter). This IS the snapshot the
|
|
31
31
|
* tasker reads + tasks from; the integrate transition compares the current
|
|
32
|
-
* `work/
|
|
32
|
+
* `work/specs/ready/<slug>.md` blob against it to fail loud on a concurrent edit (the
|
|
33
33
|
* read-stability backstop). `undefined` unless `outcome === 'acquired'` (and on
|
|
34
34
|
* dry-run, where nothing was published).
|
|
35
35
|
*/
|
|
@@ -47,7 +47,7 @@ export type ReleaseTaskingLockOutcome = 'released' | 'usage-error' | 'lost' | 'c
|
|
|
47
47
|
/** Maps onto the claim-CAS exit codes, plus `4` for a STALE (conflicting) lock. */
|
|
48
48
|
export type ReleaseTaskingLockExitCode = 0 | 1 | 2 | 3 | 4;
|
|
49
49
|
export interface ReleaseTaskingLockOptions {
|
|
50
|
-
/** The
|
|
50
|
+
/** The spec slug whose lock to release. */
|
|
51
51
|
slug: string;
|
|
52
52
|
/** Working clone/worktree the release runs in. */
|
|
53
53
|
cwd: string;
|
|
@@ -68,9 +68,9 @@ export interface ReleaseTaskingLockOptions {
|
|
|
68
68
|
/**
|
|
69
69
|
* The tasker review→edit LOOP's **decomposition-unclear** verdict
|
|
70
70
|
* (`slicer-review-edit-loop`), or the task-SET acceptance gate's `block`:
|
|
71
|
-
* instead of DELETING the lock (returning the
|
|
71
|
+
* instead of DELETING the lock (returning the spec to the claimable/taskable
|
|
72
72
|
* pool), amend it `active → stuck` with this reason recorded on the entry,
|
|
73
|
-
* emitting NO guessed tasks. The
|
|
73
|
+
* emitting NO guessed tasks. The spec body stays in `work/specs/ready/` (it never moved
|
|
74
74
|
* under the lock); the stuck lock IS the tasking needs-attention surface (no
|
|
75
75
|
* `work/needs-attention/` folder write), so it is NOT re-taskable until a human
|
|
76
76
|
* resolves it via `release-lock`/`resume`. Omitted ⇒ the normal release DELETES
|
|
@@ -94,7 +94,7 @@ export interface ReleaseTaskingLockResult {
|
|
|
94
94
|
* Release the tasking lock for `slug`: DELETE the unified `action: task` lock ref
|
|
95
95
|
* (idempotent — an already-absent ref is a clean `released`). It moves NO lifecycle
|
|
96
96
|
* file: the durable `prd → prd-tasked` success move is owned by the integrate band,
|
|
97
|
-
* and the
|
|
97
|
+
* and the spec body never left `work/specs/ready/` under the lock, so there is no
|
|
98
98
|
* `tasking/ → prd/` restore.
|
|
99
99
|
*
|
|
100
100
|
* When `routeToNeedsAttention` is set (the tasker decomposition-unclear verdict /
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasking-lock.d.ts","sourceRoot":"","sources":["../src/tasking-lock.ts"],"names":[],"mappings":"AAiEA,gFAAgF;AAChF,MAAM,MAAM,yBAAyB,GAClC,UAAU,GACV,aAAa,GACb,MAAM,GACN,WAAW,CAAC;AAEf,gEAAgE;AAChE,MAAM,MAAM,0BAA0B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEvD,MAAM,WAAW,yBAAyB;IACzC,
|
|
1
|
+
{"version":3,"file":"tasking-lock.d.ts","sourceRoot":"","sources":["../src/tasking-lock.ts"],"names":[],"mappings":"AAiEA,gFAAgF;AAChF,MAAM,MAAM,yBAAyB,GAClC,UAAU,GACV,aAAa,GACb,MAAM,GACN,WAAW,CAAC;AAEf,gEAAgE;AAChE,MAAM,MAAM,0BAA0B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEvD,MAAM,WAAW,yBAAyB;IACzC,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,uHAAuH;IACvH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2CAA2C;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACxC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,OAAO,EAAE,yBAAyB,CAAC;IACnC,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,yBAAyB,GAChC,OAAO,CAAC,wBAAwB,CAAC,CAWnC;AAqFD,qDAAqD;AACrD,MAAM,MAAM,yBAAyB,GAClC,UAAU,GACV,aAAa,GACb,MAAM,GACN,WAAW,GACX,OAAO,CAAC;AAEX,mFAAmF;AACnF,MAAM,MAAM,0BAA0B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE3D,MAAM,WAAW,yBAAyB;IACzC,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;OAUG;IACH,qBAAqB,CAAC,EAAE;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC;IACzC,2CAA2C;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACxC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,OAAO,EAAE,yBAAyB,CAAC;IACnC,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,yBAAyB,GAChC,OAAO,CAAC,wBAAwB,CAAC,CAWnC"}
|