Tools for Phase 0 pre-migration work
Before migrating documentation to a new content management system, you need to assess how content is reused across your documentation set. These tools automate the analysis, generating reports that you can link directly in your Content Reuse Assessment Worksheet.
Use these doc-utils tools to complete the Pre-Migration Reuse Readiness Tasks:
| Worksheet Task | Tool |
|---|---|
| Remove unused attributes | find-unused-attributes --remove |
| Inventory conditionals | inventory-conditionals |
| Inventory reused modules | find-duplicate-includes |
| Inventory reused content blocks | find-duplicate-content |
| Archive unused files | archive-unused-files --archive |
| Add abstract role for DITA | insert-abstract-role |
| Add procedure title for DITA | insert-procedure-title |
| Convert callouts for DITA | convert-callouts-to-deflist or convert-callouts-interactive |
Task 1: Clean Up Attribute Files
find-unused-attributes --remove
Warning: The
--removeoption modifies files in place. Always review the output offind-unused-attributes(without--remove) first, then test your documentation build after removing attributes.
See find-unused-attributes for details.
Task 2: Inventory Conditionals
inventory-conditionals
Creates ./reports/conditionals-inventory_*.txt listing every ifdef, ifndef, ifeval, and endif with locations.
See inventory-conditionals for details.
Task 3: Inventory Reused Content
Run both tools to capture different types of reuse:
# Files included via include:: from multiple locations
find-duplicate-includes
# Similar notes, tables, steps, and code blocks
find-duplicate-content
Reports are written to ./reports/.
See find-duplicate-includes and find-duplicate-content for details.
Task 4: Archive Unused Files
# Preview unused files (no changes made)
archive-unused-files
# Archive unused files to ./archive/
archive-unused-files --archive
Finds AsciiDoc files in modules/ and assemblies/ directories that are not referenced by any include:: macro. Run without --archive first to review the list.
See archive-unused-files for details.
Task 5: Add Abstract Role for DITA
# Preview changes first
insert-abstract-role --dry-run
# Apply changes
insert-abstract-role
Inserts [role="_abstract"] above the first paragraph after the document title in all AsciiDoc files. This attribute is required for DITA short description conversion. Review and revise your first paragraphs as needed.
See insert-abstract-role for details.
Task 6: Add Procedure Title for DITA
Use this task to resolve AsciiDocDITA.TaskContents Vale warnings.
# Preview changes first
insert-procedure-title modules/ --dry-run
# Apply changes
insert-procedure-title modules/
Inserts .Procedure above the first numbered step in procedure files that lack this block title. Review any warnings the tool generates—these indicate files needing manual attention (wrong content type, stub files, etc.).
See insert-procedure-title for details and guidance on resolving warnings.
Task 7: Convert Callouts for DITA
Use this task to resolve AsciiDocDITA.CalloutList Vale warnings.
# Batch conversion
convert-callouts-to-deflist modules/
# Or interactive mode (choose format per code block)
convert-callouts-interactive modules/
Converts callout annotations (<1>, <2>, etc.) to definition list format. Use interactive mode to select between definition list and table formats for each code block.
See convert-callouts-to-deflist or convert-callouts-interactive for details.
Quick Reference
# Review unused attributes first
find-unused-attributes
# Then remove (after verifying build works)
find-unused-attributes --remove
# Generate reuse inventory reports
inventory-conditionals
find-duplicate-includes
find-duplicate-content
# Find and archive unused files
archive-unused-files
archive-unused-files --archive
# Add abstract role for DITA short descriptions
insert-abstract-role --dry-run
insert-abstract-role
# Add procedure title for DITA tasks
insert-procedure-title modules/ --dry-run
insert-procedure-title modules/
# Convert callouts for DITA
convert-callouts-to-deflist modules/
# Or use interactive mode:
convert-callouts-interactive modules/
Commit the reports to your repository and link them in your worksheet.