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.
Files changed (41) hide show
  1. package/dist/apply-merge-action.js +1 -1
  2. package/dist/apply-merge-action.js.map +1 -1
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +25 -5
  5. package/dist/cli.js.map +1 -1
  6. package/dist/complete.d.ts +1 -1
  7. package/dist/complete.d.ts.map +1 -1
  8. package/dist/complete.js +14 -0
  9. package/dist/complete.js.map +1 -1
  10. package/dist/integration-core.d.ts +24 -1
  11. package/dist/integration-core.d.ts.map +1 -1
  12. package/dist/integration-core.js +120 -4
  13. package/dist/integration-core.js.map +1 -1
  14. package/dist/protocol/CLAIM-PROTOCOL.md +10 -0
  15. package/dist/protocol/WORK-CONTRACT.md +5 -1
  16. package/dist/run.d.ts.map +1 -1
  17. package/dist/run.js +6 -0
  18. package/dist/run.js.map +1 -1
  19. package/dist/sidecar-guard.d.ts +72 -0
  20. package/dist/sidecar-guard.d.ts.map +1 -0
  21. package/dist/sidecar-guard.js +118 -0
  22. package/dist/sidecar-guard.js.map +1 -0
  23. package/dist/skills/drive-tasks/SKILL.md +45 -2
  24. package/dist/skills/setup/protocol/CLAIM-PROTOCOL.md +10 -0
  25. package/dist/skills/setup/protocol/WORK-CONTRACT.md +5 -1
  26. package/dist/tasking.d.ts.map +1 -1
  27. package/dist/tasking.js +31 -0
  28. package/dist/tasking.js.map +1 -1
  29. package/dist/verify.d.ts +24 -0
  30. package/dist/verify.d.ts.map +1 -1
  31. package/dist/verify.js +55 -3
  32. package/dist/verify.js.map +1 -1
  33. package/package.json +1 -1
  34. package/src/apply-merge-action.ts +1 -1
  35. package/src/cli.ts +25 -5
  36. package/src/complete.ts +15 -0
  37. package/src/integration-core.ts +146 -4
  38. package/src/run.ts +6 -0
  39. package/src/sidecar-guard.ts +142 -0
  40. package/src/tasking.ts +33 -0
  41. 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. **An item MAY carry a co-located `<slug>/` asset sidecar folder.** The item is ALWAYS the `<slug>.md` file (that is its identity and the only thing scanned). When an item needs companion resources — a `.patch`, a mockup image, a diagram, a sample payload — put them in a sibling folder of the SAME slug, `<umbrella>/<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 items 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 item's lifecycle (when the item 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). This applies to ANY bucket (`notes/*`, `tasks/*`, `specs/*`), not just ideas, though ideas are the common case. It does NOT violate rule 1 (one file per ITEM) or rule 2 (no shared index) — the sidecar holds an item's OWN assets, not a manifest over many items.
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":"AAAA,OAAO,EAAc,qBAAqB,EAAC,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAC,IAAI,EAAkB,MAAM,WAAW,CAAC;AAChD,OAAO,EAAC,gBAAgB,EAAiB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAC,YAAY,EAAsB,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAC,eAAe,EAAE,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAC,GAAG,IAAI,UAAU,EAAC,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAC,SAAS,EAAE,YAAY,EAAE,MAAM,EAAC,MAAM,SAAS,CAAC;AACxD,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EACN,mBAAmB,GAGnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAC,aAAa,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AACtD,OAAO,EACN,WAAW,EACX,gBAAgB,EAChB,sBAAsB,EACtB,4BAA4B,EAC5B,WAAW,GACX,MAAM,aAAa,CAAC;AAErB,OAAO,EACN,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,GAExB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,4BAA4B,EAAC,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAC,yBAAyB,EAAC,MAAM,gBAAgB,CAAC;AACzD,OAAO,EACN,oBAAoB,EACpB,iBAAiB,GAEjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACN,yBAAyB,EACzB,wCAAwC,GACxC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAC,kBAAkB,EAAE,cAAc,EAAC,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAC,WAAW,EAAE,sBAAsB,EAAC,MAAM,eAAe,CAAC;AAGlE,OAAO,EAAC,MAAM,EAAC,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AAExC,oFAAoF;AACpF,SAAS,UAAU,CAClB,QAAgB,EAChB,GAAkC;IAElC,MAAM,MAAM,GAAG,UAAU,CACxB,KAAK,EACL,CAAC,WAAW,EAAE,sBAAsB,CAAC,EACrC,QAAQ,EACR,EAAC,GAAG,EAAC,CACL,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC;AAC/D,CAAC;AAsBD;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,gBAAgB,CAAC,IAM/B;IACA,MAAM,EAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAC,GAAG,IAAI,CAAC;IACvD,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;QAChC,2EAA2E;QAC3E,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,EAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC;QACtE,OAAO;YACN,KAAK;YACL,QAAQ,EAAE,QAAQ;YAClB,eAAe,EAAE,OAAO;YACxB,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;SACjB,CAAC;IACH,CAAC;IAED,gFAAgF;IAChF,+EAA+E;IAC/E,wEAAwE;IACxE,8DAA8D;IAC9D,MAAM,SAAS,GAAG,UAAU,CAC3B,KAAK,EACL,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAC/B,QAAQ,EACR;QACC,GAAG;KACH,CACD,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAChB,MAAM,GAAG,GAAG,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,QAAQ,EAAE,CAAC;IAChE,MAAM,QAAQ,GAAG,IAAI,CACpB,SAAS,EACT,OAAO,EACP,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CACtD,CAAC;IACF,MAAM,CAAC,QAAQ,EAAE,EAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;IACjD,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IAChD,UAAU,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;QACzE,GAAG;KACH,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC;QAChC,IAAI;QACJ,GAAG,EAAE,QAAQ;QACb,OAAO,EAAE,QAAQ;QACjB,GAAG;KACH,CAAC,CAAC;IACH,OAAO;QACN,KAAK;QACL,QAAQ,EAAE,QAAQ;QAClB,6DAA6D;QAC7D,eAAe,EAAE,QAAQ;QACzB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC;KAC/D,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,iBAAiB,CAAC,IAI1B;IACA,MAAM,EAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAC,GAAG,IAAI,CAAC;IACtC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9D,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAC,GAAG,EAAC,CAAC,CAAC;IAC9E,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,QAAQ,EAAE,CAAC;AAChD,CAAC;AA4ID;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAuB;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,+EAA+E;IAC/E,+EAA+E;IAC/E,+EAA+E;IAC/E,8EAA8E;IAC9E,6CAA6C;IAC7C,MAAM,MAAM,GACX,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAC,CAAC,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,EAAE;QAC3C,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;KAC7B,CAAC,CAAC;IAEH,8EAA8E;IAC9E,4EAA4E;IAC5E,kEAAkE;IAClE,MAAM,OAAO,GACZ,OAAO,CAAC,OAAO;QACf,aAAa,CAAC,EAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAC,CAAC,CAAC;IAC/D,yEAAyE;IACzE,+EAA+E;IAC/E,+EAA+E;IAC/E,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,aAAa,CAAC;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAExB,0EAA0E;IAC1E,8EAA8E;IAC9E,gFAAgF;IAChF,gFAAgF;IAChF,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IAEpC,2EAA2E;IAC3E,6EAA6E;IAC7E,6EAA6E;IAC7E,+EAA+E;IAC/E,+EAA+E;IAC/E,8EAA8E;IAC9E,gFAAgF;IAChF,6EAA6E;IAC7E,wEAAwE;IACxE,yEAAyE;IACzE,0EAA0E;IAC1E,mEAAmE;IACnE,EAAE;IACF,4EAA4E;IAC5E,+EAA+E;IAC/E,2EAA2E;IAC3E,0EAA0E;IAC1E,qEAAqE;IACrE,iFAAiF;IACjF,+EAA+E;IAC/E,0EAA0E;IAC1E,mCAAmC;IACnC,MAAM,aAAa,GAAG,eAAe,EAAE,CAAC;IAExC,sEAAsE;IACtE,wEAAwE;IACxE,iFAAiF;IACjF,6EAA6E;IAC7E,iFAAiF;IACjF,iFAAiF;IACjF,kFAAkF;IAClF,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,gFAAgF;IAChF,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC;QACnC,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ;QACzC,SAAS,EAAE,MAAM,CAAC,UAAU;QAC5B,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CACrB,UAAU,CAAC,SAAS,EAAE;YACrB,MAAM;YACN,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS;YACT,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO;YACP,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,QAAQ;YACR,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG;YACH,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS;YACT,aAAa;SACb,CAAC;KACH,CAAC,CAAC;IACH,4EAA4E;IAC5E,gFAAgF;IAChF,6DAA6D;IAC7D,MAAM,KAAK,GAAiB,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CACnD,IAAI,IAAI,IAAI;QACX,CAAC,CAAC,IAAI,CAAC,EAAE;QACT,CAAC,CAAC;YACA,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ;YAChC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;YACxB,MAAM,EAAE,aAAsB;YAC9B,MAAM,EAAG,IAAI,CAAC,KAAe,EAAE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SAC5D,CACH,CAAC;IAEF,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,cAAc,CAClC,CAAC,MAAM,CAAC;IACT,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,KAAK,iBAAiB,CACjE,CAAC,MAAM,CAAC;IACT,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,MAAM,KAAK,cAAc;QAC3B,CAAC,CAAC,MAAM,KAAK,iBAAiB;QAC9B,CAAC,CAAC,MAAM,KAAK,eAAe,CAC7B,CAAC,MAAM,CAAC;IACT,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAC1B,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,MAAM,KAAK,cAAc;QAC3B,CAAC,CAAC,MAAM,KAAK,iBAAiB;QAC9B,CAAC,CAAC,MAAM,KAAK,eAAe;QAC5B,CAAC,CAAC,MAAM,KAAK,cAAc;QAC3B,2EAA2E;QAC3E,0EAA0E;QAC1E,aAAa;QACb,CAAC,CAAC,MAAM,KAAK,iBAAiB;QAC9B,CAAC,CAAC,MAAM,KAAK,cAAc;QAC3B,CAAC,CAAC,MAAM,KAAK,cAAc;QAC3B,4EAA4E;QAC5E,uEAAuE;QACvE,qEAAqE;QACrE,CAAC,CAAC,MAAM,KAAK,iBAAiB;QAC9B,CAAC,CAAC,MAAM,KAAK,aAAa,CAC3B,CAAC,MAAM,CAAC;IAET,OAAO,EAAC,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAC,CAAC;AACjE,CAAC;AA0DD,KAAK,UAAU,UAAU,CACxB,SAAoB,EACpB,GAAmB;IAEnB,MAAM,EAAC,IAAI,EAAE,QAAQ,EAAC,GAAG,SAAS,CAAC;IACnC,MAAM,IAAI,GAAe,EAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAC,CAAC;IAE/D,oEAAoE;IACpE,4EAA4E;IAC5E,yEAAyE;IACzE,yCAAyC;IACzC,MAAM,QAAQ,GAAG,iBAAiB,CAAC;QAClC,QAAQ;QACR,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACtB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtB,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,2EAA2E;IAC3E,6EAA6E;IAC7E,4EAA4E;IAC5E,4EAA4E;IAC5E,8EAA8E;IAC9E,6EAA6E;IAC7E,yEAAyE;IACzE,mEAAmE;IACnE,IAAI,MAAyB,CAAC;IAC9B,IAAI,CAAC;QACJ,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,0EAA0E;QAC1E,8EAA8E;QAC9E,iEAAiE;QACjE,MAAM,OAAO,GAAI,GAAa,CAAC,OAAO,CAAC;QACvC,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,EAAC,GAAG,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAC,CAAC;IAC3D,CAAC;IACD,2EAA2E;IAC3E,gFAAgF;IAChF,sEAAsE;IACtE,GAAG,GAAG,EAAC,GAAG,GAAG,EAAE,MAAM,EAAC,CAAC;IAEvB,gFAAgF;IAChF,+EAA+E;IAC/E,iFAAiF;IACjF,+EAA+E;IAC/E,mFAAmF;IACnF,gFAAgF;IAChF,8EAA8E;IAC9E,+EAA+E;IAC/E,iFAAiF;IACjF,gFAAgF;IAChF,8EAA8E;IAC9E,iFAAiF;IACjF,8EAA8E;IAC9E,kFAAkF;IAClF,6EAA6E;IAC7E,8EAA8E;IAC9E,YAAY;IACZ,CAAC;QACA,MAAM,UAAU,GAAG,iBAAiB,CAAC;YACpC,QAAQ;YACR,OAAO,EAAE,MAAM,CAAC,cAAc;YAC9B,GAAG,EAAE,MAAM;SACX,CAAC,CAAC;QACH,MAAM,KAAK,GACV,GAAG,CAAC,WAAW;YACf,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CACvB,IAAI,cAAc,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtD,IACC,yBAAyB,CAAC;YACzB,IAAI,EAAE,MAAM,CAAC,WAAW;YACxB,eAAe,EAAE,kBAAkB,CAAC,UAAU,CAAC;YAC/C,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;SAC1C,CAAC,EACD,CAAC;YACF,OAAO;gBACN,GAAG,IAAI;gBACP,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE,wCAAwC;aAChD,CAAC;QACH,CAAC;IACF,CAAC;IAED,uEAAuE;IACvE,4DAA4D;IAC5D,4EAA4E;IAC5E,4EAA4E;IAC5E,+EAA+E;IAC/E,0EAA0E;IAC1E,iFAAiF;IACjF,+EAA+E;IAC/E,8EAA8E;IAC9E,+EAA+E;IAC/E,gFAAgF;IAChF,2EAA2E;IAC3E,wEAAwE;IACxE,0EAA0E;IAC1E,6EAA6E;IAC7E,CAAC;QACA,MAAM,QAAQ,GACb,oBAAoB,CAAC,QAAQ,CAAC;YAC9B,0BAA0B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,sBAAsB,CAAC;YACpC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ;SACR,CAAC,CAAC;QACH,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,EAAC,GAAG,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,EAAC,CAAC;QACjE,CAAC;IACF,CAAC;IAED,6EAA6E;IAC7E,+EAA+E;IAC/E,8EAA8E;IAC9E,8EAA8E;IAC9E,iFAAiF;IACjF,iFAAiF;IACjF,kFAAkF;IAClF,iFAAiF;IACjF,aAAa;IACb,MAAM,OAAO,GAAG,GAAG,EAAE,CACpB,gBAAgB,CAAC;QAChB,IAAI;QACJ,QAAQ;QACR,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,OAAO,EAAE,MAAM,CAAC,cAAc;QAC9B,GAAG,EAAE,MAAM;KACX,CAAC,CAAC;IACJ,iFAAiF;IACjF,2EAA2E;IAC3E,gFAAgF;IAChF,qDAAqD;IACrD,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS;QAC9B,CAAC,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;QACxC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC;IACnB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAC9B,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC9B,SAAS,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,EAAC,GAAG,IAAI,EAAE,MAAM,EAAE,WAAW,EAAC,CAAC;IACvC,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,SAAS,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,EAAC,GAAG,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAC,CAAC;IAC7C,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;QACrC,SAAS,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,EAAC,GAAG,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,EAAC,CAAC;IAChE,CAAC;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,uEAAuE;IACvE,8EAA8E;IAC9E,gFAAgF;IAChF,6EAA6E;IAC7E,6EAA6E;IAC7E,2EAA2E;IAC3E,+BAA+B;IAC/B,MAAM,QAAQ,GAAsB,mBAAmB,CAAC;QACvD,+EAA+E;QAC/E,kFAAkF;QAClF,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,OAAO,EAAE,SAAS,CAAC,eAAe;QAClC,aAAa,EAAE,GAAG,CAAC,SAAS;KAC5B,CAAC,CAAC;IACH,IAAI,IAA8B,CAAC;IACnC,IAAI,CAAC;QACJ,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAC,CAAC,CAAC;QAC7C,qEAAqE;QACrE,0EAA0E;QAC1E,SAAS,CAAC,OAAO,EAAE,CAAC;QAEpB,iEAAiE;QACjE,0EAA0E;QAC1E,6EAA6E;QAC7E,8EAA8E;QAC9E,6EAA6E;QAC7E,wEAAwE;QACxE,8EAA8E;QAC9E,8EAA8E;QAC9E,mEAAmE;QACnE,6EAA6E;QAC7E,8EAA8E;QAC9E,wCAAwC;QACxC,4EAA4E;QAC5E,4EAA4E;QAC5E,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACjC,MAAM,MAAM,GACX,uBAAuB,IAAI,CAAC,MAAM,gCAAgC;gBAClE,wEAAwE;gBACxE,sEAAsE;gBACtE,uEAAuE;gBACvE,0BAA0B,CAAC;YAC5B,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,EAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAC,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,qCAAqC,CAAC;gBACxE,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,IAAI;gBACJ,MAAM;gBACN,OAAO,EAAE,IAAI,CAAC,aAAa;gBAC3B,GAAG,EAAE,MAAM;aACX,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO,wBAAwB,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAC,CAAC,CAAC;YACvE,CAAC;YACD,OAAO,EAAC,GAAG,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC;QAC7D,CAAC;QAED,6EAA6E;QAC7E,6EAA6E;QAC7E,yEAAyE;QACzE,4EAA4E;QAC5E,4EAA4E;QAC5E,uEAAuE;QACvE,gFAAgF;QAChF,oEAAoE;QACpE,gFAAgF;QAChF,kFAAkF;QAClF,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAC5C,MAAM,MAAM,GACX,uBAAuB,IAAI,CAAC,MAAM,uCAAuC;gBACzE,qCAAqC,IAAI,CAAC,mBAAmB,UAAU;gBACvE,2DAA2D;gBAC3D,oEAAoE;gBACpE,8DAA8D;gBAC9D,uEAAuE,CAAC;YACzE,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,EAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAC,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,qCAAqC,CAAC;gBACxE,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,IAAI;gBACJ,MAAM;gBACN,OAAO,EAAE,IAAI,CAAC,aAAa;gBAC3B,GAAG,EAAE,MAAM;aACX,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO,wBAAwB,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAC,CAAC,CAAC;YACvE,CAAC;YACD,OAAO,EAAC,GAAG,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC;QAC7D,CAAC;QAED,kEAAkE;QAClE,0EAA0E;QAC1E,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACJ,0EAA0E;YAC1E,wEAAwE;YACxE,4EAA4E;YAC5E,6EAA6E;YAC7E,MAAM,IAAI,GAAG,WAAW,CACvB,IAAI,CAAC,GAAG,EACR,IAAI,EACJ,IAAI,CAAC,SAAS;gBACb,CAAC,CAAC;oBACA,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,SAAS,EAAE,IAAI,CAAC,MAAM;oBACtB,OAAO,EAAE,MAAM;oBACf,GAAG,EAAE,MAAM;iBACX;gBACF,CAAC,CAAC,SAAS,CACZ,CAAC;YACF,yEAAyE;YACzE,0EAA0E;YAC1E,uEAAuE;YACvE,2EAA2E;YAC3E,wEAAwE;YACxE,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS;gBACrC,CAAC,CAAC,sBAAsB,CAAC;oBACvB,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,IAAI;oBACJ,OAAO,EAAE,IAAI,CAAC,aAAa;oBAC3B,SAAS,EAAE,IAAI,CAAC,MAAM;oBACtB,OAAO,EAAE,MAAM;oBACf,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;oBACxC,GAAG,EAAE,MAAM;iBACX,CAAC;gBACH,CAAC,CAAC,SAAS,CAAC;YACb,yEAAyE;YACzE,yEAAyE;YACzE,0EAA0E;YAC1E,MAAM,YAAY,GAAG,4BAA4B,CAAC;gBACjD,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,YAAY,EAAE,qBAAqB,CAAC,MAAM,CAAC;gBAC3C,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;aAC5C,CAAC,CAAC;YACH,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE;gBAChE,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,eAAe;gBACf,cAAc,EAAE,YAAY;aAC5B,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;gBAChC,OAAO,MAAM,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,GAAG,CAAC;QACX,CAAC;QAED,yEAAyE;QACzE,6EAA6E;QAC7E,gFAAgF;QAChF,wEAAwE;QACxE,IAAI,KAAsD,CAAC;QAC3D,IAAI,CAAC;YACJ,KAAK,GAAG,QAAQ,CACf,GAAG,EACH,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,WAAW,CAClB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,MAAM,gBAAgB,CAC5B,IAAI,EACJ,IAAI,EACJ,IAAI,EACH,GAAa,CAAC,OAAO,EACtB,GAAG,CACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,MAAM,gBAAgB,CAC5B,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,CAAC,MAAM,IAAI,8BAA8B,IAAI,IAAI,EACtD,GAAG,CACH,CAAC;QACH,CAAC;QAED,8EAA8E;QAC9E,gFAAgF;QAChF,8EAA8E;QAC9E,gFAAgF;QAChF,gFAAgF;QAChF,+EAA+E;QAC/E,kEAAkE;QAClE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,UAAU,GACf,QAAQ,KAAK,SAAS;YACrB,CAAC,CAAC,EAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAC;YAC7C,CAAC,CAAC,CAAC,MAAM,qBAAqB,CAAC;gBAC5B,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,OAAO,EAAE,IAAI,CAAC,aAAa;gBAC3B,GAAG,EAAE,MAAM;aACV,CAAC,CAAC;gBACL,CAAC,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAC;gBACzD,CAAC,CAAC,SAAS,CAAC;QACf,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,MAAM,aAAa,CACzB,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,UAAU,CAAC,MAAM,EACjB,UAAU,CAAC,IAAI,EACf,GAAG,CACH,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,8EAA8E;QAC9E,2EAA2E;QAC3E,6EAA6E;QAC7E,0EAA0E;QAC1E,4EAA4E;QAC5E,8EAA8E;QAC9E,8EAA8E;QAC9E,2EAA2E;QAC3E,wEAAwE;QACxE,0EAA0E;QAC1E,8EAA8E;QAC9E,0EAA0E;QAC1E,6EAA6E;QAC7E,oEAAoE;QACpE,EAAE;QACF,uEAAuE;QACvE,+EAA+E;QAC/E,4EAA4E;QAC5E,kEAAkE;QAClE,kFAAkF;QAClF,qEAAqE;QACrE,6EAA6E;QAC7E,6EAA6E;QAC7E,iEAAiE;QACjE,IAAI,CAAC;YACJ,sBAAsB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,MAAM,gBAAgB,CAC5B,IAAI,EACJ,IAAI,EACJ,IAAI,EACH,GAAa,CAAC,OAAO,EACtB,GAAG,CACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YACJ,IAAI,GAAG,MAAM,kBAAkB,CAAC;gBAC/B,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,wEAAwE;gBACxE,6DAA6D;gBAC7D,yBAAyB;gBACzB,OAAO,EAAE,IAAI,CAAC,aAAa;gBAC3B,IAAI;gBACJ,uCAAuC;gBACvC,mEAAmE;gBACnE,yEAAyE;gBACzE,sBAAsB;gBACtB,MAAM,EAAE,aAAa;gBACrB,UAAU,EAAE,KAAK;gBACjB,sEAAsE;gBACtE,oEAAoE;gBACpE,cAAc,EAAE,IAAI,CAAC,aAAa;gBAClC,2EAA2E;gBAC3E,gEAAgE;gBAChE,gDAAgD;gBAChD,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,0EAA0E;gBAC1E,0EAA0E;gBAC1E,+EAA+E;gBAC/E,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,2EAA2E;gBAC3E,6EAA6E;gBAC7E,sEAAsE;gBACtE,4EAA4E;gBAC5E,4EAA4E;gBAC5E,8DAA8D;gBAC9D,4EAA4E;gBAC5E,yEAAyE;gBACzE,6EAA6E;gBAC7E,0EAA0E;gBAC1E,8EAA8E;gBAC9E,sEAAsE;gBACtE,6EAA6E;gBAC7E,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;gBAC3C,yEAAyE;gBACzE,6EAA6E;gBAC7E,yEAAyE;gBACzE,8EAA8E;gBAC9E,4EAA4E;gBAC5E,iFAAiF;gBACjF,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,2EAA2E;gBAC3E,uEAAuE;gBACvE,0DAA0D;gBAC1D,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,IAAI,EAAE,MAAM,CAAC,WAAW;gBACxB,2EAA2E;gBAC3E,4EAA4E;gBAC5E,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,0EAA0E;gBAC1E,qEAAqE;gBACrE,2EAA2E;gBAC3E,gEAAgE;gBAChE,gBAAgB,EAAE,GAAG,CAAC,QAAQ;gBAC9B,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,qEAAqE;gBACrE,qEAAqE;gBACrE,qEAAqE;gBACrE,uEAAuE;gBACvE,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,gBAAgB,EAAE,QAAQ;gBAC1B,qEAAqE;gBACrE,oEAAoE;gBACpE,kEAAkE;gBAClE,kEAAkE;gBAClE,IAAI,EAAE,KAAK,CAAC,MAAM;gBAClB,GAAG,EAAE,MAAM;gBACX,sEAAsE;gBACtE,oEAAoE;gBACpE,QAAQ,EAAE,GAAG,CAAC,GAAG;aACjB,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,qEAAqE;YACrE,6EAA6E;YAC7E,OAAO,MAAM,gBAAgB,CAC5B,IAAI,EACJ,IAAI,EACJ,IAAI,EACH,GAAa,CAAC,OAAO,EACtB,GAAG,CACH,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,4EAA4E;QAC5E,6EAA6E;QAC7E,yEAAyE;QACzE,0EAA0E;QAC1E,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;YACpC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE;gBACzB,KAAK,EAAE,iBAAiB;gBACxB,MAAM,EAAE,IAAI,CAAC,MAAM;aACnB,CAAC,CAAC;YACH,OAAO,EAAC,GAAG,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC;QAC/D,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,oBAAoB,EAAE,CAAC;YAC3C,gFAAgF;YAChF,8EAA8E;YAC9E,8EAA8E;YAC9E,+EAA+E;YAC/E,gEAAgE;YAChE,4EAA4E;YAC5E,iFAAiF;YACjF,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChD,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE;gBACzB,KAAK,EAAE,iBAAiB;gBACxB,MAAM,EAAE,IAAI,CAAC,MAAM;aACnB,CAAC,CAAC;YACH,OAAO;gBACN,GAAG,IAAI;gBACP,MAAM,EAAE,wBAAwB,CAAC,KAAK,CAAC;gBACvC,MAAM,EAAE,IAAI,CAAC,MAAM;aACnB,CAAC;QACH,CAAC;QACD,IACC,IAAI,CAAC,OAAO,KAAK,gBAAgB;YACjC,IAAI,CAAC,OAAO,KAAK,gBAAgB;YACjC,IAAI,CAAC,OAAO,KAAK,iBAAiB;YAClC,IAAI,CAAC,OAAO,KAAK,qBAAqB,EACrC,CAAC;YACF,0EAA0E;YAC1E,8EAA8E;YAC9E,2EAA2E;YAC3E,wEAAwE;YACxE,wEAAwE;YACxE,0EAA0E;YAC1E,wEAAwE;YACxE,wEAAwE;YACxE,0EAA0E;YAC1E,4EAA4E;YAC5E,6EAA6E;YAC7E,uBAAuB;YACvB,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE;gBACzB,KAAK,EAAE,iBAAiB;gBACxB,MAAM,EAAE,IAAI,CAAC,MAAM;aACnB,CAAC,CAAC;YACH,OAAO,EAAC,GAAG,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC;QAClE,CAAC;QAED,6EAA6E;QAC7E,yCAAyC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC;QACpC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC;QAClD,OAAO,EAAC,GAAG,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAC,CAAC;IACzE,CAAC;YAAS,CAAC;QACV,+EAA+E;QAC/E,6EAA6E;QAC7E,+EAA+E;QAC/E,6EAA6E;QAC7E,+EAA+E;QAC/E,8EAA8E;QAC9E,+EAA+E;QAC/E,IAAI,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjB,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAS,QAAQ,CAChB,GAAmB,EACnB,IAAkB,EAClB,MAAc,EACd,IAAY,EACZ,QAAgB,EAChB,KAAyB,EACzB,WAA+B;IAE/B,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAC,CAAC,CAAC;IAC/D,CAAC;IACD,2EAA2E;IAC3E,gFAAgF;IAChF,8EAA8E;IAC9E,0EAA0E;IAC1E,gEAAgE;IAChE,MAAM,OAAO,GAAG,mBAAmB,CAAC;QACnC,WAAW;QACX,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;KACvC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI;QACJ,OAAO,EAAE,QAAQ;QACjB,MAAM;QACN,0EAA0E;QAC1E,+DAA+D;QAC/D,KAAK;QACL,OAAO;QACP,GAAG,EAAE,GAAG,CAAC,GAAG;KACZ,CAAC,CAAC;IACH,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,EAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAC,CAAC,CAAC;IACtD,iFAAiF;IACjF,wEAAwE;IACxE,8EAA8E;IAC9E,OAAO,EAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAC,CAAC;AAC5E,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,KAAK,UAAU,gBAAgB,CAC9B,IAAgB,EAChB,IAAkB,EAClB,IAAY,EACZ,MAAc,EACd,GAAmB;IAEnB,4EAA4E;IAC5E,kFAAkF;IAClF,mFAAmF;IACnF,iFAAiF;IACjF,iFAAiF;IACjF,0EAA0E;IAC1E,6EAA6E;IAC7E,uCAAuC;IACvC,MAAM,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,MAAM,EAAE,CAAC;IACxD,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,EAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAC,CAAC,CAAC;IAC9D,MAAM,WAAW,CAAC,6BAA6B,CAAC;QAC/C,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI;QACJ,MAAM;QACN,6EAA6E;QAC7E,8EAA8E;QAC9E,8EAA8E;QAC9E,gFAAgF;QAChF,OAAO,EAAE,IAAI,CAAC,aAAa;QAC3B,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG;QAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,GAAG,CAAC,KAAK;KAChB,CAAC,CAAC;IACH,OAAO,EAAC,GAAG,IAAI,EAAE,MAAM,EAAE,wBAAwB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAC,CAAC;AACnE,CAAC;AAED;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,KAAmB;IACpD,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,wBAAwB,CAAC,MAMjC;IACA,MAAM,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAC,GAAG,MAAM,CAAC;IACpD,MAAM,MAAM,GACX,IAAI,IAAI,mEAAmE;QAC3E,yEAAyE;QACzE,oBAAoB,QAAQ,CAAC,cAAc,IAAI,MAAM,EAAE,CAAC;IACzD,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,EAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC;IACtE,OAAO,EAAC,GAAG,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAC,CAAC;AACrD,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,aAAa,CAC3B,IAAgB,EAChB,IAAkB,EAClB,IAAY,EACZ,MAAc,EACd,IAAmB,EACnB,GAAmB;IAEnB,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,EAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAC,CAAC,CAAC;IAC9D,qDAAqD;IACrD,8EAA8E;IAC9E,qEAAqE;IACrE,8EAA8E;IAC9E,sEAAsE;IACtE,2EAA2E;IAC3E,2EAA2E;IAC3E,2EAA2E;IAC3E,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,QAAQ,IAAI,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,4BAA4B,CAAC;gBAClC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,IAAI;gBACJ,IAAI;gBACJ,QAAQ;gBACR,MAAM;gBACN,QAAQ,EAAE,wBAAwB,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;gBAClD,OAAO,EAAE,IAAI,CAAC,aAAa;gBAC3B,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG;aAC1B,CAAC,CAAC;YACH,OAAO,EAAC,GAAG,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC;QAC3D,CAAC;QACD,4EAA4E;IAC7E,CAAC;IACD,MAAM,WAAW,CAAC,6BAA6B,CAAC;QAC/C,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI;QACJ,MAAM;QACN,6EAA6E;QAC7E,kFAAkF;QAClF,OAAO,EAAE,IAAI,CAAC,aAAa;QAC3B,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG;QAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,GAAG,CAAC,KAAK;KAChB,CAAC,CAAC;IACH,OAAO,EAAC,GAAG,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC;AAC3D,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,mBAAmB;IAClC,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC;AAC1C,CAAC;AAiED,MAAM,SAAS,GAAG,CAAC,EAAU,EAAiB,EAAE,CAC/C,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAEnD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAuB;IACpD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC;IACrC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;IACzC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC;IACpB,MAAM,QAAQ,GACb,OAAO,CAAC,aAAa,KAAK,SAAS;QAClC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,aAAa;QAC/B,CAAC,CAAC,SAAS,CAAC;IAEd,4EAA4E;IAC5E,8EAA8E;IAC9E,MAAM,WAAW,GAAmB;QACnC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;KACtB,CAAC;IAEF,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,IAAI,SAAS,GAA+B,gBAAgB,CAAC;IAE7D,iDAAiD;IACjD,OAAO,IAAI,EAAE,CAAC;QACb,8EAA8E;QAC9E,iDAAiD;QACjD,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;YACtB,SAAS,GAAG,QAAQ,CAAC;YACrB,MAAM;QACP,CAAC;QACD,IACC,OAAO,CAAC,aAAa,KAAK,SAAS;YACnC,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,EACpC,CAAC;YACF,SAAS,GAAG,gBAAgB,CAAC;YAC7B,MAAM;QACP,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS,IAAI,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;YACjD,SAAS,GAAG,cAAc,CAAC;YAC3B,MAAM;QACP,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAEvC,8EAA8E;QAC9E,IACC,OAAO,CAAC,aAAa,KAAK,SAAS;YACnC,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,EACpC,CAAC;YACF,SAAS,GAAG,gBAAgB,CAAC;YAC7B,MAAM;QACP,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS,IAAI,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;YACjD,SAAS,GAAG,cAAc,CAAC;YAC3B,MAAM;QACP,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;YACtB,SAAS,GAAG,QAAQ,CAAC;YACrB,MAAM;QACP,CAAC;QAED,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;QACzB,CAAC;IACF,CAAC;IAED,OAAO;QACN,UAAU,EAAE,KAAK,CAAC,MAAM;QACxB,SAAS;QACT,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;QAC/D,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/C,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;QAC/D,KAAK;KACL,CAAC;AACH,CAAC"}
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, end-to-end**. 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.
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. **One task at a time, end-to-end** (build → Gate-3 review → merge) so each merge unlocks the next cleanly and rebases stay trivial. Parallelism is `run`'s job.
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. **An item MAY carry a co-located `<slug>/` asset sidecar folder.** The item is ALWAYS the `<slug>.md` file (that is its identity and the only thing scanned). When an item needs companion resources — a `.patch`, a mockup image, a diagram, a sample payload — put them in a sibling folder of the SAME slug, `<umbrella>/<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 items 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 item's lifecycle (when the item 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). This applies to ANY bucket (`notes/*`, `tasks/*`, `specs/*`), not just ideas, though ideas are the common case. It does NOT violate rule 1 (one file per ITEM) or rule 2 (no shared index) — the sidecar holds an item's OWN assets, not a manifest over many items.
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
 
@@ -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,+DAA+D;AAC/D,MAAM,MAAM,WAAW,GACpB,QAAQ,GACR,cAAc,GACd,WAAW,GACX,cAAc,GACd,OAAO,GACP,iBAAiB,GACjB,aAAa,CAAC;AAEjB,MAAM,WAAW,UAAU;IAC1B,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAAC;IACvC,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB,KAAK;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC;AAErC,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC/B,OAAO,CACN,OAAO,EAAE,yBAAyB,GAChC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACrC,OAAO,CACN,OAAO,EAAE,yBAAyB,GAChC,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACrC;AAOD,MAAM,WAAW,kBAAkB;IAClC,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,mFAAmF;IACnF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,cAAc,CAAC;IAClC;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oFAAoF;IACpF,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAClC;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1C;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC7B,8CAA8C;IAC9C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAID;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,QAAiC,CAAC;AA0C/D;;;;;GAKG;AACH,wBAAsB,WAAW,CAChC,OAAO,EAAE,kBAAkB,GACzB,OAAO,CAAC,UAAU,CAAC,CAobrB;AAwoBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,yBAAyB,CACxC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,MAAM,GAAG,SAAS,CAoEpB"}
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