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
- 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
- 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
- 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
- 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)
- 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:
- 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
- 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
- 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
- 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
- Report to User
Confirm move complete:
✅ File moved successfully
From: [old path] To: [new path]
Transformations applied:
- [List of changes]
Cross-references updated:
- 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