refactor: mirror module namespaces to their directories (task 0031)
Adopt the convention that a Module's option path mirrors its directory under modules/, with an index file naming the directory's own segment. - Group agent Modules under modules.agents.*: claude-code (whole directory), pi (flattened to a file), skills (renamed from agent-skills), and gitea-axi under an agents/tools/ subgroup. The agents/ and tools/ folders are pure namespace prefixes with no aggregator enable. - Nest hypridle and hyprlock under modules.desktop.hyprland.*, with hyprland.nix as the index, and update the desktop aggregator. - Remove the obsolete example Module. - Record the convention in CONTEXT.md and ADR 0004, and update the neogaia host, the two live CLAUDE.md gotchas, and the skills Module's intentional Enable-convention exception comment.
This commit was merged in pull request #23.
This commit is contained in:
37
modules/agents/claude-code/skills/remove-skills/SKILL.md
Normal file
37
modules/agents/claude-code/skills/remove-skills/SKILL.md
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
name: remove-skills
|
||||
description: Remove one or more previously added library skills from the current project.
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
Removes a skill that [`setup-skills`](../setup-skills/SKILL.md) previously
|
||||
copied into the current project, deleting both its files and its entry in
|
||||
`.claude/skills-lock.yaml` (see [LOCKFILE.md](../setup-skills/LOCKFILE.md)
|
||||
for its schema).
|
||||
|
||||
## Steps
|
||||
|
||||
1. Read `.claude/skills-lock.yaml`. If it doesn't exist or is empty, tell
|
||||
the user there's nothing installed to remove and stop.
|
||||
|
||||
2. Determine which skill(s) to remove:
|
||||
- If the user's invocation already named a specific skill, use that —
|
||||
if it isn't in the lockfile, say so and stop.
|
||||
- Otherwise, list every skill currently in the lockfile and ask the
|
||||
user to pick one (or more).
|
||||
|
||||
3. For each skill to remove, compute its current hash
|
||||
(`~/.claude/skills/setup-skills/hash-dir.sh .claude/skills/<name>`)
|
||||
and compare it to the hash stored in the lockfile:
|
||||
- If it matches (never modified since it was installed), delete
|
||||
`.claude/skills/<name>/` and remove its lockfile entry immediately —
|
||||
no confirmation needed, since nothing of the user's is being lost.
|
||||
- If it differs (locally customized), tell the user it has local
|
||||
changes that will be permanently lost and ask for confirmation
|
||||
before deleting. If they decline, leave that skill installed and
|
||||
move on to the next.
|
||||
|
||||
4. Finish with a summary of what was removed and what was left in place.
|
||||
|
||||
Done when every skill to remove has been either deleted (with its lockfile
|
||||
entry removed) or explicitly left in place with a stated reason.
|
||||
Reference in New Issue
Block a user