kramme-cc-workflow/skills/kramme:siw:remove/SKILL.md
Delete SIW workflow files from the current directory. Destructive; use kramme:siw:close first if you want to preserve documentation.
npx skillsauth add abildtoft/kramme-cc-workflow kramme:siw:removeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Delete SIW-related files from the siw/ folder in the current working directory. This is the destructive cleanup path for SIW workflow documents after implementation is complete.
If you want to preserve accumulated knowledge as permanent documentation, use /kramme:siw:close instead. If you want to start a fresh iteration on the same project, use /kramme:siw:reset.
Temporary (always candidates for deletion):
siw/LOG.md — Session progress and decisionssiw/OPEN_ISSUES_OVERVIEW.md — Issue tracking tablesiw/AUDIT_IMPLEMENTATION_REPORT.md — Spec compliance audit reportsiw/AUDIT_SPEC_REPORT.md — Spec quality audit reportsiw/PRODUCT_AUDIT.md — Product audit reportsiw/SIW_*.md — Other temporary SIW artifactssiw/SPEC_STRENGTHENING_PLAN.md — Refinement discovery output (this command deletes it, unlike /kramme:siw:close)siw/DISCOVERY_BRIEF.md — Greenfield discovery outputsiw/issues/ — Individual issue filessiw/qa-intake/ — QA intake parent summariesPermanent (optional, requires explicit confirmation):
siw/ matching *SPEC*.md, *SPECIFICATION*.md, *PLAN*.md, or *DESIGN*.md, excluding SPEC_STRENGTHENING_PLAN.md, DISCOVERY_BRIEF.md, AUDIT_*.md, PRODUCT_AUDIT.md, and SIW_*.mdsiw/supporting-specs/ — Numbered supporting specssiw/contracts/ — Contract specs selected by transfer-to-Linear migrationsOnly files discovered in Step 1 are deleted, listed in the confirmation prompt, or reported as deleted. Items in the lists above that do not exist on disk are ignored.
Discover what exists. Record two lists from the output:
found_temporary — temp files and directoriesfound_permanent — spec/permanent files plus siw/supporting-specs/ and siw/contracts/ if presentls -d siw/LOG.md siw/OPEN_ISSUES_OVERVIEW.md siw/AUDIT_IMPLEMENTATION_REPORT.md siw/AUDIT_SPEC_REPORT.md siw/PRODUCT_AUDIT.md siw/SIW_*.md siw/SPEC_STRENGTHENING_PLAN.md siw/DISCOVERY_BRIEF.md siw/issues siw/qa-intake 2> /dev/null
# Synced SIW spec-exclusion contract (keep aligned across SIW spec detectors): `LOG.md`, `OPEN_ISSUES_OVERVIEW.md`, `DISCOVERY_BRIEF.md`, `SPEC_STRENGTHENING_PLAN.md`, `AUDIT_*.md`, `PRODUCT_AUDIT.md`, `SIW_*.md`.
find siw -maxdepth 1 -type f \( -name "*SPEC*.md" -o -name "*SPECIFICATION*.md" -o -name "*PLAN*.md" -o -name "*DESIGN*.md" \) \
! -name "SPEC_STRENGTHENING_PLAN.md" \
! -name "DISCOVERY_BRIEF.md" \
! -name "AUDIT_*.md" \
! -name "PRODUCT_AUDIT.md" \
! -name "SIW_*.md" \
2> /dev/null
for dir in siw/supporting-specs siw/contracts; do
[ -d "$dir" ] && printf '%s\n' "$dir"
done
If both lists are empty:
No SIW workflow files found in this directory.
Stop.
git status --porcelain -- siw/ 2> /dev/null
If any output exists, warn the user before proceeding to confirmation:
Warning: There are uncommitted changes to SIW files:
{paths from porcelain output, one per line}
If `trash` is available, these will be recoverable from the system Trash. Otherwise they will be permanently lost.
If the working tree is clean or not a git repo, skip the warning. Continue to Step 3 either way.
Use AskUserQuestion. Build option descriptions from the actual contents of found_temporary and found_permanent — do not list files that were not found in Step 1.
header: "Delete SIW Files"
question: "Found {len(found_temporary)} temporary item(s){, plus {len(found_permanent)} permanent item(s) if non-empty}. Which should I delete?"
options:
- label: "Temporary files only"
description: "Delete: {comma-separated paths in found_temporary}. Keep permanent files."
- label: "All SIW files"
description: "Delete the temporary items plus: {comma-separated paths in found_permanent}."
- label: "Abort"
description: "Cancel and keep all files"
If found_permanent is empty, omit the "All SIW files" option.
Determine the deletion set from the user's selection:
delete_set = found_temporarydelete_set = found_temporary + found_permanentPrefer trash for recoverability. Build delete_set from paths that were discovered in Step 1 and selected in Step 3. Expand any globs before deletion so unmatched patterns are never reported as deleted. If delete_set is empty after filtering to existing paths, skip the deletion command and report that nothing matched the selection.
Delete directories by passing them to trash as normal path arguments; do not pass recursive flags to trash. Do not suppress deletion errors. Capture stderr/stdout so any failure can be reported.
trash <each path in delete_set>
If trash is not installed, warn and fall back to rm:
Warning: 'trash' command not found. Files will be permanently deleted.
Install with `brew install trash` (macOS) or your distro's `trash-cli` package (Linux).
# Ask for explicit confirmation after the permanent-deletion warning, then run:
rm -rf <each path in delete_set>
After deletion, verify every target with [ ! -e "$path" ]. Record only verified-absent paths in deleted_paths. Record any surviving paths in failed_delete_paths with the captured error output; these must be reported as failures instead of "Deleted".
siw/After deletion, remove leftover .gitkeep placeholders only from directories included in the confirmed delete_set. Do not remove .gitkeep files from directories the user chose to keep. Then remove only directories from the confirmed delete_set, plus siw/ itself, and only when they are empty.
Record whether siw/ itself was removed for the report.
Report only paths that were actually in delete_set:
SIW Cleanup Complete
Deleted:
{each path in deleted_paths, one per line}
Failed to delete:
{each path in failed_delete_paths with error, one per line; omit section if empty}
{If using trash: Files moved to Trash and can be restored if needed.}
{If siw/ was removed: siw/ directory removed.}
trash keeps deletions recoverable — prefer it over rm whenever it is installed.siw/supporting-specs/, and siw/contracts/./kramme:siw:init — the workflow can be re-initialized after cleanup.tools
Requires Linear MCP. Implements one Linear issue end to end, selects applicable code-review, convention, and PR-refactor gates, runs them to bounded convergence, verifies, and optionally opens the PR and iterates on CI and review feedback until green. Use when the user wants a single Linear issue taken from implementation through a clean Pull Request. Not for implementation-only work, SIW-tracked issues, stacked PRs, existing PR updates, or post-merge rollout.
development
Reviews PR and local changes for convention drift and overcaution against documented rules and mined peer-file practice. Use for new patterns, dependencies, abstractions, or defensive complexity that departs from established practice; every finding cites evidence. Supports --inline. Not for general code quality (use kramme:pr:code-review) or spec review (use kramme:siw:spec-audit --team).
testing
Charts huge or foggy initiatives into a local `.context` decision map and resolves one typed frontier ticket per session until the work is ready for SIW or another execution workflow. Use when the route to a destination cannot fit in one agent session or parallel workspaces need coordinated planning state. Not for clear specs, ordinary issue decomposition, implementation, or Linear-native tracking.
development
Investigates a question against primary sources and saves one cited Markdown artifact. Use for reading legwork: official docs/API facts, source-code or spec checks, standards, and first-party service behavior before planning or implementation. Not for making product or architecture decisions, implementing code, broad web search, secondary blog summaries, or uncited answers.