Initial commit
This commit is contained in:
742
commands/utils:organize-docs.md
Normal file
742
commands/utils:organize-docs.md
Normal file
@@ -0,0 +1,742 @@
|
||||
---
|
||||
description: Organize repository documentation following CCPM pattern
|
||||
allowed-tools: [Bash, Read, Write, Edit, Glob, AskUserQuestion]
|
||||
argument-hint: [repo-path] [--dry-run] [--global]
|
||||
---
|
||||
|
||||
# Organize Documentation
|
||||
|
||||
Reorganizes repository documentation following the CCPM documentation pattern for clean, navigable, and scalable documentation structure.
|
||||
|
||||
## Arguments
|
||||
|
||||
- **$1** - (Optional) Repository path (default: current directory)
|
||||
- **$2** - (Optional) `--dry-run` to preview changes without applying
|
||||
- **$3** - (Optional) `--global` to install pattern globally in `~/.claude/templates/`
|
||||
|
||||
## Workflow
|
||||
|
||||
### Step 1: Analyze Current Structure
|
||||
|
||||
```javascript
|
||||
const repoPath = $1 || process.cwd()
|
||||
const dryRun = args.includes('--dry-run')
|
||||
const installGlobal = args.includes('--global')
|
||||
|
||||
// Analyze current documentation
|
||||
const analysis = {
|
||||
rootMarkdownFiles: findMarkdownFiles(repoPath, { maxDepth: 1 }),
|
||||
existingDocsDir: dirExists(`${repoPath}/docs`),
|
||||
categories: {
|
||||
guides: [],
|
||||
reference: [],
|
||||
architecture: [],
|
||||
research: []
|
||||
}
|
||||
}
|
||||
|
||||
// Categorize files
|
||||
analysis.rootMarkdownFiles.forEach(file => {
|
||||
const category = categorizeFi le(file)
|
||||
if (category) {
|
||||
analysis.categories[category].push(file)
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
Display analysis:
|
||||
|
||||
```
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
📊 Documentation Analysis
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
Repository: ${basename(repoPath)}
|
||||
Path: ${repoPath}
|
||||
|
||||
📄 Found ${analysis.rootMarkdownFiles.length} markdown files in root
|
||||
|
||||
${analysis.rootMarkdownFiles.length > 5 ? '⚠️ Too many files in root (>5)' : '✅ Root is clean (≤5 files)'}
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
```
|
||||
|
||||
### Step 2: Categorize Files
|
||||
|
||||
Categorization rules:
|
||||
|
||||
```javascript
|
||||
function categorizeFile(filename) {
|
||||
// Keep in root
|
||||
const keepInRoot = [
|
||||
'README.md',
|
||||
'CHANGELOG.md',
|
||||
'CONTRIBUTING.md',
|
||||
'LICENSE.md',
|
||||
'LICENSE',
|
||||
'CLAUDE.md',
|
||||
'MIGRATION.md'
|
||||
]
|
||||
|
||||
if (keepInRoot.includes(filename)) {
|
||||
return 'root'
|
||||
}
|
||||
|
||||
// Guides (user-facing how-to)
|
||||
if (filename.match(/GUIDE|INSTALL|SETUP|WORKFLOW|TUTORIAL/i)) {
|
||||
return 'guides'
|
||||
}
|
||||
|
||||
// Reference (API, catalog, reference)
|
||||
if (filename.match(/CATALOG|REFERENCE|API|COMMANDS/i)) {
|
||||
return 'reference'
|
||||
}
|
||||
|
||||
// Architecture
|
||||
if (filename.match(/ARCHITECTURE|DESIGN/i)) {
|
||||
return 'architecture'
|
||||
}
|
||||
|
||||
// Research (historical planning)
|
||||
if (filename.match(/RESEARCH|PLAN|PROPOSAL|STATUS|SUMMARY|COMPARISON|MATRIX|QUICK.?REFERENCE/i)) {
|
||||
return 'research'
|
||||
}
|
||||
|
||||
return null // Unknown, ask user
|
||||
}
|
||||
```
|
||||
|
||||
Display categorization:
|
||||
|
||||
```
|
||||
📦 Proposed File Organization
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
✅ Keep in Root (${analysis.categories.root?.length || 0}):
|
||||
${analysis.categories.root?.map(f => ` - ${f}`).join('\n') || ' (none)'}
|
||||
|
||||
📘 Move to docs/guides/ (${analysis.categories.guides.length}):
|
||||
${analysis.categories.guides.map(f => ` - ${f} → docs/guides/${kebabCase(f)}`).join('\n') || ' (none)'}
|
||||
|
||||
📖 Move to docs/reference/ (${analysis.categories.reference.length}):
|
||||
${analysis.categories.reference.map(f => ` - ${f} → docs/reference/${kebabCase(f)}`).join('\n') || ' (none)'}
|
||||
|
||||
🏗️ Move to docs/architecture/ (${analysis.categories.architecture.length}):
|
||||
${analysis.categories.architecture.map(f => ` - ${f} → docs/architecture/${kebabCase(f)}`).join('\n') || ' (none)'}
|
||||
|
||||
📚 Move to docs/research/ (${analysis.categories.research.length}):
|
||||
${analysis.categories.research.map(f => ` - ${f} → docs/research/${categorizeTopic(f)}/${kebabCase(f)}`).join('\n') || ' (none)'}
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
```
|
||||
|
||||
### Step 3: Ask for Confirmation
|
||||
|
||||
Use AskUserQuestion for files with unclear categorization:
|
||||
|
||||
```javascript
|
||||
{
|
||||
questions: [{
|
||||
question: "Some files need categorization. Where should these go?",
|
||||
header: "Categorize",
|
||||
multiSelect: false,
|
||||
options: [
|
||||
{
|
||||
label: "Apply Auto-Categorization",
|
||||
description: "Use CCPM pattern rules for all files"
|
||||
},
|
||||
{
|
||||
label: "Review Each File",
|
||||
description: "I'll categorize unclear files manually"
|
||||
},
|
||||
{
|
||||
label: "Cancel",
|
||||
description: "Don't reorganize"
|
||||
}
|
||||
]
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
If "Review Each File" selected, ask for each unclear file:
|
||||
|
||||
```javascript
|
||||
{
|
||||
questions: [{
|
||||
question: `Where should ${filename} go?`,
|
||||
header: "Categorize File",
|
||||
multiSelect: false,
|
||||
options: [
|
||||
{ label: "Keep in Root", description: "Important user-facing file" },
|
||||
{ label: "docs/guides/", description: "User how-to guide" },
|
||||
{ label: "docs/reference/", description: "API or feature reference" },
|
||||
{ label: "docs/architecture/", description: "Design decision" },
|
||||
{ label: "docs/research/", description: "Historical planning (archive)" },
|
||||
{ label: "Skip", description: "Don't move this file" }
|
||||
]
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
### Step 4: Apply Changes
|
||||
|
||||
If `--dry-run`:
|
||||
|
||||
```
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
🔍 DRY RUN - No changes will be made
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
Would perform these operations:
|
||||
|
||||
📁 Create directories:
|
||||
✓ docs/guides/
|
||||
✓ docs/reference/
|
||||
✓ docs/architecture/decisions/
|
||||
✓ docs/development/
|
||||
✓ docs/research/
|
||||
|
||||
📦 Move files (${totalMoves}):
|
||||
${moves.map(m => ` ${m.from} → ${m.to}`).join('\n')}
|
||||
|
||||
📄 Create index files (6):
|
||||
✓ docs/README.md
|
||||
✓ docs/guides/README.md
|
||||
✓ docs/reference/README.md
|
||||
✓ docs/architecture/README.md
|
||||
✓ docs/development/README.md
|
||||
✓ docs/research/README.md
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
Run without --dry-run to apply changes.
|
||||
```
|
||||
|
||||
If not dry-run, execute:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
cd "${repoPath}"
|
||||
|
||||
# Phase 1: Create directory structure
|
||||
echo "📁 Creating directory structure..."
|
||||
mkdir -p docs/{guides,reference,architecture/decisions,development,research}
|
||||
|
||||
# Phase 2: Move files
|
||||
echo "📦 Moving files..."
|
||||
${moves.map(m => `
|
||||
if [ -f "${m.from}" ]; then
|
||||
mv "${m.from}" "${m.to}"
|
||||
echo " ✓ ${m.from} → ${m.to}"
|
||||
fi`).join('\n')}
|
||||
|
||||
# Phase 3: Create index files
|
||||
echo "📄 Creating index files..."
|
||||
# [Generate index file content using templates]
|
||||
|
||||
echo "✅ Documentation reorganization complete!"
|
||||
```
|
||||
|
||||
### Step 5: Create Index Files
|
||||
|
||||
Use CCPM templates for all index files:
|
||||
|
||||
**docs/README.md**:
|
||||
```markdown
|
||||
# [Project] Documentation
|
||||
|
||||
Welcome to the [Project] documentation.
|
||||
|
||||
## Quick Links
|
||||
|
||||
- **[Quick Start](guides/quick-start.md)** - Get started in 5 minutes
|
||||
- **[Installation](guides/installation.md)** - Detailed setup
|
||||
- **[Reference](reference/)** - Complete documentation
|
||||
|
||||
## Documentation Structure
|
||||
|
||||
### 📘 [Guides](guides/) - How-to guides
|
||||
- [Quick Start](guides/quick-start.md)
|
||||
- [Installation](guides/installation.md)
|
||||
|
||||
### 📖 [Reference](reference/) - API & feature reference
|
||||
- [API](reference/api.md)
|
||||
- [Configuration](reference/config.md)
|
||||
|
||||
### 🏗️ [Architecture](architecture/) - Design decisions
|
||||
- [Overview](architecture/overview.md)
|
||||
- [Decisions](architecture/decisions/)
|
||||
|
||||
### 🔧 [Development](development/) - For contributors
|
||||
- [Setup](development/setup.md)
|
||||
- [Testing](development/testing.md)
|
||||
|
||||
### 📚 [Research](research/) - Historical context
|
||||
Archived research and planning documents.
|
||||
|
||||
## Contributing
|
||||
|
||||
See [CONTRIBUTING.md](../CONTRIBUTING.md).
|
||||
```
|
||||
|
||||
**docs/guides/README.md**:
|
||||
```markdown
|
||||
# User Guides
|
||||
|
||||
How-to guides for using [Project].
|
||||
|
||||
## Getting Started
|
||||
|
||||
- [Quick Start](quick-start.md) - 5-minute introduction
|
||||
- [Installation](installation.md) - Detailed installation
|
||||
|
||||
## Features
|
||||
|
||||
[Auto-generated list of guides]
|
||||
|
||||
## Need Help?
|
||||
|
||||
See the main [Documentation Index](../README.md).
|
||||
```
|
||||
|
||||
**docs/research/README.md**:
|
||||
```markdown
|
||||
# Research & Planning Documents
|
||||
|
||||
**Archived historical documents** - For current docs, see main [Documentation](../README.md).
|
||||
|
||||
## Purpose
|
||||
|
||||
These documents explain why decisions were made and how features were researched.
|
||||
|
||||
**Note**: May be outdated - refer to main docs for current state.
|
||||
|
||||
## Contents
|
||||
|
||||
[Auto-generated list of research topics]
|
||||
```
|
||||
|
||||
### Step 6: Update Links
|
||||
|
||||
Scan all moved files for internal links and update them:
|
||||
|
||||
```javascript
|
||||
// Find all markdown links
|
||||
const linkPattern = /\[([^\]]+)\]\(([^)]+)\)/g
|
||||
|
||||
movedFiles.forEach(file => {
|
||||
let content = readFile(file.newPath)
|
||||
let updated = false
|
||||
|
||||
content = content.replace(linkPattern, (match, text, url) => {
|
||||
if (url.startsWith('http')) return match // External link
|
||||
|
||||
// Calculate new relative path
|
||||
const oldPath = resolvePath(file.oldPath, url)
|
||||
const newPath = calculateRelativePath(file.newPath, oldPath)
|
||||
|
||||
if (newPath !== url) {
|
||||
updated = true
|
||||
return `[${text}](${newPath})`
|
||||
}
|
||||
|
||||
return match
|
||||
})
|
||||
|
||||
if (updated) {
|
||||
writeFile(file.newPath, content)
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
Display link updates:
|
||||
|
||||
```
|
||||
🔗 Updating Internal Links
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
Updated links in ${updatedFiles.length} files:
|
||||
${updatedFiles.map(f => ` ✓ ${f.path} (${f.linksUpdated} links)`).join('\n')}
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
```
|
||||
|
||||
### Step 7: Update CLAUDE.md
|
||||
|
||||
If CLAUDE.md exists, add documentation pattern section:
|
||||
|
||||
```javascript
|
||||
const claudeMdPath = `${repoPath}/CLAUDE.md`
|
||||
|
||||
if (fileExists(claudeMdPath)) {
|
||||
const claudeMd = readFile(claudeMdPath)
|
||||
|
||||
// Check if documentation section already exists
|
||||
if (!claudeMd.includes('## Documentation Structure') && !claudeMd.includes('## Documentation Pattern')) {
|
||||
const documentationSection = generateDocumentationSection(analysis)
|
||||
|
||||
// Append to CLAUDE.md
|
||||
appendToFile(claudeMdPath, `\n\n${documentationSection}`)
|
||||
} else {
|
||||
// Update existing section
|
||||
updateDocumentationSection(claudeMdPath, analysis)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Documentation section template:
|
||||
|
||||
```markdown
|
||||
## Documentation Structure
|
||||
|
||||
This repository follows the CCPM documentation pattern for clean, navigable, and scalable documentation.
|
||||
|
||||
### Pattern Overview
|
||||
|
||||
```
|
||||
docs/
|
||||
├── README.md # Documentation navigation hub
|
||||
├── guides/ # 📘 User how-to guides
|
||||
├── reference/ # 📖 API & feature reference
|
||||
├── architecture/ # 🏗️ Design decisions & ADRs
|
||||
├── development/ # 🔧 Contributor documentation
|
||||
└── research/ # 📚 Historical context (archived)
|
||||
```
|
||||
|
||||
### Documentation Guidelines
|
||||
|
||||
**When creating new documentation:**
|
||||
|
||||
1. **User guides** → `docs/guides/`
|
||||
- Installation, setup, configuration
|
||||
- Feature walkthroughs and tutorials
|
||||
- Troubleshooting guides
|
||||
- Use descriptive filenames: `installation.md`, `quick-start.md`
|
||||
|
||||
2. **Reference documentation** → `docs/reference/`
|
||||
- API documentation
|
||||
- Command/feature catalogs
|
||||
- Configuration references
|
||||
- Technical specifications
|
||||
|
||||
3. **Architecture documentation** → `docs/architecture/`
|
||||
- System architecture overviews
|
||||
- Component designs
|
||||
- Architecture Decision Records (ADRs) in `decisions/`
|
||||
- Use ADR template for decisions
|
||||
|
||||
4. **Development documentation** → `docs/development/`
|
||||
- Development environment setup
|
||||
- Testing guides
|
||||
- Release processes
|
||||
- Contribution workflows
|
||||
|
||||
5. **Research/Planning documents** → `docs/research/`
|
||||
- Historical planning documents
|
||||
- Research findings
|
||||
- Implementation journeys
|
||||
- **Note**: These are archived - current docs go elsewhere
|
||||
|
||||
### Root Directory Rules
|
||||
|
||||
**Keep ONLY these files in root:**
|
||||
- `README.md` - Main entry point
|
||||
- `CHANGELOG.md` - Version history
|
||||
- `CONTRIBUTING.md` - Contribution guide
|
||||
- `LICENSE` - License file
|
||||
- `CLAUDE.md` - This file
|
||||
- `MIGRATION.md` - Migration guide (if applicable)
|
||||
|
||||
**All other documentation goes in `docs/`**
|
||||
|
||||
### Index Files
|
||||
|
||||
Each documentation directory has a `README.md` that:
|
||||
- Explains what the directory contains
|
||||
- Links to all documents in that directory
|
||||
- Provides navigation back to main docs
|
||||
|
||||
### Maintaining Documentation
|
||||
|
||||
**When you create or move documentation:**
|
||||
|
||||
1. Place it in the appropriate `docs/` subdirectory
|
||||
2. Update the relevant index `README.md`
|
||||
3. Update internal links to use correct relative paths
|
||||
4. Keep root directory clean (≤5 markdown files)
|
||||
|
||||
**When you reference documentation:**
|
||||
|
||||
1. Use relative links from current location
|
||||
2. Link to `docs/README.md` for main navigation
|
||||
3. Link to specific guides/references as needed
|
||||
|
||||
### Auto-Organization
|
||||
|
||||
To reorganize documentation automatically:
|
||||
|
||||
```bash
|
||||
/ccpm:utils:organize-docs [repo-path] [--dry-run] [--global]
|
||||
```
|
||||
|
||||
This command:
|
||||
- Analyzes current documentation structure
|
||||
- Categorizes files using CCPM pattern rules
|
||||
- Moves files to appropriate locations
|
||||
- Creates index files
|
||||
- Updates internal links
|
||||
- Can be installed globally for use in any repository
|
||||
|
||||
### Navigation
|
||||
|
||||
All documentation is accessible from `docs/README.md`:
|
||||
- **Quick Start**: `docs/guides/quick-start.md`
|
||||
- **Full Documentation**: Browse by category in `docs/`
|
||||
- **Contributing**: `CONTRIBUTING.md`
|
||||
|
||||
### Pattern Benefits
|
||||
|
||||
- ✅ Clean root directory
|
||||
- ✅ Clear separation of concerns
|
||||
- ✅ Easy to find documentation
|
||||
- ✅ Scales with project growth
|
||||
- ✅ Historical context preserved
|
||||
- ✅ AI assistant friendly
|
||||
- ✅ Consistent across projects
|
||||
```
|
||||
|
||||
Display update confirmation:
|
||||
|
||||
```
|
||||
📝 Updating CLAUDE.md
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
${exists ? '✓ Updated documentation structure section' : '✓ Added documentation structure section'}
|
||||
|
||||
CLAUDE.md now includes:
|
||||
- Documentation pattern overview
|
||||
- Guidelines for new documentation
|
||||
- Root directory rules
|
||||
- Index file conventions
|
||||
- Auto-organization instructions
|
||||
- Navigation guidelines
|
||||
|
||||
This ensures AI assistants always follow the pattern.
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
```
|
||||
|
||||
### Step 8: Global Installation (if --global)
|
||||
|
||||
If `--global` flag is set:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "🌍 Installing CCPM docs pattern globally..."
|
||||
|
||||
# Create global template directory
|
||||
mkdir -p ~/.claude/templates/ccpm-docs-pattern
|
||||
mkdir -p ~/.claude/scripts
|
||||
|
||||
# Copy pattern documentation
|
||||
cp GLOBAL_DOCS_PATTERN.md ~/.claude/templates/ccpm-docs-pattern/
|
||||
|
||||
# Copy organize script
|
||||
cp scripts/organize-docs.sh ~/.claude/templates/ccpm-docs-pattern/
|
||||
|
||||
# Create global auto-organize script
|
||||
cat > ~/.claude/scripts/organize-docs << 'SCRIPT'
|
||||
#!/bin/bash
|
||||
# Auto-organize documentation for any repository
|
||||
|
||||
REPO_PATH="${1:-.}"
|
||||
cd "$REPO_PATH" || exit 1
|
||||
|
||||
# Use CCPM organize command
|
||||
claude /ccpm:utils:organize-docs "$REPO_PATH"
|
||||
SCRIPT
|
||||
|
||||
chmod +x ~/.claude/scripts/organize-docs
|
||||
|
||||
# Add to PATH if not already there
|
||||
if [[ ":$PATH:" != *":$HOME/.claude/scripts:"* ]]; then
|
||||
echo ""
|
||||
echo "Add to your shell profile (~/.zshrc or ~/.bashrc):"
|
||||
echo " export PATH=\"\$HOME/.claude/scripts:\$PATH\""
|
||||
fi
|
||||
|
||||
echo "✅ Global installation complete!"
|
||||
echo ""
|
||||
echo "Usage in any repository:"
|
||||
echo " organize-docs"
|
||||
echo " organize-docs /path/to/repo"
|
||||
echo " organize-docs --dry-run"
|
||||
```
|
||||
|
||||
### Step 9: Summary
|
||||
|
||||
Display completion summary:
|
||||
|
||||
```
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
🎉 Documentation Reorganization Complete!
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
📊 Summary:
|
||||
✓ Root files: ${before} → ${after} (-${reduction}%)
|
||||
✓ Files moved: ${movedCount}
|
||||
✓ Index files created: 6
|
||||
✓ Links updated: ${linksUpdated}
|
||||
|
||||
📁 New Structure:
|
||||
docs/
|
||||
├── guides/ (${guidesCount} files)
|
||||
├── reference/ (${referenceCount} files)
|
||||
├── architecture/ (${architectureCount} files)
|
||||
├── development/ (${developmentCount} files)
|
||||
└── research/ (${researchCount} files, archived)
|
||||
|
||||
📝 Next Steps:
|
||||
1. Review changes: git status
|
||||
2. Test documentation links
|
||||
3. Update README.md with new structure
|
||||
${hasClaude ? '4. ✅ CLAUDE.md updated with documentation pattern' : ''}
|
||||
5. Commit changes: git add . && git commit -m "docs: reorganize documentation"
|
||||
|
||||
${installGlobal ? `
|
||||
🌍 Global Pattern Installed:
|
||||
Pattern available at: ~/.claude/templates/ccpm-docs-pattern/
|
||||
Command available: organize-docs
|
||||
|
||||
Use in any repository:
|
||||
cd ~/projects/any-repo
|
||||
organize-docs
|
||||
` : `
|
||||
💡 Install Globally:
|
||||
Run: /ccpm:utils:organize-docs . --global
|
||||
Then use 'organize-docs' in any repository
|
||||
`}
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
```
|
||||
|
||||
## Examples
|
||||
|
||||
### Example 1: Analyze Current Repository
|
||||
|
||||
```bash
|
||||
/ccpm:utils:organize-docs --dry-run
|
||||
```
|
||||
|
||||
Output:
|
||||
- Analysis of current structure
|
||||
- Proposed changes
|
||||
- No files moved
|
||||
|
||||
### Example 2: Reorganize Current Repository
|
||||
|
||||
```bash
|
||||
/ccpm:utils:organize-docs
|
||||
```
|
||||
|
||||
Performs:
|
||||
1. Analyzes documentation
|
||||
2. Shows categorization
|
||||
3. Asks for confirmation
|
||||
4. Creates docs/ structure
|
||||
5. Moves files
|
||||
6. Creates index files
|
||||
7. Updates links
|
||||
8. Shows summary
|
||||
|
||||
### Example 3: Reorganize Different Repository
|
||||
|
||||
```bash
|
||||
/ccpm:utils:organize-docs ~/projects/my-app
|
||||
```
|
||||
|
||||
Same as Example 2 but for different repository.
|
||||
|
||||
### Example 4: Install Global Pattern
|
||||
|
||||
```bash
|
||||
/ccpm:utils:organize-docs . --global
|
||||
```
|
||||
|
||||
Performs:
|
||||
1. Reorganizes current repository
|
||||
2. Installs pattern to ~/.claude/templates/
|
||||
3. Creates global organize-docs script
|
||||
4. Adds to PATH
|
||||
|
||||
Then can use in any repo:
|
||||
```bash
|
||||
cd ~/projects/any-repo
|
||||
organize-docs
|
||||
```
|
||||
|
||||
## File Categorization Rules
|
||||
|
||||
### Keep in Root
|
||||
- README.md - Entry point
|
||||
- CHANGELOG.md - Version history
|
||||
- CONTRIBUTING.md - Contribution guide
|
||||
- LICENSE/LICENSE.md - License
|
||||
- CLAUDE.md - AI assistant instructions
|
||||
- MIGRATION.md - Migration guide
|
||||
|
||||
### docs/guides/
|
||||
Files matching: `*GUIDE*`, `*INSTALL*`, `*SETUP*`, `*WORKFLOW*`, `*TUTORIAL*`
|
||||
|
||||
Examples:
|
||||
- INSTALL_HOOKS.md → docs/guides/hooks.md
|
||||
- MCP_INTEGRATION_GUIDE.md → docs/guides/mcp-integration.md
|
||||
- UI_WORKFLOW.md → docs/guides/ui-workflow.md
|
||||
|
||||
### docs/reference/
|
||||
Files matching: `*CATALOG*`, `*REFERENCE*`, `*API*`, `*COMMANDS*`
|
||||
|
||||
Examples:
|
||||
- SKILLS_CATALOG.md → docs/reference/skills.md
|
||||
- API_REFERENCE.md → docs/reference/api.md
|
||||
|
||||
### docs/architecture/
|
||||
Files matching: `*ARCHITECTURE*`, `*DESIGN*`
|
||||
|
||||
Examples:
|
||||
- SKILLS_ARCHITECTURE.md → docs/architecture/skills-system.md
|
||||
- SYSTEM_DESIGN.md → docs/architecture/overview.md
|
||||
|
||||
### docs/research/
|
||||
Files matching: `*RESEARCH*`, `*PLAN*`, `*PROPOSAL*`, `*STATUS*`, `*SUMMARY*`, `*COMPARISON*`, `*MATRIX*`
|
||||
|
||||
Examples:
|
||||
- SKILLS_INTEGRATION_PLAN.md → docs/research/skills/integration-plan.md
|
||||
- HOOKS_RESEARCH_SUMMARY.md → docs/research/hooks/research-summary.md
|
||||
|
||||
## Notes
|
||||
|
||||
- Always creates backup before moving files (git makes this easy)
|
||||
- Preserves git history for moved files
|
||||
- Updates internal markdown links automatically
|
||||
- Creates index files for easy navigation
|
||||
- **Updates CLAUDE.md** with documentation pattern instructions
|
||||
- Ensures AI assistants always follow the pattern
|
||||
- Follows CCPM documentation pattern globally
|
||||
- Can be used on any repository, not just CCPM
|
||||
- Dry-run mode for safe preview
|
||||
- Global installation for reuse across all projects
|
||||
|
||||
## Success Metrics
|
||||
|
||||
After running this command:
|
||||
- ✅ Root directory has ≤5 markdown files
|
||||
- ✅ All docs reachable within 2 clicks from docs/README.md
|
||||
- ✅ Clear separation: guides/reference/architecture/research
|
||||
- ✅ Index files guide navigation
|
||||
- ✅ Historical context preserved in research/
|
||||
- ✅ Pattern reusable across projects
|
||||
Reference in New Issue
Block a user