Commit Graph
4 Commits
Author SHA1 Message Date
Gregory Schier d43d815951 Always replace the installed skill instead of preserving local edits
The skill directory is a CLI-managed artifact, so install now replaces it
wholesale and remove deletes it. Drops the manifest file, the content
hashing, and --force.

Preserving edits was worse than losing them. An edited file was skipped
by every future install, so it stayed frozen forever against a CLI that
keeps changing, which defeats the reason for embedding the skill in the
binary at all. Replacing wholesale also drops files an older version
shipped, with no reconciliation logic needed.

This removes the three ownership-loss paths raised in review rather than
patching them, since all of them came from keeping that bookkeeping file
in sync with what was on disk.

SKILL.md now says it is managed and points anywhere else for custom
guidance.
2026-08-13 22:25:36 -07:00
Gregory Schier c2b4be421f Keep ownership records for skill files that survive removal
Three ownership-loss paths found in review, all variations on discarding
the manifest while the file it describes is still on disk.

`remove` deleted the manifest unconditionally. When it deliberately kept
a file the user had edited, the next install saw an untracked file and
overwrote those edits without --force, undoing the preservation that
removal had just performed. It now writes back a manifest covering
everything still present, and only deletes it when the directory is
actually empty.

The same applied to files it could not delete: the record vanished, the
file stayed, and removal still reported success. Those are now retained,
reported, and retried by a later run.

Upgrade cleanup had the mirror problem, dropping stale entries from the
new manifest even when deletion failed, orphaning a file we know we
wrote. It keeps tracking those so a later install can retry.

A failed manifest write during removal is now a warning rather than an
abort, since the previous manifest still lists every retained file and
other targets should still be processed.
2026-08-13 22:16:39 -07:00
Gregory Schier 8bd26d0f24 Consult the manifest before deleting skill files
Two problems found in review, both from deleting without checking what we
actually wrote:

`agent remove` called remove_dir_all on the whole tree, discarding files
the user had edited or added. Install goes out of its way to preserve
those, so uninstall throwing them away was inconsistent and lossy. It now
deletes only tracked files whose contents still match the manifest,
prunes empty directories, and reports anything it kept.

`agent install` never reconciled against the previous manifest, so a file
an older CLI shipped but a newer one drops would linger and could feed an
agent stale guidance. Unshipped files are now removed when unmodified,
and left alone (and untracked) when the user has edited them.
2026-08-13 21:24:16 -07:00
Gregory Schier 314f08545c Add a Yaak CLI skill for coding agents, installed by yaak agent install
Teaches agents to drive the CLI: workspaces, environments, requests,
sending, response chaining, and importing. SKILL.md stays lean with
four references loaded on demand.

The skill is embedded in the binary and written to ~/.agents/skills plus
any detected tool directory, so it ships with the CLI and refreshes on
update. Reinstalls keep files edited locally unless --force.

Also fixes the `request schema http` hint for URL path parameters, which
said to omit the leading colon. Names without the colon are sent as query
string parameters instead, leaving the placeholder literal in the path.
2026-08-13 19:26:44 -07:00