mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-25 22:34:56 +00:00
191 lines
6.0 KiB
Markdown
191 lines
6.0 KiB
Markdown
# Documentation Quality Checker
|
|
|
|
A bash script that analyzes project documentation and provides a comprehensive quality score from 0-100%.
|
|
|
|
## Overview
|
|
|
|
The Documentation Quality Checker evaluates your project across 8 key documentation metrics:
|
|
|
|
1. **README Coverage** - Presence of README files in main and subdirectories
|
|
2. **Documentation Structure** - Organized /docs directory with subdirectories and key files
|
|
3. **Code Comments** - Inline comments in source files
|
|
4. **JSDoc Coverage** - JSDoc/TypeDoc annotations in TypeScript/JavaScript files
|
|
5. **Type Annotations** - TypeScript strict mode and type usage
|
|
6. **Examples/Guides** - Example code, demo files, and test coverage
|
|
7. **Architecture Documentation** - Design, architecture, and implementation docs
|
|
8. **Security Documentation** - Security policies, guidelines, and LICENSE files
|
|
|
|
## Features
|
|
|
|
- **Simple to use**: One-line command execution
|
|
- **Detailed metrics**: 8-point assessment framework
|
|
- **Actionable recommendations**: Specific suggestions for improvement
|
|
- **Verbose mode**: Optional detailed output with findings
|
|
- **Quality ratings**: Categorized results from CRITICAL to EXCELLENT
|
|
- **Color-coded output**: Clear visual formatting
|
|
|
|
## Installation
|
|
|
|
The script is located in `/scripts/doc-quality-checker.sh` and is already executable.
|
|
|
|
## Usage
|
|
|
|
### Basic Usage
|
|
|
|
```bash
|
|
./scripts/doc-quality-checker.sh
|
|
```
|
|
|
|
Analyzes the current directory.
|
|
|
|
### Analyze Specific Project
|
|
|
|
```bash
|
|
./scripts/doc-quality-checker.sh /path/to/project
|
|
```
|
|
|
|
### Verbose Output
|
|
|
|
```bash
|
|
./scripts/doc-quality-checker.sh /path/to/project true
|
|
```
|
|
|
|
Shows detailed findings for each metric.
|
|
|
|
## Output Example
|
|
|
|
```
|
|
╔════════════════════════════════════════════╗
|
|
║ Documentation Quality Assessment (0-100%) ║
|
|
╚════════════════════════════════════════════╝
|
|
|
|
Metrics:
|
|
README Coverage 60%
|
|
Documentation Structure 65%
|
|
Code Comments 0%
|
|
JSDoc Coverage 100%
|
|
Type Annotations 80%
|
|
Examples/Guides 60%
|
|
Architecture Docs 50%
|
|
Security Docs 100%
|
|
|
|
────────────────────────────────────────────
|
|
OVERALL SCORE 64%
|
|
────────────────────────────────────────────
|
|
|
|
Quality Rating: FAIR (60-74%)
|
|
|
|
Recommendations:
|
|
- Increase inline code comments (5-10% density recommended)
|
|
```
|
|
|
|
## Quality Ratings
|
|
|
|
- **90-100%**: EXCELLENT - Comprehensive documentation
|
|
- **75-89%**: GOOD - Well-documented with minor gaps
|
|
- **60-74%**: FAIR - Moderate documentation coverage
|
|
- **45-59%**: NEEDS IMPROVEMENT - Significant documentation gaps
|
|
- **<45%**: CRITICAL - Minimal or missing documentation
|
|
|
|
## What It Checks
|
|
|
|
### README Coverage (Max 100%)
|
|
- Main README.md in project root (+40%)
|
|
- Documentation index in /docs (+30%)
|
|
- READMEs in multiple subdirectories (+30%)
|
|
|
|
### Documentation Structure (Max 100%)
|
|
- Organized /docs directory (+35%)
|
|
- Multiple documentation subdirectories (+30%)
|
|
- Key files: PRD.md, ARCHITECTURE.md, guides (+20%, +15%)
|
|
|
|
### Code Comments (Max 100%)
|
|
- Percentage of files with inline comments
|
|
- Aims for 5-10% comment density
|
|
|
|
### JSDoc Coverage (Max 100%)
|
|
- TypeScript/JavaScript files with JSDoc blocks
|
|
- Measures documentation of exported functions
|
|
|
|
### Type Annotations (Max 100%)
|
|
- tsconfig.json presence (+50%)
|
|
- TypeScript strict mode enabled (+30%)
|
|
- Sufficient TypeScript files (>10) (+20%)
|
|
|
|
### Examples/Guides (Max 100%)
|
|
- /examples directory (+40%)
|
|
- /docs/guides directory (+30%)
|
|
- Comprehensive test coverage (>10 tests) (+30%)
|
|
|
|
### Architecture Docs (Max 100%)
|
|
- ARCHITECTURE, DESIGN, or IMPLEMENTATION documentation
|
|
- Each found document adds 25%
|
|
|
|
### Security Docs (Max 100%)
|
|
- SECURITY.md file (+50%)
|
|
- LICENSE file (+25%)
|
|
- Security/authentication references in docs (+25%)
|
|
|
|
## Recommendations
|
|
|
|
The script provides specific, actionable recommendations based on which metrics score below 60-70%:
|
|
|
|
- **Low README**: Add comprehensive README files to key directories
|
|
- **Low Documentation Structure**: Organize docs with a /docs directory and subdirectories
|
|
- **Low Comments**: Aim for 5-10% comment density in code files
|
|
- **Low JSDoc**: Add JSDoc comments to exported functions and interfaces
|
|
- **Low Types**: Enable TypeScript strict mode and add type annotations
|
|
- **Low Examples**: Create an examples/ directory with demo code
|
|
- **Low Architecture**: Write documentation about system design and decisions
|
|
- **Low Security**: Add SECURITY.md and document best practices
|
|
|
|
## Integration
|
|
|
|
This script can be integrated into your CI/CD pipeline to:
|
|
- Track documentation quality over time
|
|
- Fail builds if documentation score drops below threshold
|
|
- Generate documentation reports
|
|
- Enforce documentation standards
|
|
|
|
### Example CI Integration
|
|
|
|
```yaml
|
|
- name: Check Documentation Quality
|
|
run: |
|
|
score=$(./scripts/doc-quality-checker.sh . | grep "OVERALL SCORE" | awk '{print $NF}' | tr -d '%')
|
|
if [ $score -lt 50 ]; then
|
|
echo "Documentation quality too low: $score%"
|
|
exit 1
|
|
fi
|
|
```
|
|
|
|
## Requirements
|
|
|
|
- bash 4.0+
|
|
- find, grep, xargs (standard Unix utilities)
|
|
- wc for line counting
|
|
|
|
## Performance
|
|
|
|
The script performs limited scans to avoid lengthy analysis:
|
|
- README check: Top 2 levels of directory structure
|
|
- Code analysis: First 50-80 files of each type
|
|
- Documentation scan: /docs directory only
|
|
|
|
Total execution time: typically < 5 seconds for most projects
|
|
|
|
## Notes
|
|
|
|
- The script uses sampling for large projects to maintain performance
|
|
- It provides a quick health check, not an exhaustive audit
|
|
- Results can vary based on project structure and file organization
|
|
- Best used as part of ongoing documentation practices, not as a substitute for actual writing
|
|
|
|
## Author
|
|
|
|
GitHub Copilot - MetaBuilder Project
|
|
|
|
## License
|
|
|
|
Same as the MetaBuilder project (see LICENSE file)
|