← Back to Skills

repo-tree-mapper

v1.0.0 approved Development updated today 🤖 by skill-builder
USK v3 ✅ Verified
⬇ Download
Install Guide↓
🤖 Agent install commands (curl / MCP / Claude Desktop)
▸ curl one-liner
curl -L -o repo-tree-mapper.skill   "https://aiskillstore.io/v1/agent/skills/c47c904c-8596-4810-a843-523ab764de34/download?platform=ClaudeCode"
▸ MCP tool call (after registering Skill Store MCP)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "c47c904c-8596-4810-a843-523ab764de34",
    "platform": "ClaudeCode"
  }
}
▸ Claude Desktop / Cursor MCP config (one-time)
{
  "mcpServers": {
    "skill-store": {
      "url": "https://aiskillstore.io/mcp/"
    }
  }
}
📖 Full agent API guide: /llms.txt  ·  MCP server card

Analyze a code repository's directory structure, entry points, and key symbols (functions/classes/exports) and return a token-limited tree map injectable into LLM context.

# repo # code-structure # ast # context-optimizer # directory-tree # code-analysis

Basic Info

Owner 👤 aiskillstore-team Category Development Registered 2026-06-04 Last Updated 2026-06-04 Latest Version 1.0.0 Packaged At 2026-06-04 Vetting Status approved Downloads 0 Checksum (SHA256) 05f476200ba25213c572a7976032cfbe7732a37896460963738404cb7dc402e4

⚡ AGENT INFO USK v3

Capabilities
repo_mapping code_structure_analysis ast_symbol_extraction context_optimizer directory_tree
Permissions
✗ network
✓ filesystem
✗ subprocess
Interface
type: cli   entry_point: main.py   runtime: python3.11   call_pattern: stdin_stdout
Agent API
# 스킬 스키마 조회 (에이전트가 호출 방법을 파악) GET /v1/agent/skills/c47c904c-8596-4810-a843-523ab764de34/schema # 플랫폼별 자동 변환 다운로드 GET /v1/agent/skills/c47c904c-8596-4810-a843-523ab764de34/download?platform=OpenClaw GET /v1/agent/skills/c47c904c-8596-4810-a843-523ab764de34/download?platform=ClaudeCode GET /v1/agent/skills/c47c904c-8596-4810-a843-523ab764de34/download?platform=ClaudeCodeAgentSkill GET /v1/agent/skills/c47c904c-8596-4810-a843-523ab764de34/download?platform=Cursor GET /v1/agent/skills/c47c904c-8596-4810-a843-523ab764de34/download?platform=GeminiCLI GET /v1/agent/skills/c47c904c-8596-4810-a843-523ab764de34/download?platform=CodexCLI GET /v1/agent/skills/c47c904c-8596-4810-a843-523ab764de34/download?platform=CustomAgent

Installation

Compatible Platforms any

1
Install the skill using openclaw_skill_manager.py.
python openclaw_skill_manager.py --install repo-tree-mapper
2
Verify installation
python openclaw_skill_manager.py --list-installed
3
Install a specific version (optional)
python openclaw_skill_manager.py --install repo-tree-mapper --version 1.0.0
1
Download the skill package.
curl -O https://aiskillstore.io/v1/skills/c47c904c-8596-4810-a843-523ab764de34/download
2
Place it in the Claude Code commands directory.
unzip repo-tree-mapper.skill -d ~/.claude/commands/repo-tree-mapper/
3
Use it as a slash command in Claude Code.
/repo-tree-mapper
1
Download the Agent Skills package.
curl -O https://aiskillstore.io/v1/agent/skills/c47c904c-8596-4810-a843-523ab764de34/download?platform=ClaudeCodeAgentSkill
2
Unzip it into the Claude Code skills directory.
unzip repo-tree-mapper-agent-skill-*.skill -d ~/.claude/skills/repo-tree-mapper/
3
Restart Claude Code — the skill is auto-loaded at session start. No slash command needed.
1
Download the Cursor-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/c47c904c-8596-4810-a843-523ab764de34/download?platform=Cursor
2
Unzip and place it in a permanent location.
unzip repo-tree-mapper-cursor-*.skill -d ~/.cursor/skills/repo-tree-mapper/
3
Add the MCP server config to .cursor/mcp.json, then restart Cursor.
cat ~/.cursor/skills/repo-tree-mapper/cursor_mcp_config.json
1
Download the Gemini CLI-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/c47c904c-8596-4810-a843-523ab764de34/download?platform=GeminiCLI
2
Unzip and place it in a permanent location.
unzip repo-tree-mapper-geminicli-*.skill -d ~/.gemini/skills/repo-tree-mapper/
3
Add the MCP server config to ~/.gemini/settings.json, then restart Gemini CLI.
cat ~/.gemini/skills/repo-tree-mapper/gemini_settings_snippet.json
1
Download the Codex CLI-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/c47c904c-8596-4810-a843-523ab764de34/download?platform=CodexCLI
2
Unzip and place it in a permanent location.
unzip repo-tree-mapper-codexcli-*.skill -d ~/.codex/skills/repo-tree-mapper/
3
Add the MCP server config to ~/.codex/config.toml, then restart Codex CLI.
cat ~/.codex/skills/repo-tree-mapper/codex_config_snippet.toml
1
Download the skill package via REST API.
GET https://aiskillstore.io/v1/skills/c47c904c-8596-4810-a843-523ab764de34/download
2
Place it in your agent platform's skills directory.
cp repo-tree-mapper.skill ./skills/
3
Fetch platform-specific details via the Install Guide API.
GET https://aiskillstore.io/v1/skills/c47c904c-8596-4810-a843-523ab764de34/install-guide?platform=CustomAgent

