Skip to content

feat(config,cli): persistent YAML config and skillware config show (#… - #283

Merged
rosspeili merged 1 commit into
ARPAHLS:mainfrom
rosspeili:feat/issue-246-cli-config-paths
Aug 10, 2026
Merged

feat(config,cli): persistent YAML config and skillware config show (#…#283
rosspeili merged 1 commit into
ARPAHLS:mainfrom
rosspeili:feat/issue-246-cli-config-paths

Conversation

@rosspeili

Copy link
Copy Markdown
Contributor

Fixes #246

Persistent YAML configuration for Skillware: global config.yaml and project .skillware.yaml merge into a generic SkillwareConfig; the paths section drives skill-root discovery when any config file exists. Without config, legacy resolution is unchanged (SKILLWARE_SKILL_PATH./skills/ walk → bundled).

Type of Change

  • Framework Featureskillware/core/config.py, discovery.py, loader.py
  • CLIskillware config show, updated skillware paths tips
  • Documentationcli.md, usage README, introduction, trust model, .skillware.yaml.example

Acceptance criteria → implementation

Criterion Where
Global + project YAML load/merge (global → project) skillware/core/config.py, tests/test_config.py
Bundled always included _parse_resolution_order(), _configured_skill_roots()
Project + external roots in load_skill, list, test discovery.get_skill_roots() (shared by loader + CLI)
Skill-not-found lists searched paths + actionable tip build_skill_not_found_message()
SKILLWARE_SKILL_PATH with config (legacy.honor_*) PathsSettings, cli.md path-resolution section
skillware config show (read-only) cmd_config_show, tests/test_cli.py
Docs updated docs/usage/cli.md, trust model, usage README

Out of scope (follow-up issues)

Checklist

Test plan

  • No config → legacy order unchanged
  • Project .skillware.yaml with paths.external
  • Global + project merge
  • resolution.order (project before external)
  • honor_skillware_skill_path: false
  • Extra YAML sections preserved in config.extra
  • skillware config show (no-files path)
  • skillware config show subcommand wiring

…RPAHLS#246)

Add generic SkillwareConfig with paths section driving discovery when YAML is present; legacy env/cwd resolution unchanged without config files. Includes skillware config show, docs, and tests.
@rosspeili

Copy link
Copy Markdown
Contributor Author

#246 backend will be implemented via feat/issue-246-cli-config-paths: persistent YAML config (global config.yaml + project .skillware.yaml), config-driven discovery when any config file exists, and read-only skillware config show. Without config files, behavior is unchanged (legacy SKILLWARE_SKILL_PATH./skills/ walk → bundled).

What to review

  • Config merge: global → project, paths.external accumulates, resolution.order defaults to project → external → bundled; bundled always on.
  • Legacy compat: no YAML = same order as before [Feat]: CLI config and three-tier skill path resolution (global + project) #246.
  • Env + config: SKILLWARE_SKILL_PATH still works when config is present (merged into external) unless legacy.honor_skillware_skill_path: false.
  • Generic config shape: paths is active today; other top-level keys (theme, chains, …) are preserved in extra for future use, not applied yet.
  • Shadowing: visible via skillware paths (first root wins). No runtime load warnings in this PR.

Intentionally deferred (follow-up issues)

Item Issue
Interactive config / paths editor #247
Runtime shadow / trust warnings at load #110
Themes / presentation #248

Known gaps (non-blocking for this PR)

  • docs/usage/api_keys.md, config + env interaction not fully documented yet
  • docs/contributing/ai_native_workflow.md, no config cross-link yet
  • Skill-not-found errors list paths but not tier labels per root
  • README Configuration section still .env-focused; config mentioned mainly in usage docs

@rosspeili
rosspeili merged commit eb20942 into ARPAHLS:main Aug 10, 2026
6 checks passed
@rosspeili
rosspeili deleted the feat/issue-246-cli-config-paths branch August 10, 2026 19:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feat]: CLI config and three-tier skill path resolution (global + project)

1 participant