5.1 KiB
description, on, permissions, tools, safe-outputs, timeout-minutes
| description | on | permissions | tools | safe-outputs | timeout-minutes | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Generates a weekly ASCII tree map visualization of repository file structure and size distribution |
|
|
|
|
10 |
Repository Tree Map Generator
Generate a comprehensive ASCII tree map visualization of the repository file structure.
Mission
Your task is to analyze the repository structure and create an ASCII tree map that visualizes:
- Directory hierarchy
- File sizes (relative visualization)
- File counts per directory
- Key statistics about the repository
Analysis Steps
1. Collect Repository Statistics
Use bash tools to gather:
- Total file count across the repository
- Total repository size (excluding .git directory)
- File type distribution (count by extension)
- Largest files in the repository (top 10)
- Largest directories by total size
- Directory depth and structure
Example commands you might use:
# Count total files
find . -type f -not -path "./.git/*" | wc -l
# Get repository size
du -sh . --exclude=.git
# Count files by extension
find . -type f -not -path "./.git/*" | sed 's/.*\.//' | sort | uniq -c | sort -rn | head -20
# Find largest files
find . -type f -not -path "./.git/*" -exec du -h {} + | sort -rh | head -10
# Directory sizes
du -h --max-depth=2 --exclude=.git . | sort -rh | head -15
2. Generate ASCII Tree Map
Create an ASCII visualization that shows:
- Directory tree structure with indentation
- Size indicators using symbols or bars (e.g., █ ▓ ▒ ░)
- File counts in brackets [count]
- Relative size representation (larger files/directories shown with more bars)
Example visualization format:
Repository Tree Map
===================
/ [1234 files, 45.2 MB]
│
├─ src/ [456 files, 28.5 MB] ██████████████████░░
│ ├─ core/ [78 files, 5.2 MB] ████░░
│ ├─ utils/ [34 files, 3.1 MB] ███░░
│ └─ tests/ [124 files, 12.8 MB] ████████░░
│
├─ docs/ [234 files, 8.7 MB] ██████░░
│ └─ content/ [189 files, 7.2 MB] █████░░
│
├─ .github/ [45 files, 2.1 MB] ██░░
│ └─ workflows/ [32 files, 1.4 MB] █░░
│
└─ tests/ [78 files, 3.5 MB] ███░░
Visualization Guidelines
- Use box-drawing characters for tree structure: │ ├ └ ─
- Use block characters for size bars: █ ▓ ▒ ░
- Scale the visualization bars proportionally to sizes
- Keep the tree readable - don't go too deep (max 3-4 levels recommended)
- Add type indicators using emojis:
- 📁 for directories
- 📄 for files
- 🔧 for config files
- 📚 for documentation
- 🧪 for test files
3. Generate Key Statistics
Compute and include:
- Total repository size (excluding .git)
- Total file count by type (source, tests, docs, config, etc.)
- Largest files (top 10 by size)
- Most file-dense directories (top 5 by file count)
- File type breakdown (e.g., .ts, .js, .py, .go, etc.)
4. Output Format
Create a GitHub issue with the complete tree map and statistics. Use proper markdown formatting with code blocks for the ASCII art.
Structure the issue body as follows:
### Repository Overview
Brief 1-2 sentence summary of the repository structure and size.
### File Structure
\`\`\`
[Your ASCII tree map here]
\`\`\`
### Key Statistics
#### By File Type
[Table or list of file counts by extension]
#### Largest Files
[Top 10 largest files with sizes]
#### Directory Sizes
[Top directories by total size]
Important Notes
- Exclude .git directory from all calculations to avoid skewing results
- Exclude package manager directories (node_modules, vendor, etc.) if present
- Handle special characters in filenames properly
- Format sizes in human-readable units (KB, MB, GB)
- Round percentages to 1-2 decimal places
- Sort intelligently - largest first for most sections
- Be creative with the ASCII visualization but keep it readable
- Test your bash commands before including them in analysis
- The tree map should give a quick visual understanding of the repository structure and size distribution
Security
Treat all repository content as trusted since you're analyzing the repository you're running in. However:
- Don't execute any code files
- Don't read sensitive files (.env, secrets, etc.)
- Focus on file metadata (sizes, counts, names) rather than content
Tips
Your terminal is already in the workspace root. No need to use cd.
Important: If no action is needed after completing your analysis, you MUST call the noop safe-output tool with a brief explanation. Failing to call any safe-output tool is the most common cause of safe-output workflow failures.
{"noop": {"message": "No action needed: [brief explanation of what was analyzed and why]"}}