743 lines
20 KiB
Markdown
743 lines
20 KiB
Markdown
---
|
|
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
|