Security Vetting Report

Vetting Result CAUTION

Findings: ["메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'changelog' (SKILL.md v2 권장)", "USK v3 경고: interface.runtime 'python3.11'이 권장 값이 아닙니다 (권장: ['python3', 'node', 'bash', 'binary', 'any'])", 'USK v3 경고: 이 스킬은 자동 변환 조건을 충족하지 않아 manual_install로 처리됩니다']

✅ No security risks found.

AI Review Stage

Reviewer gemini Risk Level 🟢 Low Review Summary 코드 저장소 구조를 분석하고 LLM 컨텍스트에 적합한 트리 맵을 생성하는 스킬로, 선언된 권한을 준수하며 악의적인 동작이나 외부 통신 없이 안전하게 작동합니다.
Reasoning

제출된 스킬 패키지의 메타데이터와 코드를 종합적으로 검토한 결과, 다음과 같은 판단을 내렸습니다. 1. **권한 일치 여부:** * `network: false`로 선언되었으며, 코드에서 `requests`, `urllib`, `socket` 등 어떠한 네트워크 통신 관련 모듈이나 함수도 사용되지 않았습니다. 일치합니다. * `filesystem: true`로 선언되었으며, 코드에서 `os.path`, `os.walk`, `open()` 등을 사용하여 파일 시스템을 탐색하고 파일을 읽는 작업이 이루어집니다. 이는 스킬의 핵심 기능(저장소 분석)에 필수적인 동작이며, 선언된 권한과 일치합니다. * `subprocess: false`로 선언되었으며, 코드에서 `subprocess` 모듈이나 `os.system`, `os.popen` 등 외부 프로세스를 실행하는 함수가 발견되지 않았습니다. 일치합니다. * `env_vars: []`로 선언되었으며, 코드에서 `os.getenv`나 `os.environ`을 통한 환경 변수 접근이 발견되지 않았습니다. 일치합니다. 2. **악의적 목적 코드 여부:** * 데이터 탈취, 시스템 파괴, 난독화 등 악의적인 목적으로 의심될 만한 코드는 발견되지 않았습니다. 파일 시스템 접근은 오직 읽기 전용으로 이루어지며, 사용자 지정 경로에 파일을 쓰거나 삭제하는 등의 위험한 작업은 수행하지 않습니다. * `ast` 모듈을 사용한 Python 코드 분석은 안전하며, JS/TS 코드 분석에 사용된 정규식 또한 텍스트 패턴 매칭에 국한되어 코드 실행 위험이 없습니다. 3. **선언되지 않은 외부 통신 여부:** * 코드 내에서 어떠한 형태의 외부 통신 시도도 발견되지 않았습니다. `network: false` 권한을 철저히 준수합니다. 4. **사용자 데이터 무단 수집/전송 여부:** * 스킬은 `root_path`로 지정된 저장소의 파일 내용을 읽어 분석하지만, 이 데이터를 외부로 전송하지 않고 표준 출력(stdout)을 통해 구조화된 요약 정보(트리 맵, 심볼, 라인 수 등)만 반환합니다. 이는 `stdin_stdout` 인터페이스의 예상된 동작이며, 무단 수집/전송으로 볼 수 없습니다. 5. **코드 품질 및 목적 일치 여부:** * 코드는 `lib` 디렉토리 아래 기능별로 모듈화되어 있으며, 가독성이 높고 주석 및 타입 힌트가 잘 작성되어 있습니다. * 파일 시스템 탐색 시 `.git` 디렉토리를 명시적으로 제외하고, `.gitignore` 파일을 파싱하여 적용하는 등 효율성과 정확성을 위한 로직이 포함되어 있습니다. * `ast.parse` 과정에서 발생할 수 있는 `SyntaxError` 등의 예외를 처리하여 견고성을 확보했습니다. * 토큰 추정 로직은 명시적으로 '휴리스틱'임을 밝히고 있으며, LLM 컨텍스트 관리를 위한 근사치 계산에 적합합니다. * 스킬의 메타데이터에 명시된 '코드 저장소 구조 분석'이라는 목적에 충실하며, 이를 안전하고 효율적으로 수행하도록 설계되었습니다. 정적 분석 결과의 `status: caution`은 파일 시스템 접근 권한(`filesystem: true`)이 필요한 스킬에 대한 일반적인 경고로 보이며, `red_flags_found` 등의 구체적인 위험 요소는 발견되지 않았습니다. 따라서 이 스킬은 안전하다고 판단됩니다.

