AGENT SKILL

capability-remove

Removes an installed aos capability exactly, walking its lockfile entry backwards — jobs, symlinks, marker blocks, config keys, agents it created, its tool — and leaving the user's MOD.md in place so a re-install returns personalized. Use when the user says "remove", "uninstall", or "get rid of" and names an installed capability. Do NOT use to undo one setting or turn off a single cron job — that is capability-evolve — and not to retire something upstream, which is capability-contribute.

License 许可
MIT
所属仓库
AlmogBaku/aos
最近更新
2026-11-15
Stars
★ 5
Forks
2

01 前言 Front Matter

name
capability-remove
metadata
{ "aos": { "origin": "capability-lifecycle@0.7.0" } }
description
Removes an installed aos capability exactly, walking its lockfile entry backwards — jobs, symlinks, marker blocks, config keys, agents it created, its tool — and leaving the user's MOD.md in place so a re-install returns personalized. Use when the user says "remove", "uninstall", or "get rid of" and names an installed capability. Do NOT use to undo one setting or turn off a single cron job — that is capability-evolve — and not to retire something upstream, which is capability-contribute.

03 SKILL.md 正文

capability-remove

Not in context yet? Load the capability-lifecycle skill first — the map, the contract, and the Experience rules.

  1. aos-cap show <id> → the entry: artifacts, links and uses_links (including the capability's tool binary, recorded as an artifact), cron_owned, config keys, env variable names, scripts.
  2. Scope: removing the capability entirely, or from one harness while it stays installed elsewhere? Per-harness removal: run step 4 for that harness only and skip its render deletion (the render is shared — it stays), then re-record the reduced set (start from aos-cap show, drop that harness's links/artifacts/jobs, keep everything else), then step 6's verify scoped to that harness. The lockfile entry and the MOD file both stay. Skip step 5. Step 3's dependents check still applies scoped to this harness (a capability installed here that depends on this one). Note the lockfile's cron_owned is a flat id list with no harness dimension (§5.5), so identify this harness's jobs by introspecting the harness, not by reading the lockfile. Whole removal continues below.
  3. Dependents check: another entry in aos-cap list whose manifest depends.capabilities or uses names this one → say so; stop unless the user insists (then remove dependents first). A dependent's uses_links point into this render, so removing it first is what keeps them from dangling.
  4. Un-write per the cheat-sheet's Removal section (load the capability-lifecycle skill's reference/harness-<harness-runtime>.md now), in its stated order — typically: jobs → skill symlinks (delete the links and uses_links; then send only <aos_home>/rendered/<id>/ to the OS trash — gio trash, trash-put, or the platform's own; never rm -rf, never anything under personal/, and never the MOD.md — recoverable from the trash) → marker blocks → config keys → .env lines (ask first) → agents this capability created and nothing else uses (never an adopted one — contract) → scripts/hooks (revoke each hook's consent record first) → its tool (uv tool uninstall). A recorded link into <aos_home>/vendor is a referenced third-party skill: unlink it, and offer to drop the vendor clone only if no other entry links into it. Its machine-local state under <aos_home>/.aos/ is not in the lockfile, so nothing walks it backwards — removing kb leaves kb-principal.yml and kb-registry.yaml behind. Offer to delete them, and say what each is: the principal list (who authors writes on this machine) and the registry (the list of every base). Both are the user's, not the capability's — an unasked deletion loses answers they gave; a re-install would adopt the old values silently, which is right often enough to be worth asking about.
  5. Tell the user their MOD.md stays: "your answers survive — in your personal repo, reinstalling brings it back personalized."
  6. Verify: re-introspect until no metadata.aos.origin, aos: names, marker blocks, or links into rendered/<id>/ remain; aos-cap remove <id>; friendly close.

04 同仓库更多 Skills

AlmogBaku
AlmogBaku/aos

wt-update

Updates an existing commitment when the user reports progress: completion, a new deadline, a stall, or abandonment. Use when the user says "I did that", "finished X", "still waiting on Y", "push that to next week", "I started it", or "forget it, I'm not doing X". Finds the matching open action, applies the change, and routes any knowledge the report carries to the knowledge base. Do NOT use to file a new commitment (that is wt-capture) or to find time for one (wt-schedule).

★ 5
AlmogBaku
AlmogBaku/aos

wt-steward

Maintains an existing commitments backlog: overdue, about to expire, stalled, and repeatedly-rescheduled commitments, and someday items gone cold. Use when the nightly cron job fires or the user asks to review or tidy their backlog ('review my backlog', 'what's gone stale on my list'). Does not capture or schedule new work — that happens when the user speaks, through wt-capture and wt-schedule.

★ 5
AlmogBaku
AlmogBaku/aos

wt-schedule

Estimates a commitment, links it to its project, and blocks time for it on the user's calendar. Use when the user asks to find time for something — "when can I do this?", "find me two hours for the CFP", "block time for that tomorrow", "I want to work on it today" — and immediately after wt-capture files a commitment that needs real hours. Do NOT use for a commitment that needs only a deadline or a reminder, and do NOT use to change what the user committed to — that is wt-update.

★ 5
AlmogBaku
AlmogBaku/aos

wt-capture

Records something the user has said they must do themselves: classifies the commitment as next, waiting, someday or trivial, writes it as an action page in their commitments base, and hands off to wt-schedule when it needs real hours. Use when the user commits to work of their own — "I need to find time to…", "I have to…", "remind me to…", "help me remember…", "put that on my list", "I should … at some point". Do NOT use when the user asks the assistant to do the work ("write the CFP", "research X", "email Sam") — that is a request to act now, not a commitment to track. Do NOT use for thoughts, facts or notes carrying no commitment; those are knowledge and belong to kb-capture.

★ 5
AlmogBaku
AlmogBaku/aos

work-tracker

Answers questions about the user's own commitments by querying their commitments base, explains the four statuses (next, waiting, someday, done), routes a request to the right work-tracker skill, and states who may change what without asking. Use when the user asks what they should be working on, what is overdue, what they are waiting on, or how their task tracking works, and no narrower work-tracker skill matches. Do NOT use to file a commitment the user just made (that is wt-capture), to find time for one (wt-schedule), or to report progress on one (wt-update).

★ 5
AlmogBaku
AlmogBaku/aos

kb

Explains how the user's knowledge bases are laid out and which kb skill handles a given job — the tree, the one queue, expiry, links, base health, maintenance. Use when the user asks how their knowledge base works, what state a base is in, why something was or was not kept, or wants base maintenance run, and no narrower kb skill matches. Do NOT use to file something the user just said (that is kb-capture), to answer a question from stored knowledge (that is kb-recall), or to pick a destination base for a write already in hand (that is kb-route).

★ 5