dorfl 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apply-merge-action.js +1 -1
- package/dist/apply-merge-action.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +25 -5
- package/dist/cli.js.map +1 -1
- package/dist/complete.d.ts +1 -1
- package/dist/complete.d.ts.map +1 -1
- package/dist/complete.js +14 -0
- package/dist/complete.js.map +1 -1
- package/dist/integration-core.d.ts +24 -1
- package/dist/integration-core.d.ts.map +1 -1
- package/dist/integration-core.js +120 -4
- package/dist/integration-core.js.map +1 -1
- package/dist/protocol/CLAIM-PROTOCOL.md +10 -0
- package/dist/protocol/WORK-CONTRACT.md +5 -1
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +6 -0
- package/dist/run.js.map +1 -1
- package/dist/sidecar-guard.d.ts +72 -0
- package/dist/sidecar-guard.d.ts.map +1 -0
- package/dist/sidecar-guard.js +118 -0
- package/dist/sidecar-guard.js.map +1 -0
- package/dist/skills/drive-tasks/SKILL.md +45 -2
- package/dist/skills/setup/protocol/CLAIM-PROTOCOL.md +10 -0
- package/dist/skills/setup/protocol/WORK-CONTRACT.md +5 -1
- package/dist/tasking.d.ts.map +1 -1
- package/dist/tasking.js +31 -0
- package/dist/tasking.js.map +1 -1
- package/dist/verify.d.ts +24 -0
- package/dist/verify.d.ts.map +1 -1
- package/dist/verify.js +55 -3
- package/dist/verify.js.map +1 -1
- package/package.json +1 -1
- package/src/apply-merge-action.ts +1 -1
- package/src/cli.ts +25 -5
- package/src/complete.ts +15 -0
- package/src/integration-core.ts +146 -4
- package/src/run.ts +6 -0
- package/src/sidecar-guard.ts +142 -0
- package/src/tasking.ts +33 -0
- package/src/verify.ts +73 -3
|
@@ -183,6 +183,16 @@ transition (the durable main-moves AND the per-item lock acquire/release/amend).
|
|
|
183
183
|
(Your TESTS may freely create and operate on their OWN throwaway git repos — that
|
|
184
184
|
is expected.)
|
|
185
185
|
|
|
186
|
+
If this task produces a DURABLE, REUSABLE artifact — a patch, a build/measurement
|
|
187
|
+
script, a captured measurement, a diagram — write it to docs/spikes/<slug>/ (a
|
|
188
|
+
STABLE path that does NOT move when the task lands) and REFERENCE it from the task
|
|
189
|
+
record / finding / ADR. Do NOT create a <slug>/ sidecar folder next to a task or
|
|
190
|
+
spec (work/tasks/<slug>/, work/specs/<slug>/): only notes/* items may carry a
|
|
191
|
+
co-located sidecar, because tasks and specs FLOW through status folders and a
|
|
192
|
+
co-located sidecar gets STRANDED on the ready→done move (one item split across two
|
|
193
|
+
folders — WORK-CONTRACT rule 8). Transient BUILD SCRATCH (source trees, GBs of
|
|
194
|
+
objects) belongs OUTSIDE the repo entirely.
|
|
195
|
+
|
|
186
196
|
Leave a CLEAN working tree — only the changes this task intends. The runner
|
|
187
197
|
commits everything untracked (`git add -A`), so any scratch, debug, or
|
|
188
198
|
runtime-artifact file you or your tools created would otherwise be swept into the
|
|
@@ -144,7 +144,11 @@ The rule is symmetric: _a discrepancy between a doc and reality is not something
|
|
|
144
144
|
5. **Content-derived slugs, never counters.** Use a URL-safe slug from the title (e.g. "Historical store schema" → `historical-store-schema`). NO monotonic integer IDs — two agents would both grab "next = 43". A short hash or date prefix is fine if disambiguation is needed (`historical-store-schema` or `2026-06-03-historical-store-schema`).
|
|
145
145
|
6. **Dependencies by slug, read-only.** `blockedBy: [other-slug]` references other items; an item never writes another item's file. The blocker owns its own status (its folder).
|
|
146
146
|
7. **Claim state is the per-item LOCK, never a frontmatter field (and not a folder move).** Claiming an item acquires its per-item lock (`refs/dorfl/lock/<type>-<slug>`, `action: implement`) — a create-only ref push that is self-arbitrating (the loser is definitively told "lost", no retry budget); the body STAYS in `tasks/ready/` (claim writes nothing to `main`, so an agent can claim even on a protected `main`). The holder/since ride the lock entry; `git` (the ref + its parentless commit) holds the authoritative record. There is NO `claimed_by` / `claimed_at` frontmatter, and no `git mv` into an `in-progress/` folder — the claimable predicate is "in the pool `tasks/ready/` on `main` AND no lock held on its ref".
|
|
147
|
-
8. **
|
|
147
|
+
8. **A co-located `<slug>/` asset sidecar folder is for `notes/*` ONLY — tasks/specs use a STABLE `docs/spikes/<slug>/` home and REFERENCE it.** The item is ALWAYS the `<slug>.md` file (that is its identity and the only thing scanned). A `notes/*` note (`ideas/`/`observations/`/`findings/`) MAY carry companion resources — a `.patch`, a mockup image, a diagram, a sample payload — in a sibling folder of the SAME slug, `notes/<bucket>/<slug>/` (e.g. `notes/ideas/my-idea.md` + `notes/ideas/my-idea/fix.patch`). This is safe and disturbs NOTHING because every scanner lists a bucket by `isWorkItemFile` (= name ends in `.md`), so a sidecar folder is silently skipped — it is never mistaken for an item, and `(umbrella, slug)` addressing is unchanged. Rules: the sidecar is OPTIONAL and most notes have none; it is OWNED by its `<slug>.md` (the markdown references its assets by relative path, e.g. `[the patch](<slug>/fix.patch)`); it shares the note's deletion-only lifecycle (when the note is deleted, delete its sidecar too — a note leaves by deletion, and an orphaned sidecar is litter); and it is NOT a second item, so never put another item's `<slug>.md` inside it (that would hide it from scanning). It does NOT violate rule 1 (one file per ITEM) or rule 2 (no shared index) — the sidecar holds a note's OWN assets, not a manifest over many items.
|
|
148
|
+
|
|
149
|
+
**`tasks/*` and `specs/*` MUST NOT carry a `<slug>/` sidecar.** They are FLOWING regimes: a task moves `tasks/ready → tasks/done` (and to `tasks/cancelled/`), a spec moves `specs/ready → specs/tasked` (and to `specs/dropped/`), and a co-located sidecar — which shares the item's lifecycle — would have to be `git mv`'d in lockstep on EVERY status transition. In practice it gets STRANDED: the `<slug>.md` moves to the new status folder while the sidecar is left behind in the old one, splitting ONE item across TWO status folders — a one-slug-one-folder violation (a Gate-2 BLOCK) that also buries durable, reusable engineering assets inside a transient task position no one does archaeology in. So a task's/spec's durable companion artifacts (a rebased `.patch`, a build/measurement script, a captured measurement, a diagram) live in a STABLE, NON-FLOWING home that NEVER moves on a status change — the convention is **`docs/spikes/<slug>/`** (reference material that sits alongside the ADRs it supports) — and the task/spec `<slug>.md` REFERENCES them by that stable path (any spawned finding/ADR links there too). Rationale: this removes a whole class of `ready → done` `git mv` fragility (there is nothing to move but the `.md`) and puts durable assets in a durable home instead of a transient one.
|
|
150
|
+
|
|
151
|
+
Carve-outs (unaffected by this rule): (a) TRANSIENT BUILD SCRATCH — source trees, GBs of build objects — belongs OUTSIDE the repo entirely (the `dorfl` scratch area), never in `docs/spikes/` or a sidecar; (b) the needs-attention `work/questions/<type>-<slug>.md` file is a tooling-owned STATUS-MECHANISM file (identity-keyed, it deliberately does NOT move with the item), NOT an item asset sidecar — it is not what this rule governs; (c) `notes/*` sidecars are explicitly ALLOWED (the paragraph above) because notes do NOT flow — they leave only by deletion, so a note's sidecar never moves and cannot strand.
|
|
148
152
|
|
|
149
153
|
## Task quality rule — tests must not touch the real environment
|
|
150
154
|
|
package/dist/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
package/dist/run.js
CHANGED
|
@@ -693,7 +693,13 @@ async function runOneItem(candidate, ctx) {
|
|
|
693
693
|
if (core.outcome === 'prepare-failed' ||
|
|
694
694
|
core.outcome === 'review-blocked' ||
|
|
695
695
|
core.outcome === 'rebase-conflict' ||
|
|
696
|
+
core.outcome === 'sidecar-violation' ||
|
|
696
697
|
core.outcome === 'invariant-violation') {
|
|
698
|
+
// `sidecar-violation`: a co-located `<slug>/` sidecar sits beside a FLOWING
|
|
699
|
+
// task/spec item (WORK-CONTRACT rule 8) — a HARD BLOCK before the durable
|
|
700
|
+
// move (it would strand on `ready → done`). The core routed it to
|
|
701
|
+
// needs-attention with an actionable relocate-to-`docs/spikes/<slug>/`
|
|
702
|
+
// reason; the least-supervised caller MUST NOT fall through to success.
|
|
697
703
|
// `prepare-failed`: the env-prep (install) step was red, so the env could
|
|
698
704
|
// not be made ready and `verify` was NOT run — distinct from a `tests-failed`
|
|
699
705
|
// red gate. Route it to needs-attention like the others (a human fixes the
|
package/dist/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { type WorkFolderKey } from './work-layout.js';
|
|
2
|
+
/**
|
|
3
|
+
* The **co-located task/spec sidecar GUARD** (WORK-CONTRACT.md rule 8, the
|
|
4
|
+
* `notes/*`-only scoping).
|
|
5
|
+
*
|
|
6
|
+
* WHAT IT ENFORCES. A `<slug>/` asset sidecar folder co-located with a work item
|
|
7
|
+
* is ALLOWED for `notes/*` ONLY (`ideas`/`observations`/`findings` — they do NOT
|
|
8
|
+
* flow; a note leaves by deletion, so its sidecar never moves). It is FORBIDDEN
|
|
9
|
+
* for a `tasks/*` or `specs/*` item, because those regimes FLOW through status
|
|
10
|
+
* folders (`tasks/ready → tasks/done`, `specs/ready → specs/tasked`, …): a
|
|
11
|
+
* co-located sidecar shares the item's lifecycle and must be `git mv`'d in
|
|
12
|
+
* lockstep on every transition, and in practice gets STRANDED — the `<slug>.md`
|
|
13
|
+
* moves to the new status folder while the `<slug>/` sidecar is left behind in
|
|
14
|
+
* the old one, splitting ONE item across TWO status folders (a
|
|
15
|
+
* one-slug-one-folder violation, the SAME invariant `ledger-lint.ts` reads and
|
|
16
|
+
* the integration core enforces). A task's/spec's durable companion artifacts
|
|
17
|
+
* belong in the STABLE, non-flowing `docs/spikes/<slug>/` home (referenced by
|
|
18
|
+
* path from the `<slug>.md`), NOT a co-located sidecar.
|
|
19
|
+
*
|
|
20
|
+
* WHERE IT RUNS. This is the DETECTOR half; the integration core (`integration-core.ts`)
|
|
21
|
+
* wires it as a HARD BLOCK at LAND, BEFORE the durable `git mv` — a detected
|
|
22
|
+
* sidecar routes the item to needs-attention with {@link formatSidecarGuardReason},
|
|
23
|
+
* consistent with the status=folder / one-item-one-location contract the stranding
|
|
24
|
+
* violates. Fix = `git mv` the sidecar contents to `docs/spikes/<slug>/` + a
|
|
25
|
+
* reference edit in the `<slug>.md`.
|
|
26
|
+
*
|
|
27
|
+
* NO FALSE POSITIVES on: (a) the `work/questions/<type>-<slug>.md` needs-attention
|
|
28
|
+
* file — it is a tooling-owned STATUS-MECHANISM file, NOT scanned here (only
|
|
29
|
+
* `tasks/*` + `specs/*` FLOWING folders are); (b) a legitimate `notes/*` sidecar —
|
|
30
|
+
* the note buckets are deliberately EXCLUDED from the scan set; (c) a
|
|
31
|
+
* `docs/spikes/<slug>/` outside `work/` — this only ever looks INSIDE the FLOWING
|
|
32
|
+
* `work/` status folders.
|
|
33
|
+
*/
|
|
34
|
+
/**
|
|
35
|
+
* The FLOWING status folders a `tasks/*` / `specs/*` item moves through — the ONLY
|
|
36
|
+
* folders scanned for an illegal co-located sidecar. Deliberately EXCLUDES the
|
|
37
|
+
* `notes/*` capture buckets (`ideas`/`observations`/`findings`, which legitimately
|
|
38
|
+
* MAY carry a sidecar) and the top-level `questions`/`protocol` surfaces (neither
|
|
39
|
+
* holds a flowing work item). A sidecar under any of THESE is a rule-8 violation
|
|
40
|
+
* because the item it sits beside will be `git mv`'d to another status folder and
|
|
41
|
+
* strand it.
|
|
42
|
+
*/
|
|
43
|
+
export declare const SIDECAR_GUARD_FLOWING_FOLDERS: readonly ["tasks-backlog", "tasks-ready", "done", "cancelled", "specs-proposed", "specs-ready", "specs-tasked", "specs-dropped"];
|
|
44
|
+
/** One illegal co-located `<slug>/` sidecar found beside a flowing task/spec item. */
|
|
45
|
+
export interface ColocatedSidecar {
|
|
46
|
+
/** The flowing status folder the sidecar was found in. */
|
|
47
|
+
folder: WorkFolderKey;
|
|
48
|
+
/** The slug of the offending `<slug>/` sidecar directory. */
|
|
49
|
+
slug: string;
|
|
50
|
+
/** The repo-relative path of the sidecar directory (`work/<folder>/<slug>/`). */
|
|
51
|
+
dirRel: string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Detect a co-located `<slug>/` asset sidecar directory sitting beside the
|
|
55
|
+
* `<slug>.md` of a FLOWING task/spec item, in the given `cwd`'s working tree.
|
|
56
|
+
* Scans ONLY {@link SIDECAR_GUARD_FLOWING_FOLDERS} for a `<slug>/` DIRECTORY whose
|
|
57
|
+
* sibling `<slug>.md` FILE is present (both must be there: a lone `<slug>/`
|
|
58
|
+
* directory with no item file is not this item's sidecar). Returns every offender
|
|
59
|
+
* found (typically at most one, for the item being landed), or `[]` when clean.
|
|
60
|
+
*
|
|
61
|
+
* PURE-ish: reads the filesystem, no writes, no throws. The integration core
|
|
62
|
+
* passes the specific `slug` being landed so the block is scoped to THAT item.
|
|
63
|
+
*/
|
|
64
|
+
export declare function detectColocatedSidecars(cwd: string, slug: string): ColocatedSidecar[];
|
|
65
|
+
/**
|
|
66
|
+
* Format the ACTIONABLE needs-attention reason for a detected co-located sidecar
|
|
67
|
+
* (the message the LAND-time hard block surfaces VERBATIM). Names the offending
|
|
68
|
+
* path, the correct destination, and the exact fix — a `git mv` to
|
|
69
|
+
* `docs/spikes/<slug>/` plus a reference edit.
|
|
70
|
+
*/
|
|
71
|
+
export declare function formatSidecarGuardReason(sidecars: readonly ColocatedSidecar[]): string;
|
|
72
|
+
//# sourceMappingURL=sidecar-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidecar-guard.d.ts","sourceRoot":"","sources":["../src/sidecar-guard.ts"],"names":[],"mappings":"AAEA,OAAO,EAGN,KAAK,aAAa,EAClB,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,kIASG,CAAC;AAE9C,sFAAsF;AACtF,MAAM,WAAW,gBAAgB;IAChC,0DAA0D;IAC1D,MAAM,EAAE,aAAa,CAAC;IACtB,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;CACf;AAWD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACtC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACV,gBAAgB,EAAE,CAmBpB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACvC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,GACnC,MAAM,CAkBR"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { existsSync, statSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { workFolderName, workFolderPath, } from './work-layout.js';
|
|
4
|
+
/**
|
|
5
|
+
* The **co-located task/spec sidecar GUARD** (WORK-CONTRACT.md rule 8, the
|
|
6
|
+
* `notes/*`-only scoping).
|
|
7
|
+
*
|
|
8
|
+
* WHAT IT ENFORCES. A `<slug>/` asset sidecar folder co-located with a work item
|
|
9
|
+
* is ALLOWED for `notes/*` ONLY (`ideas`/`observations`/`findings` — they do NOT
|
|
10
|
+
* flow; a note leaves by deletion, so its sidecar never moves). It is FORBIDDEN
|
|
11
|
+
* for a `tasks/*` or `specs/*` item, because those regimes FLOW through status
|
|
12
|
+
* folders (`tasks/ready → tasks/done`, `specs/ready → specs/tasked`, …): a
|
|
13
|
+
* co-located sidecar shares the item's lifecycle and must be `git mv`'d in
|
|
14
|
+
* lockstep on every transition, and in practice gets STRANDED — the `<slug>.md`
|
|
15
|
+
* moves to the new status folder while the `<slug>/` sidecar is left behind in
|
|
16
|
+
* the old one, splitting ONE item across TWO status folders (a
|
|
17
|
+
* one-slug-one-folder violation, the SAME invariant `ledger-lint.ts` reads and
|
|
18
|
+
* the integration core enforces). A task's/spec's durable companion artifacts
|
|
19
|
+
* belong in the STABLE, non-flowing `docs/spikes/<slug>/` home (referenced by
|
|
20
|
+
* path from the `<slug>.md`), NOT a co-located sidecar.
|
|
21
|
+
*
|
|
22
|
+
* WHERE IT RUNS. This is the DETECTOR half; the integration core (`integration-core.ts`)
|
|
23
|
+
* wires it as a HARD BLOCK at LAND, BEFORE the durable `git mv` — a detected
|
|
24
|
+
* sidecar routes the item to needs-attention with {@link formatSidecarGuardReason},
|
|
25
|
+
* consistent with the status=folder / one-item-one-location contract the stranding
|
|
26
|
+
* violates. Fix = `git mv` the sidecar contents to `docs/spikes/<slug>/` + a
|
|
27
|
+
* reference edit in the `<slug>.md`.
|
|
28
|
+
*
|
|
29
|
+
* NO FALSE POSITIVES on: (a) the `work/questions/<type>-<slug>.md` needs-attention
|
|
30
|
+
* file — it is a tooling-owned STATUS-MECHANISM file, NOT scanned here (only
|
|
31
|
+
* `tasks/*` + `specs/*` FLOWING folders are); (b) a legitimate `notes/*` sidecar —
|
|
32
|
+
* the note buckets are deliberately EXCLUDED from the scan set; (c) a
|
|
33
|
+
* `docs/spikes/<slug>/` outside `work/` — this only ever looks INSIDE the FLOWING
|
|
34
|
+
* `work/` status folders.
|
|
35
|
+
*/
|
|
36
|
+
/**
|
|
37
|
+
* The FLOWING status folders a `tasks/*` / `specs/*` item moves through — the ONLY
|
|
38
|
+
* folders scanned for an illegal co-located sidecar. Deliberately EXCLUDES the
|
|
39
|
+
* `notes/*` capture buckets (`ideas`/`observations`/`findings`, which legitimately
|
|
40
|
+
* MAY carry a sidecar) and the top-level `questions`/`protocol` surfaces (neither
|
|
41
|
+
* holds a flowing work item). A sidecar under any of THESE is a rule-8 violation
|
|
42
|
+
* because the item it sits beside will be `git mv`'d to another status folder and
|
|
43
|
+
* strand it.
|
|
44
|
+
*/
|
|
45
|
+
export const SIDECAR_GUARD_FLOWING_FOLDERS = [
|
|
46
|
+
'tasks-backlog',
|
|
47
|
+
'tasks-ready',
|
|
48
|
+
'done',
|
|
49
|
+
'cancelled',
|
|
50
|
+
'specs-proposed',
|
|
51
|
+
'specs-ready',
|
|
52
|
+
'specs-tasked',
|
|
53
|
+
'specs-dropped',
|
|
54
|
+
];
|
|
55
|
+
/** Does `<dir>/<name>` exist AND is it a directory? (a sidecar is a folder). */
|
|
56
|
+
function isDir(dir, name) {
|
|
57
|
+
try {
|
|
58
|
+
return statSync(join(dir, name)).isDirectory();
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Detect a co-located `<slug>/` asset sidecar directory sitting beside the
|
|
66
|
+
* `<slug>.md` of a FLOWING task/spec item, in the given `cwd`'s working tree.
|
|
67
|
+
* Scans ONLY {@link SIDECAR_GUARD_FLOWING_FOLDERS} for a `<slug>/` DIRECTORY whose
|
|
68
|
+
* sibling `<slug>.md` FILE is present (both must be there: a lone `<slug>/`
|
|
69
|
+
* directory with no item file is not this item's sidecar). Returns every offender
|
|
70
|
+
* found (typically at most one, for the item being landed), or `[]` when clean.
|
|
71
|
+
*
|
|
72
|
+
* PURE-ish: reads the filesystem, no writes, no throws. The integration core
|
|
73
|
+
* passes the specific `slug` being landed so the block is scoped to THAT item.
|
|
74
|
+
*/
|
|
75
|
+
export function detectColocatedSidecars(cwd, slug) {
|
|
76
|
+
const found = [];
|
|
77
|
+
for (const folder of SIDECAR_GUARD_FLOWING_FOLDERS) {
|
|
78
|
+
const dir = workFolderPath(cwd, folder);
|
|
79
|
+
// The item file `<slug>.md` AND the sidecar dir `<slug>/` must BOTH be
|
|
80
|
+
// present for this to be the item's stranded-able sidecar. A stray `<slug>/`
|
|
81
|
+
// with no `<slug>.md` in the same folder is not an item's sidecar.
|
|
82
|
+
if (!existsSync(join(dir, `${slug}.md`))) {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
if (isDir(dir, slug)) {
|
|
86
|
+
found.push({
|
|
87
|
+
folder,
|
|
88
|
+
slug,
|
|
89
|
+
dirRel: `work/${workFolderName(folder)}/${slug}/`,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return found;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Format the ACTIONABLE needs-attention reason for a detected co-located sidecar
|
|
97
|
+
* (the message the LAND-time hard block surfaces VERBATIM). Names the offending
|
|
98
|
+
* path, the correct destination, and the exact fix — a `git mv` to
|
|
99
|
+
* `docs/spikes/<slug>/` plus a reference edit.
|
|
100
|
+
*/
|
|
101
|
+
export function formatSidecarGuardReason(sidecars) {
|
|
102
|
+
if (sidecars.length === 0) {
|
|
103
|
+
return '';
|
|
104
|
+
}
|
|
105
|
+
const lines = [
|
|
106
|
+
'task/spec artifacts belong in docs/spikes/<slug>/, not a co-located ' +
|
|
107
|
+
'work/tasks|specs/<slug>/ sidecar; only notes/* may carry a sidecar ' +
|
|
108
|
+
'(WORK-CONTRACT rule 8) — relocate + reference by path:',
|
|
109
|
+
];
|
|
110
|
+
for (const s of sidecars) {
|
|
111
|
+
lines.push(` - ${s.dirRel}: git mv its contents to docs/spikes/${s.slug}/ ` +
|
|
112
|
+
`(a STABLE, non-flowing home), then reference them by that path from ` +
|
|
113
|
+
`work/${workFolderName(s.folder)}/${s.slug}.md (a flowing item's ` +
|
|
114
|
+
`co-located sidecar strands on the ready→done move).`);
|
|
115
|
+
}
|
|
116
|
+
return lines.join('\n');
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=sidecar-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidecar-guard.js","sourceRoot":"","sources":["../src/sidecar-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EACN,cAAc,EACd,cAAc,GAEd,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC5C,eAAe;IACf,aAAa;IACb,MAAM;IACN,WAAW;IACX,gBAAgB;IAChB,aAAa;IACb,cAAc;IACd,eAAe;CAC6B,CAAC;AAY9C,gFAAgF;AAChF,SAAS,KAAK,CAAC,GAAW,EAAE,IAAY;IACvC,IAAI,CAAC;QACJ,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CACtC,GAAW,EACX,IAAY;IAEZ,MAAM,KAAK,GAAuB,EAAE,CAAC;IACrC,KAAK,MAAM,MAAM,IAAI,6BAA6B,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxC,uEAAuE;QACvE,6EAA6E;QAC7E,mEAAmE;QACnE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;YAC1C,SAAS;QACV,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC;gBACV,MAAM;gBACN,IAAI;gBACJ,MAAM,EAAE,QAAQ,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG;aACjD,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACvC,QAAqC;IAErC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG;QACb,sEAAsE;YACrE,qEAAqE;YACrE,wDAAwD;KACzD,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CACT,OAAO,CAAC,CAAC,MAAM,wCAAwC,CAAC,CAAC,IAAI,IAAI;YAChE,sEAAsE;YACtE,QAAQ,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,wBAAwB;YAClE,qDAAqD,CACtD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -8,6 +8,8 @@ description: 'The supervised conductor: build every ready work/ task in a loop v
|
|
|
8
8
|
|
|
9
9
|
**Be the conductor, not the player.** `dorfl do task:<slug> --isolated` already builds ONE task autonomously (claim → build agent → acceptance gate → optional Gate-2 review → PR) in a worktree off the arbiter. `drive-tasks` is the layer ABOVE: it looks at the _whole_ board, checks each ready task is still _fresh_, decides _what_ to build and in _what order_, drives `do` per task, then acts as a **third reviewer** (Gate-3, the conductor's own diff-vs-criteria pass — see step 4b) over each PR before merging it.
|
|
10
10
|
|
|
11
|
+
> **Invoking this skill (pi).** It is `disable-model-invocation: true`, so the model will NOT auto-load it — a human reaches for it explicitly. In pi the command form is **`/skill:drive-tasks`** (with `enableSkillCommands: true` in settings), and **arguments ARE supported** — anything after the command is appended to the skill as `User: <args>`, so `/skill:drive-tasks --merge the auth tasks` passes the run-mode + scope straight in. (If `/skill:drive-tasks` "does nothing", check `enableSkillCommands` is on and that the skill is discovered — a `drive-tasks/SKILL.md` DIRECTORY is discovered under `.agents/skills/`, but a bare root `.md` there is IGNORED.) Because pi cannot pass typed skill args, the equivalent and always-safe form is simply a normal prompt that NAMES the skill and its run parameters — "use the drive-tasks skill, `--merge`, on the backlog tasks X and Y"; that prose is read exactly like `/skill:drive-tasks --merge …`. Either way, state the run mode (Gate-2 on/off, propose vs merge) and scope in that same message so the skill need not ask (see [Autonomy](#autonomy--dont-ask-when-execution-is-fully-determined)).
|
|
12
|
+
|
|
11
13
|
It is a **methodology skill** (prose you follow), like `to-task` / `review` — NOT a runner command. **Precondition:** it drives the **`dorfl` CLI** over a repo using the **`work/` contract** — if neither is present, this skill does not apply. (It is the ONE skill that leans on the runner CLI directly; that is its job. The other skills stay protocol-native.) It composes:
|
|
12
14
|
|
|
13
15
|
- **`dorfl do task:<slug> --isolated`** — the per-task worker (build + acceptance gate + optional PR/code-review gate), run `--isolated` ALWAYS (a job worktree off the arbiter, never the human checkout). The harness, model, acceptance gate, review mode, and integration mode all come from dorfl CONFIG (per-repo / global) — do NOT hardcode them; `--isolated` is the one flag this skill pins, and any other flag (`--review`/`--merge`/…) is a user-confirmed per-run override only.
|
|
@@ -38,11 +40,11 @@ The loop, selection, freshness check, Gate-3 review, and stuck-set are exactly a
|
|
|
38
40
|
## When to use vs. not
|
|
39
41
|
|
|
40
42
|
- **Use** to take a `work/tasks/ready/` from "N ready tasks" to "no ready task can advance", building + reviewing + merging each, in dependency-and-practical order; to conduct the dorfl worker through a phase of task-building; as the building engine `orchestrate` delegates to.
|
|
41
|
-
- **Don't** use it as the unattended daemon — that's `run` (genuine parallelism, no human). `drive-tasks` is **one task at a time
|
|
43
|
+
- **Don't** use it as the unattended daemon — that's `run` (genuine daemon parallelism, no human). `drive-tasks` is **sequential by default, one task at a time end-to-end** (it CAN parallelise deliberately in `--propose` mode over disjoint tasks — see [Parallelism](#parallelism--only-deliberately-with-care) — but never as a daemon and never in `--merge`). Don't use it to _author_ tasks from scratch (that's `to-task`), or to _task specs / triage observations / fill judgement gaps / answer scattered open questions across the whole tree_ (that's `orchestrate`). Don't use it to FORCE a blocked task — it respects the gate.
|
|
42
44
|
|
|
43
45
|
## The golden rules (do not violate)
|
|
44
46
|
|
|
45
|
-
1. **
|
|
47
|
+
1. **Sequential by DEFAULT (one task at a time, end-to-end: build → Gate-3 review → merge); parallelise only deliberately and with care.** The default cadence is strictly serial — land each task green before dispatching the next — so each merge unlocks the next cleanly and rebases stay trivial. Parallelism is POSSIBLE (dispatch several independent `do` jobs at once) but it is a considered opt-in, not a reflex, and it is bounded by hard rules — see [Parallelism](#parallelism--only-deliberately-with-care). The two that are NON-NEGOTIABLE: **(a) `--merge` mode is ALWAYS strictly sequential** — `--merge` integrates each task DIRECTLY into `main` with no PR, so two builds in flight race the same moving `main` and collide; in `--merge` one task must fully land before the next is dispatched, no exceptions. **(b) Never parallelise tasks that touch the SAME hot file or share un-landed scaffolding** — that is the concrete collision that bit us before (two concurrent builds fighting over `build.zig`/a shared new source file, then a rebase mess in the working tree). When in doubt, stay serial: genuine daemon-grade parallelism is `run`'s job.
|
|
46
48
|
2. **Never force a failed task.** A red gate / Gate-2 block / rebase conflict routes the item to needs-attention (its per-item lock is marked `state: stuck`) — leave it there, branch preserved, skip its dependents, continue with independent ready tasks, report it at the end.
|
|
47
49
|
3. **Capture, don't fix-in-place, off-path findings.** Spot drift outside a task's scope → write a `work/notes/observations/` note (and COMMIT + PUSH it when a later build depends on it — see rule 5), don't expand the task.
|
|
48
50
|
4. **You merge the approval.** GitHub refuses `gh pr review --approve` on a PR whose commits are under your own identity — so post the verdict as a PR **comment** (`gh pr comment <n> --body-file …`, lead with `APPROVE ✅` / `BLOCK`), then `gh pr merge <n> --squash --delete-branch`. The comment + merge IS the approval.
|
|
@@ -50,6 +52,29 @@ The loop, selection, freshness check, Gate-3 review, and stuck-set are exactly a
|
|
|
50
52
|
6. **Accumulate, don't stall.** When ONE task is stuck or needs a judgement call, write it into the stuck-set and move to the next INDEPENDENT ready task — never block the whole loop on one item. When nothing more can advance, surface the stuck-set: ask the human if one is present, else report it. See [the rule](#the-accumulate-dont-block-rule).
|
|
51
53
|
7. **Never touch the target checkout; be checkout-agnostic.** Driving is a side-effect-free observation of the arbiter, so as a side-effect of driving you perform NO git mutation in the target repo's working checkout — no `git switch`/`checkout -B`/`branch -D`/`reset`/`rebase`/commit in the human's working tree. If you need a working tree for a cheap verification (e.g. re-run a task's own tests off its pushed branch), use a THROWAWAY clone / the job worktree / a temp dir — NEVER the human checkout. The human's uncommitted work and current branch are sacrosanct; leave the tree exactly as you found it. And because you need only the arbiter (a URL/remote) + `gh` + a scratch area, you can RUN FROM ANYWHERE: resolve the arbiter EXPLICITLY rather than assuming `cwd` is the repo, and if `cwd` happens to BE the human's checkout, treat it as READ-ONLY. Your own `work/notes/observations/` note commits (rule 5) go to the arbiter without dirtying the working tree. (UNLESS the human explicitly asks to drive in-place in a specific checkout.) This is the same arbiter-is-truth posture `do --remote`/`run` already use; the repeated `git rebase origin/main` reconciliations a checkout-bound drive needs are the symptom this rule removes.
|
|
52
54
|
|
|
55
|
+
## Always dispatch `dorfl do` — never hand-roll the claim/build/land
|
|
56
|
+
|
|
57
|
+
The conductor's per-task action is **`dorfl do task:<slug>` and NOTHING ELSE.** `do` owns the entire per-task mechanism: it claims the lock, spawns the build AGENT in the isolated worktree to IMPLEMENT the task, runs the acceptance gate, runs Gate-2, and integrates (PR in `--propose`, direct to `main` in `--merge`) — releasing the lock at the end. The conductor is the LAYER ABOVE that: select → dispatch `do` → Gate-3 review → merge/continue. It does NOT do `do`'s job by hand.
|
|
58
|
+
|
|
59
|
+
**The trap (observed):** a capable agent, told to "be autonomous", slides into implementing the task ITSELF — hand-editing the source in the checkout, then hand-rolling the claim/land dance with raw git (`git push` to a lock ref, manual `git mv ready→done`, manual rebase/commit/push). This is WRONG on every axis: it bypasses the isolated build (violating golden rule 7 — it mutates the human checkout, causing exactly the unstaged-changes / rebase-conflict messes that follow), it skips the gate + Gate-2 the runner would have run, it leaves stale hand-made locks, and it defeats the whole point of the conductor/worker split. **Autonomy means driving `do` to completion without pausing for permission — it does NOT mean doing `do`'s work yourself.**
|
|
60
|
+
|
|
61
|
+
Concretely:
|
|
62
|
+
|
|
63
|
+
- The ONLY way a task gets built is `dorfl do task:<slug> --isolated` (plus config/override flags). If you find yourself `write`-ing the task's source files, `git mv`-ing a task ready→done, or pushing a `refs/dorfl/lock/…` ref by hand, STOP — that is `do`'s job, undo it and dispatch `do`.
|
|
64
|
+
- Before the drive, CONFIRM dorfl is present and resolves the arbiter (`dorfl --version`, `dorfl config --json`, `dorfl status`/`scan`). If dorfl is genuinely absent, this skill does not apply (precondition) — say so; do not silently fall back to hand-driving.
|
|
65
|
+
- Reading the code to build CONTEXT (understand seams, spot drift, plant forward-notes) is right and expected. CROSSING from reading into implementing is the line you do not cross — the build agent inside `do` implements.
|
|
66
|
+
|
|
67
|
+
## Parallelism — only deliberately, with care
|
|
68
|
+
|
|
69
|
+
Sequential is the default (golden rule 1). Parallelism is a real option — the builds are `--isolated` (off the arbiter, not the human checkout), so N independent `do` jobs CAN run concurrently — but it is opt-in and fenced by these rules. Do NOT parallelise unless ALL hold:
|
|
70
|
+
|
|
71
|
+
1. **Not `--merge` mode.** `--merge` lands straight to `main` with no PR; concurrent `--merge` jobs race the moving `main`. Parallelism is only ever considered in `--propose` mode, where each task lands via its own PR and Gate-3/merge serialises the integration. In `--merge`, always strictly sequential.
|
|
72
|
+
2. **Genuinely independent tasks only** — no shared `blockedBy`-still-pending, and crucially **no shared hot file and no shared un-landed scaffolding.** Two tasks that both edit `build.zig`, or where task B needs a new source file task A is still creating, MUST be serialised (land A, then B rebases onto it). This exact collision — concurrent builds fighting over `build.zig` + a shared new file, then rebase/unstaged-changes chaos — is why the conservative default exists.
|
|
73
|
+
3. **A human explicitly wants it, or you have judged it clearly safe and say so.** State up front which tasks you are running in parallel and WHY they are safe (independent, disjoint files, propose mode); never fan out silently.
|
|
74
|
+
4. **Integration still serialises through Gate-3.** Even with parallel BUILDS, you review + merge PRs ONE at a time in dependency order, re-syncing between merges — so a later merge rebases cleanly on the earlier one. Parallel build, serial land.
|
|
75
|
+
|
|
76
|
+
Each parallel `do` is still a full isolated job you must track to completion, review at Gate-3, and merge; you gain wall-clock, not a relaxation of any gate or of the checkout-untouched rule. If any condition above is uncertain, fall back to serial — the cost of serial is time; the cost of a bad parallel run is a tangled working tree and wasted claims.
|
|
77
|
+
|
|
53
78
|
## The accumulate-don't-block rule
|
|
54
79
|
|
|
55
80
|
The loop's job is to **advance as much as possible**, not to halt at the first judgement call. Whenever you hit a **wall** on a task —
|
|
@@ -66,6 +91,22 @@ The loop's job is to **advance as much as possible**, not to halt at the first j
|
|
|
66
91
|
|
|
67
92
|
Either way the discipline is the same: do as much as can be done, then surface the residue in ONE batch — never dribble out one question at a time, never stall the whole loop on a single item.
|
|
68
93
|
|
|
94
|
+
## Autonomy — don't ask when execution is fully determined
|
|
95
|
+
|
|
96
|
+
The stuck-set exists for **genuine judgement calls** (a drifted premise, an uncertain forward-note, an ambiguously-met criterion, an unresolved fork). It is NOT a licence to ask the human to confirm things the task, the graph, and the config already answer. **When all the information needed to EXECUTE a task is known, just execute it** — do not stop to ask permission, do not narrate a plan and wait for a nod, do not re-confirm the obvious.
|
|
97
|
+
|
|
98
|
+
> **Autonomy is driving `do`, not doing `do`'s work.** Being autonomous means running the loop to completion without pausing for permission. It does NOT mean rolling up your sleeves and implementing the tasks yourself. The most common autonomy failure is exactly this over-reach: the agent, trying to be helpful, hand-writes the task's code and hand-rolls the claim/land git dance instead of dispatching `dorfl do`. Full autonomy + `dorfl do` per task are COMPLEMENTARY, not in tension — see [Always dispatch `dorfl do`](#always-dispatch-dorfl-do--never-hand-roll-the-claimbuildland).
|
|
99
|
+
|
|
100
|
+
Concretely, DEFAULT TO ACTING (no question) when:
|
|
101
|
+
|
|
102
|
+
- The task's premises still hold (step-1 freshness passes) and its acceptance criteria are clear — build it. You do not need sign-off to dispatch a ready, fresh task.
|
|
103
|
+
- The run mode was already stated (in the invoking message / `/skill:drive-tasks` args) or resolves cleanly from config — use it; do not re-ask propose-vs-merge or Gate-2 each task. Confirm the run mode ONCE at the start (step 4a) and only when it was NOT supplied; thereafter let config drive silently.
|
|
104
|
+
- Dependency order and hot-file serialisation are computable from the graph — pick the order and state it; don't ask which order.
|
|
105
|
+
- A needs-attention item failed for a FIXABLE reason (a bug the gate caught, a flake) — `requeue` + re-`do` is a conductor move, not a human question ([Recovering](#recovering-a-needs-attention-item-requeue)).
|
|
106
|
+
- A Gate-3 verdict is a CLEAR approve or CLEAR block — act on it; only a true coin-flip goes to the stuck-set.
|
|
107
|
+
|
|
108
|
+
ONLY surface a question when execution genuinely cannot proceed without a human decision — the residue defined by the [accumulate-don't-block rule](#the-accumulate-dont-block-rule). The bar is "I cannot correctly execute this without an answer", NOT "I could ask to be safe". Bias hard toward autonomous completion: run the loop to exhaustion, then surface the (hopefully small) real-judgement residue in ONE batch. A drive that asks the human to bless each obvious step has failed at being a conductor.
|
|
109
|
+
|
|
69
110
|
## Recovering a needs-attention item (requeue)
|
|
70
111
|
|
|
71
112
|
When a task has routed to needs-attention (a red gate / Gate-2 block / rebase conflict / a build-time STOP marks its per-item lock `state: stuck`), its body carries the reason and its `work/<type>-<slug>` branch is **preserved on the arbiter** — nothing is lost. Whether you can re-drive it depends on the reason:
|
|
@@ -140,6 +181,8 @@ From the READY set, order by: (a) **dependency** (a task that unlocks others fir
|
|
|
140
181
|
dorfl do task:<slug> --isolated
|
|
141
182
|
```
|
|
142
183
|
|
|
184
|
+
This dispatch IS the build — `do` runs the build agent that IMPLEMENTS the task. Do NOT implement the task yourself and do NOT hand-roll the claim/gate/land (see [Always dispatch `dorfl do`](#always-dispatch-dorfl-do--never-hand-roll-the-claimbuildland)). Dispatch ONE `do` at a time by default; only fan out to several concurrent `do` jobs when the [Parallelism](#parallelism--only-deliberately-with-care) conditions all hold (never in `--merge`).
|
|
185
|
+
|
|
143
186
|
**`--isolated` is the one flag this skill mandates. Everything else — review mode, integration mode, harness, model — is LET TO CONFIG** (resolved `flag > env > per-repo > global > default`), so do NOT hardcode `--review`/`--propose`/`--merge` here: the repo's `dorfl.json` decides, and `do --propose` is already the default. (`--isolated` reads the target repo's committed `dorfl.json` from the arbiter's main, so per-repo `harness`/`verify`/`noPR`/`review` apply automatically — no `--harness`/env workaround.) **At the START of a drive, CONFIRM the run mode with the user** — do they want Gate 2 (`--review`, off by default — the human-first family default), and propose vs merge integration? — and add `--review` / `--merge` / etc. as explicit per-run OVERRIDES only when the user asks; otherwise let config drive every build of the drive.
|
|
144
187
|
|
|
145
188
|
After a failed/aborted isolated run, a stale job worktree can linger and block the next build's mirror fetch — run `dorfl gc` (or `gc --force --yes` once you've confirmed the work is safe on the arbiter) to reap it before continuing. Use a **generous timeout** — `do` runs a build agent + the full gate + (if enabled) the Gate-2 review and can take well over an hour for a big task. If you interrupt it, KILL the spawned `do`/agent process tree explicitly (an abort of your wrapper does NOT stop the child); the isolated worktree is then reaped/recovered via `gc` + the kept arbiter branch (your checkout is untouched).
|
|
@@ -183,6 +183,16 @@ transition (the durable main-moves AND the per-item lock acquire/release/amend).
|
|
|
183
183
|
(Your TESTS may freely create and operate on their OWN throwaway git repos — that
|
|
184
184
|
is expected.)
|
|
185
185
|
|
|
186
|
+
If this task produces a DURABLE, REUSABLE artifact — a patch, a build/measurement
|
|
187
|
+
script, a captured measurement, a diagram — write it to docs/spikes/<slug>/ (a
|
|
188
|
+
STABLE path that does NOT move when the task lands) and REFERENCE it from the task
|
|
189
|
+
record / finding / ADR. Do NOT create a <slug>/ sidecar folder next to a task or
|
|
190
|
+
spec (work/tasks/<slug>/, work/specs/<slug>/): only notes/* items may carry a
|
|
191
|
+
co-located sidecar, because tasks and specs FLOW through status folders and a
|
|
192
|
+
co-located sidecar gets STRANDED on the ready→done move (one item split across two
|
|
193
|
+
folders — WORK-CONTRACT rule 8). Transient BUILD SCRATCH (source trees, GBs of
|
|
194
|
+
objects) belongs OUTSIDE the repo entirely.
|
|
195
|
+
|
|
186
196
|
Leave a CLEAN working tree — only the changes this task intends. The runner
|
|
187
197
|
commits everything untracked (`git add -A`), so any scratch, debug, or
|
|
188
198
|
runtime-artifact file you or your tools created would otherwise be swept into the
|
|
@@ -144,7 +144,11 @@ The rule is symmetric: _a discrepancy between a doc and reality is not something
|
|
|
144
144
|
5. **Content-derived slugs, never counters.** Use a URL-safe slug from the title (e.g. "Historical store schema" → `historical-store-schema`). NO monotonic integer IDs — two agents would both grab "next = 43". A short hash or date prefix is fine if disambiguation is needed (`historical-store-schema` or `2026-06-03-historical-store-schema`).
|
|
145
145
|
6. **Dependencies by slug, read-only.** `blockedBy: [other-slug]` references other items; an item never writes another item's file. The blocker owns its own status (its folder).
|
|
146
146
|
7. **Claim state is the per-item LOCK, never a frontmatter field (and not a folder move).** Claiming an item acquires its per-item lock (`refs/dorfl/lock/<type>-<slug>`, `action: implement`) — a create-only ref push that is self-arbitrating (the loser is definitively told "lost", no retry budget); the body STAYS in `tasks/ready/` (claim writes nothing to `main`, so an agent can claim even on a protected `main`). The holder/since ride the lock entry; `git` (the ref + its parentless commit) holds the authoritative record. There is NO `claimed_by` / `claimed_at` frontmatter, and no `git mv` into an `in-progress/` folder — the claimable predicate is "in the pool `tasks/ready/` on `main` AND no lock held on its ref".
|
|
147
|
-
8. **
|
|
147
|
+
8. **A co-located `<slug>/` asset sidecar folder is for `notes/*` ONLY — tasks/specs use a STABLE `docs/spikes/<slug>/` home and REFERENCE it.** The item is ALWAYS the `<slug>.md` file (that is its identity and the only thing scanned). A `notes/*` note (`ideas/`/`observations/`/`findings/`) MAY carry companion resources — a `.patch`, a mockup image, a diagram, a sample payload — in a sibling folder of the SAME slug, `notes/<bucket>/<slug>/` (e.g. `notes/ideas/my-idea.md` + `notes/ideas/my-idea/fix.patch`). This is safe and disturbs NOTHING because every scanner lists a bucket by `isWorkItemFile` (= name ends in `.md`), so a sidecar folder is silently skipped — it is never mistaken for an item, and `(umbrella, slug)` addressing is unchanged. Rules: the sidecar is OPTIONAL and most notes have none; it is OWNED by its `<slug>.md` (the markdown references its assets by relative path, e.g. `[the patch](<slug>/fix.patch)`); it shares the note's deletion-only lifecycle (when the note is deleted, delete its sidecar too — a note leaves by deletion, and an orphaned sidecar is litter); and it is NOT a second item, so never put another item's `<slug>.md` inside it (that would hide it from scanning). It does NOT violate rule 1 (one file per ITEM) or rule 2 (no shared index) — the sidecar holds a note's OWN assets, not a manifest over many items.
|
|
148
|
+
|
|
149
|
+
**`tasks/*` and `specs/*` MUST NOT carry a `<slug>/` sidecar.** They are FLOWING regimes: a task moves `tasks/ready → tasks/done` (and to `tasks/cancelled/`), a spec moves `specs/ready → specs/tasked` (and to `specs/dropped/`), and a co-located sidecar — which shares the item's lifecycle — would have to be `git mv`'d in lockstep on EVERY status transition. In practice it gets STRANDED: the `<slug>.md` moves to the new status folder while the sidecar is left behind in the old one, splitting ONE item across TWO status folders — a one-slug-one-folder violation (a Gate-2 BLOCK) that also buries durable, reusable engineering assets inside a transient task position no one does archaeology in. So a task's/spec's durable companion artifacts (a rebased `.patch`, a build/measurement script, a captured measurement, a diagram) live in a STABLE, NON-FLOWING home that NEVER moves on a status change — the convention is **`docs/spikes/<slug>/`** (reference material that sits alongside the ADRs it supports) — and the task/spec `<slug>.md` REFERENCES them by that stable path (any spawned finding/ADR links there too). Rationale: this removes a whole class of `ready → done` `git mv` fragility (there is nothing to move but the `.md`) and puts durable assets in a durable home instead of a transient one.
|
|
150
|
+
|
|
151
|
+
Carve-outs (unaffected by this rule): (a) TRANSIENT BUILD SCRATCH — source trees, GBs of build objects — belongs OUTSIDE the repo entirely (the `dorfl` scratch area), never in `docs/spikes/` or a sidecar; (b) the needs-attention `work/questions/<type>-<slug>.md` file is a tooling-owned STATUS-MECHANISM file (identity-keyed, it deliberately does NOT move with the item), NOT an item asset sidecar — it is not what this rule governs; (c) `notes/*` sidecars are explicitly ALLOWED (the paragraph above) because notes do NOT flow — they leave only by deletion, so a note's sidecar never moves and cannot strand.
|
|
148
152
|
|
|
149
153
|
## Task quality rule — tests must not touch the real environment
|
|
150
154
|
|
package/dist/tasking.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasking.d.ts","sourceRoot":"","sources":["../src/tasking.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tasking.d.ts","sourceRoot":"","sources":["../src/tasking.ts"],"names":[],"mappings":"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"}
|
package/dist/tasking.js
CHANGED
|
@@ -413,6 +413,37 @@ export async function performTask(options) {
|
|
|
413
413
|
`marked the per-item lock stuck (needs attention; no tasks landed).`,
|
|
414
414
|
};
|
|
415
415
|
}
|
|
416
|
+
if (core.outcome === 'sidecar-violation') {
|
|
417
|
+
// A co-located `<slug>/` asset sidecar sits beside the FLOWING spec item
|
|
418
|
+
// (WORK-CONTRACT.md rule 8): the tasking transition would `git mv`
|
|
419
|
+
// `specs/ready → specs/tasked` and STRAND the sidecar. The core HARD-BLOCKED
|
|
420
|
+
// before the stage/integrate; route the held spec to needs-attention through
|
|
421
|
+
// the SAME `spec:<slug>` lock-release seam the block path uses (no tasks land),
|
|
422
|
+
// carrying the actionable relocate-to-`docs/spikes/<slug>/` reason.
|
|
423
|
+
const reason = `The spec '${slug}' carries a co-located asset sidecar: ` +
|
|
424
|
+
`${core.reviewBlockReason ?? core.reason ?? ''}`;
|
|
425
|
+
const routed = await lock.release({
|
|
426
|
+
slug,
|
|
427
|
+
cwd,
|
|
428
|
+
arbiter,
|
|
429
|
+
lockedBlob,
|
|
430
|
+
routeToNeedsAttention: { reason },
|
|
431
|
+
env,
|
|
432
|
+
note,
|
|
433
|
+
});
|
|
434
|
+
if (routed.outcome !== 'released') {
|
|
435
|
+
return releaseFailureToResult(routed, slug);
|
|
436
|
+
}
|
|
437
|
+
note(reason);
|
|
438
|
+
return {
|
|
439
|
+
exitCode: 1,
|
|
440
|
+
outcome: 'needs-attention',
|
|
441
|
+
slug,
|
|
442
|
+
message: `The spec '${slug}' carries a co-located asset sidecar (WORK-CONTRACT ` +
|
|
443
|
+
`rule 8); marked the per-item lock stuck (needs attention; no tasks ` +
|
|
444
|
+
`landed; relocate it to docs/spikes/${slug}/ and reference by path).`,
|
|
445
|
+
};
|
|
446
|
+
}
|
|
416
447
|
if (core.outcome === 'review-unparseable') {
|
|
417
448
|
// The task-set acceptance gate RAN but its verdict was UNPARSEABLE (malformed
|
|
418
449
|
// JSON). Route the held spec to needs-attention through the SAME lock-release
|