mirror of
https://github.com/Egonex-AI/Understand-Anything.git
synced 2026-06-22 10:58:03 +08:00
feat(skills): add /understand-domain skill for business domain knowledge extraction
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
c97096dd96
commit
a4daccc54b
@@ -0,0 +1,67 @@
|
||||
---
|
||||
name: understand-domain
|
||||
description: Extract business domain knowledge from a codebase and generate an interactive domain flow graph. Works standalone (lightweight scan) or derives from an existing /understand knowledge graph.
|
||||
argument-hint: [--full]
|
||||
---
|
||||
|
||||
# /understand-domain
|
||||
|
||||
Extracts business domain knowledge — domains, business flows, and process steps — from a codebase and produces an interactive horizontal flow graph in the dashboard.
|
||||
|
||||
## How It Works
|
||||
|
||||
- If a knowledge graph already exists (`.understand-anything/knowledge-graph.json`), derives domain knowledge from it (cheap, no file scanning)
|
||||
- If no knowledge graph exists, performs a lightweight scan: file tree + entry point detection + sampled files
|
||||
- Use `--full` flag to force a fresh scan even if a knowledge graph exists
|
||||
|
||||
## Instructions
|
||||
|
||||
### Phase 1: Detect Existing Graph
|
||||
|
||||
1. Check if `.understand-anything/knowledge-graph.json` exists in the current project
|
||||
2. If it exists AND `--full` was NOT passed → proceed to Phase 3 (derive from graph)
|
||||
3. Otherwise → proceed to Phase 2 (lightweight scan)
|
||||
|
||||
### Phase 2: Lightweight Scan (Path 1)
|
||||
|
||||
1. Run the preprocessing script bundled with this skill:
|
||||
```
|
||||
python understand-anything-plugin/skills/understand-domain/extract-domain-context.py <project-root>
|
||||
```
|
||||
This outputs `.understand-anything/intermediate/domain-context.json` containing:
|
||||
- File tree (respecting `.gitignore`)
|
||||
- Detected entry points (HTTP routes, CLI commands, event handlers, cron jobs, exported handlers)
|
||||
- File signatures (exports, imports per file)
|
||||
- Code snippets for each entry point (signature + first few lines)
|
||||
2. Read the generated `domain-context.json` as context for Phase 4
|
||||
3. Proceed to Phase 4
|
||||
|
||||
### Phase 3: Derive from Existing Graph (Path 2)
|
||||
|
||||
1. Read `.understand-anything/knowledge-graph.json`
|
||||
2. Format the graph data as structured context:
|
||||
- All nodes with their types, names, summaries, and tags
|
||||
- All edges with their types (especially `calls`, `imports`, `contains`)
|
||||
- All layers with their descriptions
|
||||
- Tour steps if available
|
||||
3. This is the context for the domain analyzer — no file reading needed
|
||||
4. Proceed to Phase 4
|
||||
|
||||
### Phase 4: Domain Analysis
|
||||
|
||||
1. Read the domain-analyzer agent prompt from `agents/domain-analyzer.md`
|
||||
2. Dispatch a subagent with the domain-analyzer prompt + the context from Phase 2 or 3
|
||||
3. The agent writes its output to `.understand-anything/intermediate/domain-analysis.json`
|
||||
|
||||
### Phase 5: Validate and Save
|
||||
|
||||
1. Read the domain analysis output
|
||||
2. Validate using the standard graph validation pipeline (the schema now supports domain/flow/step types)
|
||||
3. If validation fails, log warnings but save what's valid (error tolerance)
|
||||
4. Save to `.understand-anything/domain-graph.json`
|
||||
5. Clean up `.understand-anything/intermediate/domain-analysis.json`
|
||||
|
||||
### Phase 6: Launch Dashboard
|
||||
|
||||
1. Auto-trigger `/understand-dashboard` to visualize the domain graph
|
||||
2. The dashboard will detect `domain-graph.json` and show the domain view by default
|
||||
Reference in New Issue
Block a user