Skip to content

ShellPilot v0.9.0 — skill progressive disclosure

Choose a tag to compare

@lavindeep lavindeep released this 20 Jun 17:47
aa03e29

Skill progressive disclosure

ShellPilot v0.9.0 lets the local model read a skill's deeper documentation on demand rather than force-injecting it into every prompt or leaving it unreachable. The change is additive and opt-in-gated — a default session behaves exactly as it did in v0.8.2.

Highlights

  • skill_read(skill, resource) tool — opens an in-memory skill document by name, scoped to a skill. It never interprets a filesystem path, and invalid or reserved skills are unreadable. Read-only, no approval gate.
  • On-demand resources — any skill resource without a trigger (every template, and every reference outside the planning skill) is now discoverable and readable without being injected. No data-model or loader change was needed.
  • Readable docs menu — when at least one skill is enabled, active skills advertise their on-demand document names in a single compact line, so the model knows what it can open.
  • Opt-in gating — both skill_read and the menu appear only when [skills] enabled is non-empty, mirroring how the web tools register only when web is enabled. A default session gains no new tool surface and no menu.
  • Showcase — the built-in skill-authoring skill's references are now real authoring docs (anatomy, trigger choice, resource routing), and its SKILL.md demonstrates the pattern: a lean injected body that routes to named on-demand docs.
  • README — rewritten from the ground up for the milestone, with an architecture diagram, capability tables, an annotated session, and platform support notes.

Validation

  • Full check suite green (ruff, ruff format --check, mypy --strict, pytest) — 908 tests, on Python 3.11 and 3.14.
  • Live acceptance on gemma4:e4b: the model autonomously read the relevant on-demand docs when the task called for them, and ignored the menu for unrelated work. Cross-model validation on qwen3.5:4b-mlx is deferred.

Notes

  • Planning references remain injected; nothing previously injected moved to on-demand.
  • docs/DESIGN.md (sections 23.1 and 23.4) documents the mechanism.

Full changelog: v0.8.2...v0.9.0