agentsclimarketplace

Understand

Skill ComeOnOliver/skillshub/skills/Lum1104/Understand-Anything/understand

🧠 The right skill, one API call. AI agent skills registry with token-efficient skill resolution. 5,000+ skills from 500+ top repos.From the repository description

Install
npx -y skills add ComeOnOliver/skillshub --skill understand

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

9.3 KB, ~2.4k tokens by cl100k_base, as published. Nobody here has run it

/understand

Analyze the current codebase and produce a knowledge-graph.json file in .understand-anything/. This file powers the interactive dashboard for exploring the project's architecture.

Options

  • $ARGUMENTS may contain:
    • --full β€” Force a full rebuild, ignoring any existing graph
    • A directory path β€” Scope analysis to a specific subdirectory

Phase 0 β€” Pre-flight

Determine whether to run a full analysis or incremental update.

  1. Set PROJECT_ROOT to the current working directory.

  2. Get the current git commit hash:

    git rev-parse HEAD
    
  3. Create the intermediate output directory:

    mkdir -p $PROJECT_ROOT/.understand-anything/intermediate
    
  4. Check if $PROJECT_ROOT/.understand-anything/knowledge-graph.json exists. If it does, read it.

  5. Check if $PROJECT_ROOT/.understand-anything/meta.json exists. If it does, read it to get gitCommitHash.

  6. Decision logic:

    ConditionAction
    --full flag in $ARGUMENTSFull analysis (all phases)
    No existing graph or metaFull analysis (all phases)
    Existing graph + unchanged commit hashReport "Graph is up to date" and STOP
    Existing graph + changed filesIncremental update (re-analyze changed files only)

    For incremental updates, get the changed file list:

    git diff <lastCommitHash>..HEAD --name-only
    

    If this returns no files, report "Graph is up to date" and STOP.


Phase 1 β€” SCAN (Full analysis only)

Dispatch the project-scanner agent with this prompt:

Scan this project directory to discover all source files, detect languages and frameworks. Project root: $PROJECT_ROOT Write output to: $PROJECT_ROOT/.understand-anything/intermediate/scan-result.json

After the agent completes, read $PROJECT_ROOT/.understand-anything/intermediate/scan-result.json to get:

  • Project name, description
  • Languages, frameworks
  • File list with line counts
  • Complexity estimate

Gate check: If >200 files, inform the user and suggest scoping with a subdirectory argument. Proceed only if user confirms or add guidance that this may take a while.


Phase 2 β€” ANALYZE

Full analysis path

Batch the file list from Phase 1 into groups of 5-10 files each (aim for balanced batch sizes).

For each batch, dispatch a file-analyzer agent. Run up to 3 agents concurrently using parallel dispatch. Each agent gets this prompt:

Analyze these source files and produce GraphNode and GraphEdge objects. Project root: $PROJECT_ROOT Project: <projectName> Languages: <languages> Batch index: <batchIndex> Write output to: $PROJECT_ROOT/.understand-anything/intermediate/batch-<batchIndex>.json

All project files (for import resolution): <full file path list from scan>

Files to analyze in this batch:

  1. <path> (<sizeLines> lines)
  2. <path> (<sizeLines> lines) ...

After ALL batches complete, read each batch-<N>.json file and merge:

  • Combine all nodes arrays. If duplicate node IDs exist, keep the later occurrence.
  • Combine all edges arrays. Deduplicate by the composite key source + target + type.

Incremental update path

Use the changed files list from Phase 0. Batch and dispatch file-analyzer agents using the same process as above, but only for changed files.

After batches complete, merge with the existing graph:

  1. Remove old nodes whose filePath matches any changed file
  2. Remove old edges whose source or target references a removed node
  3. Add new nodes and edges from the fresh analysis

Phase 3 β€” ASSEMBLE

Merge all file-analyzer results into a single set of nodes and edges. Then perform basic integrity cleanup:

  • Remove any edge whose source or target references a node ID that does not exist in the merged node set
  • Remove duplicate node IDs (keep the last occurrence)
  • Log any removed edges or nodes for the final summary

Phase 4 β€” ARCHITECTURE

Dispatch the architecture-analyzer agent with this prompt:

Analyze this codebase's structure to identify architectural layers. Project root: $PROJECT_ROOT Write output to: $PROJECT_ROOT/.understand-anything/intermediate/layers.json Project: <projectName> β€” <projectDescription>

File nodes:

[list of {id, name, filePath, summary, tags} for all file-type nodes]

Import edges:

[list of edges with type "imports"]

