dld-kit is a pi package, and accept DL-006 - #36
Closed
jimutt wants to merge 1 commit into
Closed
Conversation
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
Owner
Author
|
Superseded by feat/pi-harness-extension — all commits from this branch are merged there. See #41 for the findings log on top. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.