/lowercase-migration - File Naming Migration
Migrate files from various naming conventions (PascalCase, camelCase, SCREAMING_SNAKE_CASE) to lowercase-kebab-case.
Usage
# Single repository
/lowercase-migration <path>
# Dry run (preview only)
/lowercase-migration <path> --dry-run
# All submodules (staged rollout)
/lowercase-migration --all
# Specific category
/lowercase-migration --category cloud
# With auto-confirmation
/lowercase-migration <path> --yes
Options
| Option | Short | Description |
|---|---|---|
<path> | Repository or directory to migrate | |
--dry-run | -n | Preview changes without executing |
--yes | -y | Skip confirmation prompts |
--all | Migrate all submodules | |
--category | -c | Only migrate specific category |
--start-from | Resume from specific submodule | |
--parallel | -p | Number of parallel migrations |
--no-commit | Skip git commit step | |
--output | -o | Custom report output path |
System Prompt
EXECUTION DIRECTIVE: When /lowercase-migration is invoked, you MUST:
- Check target exists - Verify path is valid repository
- Run dry-run first - Unless --yes flag provided
- Show preview - Display files to be renamed
- Execute migration - Using appropriate script
- Validate results - Check for remaining uppercase
- Report completion - Show summary and report path
Execution Flow
# Step 1: Determine scope
if [ "$ALL" = "true" ]; then
SCRIPT="orchestrate-full-migration.py"
else
SCRIPT="execute-submodule-migration.py"
fi
# Step 2: Build command
CMD="python3 scripts/lowercase-migration/$SCRIPT"
[ "$DRY_RUN" = "true" ] && CMD="$CMD --dry-run"
[ "$YES" = "true" ] && CMD="$CMD --yes"
[ -n "$CATEGORY" ] && CMD="$CMD --category $CATEGORY"
[ -n "$PATH" ] && CMD="$CMD $PATH"
# Step 3: Execute
$CMD
Examples
Preview Single Repository
/lowercase-migration submodules/docs/coditect-docs-training --dry-run
Output:
======================================================================
LOWERCASE MIGRATION - SINGLE SUBMODULE (DRY RUN)
======================================================================
Submodule: submodules/docs/coditect-docs-training
Found: 43 files, 0 directories to rename
Files to rename:
TASKLIST.md → tasklist.md
PROJECT-PLAN.md → project-plan.md
UserGuide.md → user-guide.md
...
[DRY RUN] No files were modified.
Execute Migration
/lowercase-migration submodules/docs/coditect-docs-training --yes
Output:
======================================================================
LOWERCASE MIGRATION - SINGLE SUBMODULE
======================================================================
Submodule: submodules/docs/coditect-docs-training
Executing renames...
[1/43] ✓ TASKLIST.md → tasklist.md
[2/43] ✓ PROJECT-PLAN.md → project-plan.md
...
Updating internal references...
Updated 12 references in 5 files
Committing changes...
✓ Changes committed
======================================================================
SUMMARY
======================================================================
Files renamed: 43
Directories: 0
Failed: 0
References updated:12
Report saved to: context-storage/lowercase-migration/reports/...
Full Rollout
/lowercase-migration --all --yes
Category-Specific
/lowercase-migration --category gtm --yes
Preserved Files
These files are NOT renamed (conventional uppercase):
| File | Reason |
|---|---|
README.md | Standard convention |
LICENSE | Standard convention |
CHANGELOG.md | Standard convention |
CLAUDE.md | CODITECT convention |
SKILL.md | CODITECT convention |
Makefile | Build convention |
Dockerfile | Container convention |
Error Handling
| Error | Cause | Solution |
|---|---|---|
| Path not found | Invalid path | Check path exists |
| Not a git repo | Missing .git | Navigate to git root |
| index.lock | Git conflict | Script handles with retry |
| Permission denied | File locked | Check file permissions |
Success Output
✅ COMMAND COMPLETE: /lowercase-migration
Path: <path>
Files renamed: XX
Report: <path-to-report>
Completion Checklist
- Target path validated
- Dry-run completed (if applicable)
- Files renamed successfully
- References updated
- Changes committed
- Report generated
Failure Indicators
- ❌ Target path does not exist
- ❌ Not a git repository
- ❌ Permission denied errors
- ❌ Git commit failed
Related
- Skill: lowercase-migration
- Agent: lowercase-migration-agent
- ADR: ADR-187
- Hook: pre-commit-naming-check.py
Track: AM.2 (Lowercase Migration) Author: CODITECT Framework Team