Skip to content

Record Stage 2 extension design as DL-006 through DL-011 - #35

Closed
jimutt wants to merge 2 commits into
feat/dld-goal-skillfrom
feat/dld-goal-ext-decisions
Closed

Record Stage 2 extension design as DL-006 through DL-011#35
jimutt wants to merge 2 commits into
feat/dld-goal-skillfrom
feat/dld-goal-ext-decisions

Conversation

@jimutt

@jimutt jimutt commented Aug 25, 2026

Copy link
Copy Markdown
Owner

What

Six decision records for the Pi extension design, grounded in source review of the existing ecosystem (ralphi's loop-controller and loop-finalizer, pi-goal-pro, pi-goal-x) rather than inference.

  • DL-006: dld-kit becomes a pi package — TypeScript extension, no build step, bun test
  • DL-007: extension reads state directly, delegates every mutation to the skill scripts
  • DL-008: in-session continuation on agent_end behind idle, token, and bounds gates
  • DL-009: child-session rotation is re-entrant, driven by a typed tool, verified against disk
  • DL-010: compaction during a run is assembled deterministically from disk
  • DL-011: layered UI — status line, fixed-height widget, transcript cards, board overlay

DL-011 was rewritten after recording: the original banned rich UI based on pi-goal-x's scrollback incident; the rewrite matches content to surface cost instead, with the widget's fixed height as the unit-tested safety property.

Stacks on #33. v1 scope is DL-006, 007, 008, 011; DL-009 and DL-010 are v2.

jimutt and others added 2 commits August 21, 2026 14:21
Six decisions for the Pi extension, grounded in source review of the
existing ecosystem rather than inference:

- DL-006 dld-kit becomes a Pi package; TypeScript extension, no build
  step, bun test alongside the existing bats suite
- DL-007 the extension reads state but delegates every mutation to the
  skill scripts, removing the dual-implementation drift DL-005 flagged
- DL-008 in-session continuation on agent_end behind idle, token and
  bounds gates
- DL-009 child-session rotation is re-entrant, driven by a typed tool
  and verified against disk state
- DL-010 compaction during a run is assembled deterministically from
  disk so decision rationale is never paraphrased
- DL-011 a single status line rather than a live dashboard widget

DL-009 and DL-011 correct assumptions made before reading the sources:
ralphi drives iterations re-entrantly from a retained command context
(loop-controller.ts, loop-finalizer.ts), not from a long-lived handler,
and pi-goal-x's widget history is the reason for the status-line limit.

Co-Authored-By: Claude Opus 5 <noreply@pi.dev>
Generated-By: pi 0.84.2
The original decision generalised pi-goal-x's scrollback incident into
'no rich UI'. The actual failure was an unbounded, expandable, always
redrawing widget - not rich output as such.

Pi has four surfaces with different costs, so match content to surface:
always-on status line, a widget whose height is fixed regardless of run
size, rich per-item cards as transcript entries (TUI-only, outside LLM
context, free to redraw because they scroll), and a board overlay on
demand for the full picture.

Adjusted in place rather than superseded: DL-011 is proposed and has no
implementation yet.

Co-Authored-By: Claude Opus 5 <noreply@pi.dev>
Generated-By: pi 0.84.2
@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