---
name: docs-director-skill
description: Handles multi-document operations with pattern matching and parallel execution, delegating to docs-manager-skill for each matched document
model: claude-haiku-4-5
---
# docs-director-skill
**Purpose**: Handle multi-document operations with pattern matching and parallel execution.
**Architecture**: Director skill (Layer 2) - routes to docs-manager-skill for each matched document.
**Scope**: Pattern matching, batch operations, parallel execution with file locking.
1. **Pattern Matching**
- ALWAYS expand wildcards (docs/api/**/README.md)
- ALWAYS handle glob patterns correctly
- NEVER process more than 50 documents without user confirmation
2. **Parallel Execution**
- ALWAYS execute independent operations in parallel (max 10 concurrent)
- ALWAYS use file locking (flock) to prevent conflicts
- NEVER run index updates in parallel for same directory
3. **Delegation**
- ALWAYS delegate single-doc operations to docs-manager-skill
- NEVER implement document operations directly
- ALWAYS collect and aggregate results
4. **Safety**
- ALWAYS show preview of matched files before executing
- ALWAYS require confirmation for destructive operations
- ALWAYS handle partial failures gracefully
5. **Progress Reporting**
- ALWAYS show progress for batch operations
- ALWAYS report success/failure counts
- ALWAYS list failed items with errors
**Required**:
- `operation` - Operation type: "write-batch", "validate-batch", "audit", "list"
- `pattern` - File pattern or path (supports wildcards)
**For write-batch**:
- `doc_type` - Document type
- `documents` - Array of {file_path, context} objects
- `skip_validation` - Skip validation (default: false)
- `skip_index` - Skip index updates (default: false)
- `parallel` - Execute in parallel (default: true)
- `max_concurrent` - Max parallel operations (default: 10)
**For validate-batch**:
- `doc_type` - Document type (optional, can auto-detect)
**For audit**:
- `doc_types` - Filter by doc types (optional)
- `status` - Filter by status (optional)
**For list**:
- `doc_type` - Filter by type (optional)
- `status` - Filter by status (optional)
- `format` - Output format: "table", "json", "markdown" (default: "table")
## Operation: write-batch
1. **Validate Input**
- Check documents array is not empty
- Verify all file_paths are unique
- Confirm if > 10 documents
2. **Expand Patterns**
- If pattern contains wildcards, expand to file list
- Filter by doc_type if specified
3. **Preview**
- Show list of files to be written
- Count: total documents
- Wait for user confirmation (if > 10 docs)
4. **Execute in Parallel**
```bash
for doc in documents; do
# Run docs-manager-skill in background with flock
(
flock -x "$file_path.lock" \
coordinate-write.sh "$file_path" "$doc_type" "$context"
) &
# Limit concurrent jobs
if (( $(jobs -r | wc -l) >= $max_concurrent )); then
wait -n
fi
done
wait # Wait for all jobs to complete
```
5. **Collect Results**
- Aggregate success/failure counts
- List failed documents with errors
- Update indices (one per directory, sequential)
6. **Return Summary**
```json
{
"status": "partial_success",
"operation": "write-batch",
"total": 25,
"succeeded": 23,
"failed": 2,
"failures": [
{"file": "docs/api/foo.md", "error": "Validation failed"},
{"file": "docs/api/bar.md", "error": "Template not found"}
],
"indices_updated": ["docs/api/README.md"]
}
```
## Operation: validate-batch
1. **Expand Pattern**
- Find all matching files
- Auto-detect doc_type if not provided
2. **Execute Validation**
- Run in parallel (validation is read-only, safe)
- Collect results
3. **Aggregate Results**
- Count errors, warnings
- Group by error type
- Return detailed report
## Operation: audit
1. **Scan Directories**
- Find all doc directories (containing fractary_doc_type docs)
- Classify documents by type
2. **Collect Metadata**
- Count by type
- Count by status
- Identify missing indices
- Identify validation issues
3. **Generate Report**
```markdown
# Documentation Audit Report
## Summary
- Total Documents: 156
- Document Types: 8
- Missing Indices: 2
- Validation Issues: 5
## By Type
| Type | Count | Status Distribution |
|---------------|-------|----------------------------|
| api | 45 | draft: 12, published: 33 |
| adr | 32 | accepted: 28, superseded: 4|
| guide | 28 | published: 28 |
## Issues
- docs/api/deprecated/: Missing index
- docs/dataset/metrics.md: Missing fractary_doc_type field
```
## Operation: list
1. **Invoke doc-lister Skill**
- Pass pattern and filters
- Get structured document list
2. **Format Output**
- Table, JSON, or Markdown
- Apply sorting
3. **Return Results**
- All matched documents processed
- Results aggregated correctly
- Indices updated (batch write operations)
- Progress reported throughout
- Final summary returned
**Batch Write Success**:
```json
{
"status": "success",
"operation": "write-batch",
"total": 25,
"succeeded": 25,
"failed": 0,
"indices_updated": ["docs/api/README.md", "docs/guides/README.md"]
}
```
**Batch Write Partial**:
```json
{
"status": "partial_success",
"operation": "write-batch",
"total": 25,
"succeeded": 23,
"failed": 2,
"failures": [
{"file": "docs/api/foo.md", "error": "Validation failed: missing endpoint"},
{"file": "docs/api/bar.md", "error": "Template rendering error"}
],
"indices_updated": ["docs/api/README.md"]
}
```
**Audit Report**:
```json
{
"status": "success",
"operation": "audit",
"summary": {
"total_documents": 156,
"doc_types": 8,
"missing_indices": 2,
"validation_issues": 5
},
"by_type": { ... },
"issues": [ ... ]
}
```
Output structured messages:
**Start (Batch Operation)**:
```
🎯 STARTING: docs-director-skill
Operation: write-batch
Pattern: docs/api/**/*.md
Total matches: 25 documents
───────────────────────────────────────
```
**Preview**:
```
📋 Preview of documents to process:
1. docs/api/auth/login/README.md (api)
2. docs/api/auth/logout/README.md (api)
3. docs/api/users/create/README.md (api)
... (22 more)
Proceed with batch write? [y/N]
```
**During Execution**:
```
Processing batch (25 documents, max 10 parallel)...
[1/25] ✅ docs/api/auth/login/README.md
[2/25] ✅ docs/api/auth/logout/README.md
[3/25] ❌ docs/api/users/create/README.md (validation failed)
[4/25] ✅ docs/api/users/update/README.md
...
Progress: 15/25 (60%) | Success: 14 | Failed: 1
```
**Indexing Phase**:
```
Updating indices (sequential)...
✅ docs/api/README.md (23 documents)
✅ docs/guides/README.md (2 documents)
```
**Completion**:
```
✅ COMPLETED: docs-director-skill
Operation: write-batch
Results:
Total: 25
Succeeded: 23
Failed: 2
Indices Updated: 2
Failed documents:
❌ docs/api/users/create/README.md
Error: Validation failed - missing required field 'endpoint'
❌ docs/api/admin/delete/README.md
Error: Template rendering failed - invalid JSON
───────────────────────────────────────
Next: Review failed documents and retry
```
**Pattern Match Failures**:
- No files matched pattern → warn user, suggest pattern fixes
- Too many files (>50) → require explicit confirmation
**Partial Failures**:
- Some documents fail → continue with others
- Collect all failures → report at end
- Update indices for successful documents only
**Parallel Execution Errors**:
- File lock timeout → retry with backoff
- Process killed → report incomplete operation
- Suggest sequential mode for debugging
**Resource Limits**:
- Too many concurrent jobs → throttle to max_concurrent
- Disk space low → abort operation
- Memory pressure → reduce parallelism
**Index Update Conflicts**:
- Multiple docs in same directory → batch index update
- Run index updates sequentially (never parallel for same dir)
- Use flock to prevent concurrent index writes