Repository navigation
feat(pi): add external skill tools - #1626
Merged
Merged
Conversation
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.
Summary
Add the missing Pi tools for discovering, inspecting, and explicitly importing host-local External Skills:
pc_external_scan→scan_external_skillspc_external_list→list_external_skillspc_external_resolve→resolve_external_skillpc_external_import→import_external_skillRefs #1338.
Dependencies
Depends on #1621 and #1625. This PR should be reviewed and merged after both dependencies.
Plan and final design
The original plan was to close Pi's remaining External Skills capability gap while keeping discovery separate from durable import and execution.
The final design follows that plan:
pc_external_scanrefreshes discovery andpc_external_listinspects discovered registrations. Both are read-only from Pi's operation policy.pc_external_resolverequires the exact discoveredexternal_skill_idand 64-character package fingerprint before import. Resolution is inspection only.pc_external_importaccepts only the exact identity, fingerprint, andimport/forkmode. It is the only new mutating operation, so it requires interactive confirmation, refuses writes without a UI, injects the resolved Scope, and remains covered by secret filtering.project-contextSkill, README, bilingual integration docs, manifest, and focused tests document the sequence and trust boundary. External Skill contents and locators remain untrusted; importing does not execute or publish a Skill.This PR does not execute Skills, publish remote Skills, modify imported Skill contents, or promote Pi to Full by itself. The manifest deliberately keeps Pi at
minimal, recommendedand records the External Skills tool surface as deferred for profile accounting until #1621 and #1625 are merged. Full-profile promotion should be a follow-up after those dependencies land.Verification
ty check) passedgit diff --checkpassedReview disclosure
Implemented and verified with Codex using GPT-5.6 Sol. A separate GPT-5.6 Luna review (medium reasoning) found one profile-accounting issue; it was fixed by deferring Full promotion until #1621 and #1625 are merged. The final Luna review was clean; Luna did not modify files or run formatters.