Workspace Analyzer
by @zendenho7
Analyzes OpenClaw workspace structure and content to identify maintenance needs, bloat, duplicates, and organization issues. Outputs a JSON report for the ag...
clawhub install workspace-analyzerπ About This Skill
name: workspace-analyzer description: "Analyzes OpenClaw workspace structure and content to identify maintenance needs, bloat, duplicates, and organization issues. Outputs a JSON report for the agent to review and act upon." version: "1.1.0" metadata: {"openclaw":{"emoji":"π","requires":{"bins":["python3"]}, "tags":["workspace", "maintenance", "analysis", "health"]}}
Workspace Analyzer
> "Scans, analyzes, and reports. The agent decides."
Overview
A self-improving agent needs a clean workspace. This skill analyzes any OpenClaw workspace to: 1. Detect core files dynamically (adapts to workspace changes) 2. Analyze content for issues (bloat, duplicates, broken links) 3. Validate single source of truth (content in multiple places) 4. Report actionable insights for the agent to act upon
Key Principle: The script analyzes β the agent decides β the agent acts.
Installation
# Clone or copy to your skills folder
cp -r workspace-analyzer/ ~/.openclaw/workspace/skills/
Usage
Run Analysis
# Full analysis (default)
python3 skills/workspace-analyzer/scripts/analyzer.pyQuick scan (structure only, no content analysis)
python3 skills/workspace-analyzer/scripts/analyzer.py --quickSpecific workspace
python3 skills/workspace-analyzer/scripts/analyzer.py --root /path/to/workspaceOutput to file
python3 skills/workspace-analyzer/scripts/analyzer.py --output report.json
Output Format
{
"scan_info": {
"root": "/home/user/.openclaw/workspace",
"timestamp": "2026-02-21T18:00:00Z",
"files_scanned": 291
},
"core_files_detected": {
"kai_core": {
"files": ["SOUL.md", "OPERATING.md", ...],
"count": 11
},
"mission_control": {...},
"agent_cores": {...},
"skills": {...}
},
"analysis": {
"SOUL.md": {
"category": "kai_core",
"line_count": 450,
"sections": [...],
"wiki_links": [...],
"issues": [...]
}
},
"single_source_validation": {
"skill_graph": {
"status": "PASS/FAIL",
"locations": ["AGENTS.md", "OPERATING.md", "SOUL.md"],
"recommendation": "Reference all to SUB_CONSCIOUS.md"
},
"memory_architecture": {...},
"image_handling": {...}
},
"recommendations": [
{"action": "FIX_DUPLICATE_CONTENT", "topic": "skill_graph", "files": ["AGENTS.md", "OPERATING.md"], "severity": "CRITICAL"},
{"action": "REVIEW_BLOAT", "file": "OPERATING.md", "severity": "WARN"},
{"action": "CHECK_DUPLICATE", "severity": "WARN"},
{"action": "CHECK_BROKEN_LINK", "severity": "INFO"}
],
"summary": {
"total_files": 291,
"total_issues": 17,
"total_recommendations": 25
}
}
Single Source of Truth Validation
What It Checks
The analyzer validates that each topic exists in exactly ONE place:
| Topic | Expected Single Source | |-------|----------------------| | Skill Graph | SUB_CONSCIOUS.md | | Memory Architecture | OPERATING.md or SUB_CONSCIOUS.md | | Message Reactions | SUB_CONSCIOUS.md | | Image Handling | OPERATING.md | | Session Bootstrap | AGENTS.md |
Detection Logic
1. Scan all core files for key section headings 2. Build content map of where each topic appears 3. Flag violations where topic appears in 2+ places 4. Recommend fix by pointing to single source
Example Output
{
"single_source_validation": {
"skill_graph": {
"status": "FAIL",
"locations": ["AGENTS.md:285", "OPERATING.md:56", "SOUL.md:52"],
"severity": "CRITICAL",
"recommendation": "Consolidate to SUB_CONSCIOUS.md, reference from others"
},
"memory_architecture": {
"status": "FAIL",
"locations": ["AGENTS.md:157", "OPERATING.md:74", "OPERATING.md:193"],
"severity": "CRITICAL",
"recommendation": "Remove duplicate section at OPERATING.md:193"
}
}
}
Features
Dynamic Core File Detection
Automatically detects core files based on location patterns:
| Category | Pattern | Example | |----------|---------|---------| | KAI Core | Root *.md | SOUL.md, OPERATING.md | | Mission Control | mission_control/*GUIDELINES.md | MISSION_CONTROL_GUIDELINES.md | | Agent Cores | mission_control/agents/*/*.md | designer/SOUL.md | | Skills | skills/*/SKILL.md | react-expert/SKILL.md | | SUB_CONSCIOUS | Root SUB_CONSCIOUS.md | SUB_CONSCIOUS.md |
Category-Specific Thresholds
Bloat thresholds vary by category:
| Category | Warning | Critical | |----------|---------|----------| | kai_core | 400 | 600 | | mission_control | 500 | 800 | | agent_cores | 300 | 500 | | skills | 600 | 1000 | | memory | 500 | 800 | | docs | 400 | 600 | | SUB_CONSCIOUS | 100 | 200 |
Issue Detection
Recommendations
The analyzer generates actionable recommendations:
| Action | Severity | Description | What To Do | |--------|----------|-------------|------------| | FIX_DUPLICATE_CONTENT | CRITICAL | Same content in 2+ files | Consolidate to single source | | REVIEW_BLOAT | WARN/CRITICAL | File is too large | Review if legitimate or split | | REVIEW_ORPHAN | INFO | File hasn't been modified | Archive if no longer needed | | CHECK_DUPLICATE | WARN | Potential duplicate files | Verify if intentional or merge | | CHECK_BROKEN_LINK | INFO | Wiki-link may be broken | Verify if skill exists | | CHECK_MISSING | WARN | Expected core files not found | Create if needed |
Fix Instructions for Agents
When duplicate content is detected, follow these steps:
Step 1: Identify the True Source
Determine which file should be the single source:
| Topic | Should Be In | |-------|-------------| | Reflex behaviors | SUB_CONSCIOUS.md | | Session bootstrap | AGENTS.md | | Procedures | OPERATING.md | | Identity principles | SOUL.md | | Knowledge index | KNOWLEDGE_GRAPH.md |
Step 2: Update Non-Source Files
Replace duplicate content with references:
Topic: See [[SUB_CONSCIOUS.md]] for procedures.
Step 3: Verify Bootstrap Injection
Ensure new files are injected at session start:
Check ~/.openclaw/openclaw.json:
{
"hooks": {
"internal": {
"entries": {
"bootstrap-extra-files": {
"enabled": true,
"paths": ["SUB_CONSCIOUS.md", "self-improving/memory.md"]
}
}
}
}
}
Step 4: Commit Changes
git add -A
git commit -m "Fix duplicate content - consolidate to single source"
Interpretation Guide
How to Use Results
Step 1: Prioritize by Severity
CRITICAL β Review immediately
WARN β Review during next maintenance
INFO β Review during weekly cleanup
Step 2: Check Single Source Validation
FAIL β Fix duplicate content first (most important)
PASS β Move to other issues
Step 3: Understand Context
Step 4: Take Action 1. Don't auto-fix - review first 2. Archive old session logs monthly 3. Split large research logs by topic 4. Keep reference docs as-is (legitimate) 5. Fix duplicate content by consolidating to single source
Integration
With Heartbeat
Add to your HEARTBEAT.md maintenance section:
## 7. Memory + Workspace MaintenanceRun Workspace Analyzer
python3 skills/workspace-analyzer/scripts/analyzer.py --output /tmp/analysis.jsonReview Single Source Validation
Check for DUPLICATE_CONTENT issues
Fix by consolidating to single source Review Recommendations
Check recommendations in output
Prioritize by severity
Fix issues manually
Output to Memory
Save analysis results for later review:
python3 skills/workspace-analyzer/scripts/analyzer.py \
--output memory/$(date +%Y-%m-%d)-workspace-analysis.json
Safety & Security
Read-Only
No Secrets
Safe Output
Limitations
Examples
Sample Output - Single Source Validation
{
"single_source_validation": {
"skill_graph": {
"status": "FAIL",
"files": ["AGENTS.md", "OPERATING.md", "SOUL.md"],
"severity": "CRITICAL",
"recommendation": "Reference all to SUB_CONSCIOUS.md"
},
"memory_architecture": {
"status": "FAIL",
"files": ["AGENTS.md", "OPERATING.md"],
"severity": "CRITICAL",
"recommendation": "Remove duplicate in OPERATING.md"
},
"message_reactions": {
"status": "PASS",
"files": ["SUB_CONSCIOUS.md"],
"severity": "OK"
}
}
}
Sample Output - Recommendations
[
{
"action": "FIX_DUPLICATE_CONTENT",
"topic": "skill_graph",
"files": ["AGENTS.md:285", "OPERATING.md:56", "SOUL.md:52"],
"severity": "CRITICAL",
"recommendation": "Replace with reference to SUB_CONSCIOUS.md"
},
{
"action": "REVIEW_BLOAT",
"file": "OPERATING.md",
"category": "kai_core",
"reason": "503 lines - consider splitting (threshold: 400)",
"severity": "WARN"
}
]
Skill Graph
This skill is related to:
Changelog
v1.1.0 (2026-02-24)
v1.0 (2026-02-21)
*Last updated: 2026-02-24*
π‘ Examples
Sample Output - Single Source Validation
{
"single_source_validation": {
"skill_graph": {
"status": "FAIL",
"files": ["AGENTS.md", "OPERATING.md", "SOUL.md"],
"severity": "CRITICAL",
"recommendation": "Reference all to SUB_CONSCIOUS.md"
},
"memory_architecture": {
"status": "FAIL",
"files": ["AGENTS.md", "OPERATING.md"],
"severity": "CRITICAL",
"recommendation": "Remove duplicate in OPERATING.md"
},
"message_reactions": {
"status": "PASS",
"files": ["SUB_CONSCIOUS.md"],
"severity": "OK"
}
}
}
Sample Output - Recommendations
[
{
"action": "FIX_DUPLICATE_CONTENT",
"topic": "skill_graph",
"files": ["AGENTS.md:285", "OPERATING.md:56", "SOUL.md:52"],
"severity": "CRITICAL",
"recommendation": "Replace with reference to SUB_CONSCIOUS.md"
},
{
"action": "REVIEW_BLOAT",
"file": "OPERATING.md",
"category": "kai_core",
"reason": "503 lines - consider splitting (threshold: 400)",
"severity": "WARN"
}
]