Initial commit
This commit is contained in:
414
skills/delete-content/SKILL.md
Normal file
414
skills/delete-content/SKILL.md
Normal file
@@ -0,0 +1,414 @@
|
||||
---
|
||||
name: delete-content
|
||||
description: Delete files from knowledge base with directory governance. Use when user wants to remove or delete content. Reads RULE.md to check deletion permissions and handles dependencies.
|
||||
---
|
||||
|
||||
# Delete Content Skill
|
||||
|
||||
Generic file deletion Skill that checks RULE.md permissions and handles dependencies safely.
|
||||
|
||||
## When to use this Skill
|
||||
|
||||
- User says "delete", "remove", "trash"
|
||||
- User requests content deletion
|
||||
- User wants to clean up old files
|
||||
|
||||
## Workflow
|
||||
|
||||
### 1. Identify Target File
|
||||
|
||||
**If user provides file path**:
|
||||
- Verify file exists using `ls` or Read
|
||||
- Confirm file identity
|
||||
|
||||
**If user provides topic/title only**:
|
||||
- Search for file using Grep or Glob
|
||||
- Pattern: `**/*keyword*.md`
|
||||
- If multiple matches: present list, ask user to choose
|
||||
- If no matches: report not found
|
||||
|
||||
**Search strategies**:
|
||||
1. Filename match: `find . -name "*keyword*"`
|
||||
2. Content match: `grep -r "keyword" .`
|
||||
3. README.md index: Search README.md files for references
|
||||
|
||||
### 2. Read Directory RULE.md
|
||||
|
||||
**Locate and read RULE.md**:
|
||||
1. Check file's directory for RULE.md
|
||||
2. If not found, check parent directories (inheritance)
|
||||
3. Parse RULE.md for deletion rules
|
||||
|
||||
**Check for**:
|
||||
- Are deletions allowed? (some directories may be immutable or archive-only)
|
||||
- Archive-instead rules (move to archive instead of delete)
|
||||
- Backup requirements (create backup before delete)
|
||||
- Dependency rules (check cross-references)
|
||||
- Confirmation requirements
|
||||
|
||||
**Example RULE.md deletion rules**:
|
||||
```markdown
|
||||
## Deletion Rules
|
||||
- Deletions allowed with confirmation
|
||||
- Check for cross-references before deleting
|
||||
- Move to Archive/ subdirectory instead of permanent deletion
|
||||
```
|
||||
|
||||
### 3. Check Dependencies
|
||||
|
||||
**Search for cross-references**:
|
||||
1. Use Grep to find links to this file: `grep -r "filename" .`
|
||||
2. Search for references in README.md files
|
||||
3. Check for reverse links (files this file links to)
|
||||
4. Identify files that depend on this content
|
||||
|
||||
**Categorize dependencies**:
|
||||
- **Incoming**: Files that link to this file (will break if deleted)
|
||||
- **Outgoing**: Files this file links to (won't break, but orphans references)
|
||||
- **Bidirectional**: Cross-referenced files (mutual dependencies)
|
||||
|
||||
**Severity assessment**:
|
||||
- Critical: Many incoming links, part of important workflow
|
||||
- Warning: Some incoming links, moderately used
|
||||
- Low: Few or no dependencies
|
||||
|
||||
### 4. User Confirmation
|
||||
|
||||
**Present deletion summary**:
|
||||
```
|
||||
⚠️ Delete confirmation required
|
||||
|
||||
File: [path to file]
|
||||
Size: [file size]
|
||||
Last modified: [timestamp]
|
||||
|
||||
Dependencies found:
|
||||
- [file1.md] links to this file
|
||||
- [file2.md] links to this file
|
||||
(Total: X files reference this content)
|
||||
|
||||
RULE.md policy: [deletion policy summary]
|
||||
|
||||
Are you sure you want to delete this file?
|
||||
- Yes, delete permanently
|
||||
- Yes, move to archive (if RULE.md allows)
|
||||
- No, cancel
|
||||
- Show me the dependencies first
|
||||
```
|
||||
|
||||
**If user requests dependency review**:
|
||||
- Show each file that references this content
|
||||
- Show the context (line where reference appears)
|
||||
- Allow user to reconsider
|
||||
|
||||
### 5. Execute Deletion
|
||||
|
||||
**Based on RULE.md policy**:
|
||||
|
||||
**Permanent deletion**:
|
||||
```bash
|
||||
rm [file path]
|
||||
```
|
||||
- Only if RULE.md allows or user explicitly overrides
|
||||
- Use Bash tool with rm command
|
||||
- Verify deletion successful
|
||||
|
||||
**Archive instead**:
|
||||
```bash
|
||||
# Create archive directory if not exists
|
||||
mkdir -p Archive/
|
||||
# Move file to archive
|
||||
mv [file path] Archive/[filename]
|
||||
```
|
||||
- Follow RULE.md archive structure
|
||||
- Preserve filename or add timestamp
|
||||
- Update archive README.md
|
||||
|
||||
**Backup then delete**:
|
||||
```bash
|
||||
# Create backup
|
||||
cp [file path] [backup path]
|
||||
# Then delete original
|
||||
rm [file path]
|
||||
```
|
||||
- Create backup per RULE.md specification
|
||||
- Verify backup successful before deleting
|
||||
|
||||
### 6. Governance Update
|
||||
|
||||
**Update README.md**:
|
||||
1. Read current README.md
|
||||
2. Find entry for deleted file
|
||||
3. Remove entry from file list
|
||||
4. Add to "Recent Changes" section:
|
||||
```markdown
|
||||
- YYYY-MM-DD: Removed filename.md
|
||||
```
|
||||
5. Update "Last updated" timestamp
|
||||
6. Save README.md
|
||||
|
||||
**Update parent README.md if needed**:
|
||||
- If directory now empty, update parent
|
||||
- Note directory is empty or removed
|
||||
|
||||
**Handle cross-references**:
|
||||
- Update files that referenced deleted content (if possible)
|
||||
- Or add note in README.md: "Files with broken references: [list]"
|
||||
- Offer to update broken links
|
||||
|
||||
**Verify cleanup**:
|
||||
- Ensure no orphaned references
|
||||
- Check README.md is valid markdown
|
||||
- Confirm directory structure intact
|
||||
|
||||
### 7. Report to User
|
||||
|
||||
**Confirm deletion complete**:
|
||||
```
|
||||
✅ File deleted successfully
|
||||
|
||||
Deleted: [path to file]
|
||||
Method: [permanent deletion / moved to archive / backed up then deleted]
|
||||
|
||||
README.md updated:
|
||||
- [directory]/README.md
|
||||
|
||||
Dependencies handled:
|
||||
- [X] files need attention (broken links)
|
||||
- [List of affected files]
|
||||
|
||||
Recommendation: Review affected files to update/remove broken links
|
||||
```
|
||||
|
||||
**If archived instead**:
|
||||
```
|
||||
✅ File archived successfully
|
||||
|
||||
Original: [original path]
|
||||
Archived to: [archive path]
|
||||
Archive method: [per RULE.md policy]
|
||||
|
||||
README.md updated:
|
||||
- [directory]/README.md
|
||||
- Archive/README.md
|
||||
|
||||
Note: File preserved in archive, not permanently deleted
|
||||
```
|
||||
|
||||
## Special Cases
|
||||
|
||||
### Immutable Directory
|
||||
|
||||
If RULE.md specifies immutable:
|
||||
```markdown
|
||||
## RULE.md says: "This directory is immutable - no deletions allowed"
|
||||
```
|
||||
|
||||
**Process**:
|
||||
1. Warn user: "RULE.md indicates this directory should not have deletions"
|
||||
2. Explain policy reasoning
|
||||
3. Ask: "Do you want to override this rule?"
|
||||
4. If yes: proceed with deletion and log rule override
|
||||
5. If no: cancel operation
|
||||
|
||||
### Archive-Only Policy
|
||||
|
||||
If RULE.md requires archival instead:
|
||||
```markdown
|
||||
## RULE.md says: "Move to Archive/ instead of deleting"
|
||||
```
|
||||
|
||||
**Process**:
|
||||
1. Don't offer permanent deletion
|
||||
2. Execute archive operation
|
||||
3. Update both original and archive README.md
|
||||
4. Report archive location
|
||||
|
||||
### Batch Deletion
|
||||
|
||||
If user requests deleting multiple files:
|
||||
```
|
||||
User: "Delete all old notes from last year"
|
||||
```
|
||||
|
||||
**Process**:
|
||||
1. Identify all matching files
|
||||
2. Check each file's RULE.md
|
||||
3. Check dependencies for each
|
||||
4. Present summary: "X files match, Y have dependencies"
|
||||
5. Request batch confirmation
|
||||
6. Execute deletions one by one
|
||||
7. Report summary of all deletions
|
||||
|
||||
### Directory Deletion
|
||||
|
||||
If user wants to delete entire directory:
|
||||
```
|
||||
User: "Delete the old-project directory"
|
||||
```
|
||||
|
||||
**Process**:
|
||||
1. Read directory RULE.md for deletion rules
|
||||
2. Check parent directory RULE.md for subdirectory rules
|
||||
3. Scan all files in directory for external dependencies
|
||||
4. Present comprehensive summary
|
||||
5. Warn: "This will delete X files and Y subdirectories"
|
||||
6. Request explicit confirmation
|
||||
7. Execute recursive deletion or archive
|
||||
8. Update parent README.md
|
||||
|
||||
### Soft Delete (Mark as Deleted)
|
||||
|
||||
If RULE.md specifies soft delete:
|
||||
```markdown
|
||||
## RULE.md says: "Mark files as deleted in frontmatter instead of removing"
|
||||
```
|
||||
|
||||
**Process**:
|
||||
1. Don't delete file physically
|
||||
2. Update frontmatter: `status: deleted`
|
||||
3. Update README.md: mark as `[DELETED] filename.md`
|
||||
4. File stays but marked as obsolete
|
||||
|
||||
## Error Handling
|
||||
|
||||
### File Not Found
|
||||
```
|
||||
User: "Delete the transformer note"
|
||||
→ Search for file
|
||||
→ No matches found
|
||||
→ Report: "I couldn't find a file about transformers. Nothing to delete."
|
||||
```
|
||||
|
||||
### Multiple Matches
|
||||
```
|
||||
User: "Delete the transformer note"
|
||||
→ Find 3 files with "transformer"
|
||||
→ Present list: "I found 3 files. Which one to delete?"
|
||||
→ User selects → Proceed
|
||||
```
|
||||
|
||||
### RULE.md Forbids Deletion
|
||||
```
|
||||
RULE.md says: "Immutable directory"
|
||||
→ Warn: "RULE.md forbids deletions in this directory"
|
||||
→ Explain reasoning
|
||||
→ Ask for override confirmation
|
||||
→ If confirmed: proceed with warning note
|
||||
```
|
||||
|
||||
### High-Impact Dependencies
|
||||
```
|
||||
File has 50+ incoming references
|
||||
→ Warn: "⚠️ HIGH IMPACT: 50+ files reference this content"
|
||||
→ Show most critical dependencies
|
||||
→ Recommend: "Consider archiving instead of deleting"
|
||||
→ Require explicit "yes, delete anyway" confirmation
|
||||
```
|
||||
|
||||
### Deletion Fails
|
||||
```
|
||||
Bash rm command fails (permissions, file locked, etc.)
|
||||
→ Report error clearly
|
||||
→ Show exact error message
|
||||
→ Suggest: "Check file permissions or if file is open in another program"
|
||||
→ Offer alternatives: archive, rename, mark as deleted
|
||||
```
|
||||
|
||||
### Broken References After Deletion
|
||||
```
|
||||
Deletion successful but broken links remain
|
||||
→ Report: "Deletion complete, but broken references detected in:"
|
||||
→ List affected files
|
||||
→ Offer: "Would you like me to update these files to remove broken links?"
|
||||
→ If yes: update files to remove/fix references
|
||||
```
|
||||
|
||||
## Integration with Governance
|
||||
|
||||
This Skill automatically invokes the governance protocol:
|
||||
|
||||
**Before deletion**:
|
||||
- Locate and read RULE.md
|
||||
- Validate deletion is allowed
|
||||
- Check dependency policy
|
||||
|
||||
**During deletion**:
|
||||
- Follow RULE.md deletion method (delete, archive, backup)
|
||||
- Execute safely
|
||||
|
||||
**After deletion**:
|
||||
- Update README.md
|
||||
- Handle broken references
|
||||
- Verify cleanup complete
|
||||
|
||||
## Examples
|
||||
|
||||
### Example 1: Simple Deletion
|
||||
|
||||
**User**: "Delete the old transformer draft"
|
||||
|
||||
**Skill workflow**:
|
||||
1. Searches for file → Finds `Research/AI/2025-10-15-transformer-draft.md`
|
||||
2. Reads Research/AI/RULE.md → Deletions allowed with confirmation
|
||||
3. Checks dependencies → No references found
|
||||
4. Asks confirmation: "Delete transformer-draft.md? No dependencies found."
|
||||
5. User confirms
|
||||
6. Executes `rm Research/AI/2025-10-15-transformer-draft.md`
|
||||
7. Updates Research/AI/README.md (removes entry)
|
||||
8. Reports: "✅ Deleted transformer-draft.md"
|
||||
|
||||
### Example 2: Archive Instead
|
||||
|
||||
**User**: "Delete the 2024 work logs"
|
||||
|
||||
**Skill workflow**:
|
||||
1. Finds Work/WorkLog/2024/ directory
|
||||
2. Reads Work/WorkLog/RULE.md → "Move old logs to Archive/ instead of deleting"
|
||||
3. Checks dependencies → Some cross-references to meeting notes
|
||||
4. Presents: "Found 2024 logs (52 files). RULE.md policy: archive instead of delete"
|
||||
5. User confirms
|
||||
6. Creates `Work/WorkLog/Archive/2024/` if not exists
|
||||
7. Executes `mv Work/WorkLog/2024/* Work/WorkLog/Archive/2024/`
|
||||
8. Updates README.md files
|
||||
9. Reports: "✅ Archived 52 log files to Archive/2024/"
|
||||
|
||||
### Example 3: High-Impact Deletion
|
||||
|
||||
**User**: "Delete the core-concepts document"
|
||||
|
||||
**Skill workflow**:
|
||||
1. Finds `Research/core-concepts.md`
|
||||
2. Reads Research/RULE.md → Deletions allowed
|
||||
3. Checks dependencies → 25 files reference this document
|
||||
4. Warns: "⚠️ HIGH IMPACT: 25 files reference core-concepts.md"
|
||||
5. Shows first 5 most critical dependencies
|
||||
6. Recommends: "This is a foundational document. Consider archiving instead?"
|
||||
7. User still chooses delete
|
||||
8. Asks: "Are you absolutely sure? Type 'delete core-concepts' to confirm"
|
||||
9. User confirms
|
||||
10. Executes deletion
|
||||
11. Updates README.md
|
||||
12. Reports broken references: "25 files need attention"
|
||||
13. Offers to help fix broken links
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Always check dependencies** - Prevent broken knowledge base
|
||||
2. **Read RULE.md first** - Respect deletion policies
|
||||
3. **Archive when possible** - Preserve content instead of permanent deletion
|
||||
4. **Confirm before deleting** - No accidental deletions
|
||||
5. **Update README.md immediately** - Keep index accurate
|
||||
6. **Handle broken links** - Offer to fix cross-references
|
||||
7. **Report clearly** - User should know what was deleted and impact
|
||||
8. **Follow RULE.md policies** - Even if user requests override
|
||||
|
||||
## Notes
|
||||
|
||||
- This Skill works with any directory structure by reading RULE.md
|
||||
- Checks for dependencies to prevent broken knowledge base
|
||||
- Offers archival as safer alternative to permanent deletion
|
||||
- Always requires confirmation for destructive operations
|
||||
- Maintains README.md index integrity
|
||||
- Works in parallel with CLAUDE.md subagents
|
||||
- Never deletes RULE.md files (requires explicit governance agent action)
|
||||
Reference in New Issue
Block a user