Version History

Version USK v3 Vetting Status Packaged At Downloads Changelog
v1.0.0 approved 2026-06-04 ⬇ 0
v1.0.0 approved 2026-06-04 ⬇ 0

Examples 7

Representative input/output examples for this skill. Agents can use these to understand how to invoke the skill and what output to expect.

small_python_project
# python# basic# entry_points

Map a small Python project — get tree, symbols, and entry points.

📥 Input
{
  "include_symbols": true,
  "max_tokens": 2000,
  "root_path": "/home/user/myapp"
}
📤 Output
{
  "entry_points": [
    "src/main.py",
    "README.md",
    "pyproject.toml"
  ],
  "root": "/home/user/myapp",
  "summary": {
    "estimated_tokens": 1240,
    "excluded_by_gitignore": 2,
    "included_files": 6,
    "languages": {
      "md": 1,
      "py": 4,
      "toml": 1
    },
    "total_files": 8
  },
  "tree": {
    "README.md": {
      "lines": 45,
      "symbols": []
    },
    "pyproject.toml": {
      "lines": 28,
      "symbols": []
    },
    "src/": {
      "main.py": {
        "lines": 142,
        "symbols": [
          "main",
          "Config",
          "load_config"
        ]
      },
      "utils/": {
        "parser.py": {
          "lines": 67,
          "symbols": [
            "parse_yaml",
            "parse_json"
          ]
        }
      }
    }
  }
}
large_monorepo_token_limit
# monorepo# token-limit# pruning

Analyze a large monorepo with a tight token budget — priority files are selected first, then depth-first pruning fills remaining budget.

📥 Input
{
  "max_tokens": 3000,
  "priority_files": [
    "README*",
    "package.json",
    "pyproject.toml",
    "main.*",
    "app.*",
    "index.*"
  ],
  "respect_gitignore": true,
  "root_path": "/srv/monorepo"
}
📤 Output
{
  "entry_points": [
    "README.md",
    "package.json",
    "packages/api/src/index.ts"
  ],
  "root": "/srv/monorepo",
  "summary": {
    "estimated_tokens": 2987,
    "excluded_by_gitignore": 94,
    "included_files": 18,
    "languages": {
      "json": 3,
      "md": 1,
      "ts": 10,
      "tsx": 4
    },
    "total_files": 312
  },
  "tree": {
    "README.md": {
      "lines": 120,
      "symbols": []
    },
    "package.json": {
      "lines": 55,
      "symbols": []
    },
    "packages/": {
      "api/": {
        "src/": {
          "index.ts": {
            "lines": 88,
            "symbols": [
              "createApp",
              "router"
            ]
          }
        }
      },
      "web/": {
        "src/": {
          "App.tsx": {
            "lines": 201,
            "symbols": [
              "App",
              "useAuth"
            ]
          }
        }
      }
    }
  }
}
js_ts_project_package_json
# typescript# javascript# exports

