Add Poolside (pool CLI) install platform - #2814
Conversation
graphify install poolside (and --platform poolside) installs the skill natively into ~/.config/poolside/skills/ (user) or .poolside/skills/ (project), reusing the Claude skill.md body and references/ sidecar. Adds graphify poolside install|uninstall subcommands with scope-safe --project variants.
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Formal verification. 2 change(s) tested, no difference found (not proven).
Graphify review — findings
Adds Poolside as a first-class install target: graphify install --platform poolside and graphify poolside install/uninstall write the skill to ~/.config/poolside/skills/graphify/ (or .poolside/skills/ for --project). Wires it through _platform_skill_destination, _PLATFORM_CONFIG (reusing Claude's skill body and references sidecar), the project install/uninstall paths, and CLI dispatch, plus README/CHANGELOG/pyproject metadata. Adds idempotency and install tests covering the new destination and bundled references.
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 739 functions depend on the 553 functions this change touches.
Health — this change adds coupling hotspots:
- new:
dispatch_command()— 2 callers, 117 callees - new:
codebuddy_install()— 20 callers, 5 callees - new:
claude_install()— 19 callers, 4 callees - new:
gemini_install()— 10 callers, 7 callees - new:
claude_uninstall()— 17 callers, 4 callees - new:
_project_uninstall()— 5 callers, 13 callees - new:
dispatch_install_cli()— 2 callers, 31 callees - new:
codebuddy_uninstall()— 14 callers, 4 callees - …and 13 more — each is listed as a finding
Verification — 739 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 739 function(s) in the blast radius were not formally verified this run
Formal verification
No difference found (not proven): No behavior difference found in dispatch\_install\_cli (not a proof).
The verifier ran both versions of dispatch\_install\_cli on many inputs and saw identical behavior every time. Strong evidence the change is safe, but evidence, not a proof.
Guarantee: Empirical: differential testing (both versions run on many generated inputs). A divergence on an untested input remains possible, so this is 'no counterexample found', not 'proven equivalent'.
Note: An input the sampler did not try could still differ.
Could not verify: Could not verify \_platform\_skill\_destination.
The verifier did not have enough to check \_platform\_skill\_destination, so it is saying so rather than guessing. No false assurance is the whole point.
Guarantee: No guarantee either way, this is an honest abstention, not a pass.
Note: Reason: not verifiable: all 23 sampled inputs raised on both versions — the function never executed, so 'no divergence' would be vacuous (mostly KeyError — names the real obstacle, not a sampling gap)
Could not verify: Could not verify \_project\_install.
The verifier did not have enough to check \_project\_install, so it is saying so rather than guessing. No false assurance is the whole point.
Guarantee: No guarantee either way, this is an honest abstention, not a pass.
Note: Reason: parameter `project_dir` is annotated `Path | None` — outside the synthesizable primitive/collection set
Could not verify: Could not verify \_project\_uninstall.
The verifier did not have enough to check \_project\_uninstall, so it is saying so rather than guessing. No false assurance is the whole point.
Guarantee: No guarantee either way, this is an honest abstention, not a pass.
Note: Reason: parameter `project_dir` is annotated `Path | None` — outside the synthesizable primitive/collection set
No difference found (not proven): No behavior difference found in \_run\_cli (not a proof).
The verifier ran both versions of \_run\_cli on many inputs and saw identical behavior every time. Strong evidence the change is safe, but evidence, not a proof.
Guarantee: Empirical: differential testing (both versions run on many generated inputs). A divergence on an untested input remains possible, so this is 'no counterexample found', not 'proven equivalent'.
Note: An input the sampler did not try could still differ.
· 21 more finding(s) on lines outside this diff (see the check run).
Adds native Poolside support: install the graphify skill directly into the
pool CLI's skill directories.
graphify install poolside(or--platform poolside)--project) -> .poolside/skills/graphify/graphify poolside install|uninstallsubcommands;--projectis scope-safeTests: 6 new in test_install.py, plus coverage from the parametrized install
round-trip and claude-bundle-reuse suites. The only test failures
(test_ollama, test_extract_code_only_cli) are pre-existing and
env-specific; they fail on a clean checkout and the failures appear unrelated
to this change.