Remove stayfixed's scaffold from a repository, leaving hand-edited files in place and listed. Use when the user asks to uninstall or remove stayfixed from a project.
Install
npx skillscat add stayfixed/stayfixed-plugin/uninstall Install via the SkillsCat registry.
SKILL.md
Uninstalling
stayfixed uninstall removes every file stayfixed wrote whose bytes are still the ones it wrote,
takes its sections out of files that hold other text, and removes its ledger. A file the user
edited stays where it is and is listed.
- An attached repository needs no step of its own:
uninstallrunsdetachfirst, and anote:line says so, which the dry run says it would. Relay it: the overlay's plugin and the
allow rulesattachplaced go with it. - Run
stayfixed uninstall --dry-runand relay both reports and everynote:line. The note
aboutAGENTS.mdmeans the real run judges the skeleton after taking stayfixed's section
out, so a file the dry run calls edited there may still go. - A
note:counting files under.stayfixed/local/means the real run will refuse. They are
the user's notes kept out of git, or a file kept out of git that changed since stayfixed wrote
it, and the ignore block this command removes is what keeps them out of it. Relay the count.
A file the report listsskip_modifiedthere is step 4's question; moving the rest is the
user's decision. Never move or delete them yourself. - For each file left in place, ask the user. Add
--force <path>only for a file they name,
with the path exactly as the report prints it. ForcingAGENTS.mdtakes stayfixed's section
out of it, never the rest of the file. - If any
--forcewas added, runstayfixed uninstall --dry-runagain with the same flags and
relay the new reports before anything is removed. - Run
stayfixed uninstallwith the same flags, and relay both reports and the count of files
left in place. - Tell the user what stays on the machine: any approval in the trust record, which
stayfixed trust revoke memory --subject KEYwithdraws with a keystayfixed trust list --json
prints, and the deny rulessetupmerged into the user settings file, which are the machine's
and stay.
Rules
- An exit of 1 from a plan removed nothing. A
REFUSEDsection names each artifact and why.
Relay it and stop. An exit of 1 from thedetachit runs first on an attached repository may
come after part of whatattachplaced was withdrawn: relay its sentence, and once its cause is
dealt with runstayfixed uninstallagain, which finishes while the render is still there. Once
thatdetach, or anattachcut short, has left the ledger without the render,uninstall
refuses counting the ledger among the files under.stayfixed/local/: runstayfixed detach,
which finishes from the ledger, thenstayfixed uninstall. - An exit of 2 is a refusal, and it may have come part-way through. Files kept under
.stayfixed/local/counted before the run, and a--forcepath outside the root come before
anything is removed. A refusal from thedetachit runs comes before its own first removal.
A file that cannot be removed, or files still under.stayfixed/local/after the write-once
pass, stop the run part-way: what was removed stays removed, andstayfixed.tomland the
manifest stay so the next run can finish. Relay it as printed, rungit statusto show the
user what changed, and after they deal with the cause runstayfixed uninstall --dry-run
again. - A refusal saying git ignores files at a place a
[paths]value chose removed nothing.
Relay it with the files it names. Taking stayfixed's part out of them by hand, or taking that
key out ofstayfixed.tomlso the run leaves them in place and lists them, is the user's
decision; never do either yourself. - A target printed as
<id>is one the manifest recorded outside the path grammar. Relay it
as printed, and never look up or guess the path behind it.