After the agent completes, read $PROJECT_ROOT/.understand-anything/intermediate/layers.json to get the layer assignments.

For incremental updates: Always re-run architecture analysis on the full merged node set, since layer assignments may shift when files change.


Phase 5 β€” TOUR

Dispatch the tour-builder agent with this prompt:

Create a guided learning tour for this codebase. Project root: $PROJECT_ROOT Write output to: $PROJECT_ROOT/.understand-anything/intermediate/tour.json Project: <projectName> β€” <projectDescription> Languages: <languages>

Nodes (summarized):

[list of {id, name, filePath, summary, type} for key nodes]

Layers:

[layers from Phase 4]

Key edges:

[imports and calls edges]

After the agent completes, read $PROJECT_ROOT/.understand-anything/intermediate/tour.json to get the tour steps.


Phase 6 β€” REVIEW

Assemble the full KnowledgeGraph JSON object:

{
  "version": "1.0.0",
  "project": {
    "name": "<projectName>",
    "languages": ["<languages>"],
    "frameworks": ["<frameworks>"],
    "description": "<projectDescription>",
    "analyzedAt": "<ISO 8601 timestamp>",
    "gitCommitHash": "<commit hash from Phase 0>"
  },
  "nodes": [<all merged nodes from Phase 3>],
  "edges": [<all merged edges from Phase 3>],
  "layers": [<layers from Phase 4>],
  "tour": [<steps from Phase 5>]
}
  1. Write the assembled graph to $PROJECT_ROOT/.understand-anything/intermediate/assembled-graph.json.

  2. Dispatch the graph-reviewer agent with this prompt:

    Validate the knowledge graph at $PROJECT_ROOT/.understand-anything/intermediate/assembled-graph.json. Project root: $PROJECT_ROOT Read the file and validate it for completeness and correctness. Write output to: $PROJECT_ROOT/.understand-anything/intermediate/review.json

  3. After the agent completes, read $PROJECT_ROOT/.understand-anything/intermediate/review.json.

  4. If approved: false:

    • Review the issues list
    • Apply automated fixes where possible:
      • Remove edges with dangling references
      • Fill missing required fields with sensible defaults (e.g., empty tags -> ["untagged"], empty summary -> "No summary available")
      • Remove nodes with invalid types
    • If critical issues remain after one fix attempt, save the graph anyway but include the warnings in the final report
  5. If approved: true: Proceed to Phase 7.


Phase 7 β€” SAVE

  1. Write the final knowledge graph to $PROJECT_ROOT/.understand-anything/knowledge-graph.json.

  2. Write metadata to $PROJECT_ROOT/.understand-anything/meta.json:

    {
      "lastAnalyzedAt": "<ISO 8601 timestamp>",
      "gitCommitHash": "<commit hash>",
      "version": "1.0.0",
      "analyzedFiles": <number of files analyzed>
    }
    
  3. Clean up intermediate files:

    rm -rf $PROJECT_ROOT/.understand-anything/intermediate
    
  4. Report a summary to the user containing:

    • Project name and description
    • Files analyzed / total files
    • Nodes created (broken down by type: file, function, class)
    • Edges created (broken down by type)
    • Layers identified (with names)
    • Tour steps generated (count)
    • Any warnings from the reviewer
    • Path to the output file: $PROJECT_ROOT/.understand-anything/knowledge-graph.json
  5. Automatically launch the dashboard by invoking the /understand-dashboard skill.


Error Handling

  • If any agent dispatch fails, retry once with the same prompt plus additional context about the failure.
  • If it fails a second time, skip that phase and continue with partial results.
  • ALWAYS save partial results β€” a partial graph is better than no graph.
  • Report any skipped phases or errors in the final summary so the user knows what happened.
  • NEVER silently drop errors. Every failure must be visible in the final report.

Reference: KnowledgeGraph Schema

Node Types

TypeDescriptionID Convention
fileSource filefile:<relative-path>
functionFunction or methodfunc:<relative-path>:<name>
classClass, interface, or typeclass:<relative-path>:<name>
moduleLogical module or packagemodule:<name>
conceptAbstract concept or patternconcept:<name>

Edge Types (18 total)

CategoryTypes
Structuralimports, exports, contains, inherits, implements
Behavioralcalls, subscribes, publishes, middleware
Data flowreads_from, writes_to, transforms, validates
Dependenciesdepends_on, tested_by, configures
Semanticrelated, similar_to

Edge Weight Conventions

Edge TypeWeight
contains1.0
inherits, implements0.9
calls, exports0.8
imports0.7
depends_on0.6
tested_by0.5
All others0.5 (default)

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.