Move Content Skill
Generic file move/rename Skill that respects both source and target RULE.md requirements.
When to use this Skill
- •User says "move", "relocate", "transfer", "rename"
- •User requests reorganization
- •User wants to reclassify content to different directory
Workflow
1. Identify Source File
If user provides file path:
- •Verify file exists
- •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:
- •Filename match:
find . -name "*keyword*" - •Content match:
grep -r "keyword" . - •README.md index: Search README.md files for references
2. Determine Target Location
If user specifies target:
- •Parse target path
- •Verify target directory exists (or offer to create)
- •Confirm target path with user
If user doesn't specify target:
- •Analyze content (read source file)
- •Scan available directories
- •Read RULE.md files to understand purposes
- •Recommend target directory based on content
- •Ask user for confirmation or alternative
Recommendation logic (similar to add-content):
- •Analyze file content
- •Read RULE.md of potential target directories
- •Match content to directory purposes
- •Rank by suitability
- •Present top recommendation
3. Read Both RULE.md Files
Read source directory RULE.md:
- •Check if moving out is allowed
- •Check if any special handling required (e.g., "notify when file moved")
- •Understand current file format
Read target directory RULE.md:
- •Check if moving in is allowed
- •Check file format requirements
- •Check naming conventions
- •Check if transformation needed
- •Understand target directory structure
Compare requirements:
- •Source format vs target format
- •Source naming vs target naming
- •Compatibility check
4. Check Compatibility
Format compatibility:
- •Both use markdown → Compatible
- •Source has frontmatter, target doesn't require → Compatible (but may want to remove)
- •Source plain, target requires frontmatter → Needs transformation
- •Different metadata requirements → Needs update
Naming compatibility:
- •Source:
topic-name.md - •Target requires:
YYYY-MM-DD-topic-name.md - •→ Needs rename during move
Structure compatibility:
- •Source is single file
- •Target requires directory structure (file + metadata)
- •→ Needs structure creation
Identify required transformations:
- •Rename (filename format change)
- •Format conversion (add/remove frontmatter)
- •Structure change (file → directory with multiple files)
- •Content adaptation (modify to fit target requirements)
5. User Confirmation
Present move summary:
📦 Move confirmation Source: [source path] Target: [target path] Compatibility check: ✅ Format: Compatible (or ⚠️ Needs transformation) ✅ Naming: Compatible (or ⚠️ Will rename to: [new name]) ✅ Structure: Compatible (or ⚠️ Will restructure) RULE.md policies: - Source: [policy summary] - Target: [policy summary] Transformations needed: - [List of changes required] Cross-references: - [X] files reference this content Proceed with move? - Yes (execute move with transformations) - No (cancel) - Show me what will change
If transformations needed:
- •Explain each transformation clearly
- •Show before/after examples
- •Get explicit confirmation
6. Execute Move
Basic move (no transformation needed):
mv [source path] [target path]
Move with rename:
mv [source path] [target directory]/[new filename]
Move with transformation:
- •Read source file
- •Apply transformations:
- •Add/remove/modify frontmatter
- •Adjust content format
- •Update internal references
- •Write to target location with new format
- •Verify target file created successfully
- •Delete source file (only after target verified)
Move with restructure:
- •Create target directory structure
- •Split/reorganize content per target RULE.md
- •Create all required files in target
- •Verify all files created successfully
- •Delete source file/directory
Preserve metadata (when possible):
- •Modification timestamps
- •Creation date (in frontmatter if present)
- •Author information
- •Tags and categories
7. Update Cross-References
Find references to moved file:
grep -r "[old path]" . grep -r "[old filename]" .
Update strategies:
- •Relative paths: Update to new relative path
- •Absolute paths: Update to new absolute path
- •Title references: No change needed if file title unchanged
Offer to update:
Found references in: - [file1.md] (line 45) - [file2.md] (line 12, 89) Would you like me to update these references? - Yes, update all - Yes, but let me review each - No, I'll update manually
Execute reference updates:
- •Use Edit tool to update each file
- •Change old path to new path
- •Verify updates successful
- •Report which files were updated
8. Governance Update
Update source directory README.md:
- •Read source README.md
- •Remove entry for moved file
- •Add to "Recent Changes": "Moved filename.md to [target]"
- •Update "Last updated" timestamp
- •Save source README.md
Update target directory README.md:
- •Read target README.md
- •Add entry for moved file (with description)
- •Add to "Recent Changes": "Added filename.md from [source]"
- •Update "Last updated" timestamp
- •Save target README.md
Update parent README.md files if needed:
- •If directories changed significance
- •If directory now empty/no longer empty
Verify updates:
- •Both README.md files valid markdown
- •Entry removed from source, added to target
- •Timestamps current
9. Report to User
Confirm move complete:
✅ File moved successfully From: [old path] To: [new path] Transformations applied: - [List of changes] Cross-references updated: - [X] files updated - [List of files] README.md updated: - [source directory]/README.md (removed entry) - [target directory]/README.md (added entry) Note: [Any important notes, e.g., "Format changed to match target requirements"]
Special Cases
Rename in Same Directory
If user only wants to rename (not move):
User: "Rename transformer-draft to transformer-architecture"
Process:
- •Identify source file
- •Check RULE.md for naming conventions
- •Verify new name follows conventions
- •Execute rename:
mv old-name.md new-name.md - •Update references to this file
- •Update README.md (change entry name)
- •Report rename complete
Move Entire Directory
If user wants to move entire directory:
User: "Move the AI research folder to Projects"
Process:
- •Identify source directory
- •Read source and target RULE.md
- •Check all files in directory for compatibility
- •Identify all external references
- •Present comprehensive summary
- •Request confirmation
- •Execute directory move:
mv [source dir] [target dir]/ - •Update all cross-references
- •Update README.md in both locations
- •Update parent README.md files
Incompatible Format Requires Manual Intervention
If automatic transformation not possible:
Source: Complex structured data Target: Requires specific format that can't be auto-converted
Process:
- •Detect incompatibility
- •Warn user: "Automatic conversion not possible"
- •Explain what manual changes needed
- •Offer: "I can move the file, but you'll need to manually reformat"
- •Or: "I can create target structure and copy content, but you'll need to reorganize"
- •User decides next steps
Move with Merging
If target already has file with same name:
User: "Move note.md to Research/" Research/note.md already exists
Process:
- •Detect name conflict
- •Read both files
- •Options:
- •Rename: "note-2.md" or "note-YYYYMMDD.md"
- •Merge: Combine contents (if compatible)
- •Replace: Overwrite existing (with backup)
- •Present options to user
- •Execute chosen strategy
Preserve Directory Structure
If moving subdirectory that has its own structure:
Moving: Research/AI/transformers/ Target: Projects/AIResearch/
Process:
- •Check if should preserve subdirectory structure
- •Option A:
Projects/AIResearch/transformers/(preserve) - •Option B:
Projects/AIResearch/(flatten) - •Ask user preference
- •Execute accordingly
- •Update all README.md in hierarchy
Error Handling
Source File Not Found
User: "Move transformer note to Projects" → Search for file → No matches → Report: "I couldn't find transformer note to move"
Target Directory Doesn't Exist
User: "Move file.md to NewCategory/" NewCategory/ doesn't exist → Ask: "NewCategory doesn't exist. Create it?" → If yes: create directory, create RULE.md/README.md, then move → If no: cancel
RULE.md Forbids Moving Out
Source RULE.md: "Files cannot be moved out of this directory" → Warn: "Source RULE.md forbids moving files out" → Ask: "Override this rule?" → If yes: proceed with warning note → If no: cancel
RULE.md Forbids Moving In
Target RULE.md: "Only specific file types allowed" Source file doesn't match → Warn: "Target RULE.md restrictions prevent this move" → Explain restrictions → Suggest: "Convert file format first or choose different target"
Transformation Fails
Attempting to add required frontmatter Transformation fails (invalid YAML, etc.) → Report error → Keep source file intact → Don't create partial target → Suggest manual review
Cross-Reference Update Fails
Move successful but can't update all references Some files locked, permission denied, etc. → Report: "Move complete, but couldn't update all references" → List files that need manual update → Provide old and new paths for manual fixing
Integration with Governance
This Skill automatically invokes the governance protocol:
Before move:
- •Read both source and target RULE.md
- •Validate move is allowed
- •Check compatibility
During move:
- •Apply required transformations
- •Preserve important metadata
- •Execute safely (verify target before deleting source)
After move:
- •Update both source and target README.md
- •Update cross-references
- •Verify complete
Examples
Example 1: Simple Move
User: "Move transformer-draft from Research/AI to Projects/"
Skill workflow:
- •Finds
Research/AI/transformer-draft.md - •Reads Research/AI/RULE.md → Moves allowed
- •Reads Projects/RULE.md → Files named
project-name.md, requires frontmatter - •Detects: needs frontmatter addition
- •Confirms: "Move to Projects/, will add required frontmatter"
- •User confirms
- •Reads source file
- •Adds frontmatter with title, date, status
- •Writes to
Projects/transformer-draft.md - •Updates cross-references (found 2)
- •Updates both README.md files
- •Reports: "✅ Moved with frontmatter added"
Example 2: Move with Rename
User: "Move the old transformer note to ReadLater"
Skill workflow:
- •Finds
Research/transformer-old.md - •Reads Research/RULE.md and ReadLater/RULE.md
- •ReadLater requires:
Articles/YYYY/MM/YYYY-MM-DD_title/article.md - •Detects: needs complete restructure
- •Warns: "Target requires directory structure, not single file"
- •Shows transformation:
transformer-old.md→Articles/2025/10/2025-10-28_transformer-old/article.md - •User confirms
- •Creates directory structure
- •Moves and renames file
- •Creates metadata.yaml (as ReadLater requires)
- •Updates README.md files
- •Reports: "✅ Moved and restructured per ReadLater requirements"
Example 3: Directory Move
User: "Move the old-research folder to Archive"
Skill workflow:
- •Finds
Research/old-research/(15 files) - •Reads Research/RULE.md and Archive/RULE.md
- •Checks all 15 files for external references → Found 3 references
- •Confirms: "Move old-research/ (15 files) to Archive/? 3 external references found"
- •User confirms
- •Executes:
mv Research/old-research/ Archive/ - •Updates 3 files with broken references
- •Updates README.md:
- •Research/README.md (removes subdirectory)
- •Archive/README.md (adds subdirectory)
- •Reports: "✅ Moved 15 files, updated 3 references"
Best Practices
- •Check both RULE.md files - Source and target may have different rules
- •Verify compatibility - Ensure file can fit in target format
- •Transform carefully - Preserve content integrity during format changes
- •Update cross-references - Prevent broken links
- •Update both README.md - Source (remove) and target (add)
- •Verify before deleting source - Ensure target created successfully
- •Report transformations clearly - User should know what changed
- •Handle errors gracefully - Don't leave partial state
Notes
- •This Skill works with any directory structure by reading RULE.md
- •Respects both source and target governance rules
- •Handles format transformations automatically when possible
- •Updates cross-references to prevent broken knowledge base
- •Maintains README.md indexes in both locations
- •Works in parallel with CLAUDE.md subagents
- •Can rename, move, and restructure all in one operation