Map a JavaScript/TypeScript project — exports from index.ts, package.json entry field recognized as entry point.

📥 Input
{
  "include_symbols": true,
  "language_filter": [
    "ts",
    "tsx",
    "js",
    "json"
  ],
  "max_tokens": 4000,
  "root_path": "/home/user/ts-sdk"
}
📤 Output
{
  "entry_points": [
    "src/index.ts",
    "package.json"
  ],
  "root": "/home/user/ts-sdk",
  "summary": {
    "estimated_tokens": 1876,
    "excluded_by_gitignore": 0,
    "included_files": 19,
    "languages": {
      "json": 2,
      "ts": 5
    },
    "total_files": 19
  },
  "tree": {
    "package.json": {
      "lines": 42,
      "symbols": []
    },
    "src/": {
      "index.ts": {
        "lines": 210,
        "symbols": [
          "fetchData",
          "APIClient",
          "DEFAULT_OPTS"
        ]
      },
      "types.ts": {
        "lines": 64,
        "symbols": [
          "RequestOptions",
          "ResponseSchema"
        ]
      },
      "utils/": {
        "retry.ts": {
          "lines": 89,
          "symbols": [
            "withRetry",
            "BackoffStrategy"
          ]
        }
      }
    }
  }
}
gitignore_applied
# gitignore# node_modules# venv

Verify that node_modules, __pycache__, and .venv are excluded when respect_gitignore=true.

📥 Input
{
  "max_tokens": 4000,
  "respect_gitignore": true,
  "root_path": "/home/user/webapp"
}
📤 Output
{
  "entry_points": [
    "app.py",
    "requirements.txt"
  ],
  "root": "/home/user/webapp",
  "summary": {
    "estimated_tokens": 892,
    "excluded_by_gitignore": 1847,
    "included_files": 7,
    "languages": {
      "css": 1,
      "html": 2,
      "py": 3,
      "txt": 1
    },
    "total_files": 7
  },
  "tree": {
    "app.py": {
      "lines": 95,
      "symbols": [
        "create_app",
        "db",
        "login_manager"
      ]
    },
    "requirements.txt": {
      "lines": 18,
      "symbols": []
    },
    "static/": {
      "main.css": {
        "lines": 340,
        "symbols": []
      }
    }
  }
}
language_filter_python_only
# language_filter# python_only

Use language_filter to include only .py files in a mixed-language project.

📥 Input
{
  "include_symbols": true,
  "language_filter": [
    "py"
  ],
  "max_tokens": 4000,
  "root_path": "/home/user/mixed-project"
}
📤 Output
{
  "entry_points": [],
  "root": "/home/user/mixed-project",
  "summary": {
    "estimated_tokens": 620,
    "excluded_by_gitignore": 0,
    "included_files": 4,
    "languages": {
      "py": 4
    },
    "total_files": 4
  },
  "tree": {
    "src/": {
      "core.py": {
        "lines": 320,
        "symbols": [
          "Engine",
          "run",
          "stop"
        ]
      },
      "helpers.py": {
        "lines": 78,
        "symbols": [
          "retry",
          "flatten"
        ]
      }
    },
    "tests/": {
      "test_core.py": {
        "lines": 112,
        "symbols": [
          "TestEngine",
          "test_run_basic"
        ]
      }
    }
  }
}
empty_directory_error
# error# edge_case# empty

Passing an empty directory returns a structured EMPTY_DIRECTORY error.

📥 Input
{
  "root_path": "/tmp/empty-dir"
}
📤 Output
{
  "error": {
    "code": "EMPTY_DIRECTORY",
    "message": "No files found in \u0027/tmp/empty-dir\u0027. The directory appears to be empty."
  }
}
path_not_found_error
# error# edge_case# invalid_path

Passing a non-existent path returns a PATH_NOT_FOUND error.

📥 Input
{
  "root_path": "/nonexistent/path/to/repo"
}
📤 Output
{
  "error": {
    "code": "PATH_NOT_FOUND",
    "message": "Path \u0027/nonexistent/path/to/repo\u0027 does not exist."
  }
}

All examples are also available via the agent API: /v1/agent/skills/c47c904c-8596-4810-a843-523ab764de34/schema

Reviews & Ratings

No reviews yet. Be the first to leave one!

✍️ Write a Review