dorfl 0.1.1 → 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 +76 -76
- 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 +20 -20
- 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 +14 -13
- package/dist/frontmatter.d.ts.map +1 -1
- package/dist/frontmatter.js +12 -24
- 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/prompt.d.ts +16 -19
- package/dist/prompt.d.ts.map +1 -1
- package/dist/prompt.js +17 -19
- package/dist/prompt.js.map +1 -1
- 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 +4 -4
- 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 +88 -86
- 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 +83 -83
- 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 +47 -47
- package/src/drop-source.ts +2 -2
- package/src/env-config.ts +8 -8
- package/src/format.ts +3 -3
- package/src/frontmatter.ts +23 -33
- 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/prompt.ts +20 -25
- 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 +5 -5
- 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 +123 -121
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasker-review-loop.js","sourceRoot":"","sources":["../src/tasker-review-loop.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tasker-review-loop.js","sourceRoot":"","sources":["../src/tasker-review-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
package/dist/tasking-lock.js
CHANGED
|
@@ -2,19 +2,19 @@ import { runAsync } from './git.js';
|
|
|
2
2
|
import { acquireItemLock, releaseItemLock, markStuckItemLock, } from './item-lock.js';
|
|
3
3
|
import { workItemRel } from './work-layout.js';
|
|
4
4
|
/**
|
|
5
|
-
* The **tasking concurrency lock** (
|
|
5
|
+
* The **tasking concurrency lock** (spec `auto-slice`, task `autoslice-lock`).
|
|
6
6
|
*
|
|
7
|
-
* Serialises *concurrent* taskers (two CI runs, or human + CI) so a
|
|
7
|
+
* Serialises *concurrent* taskers (two CI runs, or human + CI) so a spec is never
|
|
8
8
|
* double-tasked. As of the capstone cut-over (task
|
|
9
|
-
* `cutover-retire-slicing-advancing-markers-and-trim-folder-sets`,
|
|
9
|
+
* `cutover-retire-slicing-advancing-markers-and-trim-folder-sets`, spec
|
|
10
10
|
* `ledger-status-per-item-lock-refs`; ADR `ledger-status-on-per-item-lock-refs`)
|
|
11
|
-
* the legacy `git mv work/
|
|
11
|
+
* the legacy `git mv work/specs/ready/<slug>.md → work/tasking/<slug>.md` MARKER on `main`
|
|
12
12
|
* is GONE: the body NEVER relocates until the durable promotion, exactly as claim
|
|
13
13
|
* no longer moves the task body (task
|
|
14
14
|
* `cutover-claim-body-stays-and-complete-sources-from-backlog`). The tasking lock
|
|
15
15
|
* is now ONLY the UNIFIED per-item lock (`refs/dorfl/lock/<entry>`,
|
|
16
|
-
* `action: task`, keyed `
|
|
17
|
-
* the same item, so tasking a
|
|
16
|
+
* `action: task`, keyed `spec:<slug>`) — the SAME ref claim and advance use for
|
|
17
|
+
* the same item, so tasking a spec is mutually exclusive with claiming/advancing
|
|
18
18
|
* the SAME item BY CONSTRUCTION (the second acquirer loses the SAME create-only
|
|
19
19
|
* ref CAS, with NO retry budget and NO false contention). There is no transient
|
|
20
20
|
* status in `main`'s tree anymore, so a work branch cut from `main` inherits no
|
|
@@ -24,9 +24,9 @@ import { workItemRel } from './work-layout.js';
|
|
|
24
24
|
* A `lost` (the item is already held for implement/task/advance) makes the
|
|
25
25
|
* tasking acquire lose DEFINITIVELY (exit 2, no retry). On a successful acquire
|
|
26
26
|
* it returns {@link AcquireTaskingLockResult.lockedBlob}: the git blob sha of the
|
|
27
|
-
*
|
|
27
|
+
* spec body the lock TOOK, read from `work/specs/ready/<slug>.md` on the arbiter — the
|
|
28
28
|
* snapshot the tasker reads + tasks from, handed back so the integrate
|
|
29
|
-
* transition can fail loud if the held
|
|
29
|
+
* transition can fail loud if the held spec was edited concurrently (the
|
|
30
30
|
* read-stability backstop). A dry-run takes no lock (it mutates nothing).
|
|
31
31
|
*
|
|
32
32
|
* - **Release** ({@link releaseTaskingLock}) DELETES the unified lock ref. It
|
|
@@ -46,11 +46,11 @@ import { workItemRel } from './work-layout.js';
|
|
|
46
46
|
* The READ-STABILITY backstop (the content-identity stale check that used to live
|
|
47
47
|
* in the release, comparing the held `work/tasking/<slug>.md` blob against the
|
|
48
48
|
* acquire-time snapshot) now lives at the integrate seam (`tasking.ts`
|
|
49
|
-
* `heldSpecIsStale`, comparing `work/
|
|
49
|
+
* `heldSpecIsStale`, comparing `work/specs/ready/<slug>.md`) — relocated because the
|
|
50
50
|
* completing transition, not the release, owns the commit. See
|
|
51
51
|
* `work/notes/observations/tasking-lock-does-not-stabilise-prd-content.md`.
|
|
52
52
|
*
|
|
53
|
-
* This module provides the lock PRIMITIVES only. The orchestrating `do
|
|
53
|
+
* This module provides the lock PRIMITIVES only. The orchestrating `do spec:<slug>`
|
|
54
54
|
* tasking command (`tasking.ts`) acquires, drives the agent's tasking, integrates
|
|
55
55
|
* the emitted tasks + the durable `prd → prd-tasked` move, and releases. The
|
|
56
56
|
* human path (no contention) may task on `main` directly without the lock.
|
|
@@ -94,12 +94,12 @@ async function runAcquire(options, note) {
|
|
|
94
94
|
throw new TaskingLockUsageError(`no git remote named '${arbiter}' (set one, or pass --arbiter)`);
|
|
95
95
|
}
|
|
96
96
|
const by = options.by || (await resolveBy(cwd, env));
|
|
97
|
-
// Is the
|
|
97
|
+
// Is the spec still lockable (present in work/specs/ready/ on the arbiter's main)?
|
|
98
98
|
await gitHard(['fetch', '--quiet', arbiter], cwd, env);
|
|
99
99
|
const spec = workItemRel('specs-ready', `${slug}.md`);
|
|
100
100
|
const specBlob = await gitSoft(['rev-parse', `${arbiter}/main:${spec}`], cwd, env);
|
|
101
101
|
if (specBlob.status !== 0) {
|
|
102
|
-
const message = `'${spec}' not found on ${arbiter}/main (no such
|
|
102
|
+
const message = `'${spec}' not found on ${arbiter}/main (no such spec, or it was already moved/tasked).`;
|
|
103
103
|
note(message);
|
|
104
104
|
return { exitCode: 2, outcome: 'lost', message };
|
|
105
105
|
}
|
|
@@ -111,18 +111,17 @@ async function runAcquire(options, note) {
|
|
|
111
111
|
note(message);
|
|
112
112
|
return { exitCode: 0, outcome: 'acquired', message, lockedBlob };
|
|
113
113
|
}
|
|
114
|
-
// Acquire the UNIFIED per-item lock (`action: task`, keyed `
|
|
114
|
+
// Acquire the UNIFIED per-item lock (`action: task`, keyed `spec:<slug>` so it
|
|
115
115
|
// shares the ONE ref with claim/advance of the SAME item). A create-only ref
|
|
116
116
|
// CAS: the winner holds it, the loser is DEFINITIVELY `lost` (exit 2, no retry
|
|
117
117
|
// budget). No auto-steal of an orphaned lock, consistent with claim/advance and
|
|
118
118
|
// the ADR's recovery model (no liveness heartbeat / auto-sweep; a human asserts
|
|
119
119
|
// a lock is dead via `release-lock` + `gc --ledger`).
|
|
120
|
-
//
|
|
121
|
-
//
|
|
122
|
-
//
|
|
123
|
-
//
|
|
124
|
-
// `prd:<slug
|
|
125
|
-
// contract task removes the legacy form.
|
|
120
|
+
// Spec `prd-to-spec-vocabulary-cutover-and-migration-command`: the parent-spec
|
|
121
|
+
// item identity is `spec:<slug>`, so the unified per-item lock ref is
|
|
122
|
+
// `refs/dorfl/lock/spec-<slug>`. HARD CUTOVER: the legacy `prd:<slug>` identity
|
|
123
|
+
// is GONE — the resolver no longer treats `prd:` as the spec namespace (a
|
|
124
|
+
// `prd:<slug>` arg is a bare literal task slug now).
|
|
126
125
|
const lock = await acquireItemLock({
|
|
127
126
|
item: `spec:${slug}`,
|
|
128
127
|
action: 'task',
|
|
@@ -146,7 +145,7 @@ async function runAcquire(options, note) {
|
|
|
146
145
|
* Release the tasking lock for `slug`: DELETE the unified `action: task` lock ref
|
|
147
146
|
* (idempotent — an already-absent ref is a clean `released`). It moves NO lifecycle
|
|
148
147
|
* file: the durable `prd → prd-tasked` success move is owned by the integrate band,
|
|
149
|
-
* and the
|
|
148
|
+
* and the spec body never left `work/specs/ready/` under the lock, so there is no
|
|
150
149
|
* `tasking/ → prd/` restore.
|
|
151
150
|
*
|
|
152
151
|
* When `routeToNeedsAttention` is set (the tasker decomposition-unclear verdict /
|
|
@@ -188,7 +187,7 @@ async function runRelease(options, note) {
|
|
|
188
187
|
}
|
|
189
188
|
// DECOMPOSITION-UNCLEAR / TASK-GATE BLOCK: amend the lock `active → stuck` with
|
|
190
189
|
// the reason on the entry (the tasking needs-attention surface), NOT delete it.
|
|
191
|
-
// The
|
|
190
|
+
// The spec body stays in `work/specs/ready/`; the stuck lock keeps it out of the
|
|
192
191
|
// taskable pool until a human resolves it (`release-lock`/`resume`).
|
|
193
192
|
if (options.routeToNeedsAttention !== undefined) {
|
|
194
193
|
// MIGRATE: EMIT `spec:<slug>` (keyed to the `spec-<slug>` lock entry).
|
package/dist/tasking-lock.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasking-lock.js","sourceRoot":"","sources":["../src/tasking-lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAiB,MAAM,UAAU,CAAC;AAClD,OAAO,EACN,eAAe,EACf,eAAe,EACf,iBAAiB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,MAAM,eAAe,GAAG,QAAQ,CAAC;AA+CjC,oDAAoD;AACpD,MAAM,qBAAsB,SAAQ,KAAK;CAAG;AAE5C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,OAAkC;IAElC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACxC,IAAI,CAAC;QACJ,OAAO,MAAM,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;YAC1C,OAAO,EAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAC,CAAC;QACpE,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,EAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAC,CAAC;IACvD,CAAC;AACF,CAAC;AAED,KAAK,UAAU,UAAU,CACxB,OAAkC,EAClC,IAAyB;IAEzB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC;IACnD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAExB,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,IAAI,qBAAqB,CAC9B,iEAAiE,CACjE,CAAC;IACH,CAAC;IACD,IAAI,CAAC,MAAM,OAAO,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,qBAAqB,CAAC,6BAA6B,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,CAAC,MAAM,OAAO,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,qBAAqB,CAC9B,wBAAwB,OAAO,gCAAgC,CAC/D,CAAC;IACH,CAAC;IACD,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,CAAC,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAErD,
|
|
1
|
+
{"version":3,"file":"tasking-lock.js","sourceRoot":"","sources":["../src/tasking-lock.ts"],"names":[],"mappings":"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"}
|
package/dist/tasking.d.ts
CHANGED
|
@@ -5,44 +5,44 @@ import { type Harness } from './harness.js';
|
|
|
5
5
|
import { type TaskReviewGate } from './tasker-review-loop.js';
|
|
6
6
|
import type { ReviewGate } from './review-gate.js';
|
|
7
7
|
/**
|
|
8
|
-
* The **`do
|
|
8
|
+
* The **`do spec:<slug>` tasking path** (spec `auto-slice`, task
|
|
9
9
|
* `autoslice-command`) — the orchestration that ties the tasking GATE
|
|
10
10
|
* (`tasking-eligibility.ts`) and the tasking LOCK (`tasking-lock.ts`) together to
|
|
11
|
-
* task a
|
|
11
|
+
* task a spec into `work/tasks/backlog/` STAGED items (task
|
|
12
12
|
* `pre-backlog-staging-folder-and-promote-step-a` — the runner-owned promotion
|
|
13
13
|
* moves them `pre-backlog/ → backlog/` later), with the RUNNER owning every git-state
|
|
14
|
-
* transition. This is the
|
|
14
|
+
* transition. This is the spec branch of the `do` worker (ADR
|
|
15
15
|
* `command-surface-and-journeys.md` §3/§3a), NOT a standalone `task` command;
|
|
16
|
-
* `do.ts` dispatches `resolved.namespace === '
|
|
16
|
+
* `do.ts` dispatches `resolved.namespace === 'spec'` here.
|
|
17
17
|
*
|
|
18
18
|
* The end-to-end flow (mirroring the `do`/`run` runner-owns-git discipline — the
|
|
19
19
|
* agent only EDITS files, the runner does ALL git):
|
|
20
20
|
*
|
|
21
|
-
* 1. **Resolve the gate** (agent path): refuse to task a
|
|
22
|
-
* `humanOnly`/`needsAnswers`, or whose `taskedAfter`
|
|
21
|
+
* 1. **Resolve the gate** (agent path): refuse to task a spec that is
|
|
22
|
+
* `humanOnly`/`needsAnswers`, or whose `taskedAfter` specs are not yet tasked.
|
|
23
23
|
* The repo's `autoTask` POLICY also refuses on the AUTO-PICK pool path, but
|
|
24
|
-
* NOT when the
|
|
24
|
+
* NOT when the spec was named EXPLICITLY (`do spec:<slug>`, `explicit: true`):
|
|
25
25
|
* naming it IS the authorization, exactly as `do <task>` builds regardless of
|
|
26
26
|
* `autoBuild` (the pool, not the explicit claim, gates the policy). The HUMAN
|
|
27
27
|
* path is unbound by the gate entirely.
|
|
28
28
|
* 2. **Acquire the lock** (agent path) via the unified per-item lock CAS —
|
|
29
|
-
* serialising concurrent taskers on the `
|
|
30
|
-
* `work/
|
|
29
|
+
* serialising concurrent taskers on the `spec:<slug>` ref (the body STAYS in
|
|
30
|
+
* `work/specs/ready/`; the lock no longer moves it). The HUMAN path with no contention
|
|
31
31
|
* may task on `main` directly WITHOUT the lock.
|
|
32
|
-
* 3. **Invoke the agent harness** with the `to-task`
|
|
32
|
+
* 3. **Invoke the agent harness** with the `to-task` spec — the agent runs the
|
|
33
33
|
* tasker methodology and produces `work/tasks/backlog/<slug>.md` FILES ONLY; it does
|
|
34
34
|
* NOT commit/push/move (the same in-band boundary as the build agent).
|
|
35
35
|
* 4. **The runner integrates the COMPLETING transition through the SHARED core**
|
|
36
36
|
* (`performIntegration`, task `slice-output-through-integration`): the agent's
|
|
37
37
|
* tasking runs on a `work/<slug>` branch cut from `<arbiter>/main` (whose base
|
|
38
|
-
* holds the
|
|
39
|
-
*
|
|
38
|
+
* holds the spec in `work/specs/ready/`), and the produced backlog tasks + the durable
|
|
39
|
+
* spec lifecycle move (`work/specs/ready/ → work/specs/tasked/`)
|
|
40
40
|
* integrate via the band honoring `--propose` (push the branch + open a
|
|
41
41
|
* PR, NO `main` touch) / `--merge` (land on `main`). Because the integrate-time
|
|
42
42
|
* args resolve ONCE in the shared core, EVERY `do task:` integrate arg applies
|
|
43
|
-
* to `do
|
|
43
|
+
* to `do spec:` by construction. A content-identity STALE CHECK (the lock's
|
|
44
44
|
* read-stability backstop) fires FIRST against the acquire-time `lockedBlob`,
|
|
45
|
-
* so a concurrent edit of the held
|
|
45
|
+
* so a concurrent edit of the held spec still fails loud (`stale`).
|
|
46
46
|
*
|
|
47
47
|
* The tasking LOCK (`tasking-lock.ts`, `acquireTaskingLock`/`releaseTaskingLock`)
|
|
48
48
|
* is the UNIFIED per-item lock (`refs/dorfl/lock/<entry>`, `action: task`)
|
|
@@ -54,12 +54,12 @@ import type { ReviewGate } from './review-gate.js';
|
|
|
54
54
|
* does NOT build the no-human confidence routing — that is the review/edit loop
|
|
55
55
|
* owned by `slicer-review-edit-loop`; this path produces + integrates the tasks.
|
|
56
56
|
*/
|
|
57
|
-
/** The terminal status of one `do
|
|
57
|
+
/** The terminal status of one `do spec:<slug>` tasking run. */
|
|
58
58
|
export type TaskOutcome = 'tasked' | 'gate-refused' | 'lock-lost' | 'agent-failed' | 'stale' | 'needs-attention' | 'usage-error';
|
|
59
59
|
export interface TaskResult {
|
|
60
60
|
exitCode: 0 | 1 | 2 | 3 | 4;
|
|
61
61
|
outcome: TaskOutcome;
|
|
62
|
-
/** The
|
|
62
|
+
/** The spec slug acted on. */
|
|
63
63
|
slug: string;
|
|
64
64
|
/** Repo-relative paths of the backlog tasks the runner committed. */
|
|
65
65
|
emitted?: string[];
|
|
@@ -67,7 +67,7 @@ export interface TaskResult {
|
|
|
67
67
|
* The tasker review→edit LOOP's disposition (`slicer-review-edit-loop`), when
|
|
68
68
|
* the loop ran. `converged` = the improved tasks landed; `uncertain-tasks` =
|
|
69
69
|
* the cap was hit and specific tasks landed `needsAnswers: true`; absent when
|
|
70
|
-
* no loop ran or the
|
|
70
|
+
* no loop ran or the spec was routed to needs-attention (`outcome:
|
|
71
71
|
* 'needs-attention'`).
|
|
72
72
|
*/
|
|
73
73
|
loop?: 'converged' | 'uncertain-tasks';
|
|
@@ -75,8 +75,8 @@ export interface TaskResult {
|
|
|
75
75
|
message: string;
|
|
76
76
|
}
|
|
77
77
|
/**
|
|
78
|
-
* The agent invocation: runs the `to-task`
|
|
79
|
-
* `work/tasks/backlog/<slug>.md` task files (and trimming the
|
|
78
|
+
* The agent invocation: runs the `to-task` spec in `cwd`, WRITING
|
|
79
|
+
* `work/tasks/backlog/<slug>.md` task files (and trimming the spec). It does NO git —
|
|
80
80
|
* the runner captures the produced files and commits them.
|
|
81
81
|
*/
|
|
82
82
|
export type TaskDorfl = (input: {
|
|
@@ -94,7 +94,7 @@ export interface TaskingLockSeam {
|
|
|
94
94
|
release(options: ReleaseTaskingLockOptions): Promise<ReleaseTaskingLockResult>;
|
|
95
95
|
}
|
|
96
96
|
export interface PerformTaskOptions {
|
|
97
|
-
/** The
|
|
97
|
+
/** The spec slug to task (`work/specs/ready/<slug>.md`). */
|
|
98
98
|
slug: string;
|
|
99
99
|
/** The working clone/checkout the tasking runs in. */
|
|
100
100
|
cwd: string;
|
|
@@ -109,16 +109,16 @@ export interface PerformTaskOptions {
|
|
|
109
109
|
/** Per-repo `autoTask` policy (resolved by `autoslice-gate`). Agent path only. */
|
|
110
110
|
autoTask?: boolean;
|
|
111
111
|
/**
|
|
112
|
-
* The
|
|
113
|
-
* `autoTask` POLICY is already satisfied — naming the
|
|
112
|
+
* The spec was named EXPLICITLY by the operator (`do spec:<slug>`), so the
|
|
113
|
+
* `autoTask` POLICY is already satisfied — naming the spec IS the authorization,
|
|
114
114
|
* EXACTLY as `do <task>` builds a named task regardless of `autoBuild` (the
|
|
115
115
|
* build path's precedent: `autoBuild` gates the scan/selection POOL only, never
|
|
116
116
|
* `performDo`'s explicit claim). When `true`, the agent tasking gate drops the
|
|
117
|
-
* `autoTask` policy term and binds ONLY the
|
|
117
|
+
* `autoTask` policy term and binds ONLY the spec's own readiness axes
|
|
118
118
|
* (`humanOnly`/`needsAnswers`) + `taskedAfter`. Defaults `false`. Both the
|
|
119
|
-
* explicit `do
|
|
119
|
+
* explicit `do spec:` dispatch AND the auto-pick path pass `true` here: the
|
|
120
120
|
* auto-pick POOL (`do-autopick.ts`) is the single `autoTask`-enforcement point
|
|
121
|
-
* (a pool-ineligible
|
|
121
|
+
* (a pool-ineligible spec is never selected), so once a spec is dispatched its
|
|
122
122
|
* policy is already settled. Agent path only.
|
|
123
123
|
*/
|
|
124
124
|
explicit?: boolean;
|
|
@@ -140,7 +140,7 @@ export interface PerformTaskOptions {
|
|
|
140
140
|
* with (task `slice-output-through-integration`): `propose` (default — push the
|
|
141
141
|
* `work/<slug>` branch + open a PR carrying the tasks, NO `main` touch) or
|
|
142
142
|
* `merge` (land them on `main`). Resolved ONCE in {@link performIntegration},
|
|
143
|
-
* so EVERY `do task:` integrate-time arg applies to `do
|
|
143
|
+
* so EVERY `do task:` integrate-time arg applies to `do spec:` by construction.
|
|
144
144
|
* The AGENT path only; the human path commits its own output. Defaults to the
|
|
145
145
|
* system default (`propose`).
|
|
146
146
|
*/
|
|
@@ -165,7 +165,7 @@ export interface PerformTaskOptions {
|
|
|
165
165
|
* task-path mirror of the build Gate-2, riding {@link performIntegration}'s
|
|
166
166
|
* review-before-integrate block. When `review` resolves on, a FRESH-CONTEXT
|
|
167
167
|
* agent reviews the WHOLE produced task SET (coherence / dependency graph /
|
|
168
|
-
* gaps + overlap /
|
|
168
|
+
* gaps + overlap / spec-goal correct-if-implemented) BEFORE the tasks integrate;
|
|
169
169
|
* `approve` lands them, `block` routes the set to needs-attention. It is
|
|
170
170
|
* controlled by the BUILD `--review`/`--no-review`/`--review-model` family (ONE
|
|
171
171
|
* gate-configuration story shared with the build path) and is ONE-SHOT —
|
|
@@ -186,7 +186,7 @@ export interface PerformTaskOptions {
|
|
|
186
186
|
/** Injectable lock seam (tests stub acquire/release). Defaults to the real CAS. */
|
|
187
187
|
lock?: TaskingLockSeam;
|
|
188
188
|
/**
|
|
189
|
-
* **The per-repo TASK-PLACEMENT default** (
|
|
189
|
+
* **The per-repo TASK-PLACEMENT default** (spec
|
|
190
190
|
* `staging-pool-position-gate-and-trust-model` US #5, task
|
|
191
191
|
* `runner-deterministic-slice-placement-policy-and-precedence`). The
|
|
192
192
|
* resolved per-repo default landing for the tasker's emitted tasks, fed as
|
|
@@ -209,13 +209,13 @@ export interface PerformTaskOptions {
|
|
|
209
209
|
*/
|
|
210
210
|
explicitTasksLandIn?: 'pre-backlog' | 'ready';
|
|
211
211
|
/**
|
|
212
|
-
* **The tasker review→edit→converge LOOP** (`slicer-review-edit-loop`, GATES
|
|
213
|
-
* `work/
|
|
212
|
+
* **The tasker review→edit→converge LOOP** (`slicer-review-edit-loop`, GATES spec
|
|
213
|
+
* `work/specs/ready/review.md` RESOLVED DESIGN — Shape 2 / insertion point A). When
|
|
214
214
|
* provided, AFTER the agent produces candidate tasks (step 3) and BEFORE the
|
|
215
215
|
* runner finalises them (step 4), run the `review` SKILL as a review→edit→
|
|
216
216
|
* re-review loop that IMPROVES the candidate tasks in place, then routes the
|
|
217
217
|
* verdict through the three outcomes (converge→land / uncertain-task→
|
|
218
|
-
* needsAnswers / decomposition-unclear→
|
|
218
|
+
* needsAnswers / decomposition-unclear→spec-to-needs-attention). The seam is the
|
|
219
219
|
* review+edit gate (tests inject a canned verdict+edits; production:
|
|
220
220
|
* {@link harnessTaskReviewGate}). Omitted ⇒ NO loop (the candidate tasks land
|
|
221
221
|
* as-is — the pre-loop behaviour). The HUMAN path is unaffected (the loop runs
|
|
@@ -254,7 +254,7 @@ export interface PerformTaskOptions {
|
|
|
254
254
|
note?: (message: string) => void;
|
|
255
255
|
}
|
|
256
256
|
/**
|
|
257
|
-
* **The STAGED-TASKS dir** (
|
|
257
|
+
* **The STAGED-TASKS dir** (spec `staging-pool-position-gate-and-trust-model`,
|
|
258
258
|
* task `pre-backlog-staging-folder-and-promote-step-a`, governing ADR
|
|
259
259
|
* `placement-is-runner-deterministic-humanonly-is-agent-judgement`). The runner
|
|
260
260
|
* lands the tasker's emitted task files HERE, NOT in `work/tasks/ready/`: an item
|
|
@@ -266,7 +266,7 @@ export interface PerformTaskOptions {
|
|
|
266
266
|
*/
|
|
267
267
|
export declare const STAGED_TASKS_DIR: string;
|
|
268
268
|
/**
|
|
269
|
-
* Run the `do
|
|
269
|
+
* Run the `do spec:<slug>` tasking path end-to-end. Never throws for the expected
|
|
270
270
|
* gate-refused / lock-lost / agent-failed / stale cases — those are returned with
|
|
271
271
|
* the appropriate exit code and outcome. The runner owns all git; the agent only
|
|
272
272
|
* writes task files.
|
package/dist/tasking.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasking.d.ts","sourceRoot":"","sources":["../src/tasking.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAKpD,OAAO,EAGN,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAc,KAAK,OAAO,EAAC,MAAM,cAAc,CAAC;AAKvD,OAAO,EAEN,KAAK,cAAc,EAEnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH
|
|
1
|
+
{"version":3,"file":"tasking.d.ts","sourceRoot":"","sources":["../src/tasking.ts"],"names":[],"mappings":"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"}
|