Skip to content

feat(skills): unified /skills manager with audit and owned mutations#4679

Open
SamhandsomeLee wants to merge 6 commits into
Hmbown:mainfrom
SamhandsomeLee:agent/skills-management
Open

feat(skills): unified /skills manager with audit and owned mutations#4679
SamhandsomeLee wants to merge 6 commits into
Hmbown:mainfrom
SamhandsomeLee:agent/skills-management

Conversation

@SamhandsomeLee

@SamhandsomeLee SamhandsomeLee commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Delivers the Skills lane tracked on the v0.9.1 completion board (#4650): one /skills manager for inventory, audit, install/import, update, remove, and trust across CodeWhale-owned and compatible roots.

Refs #4650 (board: Skills / #4651 checkbox).
Refs #4651 (original product contract; issue was closed after load_skill listing mode — this PR completes the remaining manager / audit / mutation surface).

  • Root catalog — single precedence/ownership source; only .codewhale/skills (project + global) is writable; .codex/skills is audit-only (not runtime).
  • Bounded audit — unmerged inventory with Active / Shadowed / Duplicate / Conflict, package digests, provenance/trust classification, action policy; readiness stays Unknown until v0.9.1: Report artifact-skill readiness and define a managed dependency runtime #4407.
  • Mutation controller — sole write path for Install / Import / Update / Remove / Trust; metadata + trust v2; TOCTOU digest checks; external roots never mutated.
  • Skills Manager TUI — bare /skills opens owned-only, zero-network manager; view emits events only; host runs mutations and refreshes.
  • Aliases/skill install|update|uninstall|trust share the same controller; default install target is global owned.
  • Docs/testsdocs/SKILLS.md, CONFIGURATION/GUIDE links; unit + skill_cli + Unix qa_pty coverage.

Commits

  1. refactor(skills): centralize root catalog and precedence
  2. feat(skills): add bounded audit inventory and status model
  3. feat(skills): unify validated mutations and managed metadata
  4. feat(tui): add unified skills manager view
  5. test(skills): cover roots conflicts mutations and pty behavior
  6. docs(skills): document manager audit provenance and readiness

Test plan

  • cargo test -p codewhale-tui --bin codewhale-tui --locked skills::roots skills::audit skills::mutation skills_manager
  • cargo test -p codewhale-tui --test skill_cli --locked
  • cargo test -p codewhale-tui --test qa_pty --locked skills_opens_manager -- --test-threads=1 (Unix)
  • Manual: bare /skills opens manager (no registry); c shows compatible; Esc closes
  • Manual: import external → owned; remove/trust managed only; sentinel under .claude/skills untouched
  • Manual: dual project+global same name requires --project / --global
  • Confirm docs in docs/SKILLS.md match shipped behavior

Out of scope

Extract SkillRootCatalog so runtime discovery, ownership, and
audit-compatible roots share one precedence table without changing
scan_codewhale_only behavior.

Signed-off-by: samhandsome <samhandsome@vip.qq.com>
Introduce a read-only SkillAuditScanner that keeps every on-disk copy,
computes package digests and conflict/shadow state, and classifies
managed/manual/built-in sources without writing or networking.

Signed-off-by: samhandsome <samhandsome@vip.qq.com>
Signed-off-by: samhandsome <samhandsome@vip.qq.com>
Signed-off-by: samhandsome <samhandsome@vip.qq.com>
Signed-off-by: samhandsome <samhandsome@vip.qq.com>
Signed-off-by: samhandsome <samhandsome@vip.qq.com>
@SamhandsomeLee
SamhandsomeLee requested a review from Hmbown as a code owner July 22, 2026 02:33
@github-actions

Copy link
Copy Markdown
Contributor

Thanks @SamhandsomeLee for taking the time to contribute.

This repository is observing a maintainer-managed PR intake gate in dry-run mode, so this pull request is staying open. This note helps maintainers prepare the allowlist before any enforcement is considered.

Please read CONTRIBUTING.md for the expected contribution shape. A maintainer can grant recurring PR access by commenting /lgtm on a pull request.

@SamhandsomeLee

Copy link
Copy Markdown
Contributor Author

@claude please code review

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.

1 participant