Diagram Reports Generator
Overview
This skill automatically generates comprehensive reports of all diagrams and MicroSims in the geometry course by analyzing chapter markdown files. It creates two report files: a table view for quick reference and a detailed view organized by chapter.
When to Use This Skill
Use this skill when:
- Working with the geometry-course intelligent textbook project
- Needing to audit all diagrams and MicroSims across chapters
- Tracking implementation status of visual elements
- Analyzing complexity and Bloom's Taxonomy distribution
- Updating documentation after adding new diagrams or MicroSims
- Generating reports for instructors or content creators
Workflow
Step 1: Install the Diagram Report Generator Script
If the project does not already have the diagram report generator script, install it from the skill's bundled resources:
- Check if
src/diagram-reports/diagram-report.pyexists in the project - If it doesn't exist:
- Create the directory:
mkdir -p src/diagram-reports - Copy the script from this skill's
scripts/diagram-report.pytosrc/diagram-reports/diagram-report.py
- Create the directory:
- If it already exists, verify it's up to date (optionally show the user a diff if there are differences)
Example installation:
# Create directory if needed
mkdir -p src/diagram-reports
# Copy script from skill (use Read tool to get script content, then Write tool to create file)
# The script is located in this skill's scripts/diagram-report.py
Step 2: Verify Project Structure
Before running the report generator, verify the project structure:
- Confirm the current working directory is the geometry-course root (or any intelligent textbook project)
- Verify
docs/chapters/contains chapter directories (format:01-chapter-name,02-chapter-name, etc.) - Ensure
docs/learning-graph/directory exists for output
Step 3: Run the Report Generator
Execute the Python script to generate the reports:
python src/diagram-reports/diagram-report.py
The script will:
- Scan all chapter directories in
docs/chapters/ - Parse each chapter's
index.mdfile - Extract diagram and MicroSim specifications from
<details>blocks with "#### Diagram:" headers - Analyze each element for:
- Type (diagram or MicroSim)
- Status (implementation status if specified)
- Bloom's Taxonomy levels
- UI element count
- Estimated difficulty (Easy, Medium, Hard, Very Hard)
- Learning objectives
Step 4: Verify Generated Reports
After running the script, verify two files were created in docs/learning-graph/:
-
diagram-table.md - A sortable table view with columns:
- Chapter number
- Element title (with links to chapter sections)
- Status
- Type (Diagram/MicroSim)
- Bloom's Taxonomy levels
- UI elements count
- Difficulty rating
-
diagram-details.md - A detailed view organized by chapter with:
- Chapter-level summaries
- Full element descriptions
- Learning objectives
- Linked titles to source chapter sections
Step 5: Review Navigation Configuration
The generated reports should already be linked in the MkDocs navigation. Verify the mkdocs.yml file contains these entries under the "Learning Graph" section:
- Learning Graph:
- Diagrams Table: learning-graph/diagram-table.md
- Diagrams Details: learning-graph/diagram-details.md
If these entries are missing, add them to the navigation structure.
Step 6: Preview the Reports
To view the generated reports:
- Run
mkdocs serveto start the local development server - Navigate to the "Learning Graph" section
- Click on "Diagrams Table" or "Diagrams Details"
- Verify all diagrams and MicroSims are properly listed with accurate information
Understanding Report Output
Difficulty Estimation
The script estimates difficulty based on:
- Element Type: MicroSims start with higher base difficulty
- UI Complexity: Number of sliders, buttons, dropdowns, and other controls
- Features: Animation, rotation, 3D/isometric views, real-time calculations
- Canvas Size: Larger canvases increase complexity
Difficulty levels:
- Easy: Static diagrams or simple visualizations
- Medium: Basic interactivity with 1-3 UI elements
- Hard: Moderate interactivity with 4-6 UI elements or complex features
- Very Hard: High interactivity with many UI elements or advanced features
Bloom's Taxonomy Detection
The script automatically detects Bloom's Taxonomy levels mentioned in specifications:
- Remembering
- Understanding
- Applying
- Analyzing
- Evaluating
- Creating
Troubleshooting
No Elements Found
If the report shows zero elements:
- Verify chapter markdown files contain
#### Diagram:headers followed by<details>blocks - Check that
<details>blocks include specification content - Run with verbose flag:
python src/diagram-reports/diagram-report.py --verbose
Missing Information
If elements are missing type, status, or other fields:
- Review the
<details>block format in chapter files - Ensure specifications include
**Type:**,**Status:**, and**Learning Objective:**fields - The script will infer type from content if not explicitly specified
Broken Links in Reports
If chapter links don't work:
- Verify chapter directory naming follows the pattern:
##-descriptive-name - Check that MkDocs anchor generation matches the script's anchor creation logic
- Test links by navigating in the served site
Advanced Usage
Custom Output Location
Specify a different output directory:
python src/diagram-reports/diagram-report.py --output-dir /path/to/output
Generate CSV Format
For spreadsheet analysis:
python src/diagram-reports/diagram-report.py --format csv
Generate HTML Format
For standalone HTML reports:
python src/diagram-reports/diagram-report.py --format html
Verbose Output for Debugging
Enable detailed logging:
python src/diagram-reports/diagram-report.py --verbose
Integration with Intelligent Textbook Workflow
This skill integrates with the broader intelligent textbook creation workflow:
- After content creation: Run this skill after generating or updating chapter content
- Before review sessions: Generate reports to identify gaps or inconsistencies
- During planning: Use difficulty distribution to balance implementation effort
- For documentation: Include reports in instructor guides or project documentation
Bundled Resources
scripts/diagram-report.py
This skill includes the complete Python script for generating diagram and MicroSim reports. The script will be installed into the user's project at src/diagram-reports/diagram-report.py when the skill is first used.
The script:
- Analyzes all chapter markdown files in
docs/chapters/ - Extracts diagram and MicroSim specifications from
<details>blocks - Calculates difficulty estimates based on UI complexity and features
- Detects Bloom's Taxonomy levels from specification text
- Generates both table and detailed report formats
- Supports multiple output formats (markdown, CSV, HTML)