add documentation quality checker script

This commit is contained in:
2025-12-25 12:20:11 +00:00
committed by GitHub
parent 4fa83256c1
commit 2966ea72b2

View File

@@ -0,0 +1,190 @@
# 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)