Skip to content

dld-kit is a pi package, and accept DL-006 - #36

Closed
jimutt wants to merge 1 commit into
feat/dld-goal-ext-decisionsfrom
feat/dld-goal-ext-package
Closed

dld-kit is a pi package, and accept DL-006#36
jimutt wants to merge 1 commit into
feat/dld-goal-ext-decisionsfrom
feat/dld-goal-ext-package

Conversation

@jimutt

@jimutt jimutt commented Aug 25, 2026

Copy link
Copy Markdown
Owner

What

dld-kit becomes a pi package. Root package.json declares the pi manifest for extensions and skills; the TypeScript extension lives at extensions/dld-goal/ and loads from source with no build step.

The test harness is the substance: the fake ExtensionAPI is built from Pick<ExtensionAPI, ...> and assigned without type assertions, and the extension's entry point takes the same narrowed type, so calling a pi member the fake does not implement is a compile error rather than a runtime TypeError.

Typechecking against the real pi types caught four signature mismatches that unit tests alone would have missed. Discovery was verified by running pi's own package-manager against the repo: it resolves exactly extensions/dld-goal/index.ts plus the 14 skills.

Ships /dld-goal-doctor, which reports whether bash, jq, the skill scripts, and the workspace config are present, with a session-entry fallback when there is no UI.

Stacks on #35.

Root package.json declares a pi manifest for extensions and skills, and
extensions/dld-goal/ holds the TypeScript extension pi loads from source.
No build step.

The test harness is the substance here. The fake ExtensionAPI is built
from Pick<ExtensionAPI, ...> and assigned without type assertions, and
the extension's entry point takes that same narrowed type, so calling a
pi member the fake does not implement is a compile error rather than a
runtime TypeError. Typechecking against the real pi types caught four
signature mismatches that unit tests alone would have missed.

Discovery was verified by running pi's own package-manager against the
repo: it resolves exactly extensions/dld-goal/index.ts plus the 14
skills, so colocated tests are never loaded as extensions.

Also ships /dld-goal-doctor, which reports whether bash, jq, the skill
scripts, and the workspace config are present. It falls back to a
session entry when there is no UI, since notify() is a no-op in print
and RPC modes.

CI runs both layers as separate jobs. PRACTICES.md and CLAUDE.md gain
the TypeScript conventions to match.

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