Skip to content

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

Merged
6 commits merged into
Hmbown:mainfrom
SamhandsomeLee:agent/skills-management
Jul 22, 2026
Merged

feat(skills): unified /skills manager with audit and owned mutations#4679
6 commits merged 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

@Hmbown

Hmbown commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Thank you, Sam — this is in the v0.9.1 candidate with your exact 7684cbec32a355f72f0a5bd7ef996bdeddf798e0 head and all six contributor commits preserved, not squashed or rewritten. The integrated candidate is green locally across the locked TUI/workspace suites, release-contract clippy, real PTY QA, and the web gates. No action is needed from you; we will follow up here with the hosted receipt after the release branch lands.

Hmbown added a commit that referenced this pull request Jul 22, 2026
Preserve all six contributor commits as first-class ancestors while integrating the unified audit, ownership, mutation, and TUI surfaces onto the exact v0.9.1 candidate head. Follow-up maintainer commits address hosted lint failures and mutation-boundary hardening.

Signed-off-by: Hunter B <hmbown@gmail.com>
Hmbown added a commit that referenced this pull request Jul 22, 2026
Preserve the contributor commit series while integrating the unified inventory, provenance audit, owned install/update/remove mutations, readiness checks, terminal manager, documentation, and focused PTY/CLI receipts.

Signed-off-by: Hunter B <hmbown@gmail.com>
@Hmbown Hmbown closed this pull request by merging all changes into Hmbown:main in bbd0d8b Jul 22, 2026
@Hmbown

Hmbown commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Incorporated via #4675 (merge commit bbd0d8ba228ea74e9c9d2990c20df2d4b4cc28e9).

Ancestry receipt

CI receipt (on #4675 @ 79015d4)

Closing as already landed through the v0.9.1 integration gate; not merging independently so attribution and the integration graph stay intact.

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.

2 participants