Skip to content

dld-goal: work items, decision pinning, and selection - #31

Closed
jimutt wants to merge 1 commit into
feat/dld-goal-statefrom
feat/dld-goal-items
Closed

dld-goal: work items, decision pinning, and selection#31
jimutt wants to merge 1 commit into
feat/dld-goal-statefrom
feat/dld-goal-items

Conversation

@jimutt

@jimutt jimutt commented Aug 21, 2026

Copy link
Copy Markdown
Owner

Stacks on #30. Implements DL-002.

What

A work item is one decision by default, or several when genuinely coupled — same rule /dld-implement already applies. Each decision is pinned by an intent hash at planning time.

New: decision-hash.sh, next-item.sh, verify-hashes.sh, plus item subcommands on run-state.sh (add-item, get-item, set-item-status, add-evidence, bump-attempt, repin-item).

Notable

The hash covers intent only — title, supersedes, amends, body — not status, references, or timestamp. Hashing the whole file would fight the workflow: /dld-implement permits refining a still-proposed decision while implementing it, and completion flips status and adds references. Drift checking is scoped by item status accordingly, with repin-item refreshing hashes on completion. DL-002 was refined inline (while still proposed) to record this.

next-item.sh exits 2 rather than selecting past a blocked item, so a blocker can't be silently skipped. Trade-off recorded in the decision's consequences.

42 new tests.

Implements DL-002:

- decision-hash.sh hashes the intent-carrying fields (title, supersedes,
  amends, body) and ignores status/references/timestamp, so accepting a
  decision or refreshing its references does not invalidate a planned item
- run-state.sh gains add-item, get-item, set-item-status, add-evidence,
  bump-attempt and repin-item; items are 1-indexed and currentItem tracks
  whichever item is in flight
- next-item.sh selects the next item, preferring in-flight work, and exits
  2 rather than stepping past a blocked item
- verify-hashes.sh reports decisions that changed since planning, ignoring
  in-flight items by default because /dld-implement permits refining a
  still-proposed decision while implementing it

DL-002 refined inline during implementation (still proposed, so mutable)
to record the hash scope and the re-pinning rule. 42 new tests, suite 260.

Co-Authored-By: Claude Opus 5 <noreply@pi.dev>
Generated-By: pi 0.84.2
@jimutt
jimutt force-pushed the feat/dld-goal-items branch from d69f594 to c4d8397 Compare August 21, 2026 11:49
@jimutt

jimutt commented Aug 25, 2026

Copy link
Copy Markdown
Owner Author

Superseded by feat/pi-harness-extension — all commits from this branch are merged there. See #41 for the findings log on top.

@jimutt jimutt closed this Aug 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant