Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
depdog
command
|
|
|
internal
|
|
|
cli
Package cli assembles depdog's command tree.
|
Package cli assembles depdog's command tree. |
|
config
Package config loads depdog.yaml and compiles it into a core.RuleSet.
|
Package config loads depdog.yaml and compiles it into a core.RuleSet. |
|
core
Package core holds depdog's language-agnostic domain model: the import graph produced by language adapters, the rule set compiled from the project config, and the evaluation that turns both into violations.
|
Package core holds depdog's language-agnostic domain model: the import graph produced by language adapters, the rule set compiled from the project config, and the evaluation that turns both into violations. |
|
lang
Package lang defines the contract between depdog's core and language-specific analyzers.
|
Package lang defines the contract between depdog's core and language-specific analyzers. |
|
lang/elm
Package elm is the Elm language adapter: it statically scans a project's .elm source files for their `module`/`port module`/`effect module` declaration and `import` statements, resolves each import against the modules the project itself ships under its elm.json source-directories, and builds the same directory-keyed *core.Graph the Go, TypeScript, Python, Rust, Java, Kotlin and Scala adapters produce.
|
Package elm is the Elm language adapter: it statically scans a project's .elm source files for their `module`/`port module`/`effect module` declaration and `import` statements, resolves each import against the modules the project itself ships under its elm.json source-directories, and builds the same directory-keyed *core.Graph the Go, TypeScript, Python, Rust, Java, Kotlin and Scala adapters produce. |
|
lang/golang
Package golang is the Go language adapter: it loads a module's package graph via go/packages metadata (no type-checking) and resolves import positions with a lightweight parse of the import declarations.
|
Package golang is the Go language adapter: it loads a module's package graph via go/packages metadata (no type-checking) and resolves import positions with a lightweight parse of the import declarations. |
|
lang/java
Package java is the Java language adapter: it statically scans a project's .java source files for their `package` declaration and `import` statements (import a.b.C;, import static a.b.C.m;, and on-demand import a.b.*;), resolves each import against the set of packages the project itself declares, and builds the same directory-keyed *core.Graph the Go, TypeScript, Python and Rust adapters produce.
|
Package java is the Java language adapter: it statically scans a project's .java source files for their `package` declaration and `import` statements (import a.b.C;, import static a.b.C.m;, and on-demand import a.b.*;), resolves each import against the set of packages the project itself declares, and builds the same directory-keyed *core.Graph the Go, TypeScript, Python and Rust adapters produce. |
|
lang/kotlin
Package kotlin is the Kotlin language adapter: it statically scans a project's .kt (and .kts) source files for their `package` declaration and `import` statements (import a.b.C, import a.b.*, and import a.b.C as D), resolves each import against the set of packages the project itself declares, and builds the same directory-keyed *core.Graph the Go, TypeScript, Python, Rust and Java adapters produce.
|
Package kotlin is the Kotlin language adapter: it statically scans a project's .kt (and .kts) source files for their `package` declaration and `import` statements (import a.b.C, import a.b.*, and import a.b.C as D), resolves each import against the set of packages the project itself declares, and builds the same directory-keyed *core.Graph the Go, TypeScript, Python, Rust and Java adapters produce. |
|
lang/python
Package python is the Python language adapter: it statically scans a project's .py/.pyi source files for import statements (import a.b, import a.b as c, from a.b import x, and relative from .
|
Package python is the Python language adapter: it statically scans a project's .py/.pyi source files for import statements (import a.b, import a.b as c, from a.b import x, and relative from . |
|
lang/ruby
Package ruby is the Ruby language adapter: it statically scans a project's .rb source files for require statements (require "x", require_relative "../x", and autoload :C, "x"), resolves them against the on-disk file layout, and builds the same directory-keyed *core.Graph the Go and TypeScript adapters produce.
|
Package ruby is the Ruby language adapter: it statically scans a project's .rb source files for require statements (require "x", require_relative "../x", and autoload :C, "x"), resolves them against the on-disk file layout, and builds the same directory-keyed *core.Graph the Go and TypeScript adapters produce. |
|
lang/rust
Package rust is the Rust language adapter: it statically scans a crate's .rs source files for the import surfaces Rust exposes (use crate::a::b;, use self::/super::.., use ext_crate::.., grouped use a::{b, c};, pub use .., mod name;, and extern crate x;), resolves them against the on-disk module layout under the crate's src tree, and builds the same directory-keyed *core.Graph the Go, TypeScript and Python adapters produce.
|
Package rust is the Rust language adapter: it statically scans a crate's .rs source files for the import surfaces Rust exposes (use crate::a::b;, use self::/super::.., use ext_crate::.., grouped use a::{b, c};, pub use .., mod name;, and extern crate x;), resolves them against the on-disk module layout under the crate's src tree, and builds the same directory-keyed *core.Graph the Go, TypeScript and Python adapters produce. |
|
lang/scala
Package scala is the Scala language adapter: it statically scans a project's .scala source files for their leading `package` declaration and `import` statements (import a.b.C, import a.b.{C, D}, import a.b.{C => E}, import a.b._, import a.b.*, and import a.b.given), resolves each import against the set of packages the project itself declares, and builds the same directory-keyed *core.Graph the Go, TypeScript, Python, Rust, Java and Kotlin adapters produce.
|
Package scala is the Scala language adapter: it statically scans a project's .scala source files for their leading `package` declaration and `import` statements (import a.b.C, import a.b.{C, D}, import a.b.{C => E}, import a.b._, import a.b.*, and import a.b.given), resolves each import against the set of packages the project itself declares, and builds the same directory-keyed *core.Graph the Go, TypeScript, Python, Rust, Java and Kotlin adapters produce. |
|
lang/typescript
Package typescript is the TypeScript/JavaScript language adapter: it statically scans a project's source files for module specifiers (import, export-from, dynamic import, and require), resolves them against on-disk files and tsconfig path aliases, and builds the same directory-keyed *core.Graph the Go adapter produces.
|
Package typescript is the TypeScript/JavaScript language adapter: it statically scans a project's source files for module specifiers (import, export-from, dynamic import, and require), resolves them against on-disk files and tsconfig path aliases, and builds the same directory-keyed *core.Graph the Go adapter produces. |
|
lsp
Package lsp implements the slice of the Language Server Protocol depdog needs to surface architecture violations as in-editor diagnostics: a hand-rolled JSON-RPC 2.0 codec over the LSP base protocol (Content-Length framing) and a stdio server around an injected check function.
|
Package lsp implements the slice of the Language Server Protocol depdog needs to surface architecture violations as in-editor diagnostics: a hand-rolled JSON-RPC 2.0 codec over the LSP base protocol (Content-Length framing) and a stdio server around an injected check function. |
|
mcp
Package mcp implements the slice of the Model Context Protocol depdog needs to let an MCP-capable agent (Claude, Cursor, …) consult the architecture in the loop: a hand-rolled JSON-RPC 2.0 codec over the MCP base protocol (Content-Length framing, mirroring internal/lsp) and a stdio server around an injected read-only handler.
|
Package mcp implements the slice of the Model Context Protocol depdog needs to let an MCP-capable agent (Claude, Cursor, …) consult the architecture in the loop: a hand-rolled JSON-RPC 2.0 codec over the MCP base protocol (Content-Length framing, mirroring internal/lsp) and a stdio server around an injected read-only handler. |
|
report
Package report renders a core.Result for humans and machines.
|
Package report renders a core.Result for humans and machines. |
|
tui
Package tui is depdog's Bubble Tea interface: an interactive view over a core.Result.
|
Package tui is depdog's Bubble Tea interface: an interactive view over a core.Result. |
|
wizard
Package wizard turns a repository's real layout and a chosen architecture preset into a depdog.yaml.
|
Package wizard turns a repository's real layout and a chosen architecture preset into a depdog.yaml. |
Click to show internal directories.
Click to hide internal directories.