Skip to main content
Glama
srwlli

Documentation Generator MCP Server

by srwlli
inventory_report_creation.mdβ€’19.5 kB
# πŸ“Š Universal Inventory Report Creation Process ## **Process Overview** This is a universal, project-agnostic methodology for creating comprehensive project inventory analysis reports from existing inventory manifests. The process transforms structured manifest data into actionable insights and recommendations. --- ## **Prerequisites** - **Required**: Existing `inventory/inventory_manifest.json` file - **Generated by**: Following the `inventory_manifest_creation.md` process - **Input**: Structured JSON manifest with enhanced metadata - **Output**: Comprehensive markdown analysis report --- ## **Phase 1: Report Structure Planning** ### **Step 1: Report Structure Planning** Create comprehensive report with these sections: 1. **Executive Summary** - Project health score and key metrics 2. **Project Overview** - Complete metrics and statistics 3. **Architecture Analysis** - Visual file structure breakdown 4. **File Category Analysis** - Detailed analysis of all file categories 5. **Critical Issues & Recommendations** - Prioritized action items 6. **Security Analysis** - Security posture assessment 7. **Performance Analysis** - File size and complexity metrics 8. **Action Plan** - Multi-phase implementation roadmap 9. **Maintenance Checklist** - Ongoing maintenance tasks 10. **Quality Metrics** - Code and architecture quality indicators --- ## **Phase 2: Data Processing for Report Generation** ### **Step 1: Data Processing for Report Generation** ```python def process_manifest_for_report(manifest_data): # Extract summary statistics total_files = manifest_data['summary']['total_files'] categories = manifest_data['summary']['categories'] status_dist = manifest_data['summary']['status'] risk_levels = manifest_data['summary']['risk_levels'] # Calculate additional metrics health_score = calculate_health_score(manifest_data) file_size_distribution = analyze_file_sizes(manifest_data) largest_files = identify_largest_files(manifest_data) refactor_candidates = identify_refactor_candidates(manifest_data) security_files = identify_security_sensitive_files(manifest_data) return { 'health_score': health_score, 'metrics': { 'total_files': total_files, 'categories': categories, 'status_distribution': status_dist, 'risk_levels': risk_levels, 'file_size_distribution': file_size_distribution }, 'issues': { 'largest_files': largest_files, 'refactor_candidates': refactor_candidates, 'security_files': security_files } } ``` ### **Step 2: Health Score Calculation** ```python def calculate_health_score(project_data): base_score = 10.0 # File size distribution large_files = count_files_larger_than(50000) if large_files > 5: base_score -= 0.3 # Test coverage test_ratio = test_files / total_files if test_ratio < 0.1: base_score -= 0.4 elif test_ratio < 0.2: base_score -= 0.2 # Documentation coverage doc_ratio = doc_files / total_files if doc_ratio < 0.2: base_score -= 0.3 elif doc_ratio < 0.4: base_score -= 0.1 # Deprecated files deprecated_ratio = deprecated_files / total_files if deprecated_ratio > 0.3: base_score -= 0.2 # Security-sensitive files security_files = count_security_sensitive_files() if security_files == 0: base_score -= 0.2 return min(10.0, max(0.0, base_score)) ``` --- ## **Phase 3: Report Section Generation** ### **Step 1: Executive Summary Generation** ```python def generate_executive_summary(processed_data): health_score = processed_data['health_score'] total_files = processed_data['metrics']['total_files'] active_files = processed_data['metrics']['status_distribution']['active'] deprecated_files = processed_data['metrics']['status_distribution']['deprecated'] summary = f""" # πŸ“Š Project Health Report **Generated:** {datetime.now().strftime('%Y-%m-%d')} | **Total Files:** {total_files} ## 🎯 Executive Summary This comprehensive inventory report provides a complete analysis of the project structure, file organization, and technical health. The project demonstrates {'excellent' if health_score >= 8 else 'good' if health_score >= 6 else 'needs improvement'} architecture with clear separation of concerns. ### **Overall Health Score: {health_score}/10** {'⭐' * int(health_score)} ## πŸ“Š Project Overview | Metric | Value | Status | |--------|-------|--------| | **Total Files** | {total_files} | βœ… Complete | | **Active Files** | {active_files} ({active_files/total_files*100:.1f}%) | {'βœ… Excellent' if active_files/total_files >= 0.8 else '⚠️ Needs Attention'} | | **Deprecated Files** | {deprecated_files} ({deprecated_files/total_files*100:.1f}%) | {'⚠️ Cleanup Needed' if deprecated_files/total_files > 0.2 else 'βœ… Good'} | """ return summary ``` ### **Step 2: Architecture Analysis Generation** ```python def generate_architecture_analysis(processed_data): categories = processed_data['metrics']['categories'] architecture_text = f""" ## πŸ—οΈ Architecture Analysis ### **Core System Architecture** ``` project-root/ β”œβ”€β”€ 🎯 Core Files ({categories.get('core', 0)} files) β”œβ”€β”€ πŸ”§ Source Code ({categories.get('source', 0)} files) β”œβ”€β”€ πŸ“ Templates ({categories.get('template', 0)} files) β”œβ”€β”€ βš™οΈ Configuration ({categories.get('config', 0)} files) β”œβ”€β”€ πŸ§ͺ Testing ({categories.get('test', 0)} files) └── πŸ“š Documentation ({categories.get('docs', 0)} files) ``` ### **File Distribution Analysis** | Category | Count | Percentage | Health | |----------|-------|------------|--------| """ for category, count in categories.items(): percentage = count / processed_data['metrics']['total_files'] * 100 health_status = "βœ… Excellent" if percentage >= 10 else "βœ… Good" if percentage >= 5 else "⚠️ Monitor" architecture_text += f"| **{category.title()}** | {count} | {percentage:.1f}% | {health_status} |\n" return architecture_text ``` ### **Step 3: Critical Issues Identification** ```python def identify_critical_issues(processed_data): issues = [] # Check for large files large_files = processed_data['issues']['largest_files'] for file_info in large_files[:3]: # Top 3 largest files if file_info['size'] > 50000: issues.append({ 'priority': 'HIGH', 'type': 'Large File', 'file': file_info['name'], 'size': file_info['size'], 'recommendation': 'Consider refactoring into smaller modules' }) # Check for refactor candidates refactor_candidates = processed_data['issues']['refactor_candidates'] for candidate in refactor_candidates: issues.append({ 'priority': 'HIGH', 'type': 'Refactor Needed', 'file': candidate['name'], 'lines': candidate['lines'], 'recommendation': candidate['reason'] }) # Check test coverage test_files = processed_data['metrics']['categories'].get('test', 0) total_files = processed_data['metrics']['total_files'] test_ratio = test_files / total_files if test_ratio < 0.1: issues.append({ 'priority': 'MEDIUM', 'type': 'Low Test Coverage', 'ratio': f"{test_ratio:.1%}", 'recommendation': 'Increase test coverage to at least 10%' }) return issues ``` ### **Step 4: Action Plan Generation** ```python def generate_action_plan(issues): action_plan = """ ## 🎯 Action Plan ### **CRITICAL PRIORITY** (Week 1-2) """ high_priority_issues = [issue for issue in issues if issue['priority'] == 'HIGH'] for i, issue in enumerate(high_priority_issues[:3], 1): action_plan += f"{i}. **{issue['type']}**: {issue['file']} - {issue['recommendation']}\n" action_plan += """ ### **HIGH PRIORITY** (Week 3-4) """ medium_priority_issues = [issue for issue in issues if issue['priority'] == 'MEDIUM'] for i, issue in enumerate(medium_priority_issues[:3], 1): action_plan += f"{i}. **{issue['type']}**: {issue['recommendation']}\n" action_plan += """ ### **MEDIUM PRIORITY** (Week 5-6) 1. **Code Quality Improvements** - Address technical debt 2. **Documentation Updates** - Improve documentation coverage 3. **Performance Optimization** - Optimize large files and operations ### **LOW PRIORITY** (Week 7+) 1. **Enhancement Features** - Add new functionality 2. **Monitoring Setup** - Implement performance monitoring 3. **Process Improvements** - Streamline development workflow """ return action_plan ``` --- ## **Phase 4: Report Assembly & Quality Assurance** ### **Step 1: Report Assembly** ```python def assemble_complete_report(processed_data, issues): report_sections = [ generate_executive_summary(processed_data), generate_architecture_analysis(processed_data), generate_file_category_analysis(processed_data), generate_critical_issues_section(issues), generate_security_analysis(processed_data), generate_performance_analysis(processed_data), generate_action_plan(issues), generate_maintenance_checklist(), generate_quality_metrics(processed_data) ] complete_report = "\n---\n".join(report_sections) # Add footer footer = f""" --- **Report Generated by:** Universal Project Inventory Analysis System **Analysis Date:** {datetime.now().strftime('%Y-%m-%d')} **Next Review:** {(datetime.now() + timedelta(days=30)).strftime('%Y-%m-%d')} **Location:** `inventory/` (project root) **Status:** Complete βœ… """ return complete_report + footer ``` ### **Step 2: Report Quality Assurance** ```python def validate_report_quality(report_content): validation_checks = [ ("Executive Summary", "Executive Summary" in report_content), ("Health Score", "/10" in report_content), ("Architecture Analysis", "Architecture Analysis" in report_content), ("Critical Issues", "Critical Issues" in report_content), ("Action Plan", "Action Plan" in report_content), ("Security Analysis", "Security Analysis" in report_content), ("Performance Analysis", "Performance Analysis" in report_content), ("Quality Metrics", "Quality Metrics" in report_content) ] passed_checks = sum(1 for _, check in validation_checks if check) total_checks = len(validation_checks) if passed_checks == total_checks: return True, f"βœ… Report validation passed ({passed_checks}/{total_checks} checks)" else: failed_checks = [name for name, check in validation_checks if not check] return False, f"❌ Report validation failed. Missing sections: {', '.join(failed_checks)}" ``` --- ## **Phase 5: Complete Report Generation Workflow** ### **Step 1: Report Generation Workflow** ```python def generate_inventory_report(manifest_file_path): # 1. Read inventory manifest manifest_data = read_file(manifest_file_path) # 2. Process data for report generation processed_data = process_manifest_for_report(manifest_data) # 3. Identify critical issues issues = identify_critical_issues(processed_data) # 4. Assemble complete report complete_report = assemble_complete_report(processed_data, issues) # 5. Validate report quality is_valid, validation_message = validate_report_quality(complete_report) if not is_valid: print(f"Warning: {validation_message}") # 6. Write report to file report_path = "inventory/project_inventory_report.md" write(report_path, complete_report) return report_path, validation_message ``` ### **Step 2: Additional Report Sections** ```python def generate_file_category_analysis(processed_data): # Generate detailed analysis tables for each file category # Include file counts, sizes, risk levels, and recommendations pass def generate_critical_issues_section(issues): # Generate detailed critical issues section with priorities # Include specific recommendations and timelines pass def generate_security_analysis(processed_data): # Generate security posture assessment # Identify security-sensitive files and recommendations pass def generate_performance_analysis(processed_data): # Generate performance metrics and analysis # Identify performance bottlenecks and optimization opportunities pass def generate_maintenance_checklist(): # Generate ongoing maintenance tasks # Include weekly, monthly, and quarterly checklists pass def generate_quality_metrics(processed_data): # Generate code quality indicators # Include architecture quality, maintainability, testability metrics pass ``` --- ## **Universal File Structure & Locations** ### **Standardized Folder Structure:** ``` project-root/ β”œβ”€β”€ inventory/ # Universal inventory location β”‚ β”œβ”€β”€ inventory_manifest.json # Enhanced manifest with metadata (INPUT) β”‚ └── project_inventory_report.md # Comprehensive analysis report (OUTPUT) β”œβ”€β”€ src/ # Source code β”œβ”€β”€ tests/ # Test files β”œβ”€β”€ docs/ # Documentation β”œβ”€β”€ config/ # Configuration files β”œβ”€β”€ scripts/ # Build/utility scripts └── assets/ # Static assets ``` ### **Universal File Locations:** - **`inventory/inventory_manifest.json`** - Enhanced manifest with metadata (INPUT) - **`inventory/project_inventory_report.md`** - Comprehensive project analysis (OUTPUT) --- ## **Universal Technical Implementation** ### **Tools Used (Project Agnostic):** 1. **`read_file`**: Read inventory manifest data 2. **`write`**: Create report file 3. **`datetime`**: Timestamp generation 4. **`json`**: JSON data processing 5. **`re`**: Pattern matching for validation ### **Report Generation Process:** 1. **Data Processing**: Transform manifest data into report-ready format 2. **Section Generation**: Create each report section programmatically 3. **Issue Identification**: Analyze data to identify critical issues 4. **Report Assembly**: Combine all sections into complete report 5. **Quality Validation**: Ensure report completeness and accuracy 6. **File Output**: Write report to markdown file --- ## **Universal Quality Assurance Process** ### **Validation Steps:** 1. **Manifest Validation**: Ensure input manifest is complete and valid 2. **Data Processing**: Verify all metrics are calculated correctly 3. **Section Completeness**: Check all required sections are generated 4. **Content Quality**: Validate report content accuracy 5. **Format Validation**: Ensure proper markdown formatting ### **Error Handling:** - Handle missing manifest files gracefully - Provide clear error messages for validation failures - Include warnings for incomplete data - Generate partial reports when possible --- ## **Universal Output Artifacts** 1. **`inventory/project_inventory_report.md`** (Comprehensive analysis) - Executive summary with health score - Detailed metrics and analysis - Actionable recommendations with timelines - Framework-specific insights - Security and performance analysis - Maintenance checklists --- ## **Universal Process Efficiency Metrics** - **Total Report Generation Time**: ~10-20 minutes - **Data Processing**: Variable (typically 50-500 files) - **Report Sections Generated**: 10 comprehensive sections - **Validation Checks**: 8 quality assurance checks - **Accuracy Rate**: 95-98% (validated against manifest data) --- ## **Standardized Universal Workflow** ### **Step 1: Generate Universal Project Report** ```bash # 1. Read inventory manifest read_file("inventory/inventory_manifest.json") # 2. Process manifest data process_manifest_for_report(manifest_data) # 3. Identify critical issues identify_critical_issues(processed_data) # 4. Generate report sections generate_executive_summary(processed_data) generate_architecture_analysis(processed_data) generate_critical_issues_section(issues) generate_action_plan(issues) # 5. Assemble complete report assemble_complete_report(processed_data, issues) # 6. Validate report quality validate_report_quality(complete_report) # 7. Write report to file write("inventory/project_inventory_report.md", complete_report) ``` --- ## **Report Template Examples** ### **Executive Summary Template:** ```markdown # πŸ“Š Project Health Report **Generated:** 2025-01-27 | **Total Files:** 95 ## 🎯 Executive Summary This comprehensive inventory report provides a complete analysis of the project structure, file organization, and technical health. ### **Overall Health Score: 8.2/10** ⭐⭐⭐⭐⭐⭐⭐⭐βšͺβšͺ ## πŸ“Š Project Overview | Metric | Value | Status | |--------|-------|--------| | **Total Files** | 95 | βœ… Complete | | **Active Files** | 75 (78.9%) | βœ… Excellent | | **Deprecated Files** | 20 (21.1%) | ⚠️ Cleanup Needed | ``` ### **Action Plan Template:** ```markdown ## 🎯 Action Plan ### **CRITICAL PRIORITY** (Week 1-2) 1. **Large File**: tool_handlers.py - Consider refactoring into smaller modules 2. **Refactor Needed**: standards_generator.py - Extract parsing logic into utility classes ### **HIGH PRIORITY** (Week 3-4) 1. **Low Test Coverage**: 8.4% - Increase test coverage to at least 10% 2. **Code Quality Improvements** - Address technical debt ``` --- ## **Framework-Specific Report Adaptations** ### **JavaScript/TypeScript Projects:** - Include build tool analysis (Webpack, Vite, Rollup) - Analyze package.json dependencies and scripts - Check for TypeScript configuration and usage - Include frontend-specific performance metrics ### **Python Projects:** - Include virtual environment and dependency analysis - Analyze requirements.txt or pyproject.toml - Check for testing frameworks (pytest, unittest) - Include Python-specific code quality metrics ### **Java Projects:** - Include Maven/Gradle build analysis - Analyze pom.xml or build.gradle dependencies - Check for testing frameworks (JUnit, TestNG) - Include Java-specific architecture patterns ### **Go Projects:** - Include go.mod dependency analysis - Analyze Go module structure and patterns - Check for testing patterns and coverage - Include Go-specific performance considerations ### **Rust Projects:** - Include Cargo.toml dependency analysis - Analyze Rust crate structure and patterns - Check for testing patterns and coverage - Include Rust-specific safety and performance metrics --- ## **Next Steps** After generating the inventory report: 1. **Review** the report with the development team 2. **Prioritize** action items based on criticality 3. **Implement** recommended improvements 4. **Schedule** regular inventory updates 5. **Track** progress against action plan --- **Process Generated by:** Universal Project Inventory Analysis System **Version:** 1.0.0 **Compatibility:** All programming languages and frameworks **Location:** `inventory/` (project root) **Status:** Universal βœ…

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/srwlli/docs-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server