You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Context:#234 closed — bundled registry = executable Python skills in one PyPI wheel; no soft/hard packaging axis; external/project skills stay operator-managed (discovery + trust doc).
Problem
pip install skillware
installs the core framework and ships all registry skill bundles on disk. Optional extras in pyproject.toml today are SDK/domain-shaped (gemini, defi, office, [all]), not aligned with skill categories or individual skills.
When a user calls load_skill() without the right deps installed, load hard-fails with an ImportError and a generic pip install … hint — deps are not auto-installed at execute time. Operators either install [all] (heavy) or discover missing packages one skill at a time.
As the registry grows, we need an explicit optional extras story: same wheel and same skills on disk, but predictable ways to pre-install category or skill-specific runtime dependencies from manifest requirements.
This RFC discusses install/extras design; it does not split the wheel or change loader discovery roots.
Prerequisite:#182 (wheel smoke test) should land before automating or reshaping extras.
Summary
Context: #234 closed — bundled registry = executable Python skills in one PyPI wheel; no soft/hard packaging axis; external/project skills stay operator-managed (discovery + trust doc).
Problem
installs the core framework and ships all registry skill bundles on disk. Optional extras in
pyproject.tomltoday are SDK/domain-shaped (gemini,defi,office,[all]), not aligned with skill categories or individual skills.When a user calls
load_skill()without the right deps installed, load hard-fails with anImportErrorand a genericpip install …hint — deps are not auto-installed at execute time. Operators either install[all](heavy) or discover missing packages one skill at a time.As the registry grows, we need an explicit optional extras story: same wheel and same skills on disk, but predictable ways to pre-install category or skill-specific runtime dependencies from manifest
requirements.This RFC discusses install/extras design; it does not split the wheel or change loader discovery roots.
Prerequisite: #182 (wheel smoke test) should land before automating or reshaping extras.
Project: Identity & Registry v2
Motivation
Contributors and operators may want:
pip install skillware[finance]pre-installs deps for finance skills only[all]requirements)Not in scope: multiple PyPI wheels, per-skill PyPI packages, external registry hosting, instruction-only / soft skill packages.
Product model (proposed)
pip install skillwarepip install skillware[finance]manifest.requirementsfor skills underskills/finance/skillware[finance/wallet_screening]requirementsonlygemini,claude,openai, …skillware[all]Important: extras control Python dependencies only. They do not remove skills from the wheel or change which IDs
load_skill()can resolve.Detailed design
Phase 0 — Baseline (prerequisite)
requirementsviafind_spec(no version check yet — see [Feat]: Support proper version specifiers in Skill requirements validation #14)Phase 1 — Category-aligned extras (target for next releases)
[compliance],[finance],[defi], … extras = union of manifest deps per category folderdocs/usage/+ skill catalog: “recommended install” per categorydefi,office) into category names to avoid duplicate/confusing groupsPhase 2 — Skill-level extras (optional follow-up)
Phase 3 — Automation / drift guard
pyproject.tomlextras against allskills/**/manifest.yamlrequirementsOpen questions
defi/officeextras — rename to category, keep both, or alias?pyproject.tomluntil registry is larger?[all]composition — core + every category + SDK extras, or separate[all-skills]vs[all]?Relationship
Suggested outcomes (when ready to close this RFC)
defi/officevs category namingDrawbacks
requirementswithout CI automation (Phase 3 mitigates)pip installUX — docs and loader hints must stay aligned ([Feat]: Loader dependency diagnostics and load modes #235)