feat: expand agent skill management - #35
Conversation
|
Re-reviewed at Both blockers are fixed, and one of them was my mistake. The Correction on my earlier "missing file blocks updates" note — that was a bad test on my part. I deleted an already-installed file, which is a deliberate user deletion, and blocking that is correct behavior. The manifest change ( One narrow residue: when there's no manifest (installs predating this change), the fallback baseline is the embedded payload, so the old false positive fires once on the first update after upgrading. Probably acceptable — worth a line in the error message pointing at Two things still open. 1.
|
671bc1c to
c735c50
Compare
Summary
dci skill listwith byte sizes and estimated token countsdci skill update [agent]with local-edit protection and--force.DS_Storein place without letting them block future updates--dirfor non-standard agent configuration locationsdci skill --allfor every detected supported agentPart of #13. Ambient customer, anomaly, and budget context is intentionally deferred because it needs a bounded API aggregate rather than multiple hidden client calls.
Test methods
Automated validation run on this branch:
go test ./... go vet ./...Manual validation in a disposable directory:
The update with
.DS_Storeshould succeed and leave that file in place. The next update should protect the edited managed file and refuse to overwrite it. The explicit--forceupdate should restore the embedded skill. Unit tests also simulate updating an unchanged skill installed by a previous CLI version.Could this break things?
Risk: low-medium. This only writes inside a selected agent skill directory and does not call DCI APIs or touch customer data. A new
.dci-skill-manifest.jsonfile records managed-file checksums. Normal updates refuse to overwrite managed files changed since installation, while unmanaged files are preserved. The main overwrite risk is an operator deliberately using--forceor selecting the wrong--dir.