HOMELAB-1609: feat(pi-skills): port used rpiv-pi skills + review/scout agent charters #36
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "plane/HOMELAB-1609-skills-agents"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Skills+agents leg of HOMELAB-1609 (uninstall
@juicesharp/rpiv-*after porting the used surface).What
1. New
pi-skills/extension — vendors the four rpiv-pi skills with real usage evidence:code-review_helpers/review-range.mjs,templates/review.mdcreate-handoff_shared/{now,git-context}.mjsresume-handoff_shared/list-recent.mjscommit_shared/git-changes.mjscontract:frontmatter and the inertargument-hintkey; keptshell-timeout(honored by the portedskill-args). Remaining keys:name,description,allowed-tools,shell-timeout— all pi-core-parsed.code-review: removed the optional advisor-adjudication path and everyadvisor-tool reference; the inline dimension sweep remains. Kept theask_user_questiondisambiguation step. Removed dead rpiv package paths (packages/rpiv-advisor/...,skills/design/SKILL.md,.rpiv/guidance/...,agents/claim-verifier.md).resources_discoverevent (index.ts), mirroringlab-director— chosen over a packagepi.skillsmanifest because this repo is consumed as a bare~/.pi/agent/extensions/directory, where package manifests are not read. Documented inpi-skills/README.mdalong with how$ARGUMENTS/${SKILL_DIR}/```!blocks work via the portedskill-argsextension.pi-skills/LICENSE+ rootNOTICE.2. 15 agent charters into
pi-swarm-suite/agents/—artifact-code-reviewer,artifact-coverage-reviewer,artifacts-analyzer,artifacts-locator,claim-verifier,codebase-analyzer,codebase-locator,codebase-pattern-finder,diff-auditor,integration-scanner,peer-comparator,precedent-locator,scope-tracer,slice-verifier,web-search-researcher. All 15 already carriedmodel: deepseek/deepseek-flash, so no pin needed adding (the ticket brief assumeddeepseek/deepseek-v4-flashvia~/.config/rpiv-pi/models.json; the on-disk charters already pin the deepseek-flash alias).pi-swarm-suite/README.md's charter-install step now documents all shipped charters.Discrepancy vs the brief
The brief said "5 existing charters + 15 = 20"; the repo has only ever contained 4 existing charters (
scout-codebase,scout-web,design-writer,team-lead— confirmed viagit log --all --name-only -- pi-swarm-suite/agents/). Total is 19.Verification
Skill registration — live pi smoke test (
--no-skillsdisables all package/global skill discovery, so only the-eextension's contributions can appear):All
${SKILL_DIR}references resolve to vendored files:Grep gates:
contract:→ none;\badvisor\b→ none (only "CVE/advisory", unrelated); dead rpiv package paths → none. Helper.mjsfiles passnode --checkand run.Agents: 19 files in
pi-swarm-suite/agents/; all 15 ported charters present and pindeepseek/deepseek-flash.Out of scope / follow-up
web-search-researcher.mdreferencesextensions: [rpiv-web-tools]andext:rpiv-web-tools/web_search|web_fetch.@juicesharp/rpiv-web-toolsis not installed today, so the charter is already non-functional; it loads (unknownext:selectors are inert) but its web tools won't resolve. The durable fix is to point those at thepi-web-accesstools (web_search,fetch_content). Left unmodified here to keep the port a verbatim copy and avoid guessing the tool namespace; flagged for the ticket.The other 26 dormant rpiv-pi skills are archived (out of repo) at
~/repos/homelab/.rpiv/artifacts/research/homelab-1609/dormant-skills-archive/with a reference-only README.No
skill-args/,todo/,ask-user-question/, settings, or~/.pi/agent/agents/changes in this PR.Vendor the four @juicesharp/rpiv-pi skills that had real usage evidence so they survive the planned uninstall of the rpiv-* packages. - Full skill trees + referenced helpers (_shared/{now,git-context,list-recent,git-changes}.mjs, code-review/_helpers/review-range.mjs, code-review/templates/review.md). - Strip the rpiv-workflow-only 'contract:' frontmatter and the inert 'argument-hint' key; keep shell-timeout (honored by the ported skill-args). - code-review: drop the optional advisor-adjudication path and all advisor-tool references; keep the ask_user_question disambiguation step. - Register via the resources_discover event (lab-director pattern), because this repo is consumed as a bare ~/.pi/agent/extensions directory where a package 'pi.skills' manifest is never read. Documented in pi-skills/README.md. - MIT attribution preserved (pi-skills/LICENSE + NOTICE).HOMELAB-1609: port used rpiv-pi skills + review/scout agent chartersto HOMELAB-1609: feat(pi-skills): port used rpiv-pi skills + review/scout agent chartersCI green on head
f9716ad—pr-title✅,pi-swarm-suite✅,pi-otel-telemetry✅.(The first attempt's
pr-titlejob failed because the PR title omitted the Conventional-Commit type; the title was corrected and CI re-ran green.)Verification highlights (full detail in the PR body):
resources_discover: with--no-skillsdisabling all package/global skill discovery,pi -e pi-skills/index.ts …reports exactly/skill:code-review,/skill:create-handoff,/skill:resume-handoff,/skill:commit.${SKILL_DIR}references resolve to vendored files;node --checkpasses on every helper; the three runnable helpers exit 0.contract:, noadvisor-tool references, no dead rpiv package paths.pi-swarm-suite/agents/, all already pinnedmodel: deepseek/deepseek-flash→ 0 pins needed adding.Two things a reviewer/landing worker should note:
scout-codebase,scout-web,design-writer,team-lead— pergit log --all --name-only -- pi-swarm-suite/agents/). Total shipped = 19.web-search-researcher.mdreferencesext:rpiv-web-tools/web_search|web_fetch, but@juicesharp/rpiv-web-toolsis not installed anywhere — the charter loads but its web tools will not resolve. Flagged as a follow-up rather than edited here (verbatim port; the tool-namespace decision is not this leg's to make).Landing worker — independent review verdict: APPROVE_WITH_CONCERNS (no blockers)
Reviewed in a fresh context from primary sources only (PR diff, the ticket brief, the frozen contracts) — never the implementer's report. Reviewer was an independent
pi -p --no-sessionsubprocess; I then re-verified the load-bearing claims myself.Acceptance checks (all PASS)
pi-skills/skills/holds exactlycode-review,create-handoff,resume-handoff,commit(+_shared/). Upstreamrpiv-pi/skills/has 31 entries (30 skills +_shared); every non-ported name is absent locally.${SKILL_DIR}helper present_shared/{now,git-context,git-changes,list-recent}.mjs,code-review/_helpers/review-range.mjs.templates/review.md(referenced as a relative runtime read atcode-review/SKILL.md:479) exists.contract:/argument-hintstripped; only pi-core keys +shell-timeoutgrep -rnE '^(contract|argument-hint):' pi-skills/→ none. Frontmatter =name,description,allowed-tools,shell-timeout.diffvs installed upstream v2.10.1 shows exactly those two key blocks removed.ask_user_questionkept\badvisor\b(only "CVE / advisory"). Advisor step removed and the inline dimension sweep renumbered;ask_user_questionpresent atcode-review/SKILL.md:37,43,58,517.model: deepseek/deepseek-flash+ READMEpi-swarm-suite/agents/= 19 files (15 added, 4 pre-existing untouched).grep -l '^model: deepseek/deepseek-flash$'→ 15/15. README charter list matches the shipped set exactly (bidirectional set diff empty).@juicesharponly as attributiongrep -rnE "(from|require\()\s*[\"']@juicesharp"→ NONE. All 12 hits in the diff are docs/comments or one illustrative example row inside the vendoredartifact-code-reviewer.md.index.tsimports only@earendil-works/pi-coding-agent(type-only) + node builtins.git diff --name-status origin/main...HEAD→NOTICE,README.md,pi-skills/*,pi-swarm-suite/README.md,pi-swarm-suite/agents/*(15). No CI files here (those ride PR #37). NOTICE/root README edits are legitimate attribution + index updates..mjsvalidnode --checkOK on all 5 helpers.Verification I reproduced myself (not taken from the author's report)
--no-skillsdisables all package/global skill discovery, so these four can only come from this extension'sresources_discoverhandler. CI on headf9716ad:pr-title✅,pi-swarm-suite✅,pi-otel-telemetry✅.Concerns (non-blocking — follow-ups, not merge gates)
pi-swarm-suite/README.md:802-803: "The four workflow charters carry no pin and inherit the machinedefaultModel".pi-swarm-suite/agents/team-lead.md:4carriesmodel: kimi-coding/k3, so only 3 of the 4 inherit it. (File is untouched by this PR; the doc sentence is new.)pi-skills/README.mdnames onlyskill-argsas the non-core dependency, but three of the four vendored skills callask_user_question(code-review/SKILL.md:37,43,58,517;commit/SKILL.md:60;resume-handoff/SKILL.md:42-43), which lives in the same@juicesharp/*uninstall set. It only survives because the sibling extension leg ports it — worth naming, since surviving that uninstall is the point of the port.@juicesharp/rpiv-piis still installed, its identically-named skills win the name collision (first-found-wins; package paths precederesources_discoverpaths), so the vendored copies are not the ones actually/skill:-loaded until the uninstall lands. Expected and handled by the--no-skillssmoke test; noted so nobody is surprised pre-uninstall.web-search-researcher.md:4-5keepsextensions: [rpiv-web-tools]/ext:rpiv-web-tools/web_search|web_fetch; that package is not installed anywhere. Known non-blocker (identical behavior before/after), but code-review's CVE/advisory lens (SKILL.md:118,284-290,534) therefore runs withread/grep/find/lsonly. A liveweb_search/fetch_contentexists in-session and could be re-pointed on the follow-up.code-review/SKILL.md:479references stripping a leading<!-- -->comment whiletemplates/review.md:1starts with---; and the vendoredallowed-toolsvalues (Bash(git *),Read,Glob, …) are Claude-style and inert in pi core.Merging on green CI + no blockers.