codespaces

Build and query architecture-aware dependency graphs and belief maps for multi-language codebases.

53|6|Updated Jun 20, 2026
One-click install
npx skills add https://github.com/diskd-ai/codespaces --skill codespaces-diskd-ai
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: codespaces
Source: https://github.com/diskd-ai/codespaces
Command: npx skills add https://github.com/diskd-ai/codespaces --skill codespaces-diskd-ai

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires PyYAML, tree-sitter, tree-sitter-typescript, tree-sitter-rust, tree-sitter-c-sharp, tree-sitter-java, tree-sitter-go, tree-sitter-ruby, and includes scripts (resource) and references (resource) components.

What problem does it solve? Large codebases are hard to navigate: finding where a feature lives, which modules depend on it, and what breaks when you change it usually requires reading many irrelevant files. This Skill turns a repository into a queryable graph of modules, entities, imports, references, and call relationships so you read only the files that matter. ## Core Features & Use Cases - Architecture map generation: Build a .belief_map.sexp graph for Python, TypeScript/TSX, Rust, C#, Java, Go, Ruby/Rails, and Free Pascal/Lazarus projects, with optional LSP-enriched call edges. - Dependency and impact analysis: Query dependencies, reverse dependencies (blast radius), call chains, callers, architecture-layer violations, and the minimal boundary files for a change. - Infrastructure topology: Extract service relationships from Kustomize, Helm, and Terraform files and merge them into the graph. - Use Case: Before fixing a bug in a monorepo, run quick "file upload" to locate the owning module, see its dependencies and blast radius, and read only the 2-3 boundary files instead of scanning whole directories. ## Quick Start Ask your agent to use the Codespaces skill to build the belief map for your repository, then find where a feature is implemented, analyze that module, and list the boundary files needed for the change.

Frequently Asked Questions about codespaces

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find which files will be affected by a code change?

Build the belief map with build_belief_map.py, then run `belief_search.py rdeps <module-id> 2` to see reverse dependencies (blast radius) or `boundary <module-id>` to list the minimal files to read. The `analyze` command combines dependencies, reverse dependencies, layers, and violations in one output.

What languages does this code search tool support?

It indexes Python, TypeScript, TSX, Rust, C#, Java, Go, Ruby, Ruby on Rails, Free Pascal, and Lazarus. Python uses the standard library AST; other languages use tree-sitter parsers installed per language only when detected in the target repository.

Does it work with Ruby on Rails without booting the app?

Yes. It builds a project-local constant index following Zeitwerk naming rules, resolving concerns, associations, callbacks, jobs, mailers, and impacted specs statically. Ambiguous or polymorphic associations remain unlinked rather than producing guessed edges.

Why does the build fail with missing parser dependency errors?

The builder loads tree-sitter grammars only for languages detected in your repository and stops before publishing if one is missing or has the wrong version. It prints the exact install command, such as `python3 -m pip install -r requirements/typescript.txt`; run it and rebuild.

Can I trace call chains between two functions?

Yes. Use `find_callchain <source-fn> <target-fn> [depth]` to trace a call path, `find_callers` for incoming calls, and `find_calls` for outgoing calls. For precise call-site data, rebuild the map with the `--lsp` flag when the relevant language server is installed.

What are the limitations of static architecture analysis?

The default map comes from deterministic static parsing, so generated imports, runtime dependency injection, reflection, and framework behavior not explicit in source may be missed. Optional LSP enrichment adds call hierarchy detail, but dynamic behavior should be verified against the running application.