Skip to main content

tools-python

Gather Python architecture evidence with import-linter, pydeps, pyright/basedpyright, ruff, deptry, pipdeptree, uv tree, radon/lizard, and vulture. Use when a Python repo needs import contracts, module graphs, layer-boundary checks, type state, complexity hotspots, dead code, or dependency health for modularity and coupling review. NOT for TS/JS (use tools-typescript), Go (use tools-go), exact text discovery (use tools-code-search), or generic structural patterns (use tools-ast-grep).

Quellinformationen

Repository
alexei-led/architect
Letzte Quellaktivität
23. Mai 2026 um 12:32
Erkannte Sprache von SKILL.md
Englisch
Sterne
2
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
tools-python
description
Gather Python architecture evidence with import-linter, pydeps, pyright/basedpyright, ruff, deptry, pipdeptree, uv tree, radon/lizard, and vulture. Use when a Python repo needs import contracts, module graphs, layer-boundary checks, type state, complexity hotspots, dead code, or dependency health for modularity and coupling review. NOT for TS/JS (use tools-typescript), Go (use tools-go), exact text discovery (use tools-code-search), or generic structural patterns (use tools-ast-grep).
# Python tools Dependency, complexity, and quality evidence for Python targets. These cover the import graph, layering contracts, type state, dead code, and dependency hygiene. Evidence dimensions: **dependency**, **structural**, **semantic** (type checkers), and **complexity** hotspots. ## When to use Use when the system map shows `pyproject.toml` / `setup.py` / `requirements`. Pick to the question: layering contracts (import-linter), module graph (pydeps), types (pyright/basedpyright), lint (ruff), dependency hygiene (deptry, pipdeptree, uv tree), complexity/size (radon, lizard), dead code (vulture). Use the results to judge module boundaries, dependency direction, cohesion, and architecture fitness. ## Commands Redirect caches to `$TMPDIR` (`RUFF_CACHE_DIR=$TMPDIR/ruff`). Prefer `uv run`/`uvx` so the target env is untouched. ```sh # Layering / boundary contracts (config in .importlinter or pyproject) uvx --from import-linter lint-imports # Import/module dependency graph (DOT for the system map) uvx pydeps src/pkg --max-bacon 2 --noshow -T dot # Type errors (semantic) uvx pyright # or: uvx basedpyright # Lint (style + many bug classes) RUFF_CACHE_DIR=$TMPDIR/ruff uvx ruff check . # Declared-vs-used dependency mismatches uvx deptry src # Installed dependency tree uvx pipdeptree # or, for a uv project: uv tree # Cyclomatic complexity / maintainability hotspots uvx radon cc -s src # or: uvx lizard src # Dead code (unused functions/vars — confirm before trusting) uvx vulture src ``` ## Evidence output Record: - `dimension`: dependency, structural, semantic, or complexity hotspot. - `source`: Python command, package path, environment/tool runner, and cache location. - `facts`: import contracts, module edges, cycles, type/lint findings, dead-code hypotheses, or clean scope. - `limits`: missing deps, dynamic imports, optional deps, cache failures, or partial package coverage. ## Confidence impact - import-linter contracts and pydeps cycles are direct dependency/boundary evidence: `tools_used`, raises `dependency_graph_health` and `boundary_integrity` confidence. - An existing import-linter contract run in CI is an enforced fitness check — count it toward `architecture_fitness`. A contract you'd recommend is not. - radon/lizard complexity flags cohesion/size hotspots (god modules); pair with the dependency graph before scoring `cohesion_modularity`. - vulture and deptry have false positives (dynamic imports, optional deps) — treat their output as hypotheses to confirm, not settled findings. ## Failure and missing-tool handling - Tool missing and offline → dependency dimension `tools_missing` + install hint; fall back to ast-grep import scans and the code graph, recording reduced coverage. - pyright failing because deps aren't installed → `tools_failed` (env state), not "no type errors." Note the env and cap confidence. - A tool writing a cache into a read-only target fails on I/O, not on findings — redirect the cache and rerun before recording failure. ## When to stop One graph/contract tool plus one type/lint pass answers the structural and semantic questions for a package. Stop once cycles, contracts, types, and obvious hotspots are recorded — don't run radon and lizard and vulture for the same answer. Dynamic-dispatch reachability that static tools can't resolve is a coverage gap: record it rather than guessing. ## Hard rules - Distinguish an enforced import-linter contract (raises fitness) from a recommended one. - vulture/deptry results are hypotheses until confirmed against dynamic usage. - Tool failure from an uninstalled env is `tools_failed`, not clean. - Use the CLIs; do not reimplement graph or type analysis in package code.
Auf GitHub ansehen