Install
$ agentstack add skill-andreyvit-zoo-zoo-cleanup-finished-specs ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Zoo Cleanup Finished Specs
Read and follow .zoo/zoo.md if it exists. Also read .zoo/proposals.md if it exists.
Use this skill to move finished Zoo specs and resolved proposals out of the active folders without deleting them.
Locate Folders
- Start with defaults:
- specs:
.spec/ - archived specs:
.spec/archived/ - proposals:
.proposals/ - archived proposals:
.proposals/archived/
- Override those defaults with explicit repo-local instructions from
.zoo/zoo.md. - For proposals, also honor
.zoo/proposals.mdwhen it defines incoming or archived proposal paths. - Create missing archive folders with
mkdir -p. - Ignore files already inside archive folders.
Classify Specs
Archive a spec only when all of these are true:
- It is a spec document in the configured active spec folder, usually
*.md. - It has actually been executed, shown by completion evidence such as commits, final planner/closeout text, final validation, or completed Zoo reports referenced in the spec.
- Its
## Subtaskssection has no active or incomplete items: - no
(next) - no
(future) - no
(planned) - no
(blocked) - no
Plan: TBD - every subtask status present is
(done)
Do not archive specs that are only draft plans, have no subtask section, or still contain deferred future work. If a spec looks complete but has ambiguous text, list it as a candidate and leave it in place.
Classify Proposals
Archive a proposal only when it is in the configured active proposal folder and one of these is true:
- frontmatter contains
status: "done"orstatus: done - frontmatter contains
status: "rejected"orstatus: rejected
Do not infer that a proposal is fully implemented from code alone unless the proposal file already records that disposition. If a proposal has prose saying it is implemented or rejected but still has status: "proposed" or no status, leave it in place and report it as needing a status update or human decision.
Move Files
- Build two explicit lists before moving:
- specs to archive
- proposals to archive
- If no files qualify, report that and stop.
- Refuse to overwrite existing files in archive folders. If a destination exists, stop and report the collision.
- Use
git mvfor tracked files. Use ordinarymvonly for untracked files. - Preserve filenames exactly.
- Do not move task reports under
.tasks/or_tasks/; those are workflow state, not active spec/proposal files.
Validate
After moving files:
- Run
git status --short. - Run a simple listing of the active and archived spec/proposal folders to confirm only the intended files moved.
- Do not run code tests for archive-only moves unless the cleanup also edits executable files.
Report
Report:
- path rules used and which
.zoofiles supplied them - specs archived
- proposals archived
- ambiguous or skipped candidates and why they stayed active
- collisions or blockers
- validation commands run
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: andreyvit
- Source: andreyvit/zoo
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.