See the problem. Understand the cause.
Dextora helps developers diagnose project setup, dependency, and environment issues through a focused command-line workflow.
Precise Rule Identification
Maps directory states to verified diagnostic codes (PY001, ENV001, GIT003) with exact file evidence.
Root-Cause Correlation
Separates primary causal events (e.g. merge conflict markers) from cascading symptoms (e.g. invalid TOML syntax in pyproject.toml).
Deterministic Remediation
Emits tailored shell commands customized for your package manager (pip, poetry, pipenv, npm, pnpm, bun) without altering files.
Unclear symptoms vs. structured diagnostic findings.
Standard linters check code syntax inside individual files, but remain blind to environment drift, broken interpreter symlinks, and lockfile collisions. Dextora brings order to the workspace.
Mysterious ModuleNotFoundError on fresh clone
Often leads to hours of trial-and-error stackoverflow searches and redundant reinstalls.
Runtime 500 error on local test run
Often leads to hours of trial-and-error stackoverflow searches and redundant reinstalls.
Cascading TOMLDecodeError in pyproject.toml
Often leads to hours of trial-and-error stackoverflow searches and redundant reinstalls.
Accidental credential commit risk in Git index
Often leads to hours of trial-and-error stackoverflow searches and redundant reinstalls.
Virtualenv interpreter symlink points to deleted Python path (PY002)
Re-binds runtime or specifies python3.11 -m venv .venvNew keys declared in .env.example are missing from local .env (ENV002)
Identifies exact missing keys without reading secret valuesUnmerged Git conflict markers (<<<<<<< HEAD) inside manifest (GIT005)
Isolates git conflict as the true cause of syntax parser failure.env exists locally but was omitted from .gitignore file (GIT002 / GIT003)
git rm --cached .env && echo .env >> .gitignoreEvery diagnosis is computed locally in under 45ms. Dextora never modifies files during doctor scans, never sends telemetry, and never parses confidential credentials.
Six comprehensive diagnostic domains.
Every check in Dextora runs locally with deterministic rules. No hallucinated warnings, no remote registry calls.
Python Environment Verification
Discovers standard virtual environments (.venv, venv, env), verifies interpreter binary presence, checks site-packages status, and validates requires-python version constraints against active runtimes.
Dependency & Lockfile Diagnostics
Detects orphaned lockfiles (poetry.lock without pyproject.toml), conflicting package managers (Pipenv + Poetry, pnpm + npm), duplicate packages, and unpinned dependencies in requirements.txt.
Secret Redaction & Environment Privacy
Compares .env keys against .env.example templates. Secret values are never loaded into memory, displayed in terminal evidence, or included in JSON serialization.
Version Control Integrity Checks
Detects unmerged Git conflict markers (<<<<<<<), verifies .gitignore coverage, and alerts immediately if sensitive files (.env) are tracked in the Git index.
Multi-Framework Classification
Classifies Django, FastAPI, Flask, Next.js, React, Nuxt, Vue, SvelteKit, Angular, Astro, and composite fullstack architectures from declared dependencies and manifests.
Read-Only Non-Destructive Safety
Doctor diagnostics never mutate scanned files or execute arbitrary project scripts. Automatically skips heavyweight directories (.git, node_modules, .venv, caches).
How scattered symptoms become an actionable diagnosis.
In real codebases, a single root failure triggers cascades of misleading warnings. Dextora maps causal relationships between diagnostic codes so you fix the source, not just the noise.
Unresolved Git merge conflict markers (<<<<<<< HEAD)
The TOML syntax error and framework classification failure are direct downstream symptoms of unresolved git conflict markers.
Resolve git conflict markers manually in pyproject.toml before running dependency commands.Deterministic terminal reporting.
Dextora operates locally on your repository with zero background network queries. Below is a faithful demonstration of its terminal reporting and exit codes.
+------------------------------------------------+| Dextora v0.1.0 - Developer Diagnostics Toolkit || Target: D:\Projects\ecommerce-api || Project Type: Fullstack (FastAPI + Next.js) || Checks Run: 8 |+------------------------------------------------+ >>> WARNINGS (2)----------------------------------------[PY001] No Python virtual environment detected Why: Python projects should use an isolated virtual environment to prevent dependency pollution. Evidence: Looked for: .venv, venv, env in project root. Fix: Create a virtual environment with 'python -m venv .venv' and activate it. Command: python -m venv .venv [ENV001] Environment template '.env.example' present but '.env' is missing (.env.example) Why: The project provides '.env.example' as an environment template, but no local '.env' file was found. Evidence: Template: .env.example Fix: Copy '.env.example' to '.env' and fill in the required local configuration values. Command: cp .env.example .env >>> SUCCESSES (2)----------------------------------------[STR002] Project manifest detected (pyproject.toml, package.json) Why: Identified Python and JavaScript project configuration manifests. Evidence: pyproject.toml, package.json Fix: No action required. [JS000] Consistent JavaScript package manager lockfile detected (pnpm-lock.yaml) Why: Single consistent lockfile detected for pnpm package manager. Evidence: pnpm-lock.yaml Fix: No action required. >>> ROOT CAUSE ANALYSIS (1)---------------------------------------- Probable Root Cause: [ENV001] Environment template '.env.example' present but '.env' is missing Secondary Symptoms: Unconfigured database credentials, missing runtime secrets Relationship: New checkout or cloned environment without local initialization Diagnostic Summary Severity Count Errors 0 Warnings 2 Info 0 Successes 2 [!] Scan completed with 2 warning(s). Review the suggestions above.
How Dextora works.
A four-stage deterministic pipeline transforming unorganized codebase anomalies into verified, safe remediations.
Inspect the project
Dextora scans the project root to locate project manifests (pyproject.toml, requirements.txt, package.json), identifies virtual environment symlinks, and checks version control state without modifying scanned files.
Inspect the project
Dextora scans the project root to locate project manifests (pyproject.toml, requirements.txt, package.json), identifies virtual environment symlinks, and checks version control state without modifying scanned files.
Surface diagnostic findings
Evaluates rules across 6 verified domains: virtual environments (PY), dependency lockfiles (DEP), environment templates (ENV), Git repository state (GIT), JavaScript manifests (JS), and project structure (STR).
Understand the cause
Rather than dumping disconnected errors, Dextora identifies causal relationships. It isolates root triggers (like unresolved Git conflicts) from cascading downstream parser exceptions with confirmed confidence levels.
Review suggested actions
Emits copy-ready shell commands customized for your detected package manager (pip, poetry, pipenv, npm, pnpm, bun) or flags complex migrations that require human architectural review.
Deterministic diagnostic catalogue.
Every finding emitted by Dextora maps to a distinct identifier with an explanation, evidence rule, and suggested action.
| Code | Severity | Category | Description | Remediation Action |
|---|---|---|---|---|
| STR000 | ERROR | Structure | Target path does not existThe specified target directory does not exist or is not accessible. | Verify the directory path and ensure appropriate read permissions. |
| STR001 | WARN | Structure | Scanned directory is emptyThe targeted project directory contains zero files or subdirectories. | Initialize a project or verify that you targeted the intended workspace root. |
| STR002 | OK | Structure | Standard project manifest detectedIdentified valid project configuration manifests (e.g. pyproject.toml, package.json). | No action required. |
| STR003 | INFO | Structure | Generic directory without standard manifestDirectory contains files but lacks recognized project manifests. | Run 'dextora init' to initialize project metadata. |
| PY000 | OK | Python | Active virtual environment locatedStandard isolated virtual environment discovered and verified. | No action required. |
| PY001 | WARN | Python | No Python virtual environment detectedPython projects should use an isolated virtual environment to prevent dependency pollution. | python -m venv .venv && source .venv/bin/activate |
| PY002 | WARN | Python | Incomplete or broken virtual environmentVirtual environment directory exists but lacks interpreter binary or pyvenv.cfg. | Recreate the virtual environment using 'python -m venv --clear .venv' |
| PY003 | WARN | Python | Python version mismatch with project requirementsRunning interpreter version does not satisfy the 'requires-python' constraint declared in pyproject.toml. | Switch to Python >= 3.11 via pyenv or reinstall virtual environment. |
| PY004 | INFO | Python | Virtual environment site-packages appears emptyVirtual environment exists and is active, but dependencies have not been installed. | pip install -r requirements.txt or poetry install |
| DEP001 | WARN | Dependencies | Pipfile found without corresponding Pipfile.lockUnpinned dependency graph can cause non-deterministic builds across developer machines. | pipenv lock |
| DEP002 | ERROR | Dependencies | Orphaned poetry.lock without pyproject.tomlLockfile exists without the canonical declaration manifest that generated it. | Restore pyproject.toml or remove stale poetry.lock |
| DEP004 | WARN | Dependencies | Conflicting dependency managers detectedSimultaneous presence of Pipenv and Poetry causes ambiguous dependency resolution. | Standardize on either Poetry or Pipenv and remove secondary artifacts. |
| DEP005 | INFO | Dependencies | Multiple dependency definitions presentBoth Pipfile and requirements.txt exist in project root. | Consolidate into single source of truth or document purpose of secondary list. |
| DEP006 | ERROR | Dependencies | Malformed pyproject.toml TOML syntaxSyntax error prevented parsing project configuration table. | Correct syntax error in pyproject.toml. |
| DEP007 | WARN | Dependencies | Malformed requirement or duplicate packagesrequirements.txt contains duplicate declarations or conflicting version specifiers. | Remove duplicate requirement line from requirements.txt |
| DEP008 | INFO | Dependencies | Unpinned dependencies detectedPackages in requirements.txt lack strict version pins, creating potential drift. | Pin package versions (e.g. fastapi==0.115.0) |
| DEP009 | WARN | Dependencies | pyproject.toml lacks build-system or project tableModern PEP 517/621 packaging guidelines require [build-system] and [project] tables. | Add [build-system] with requires = ['setuptools>=61.0'] and build-backend. |
| ENV000 | OK | Environment | .env variables fully synchronized with templateAll keys declared in .env.example are safely present in local .env without inspecting secret values. | No action required. |
| ENV001 | WARN | Environment | Environment template present but .env is missingThe project provides '.env.example' as a template, but no local '.env' file was found. | cp .env.example .env && # populate local variables |
| ENV002 | WARN | Environment | Missing environment variables declared in templateSpecific configuration keys declared in .env.example are absent from .env. | Add missing keys to your local .env file. |
| ENV003 | WARN | Environment | Malformed .dextora.toml syntaxSyntax error in project-level Dextora configuration file. | Review .dextora.toml against standard schema. |
| ENV004 | OK | Environment | Valid .dextora.toml configuration loadedProject configuration file loaded with valid rules and thresholds. | No action required. |
| GIT000 | INFO | Git | Target directory is not a Git repositoryNo .git repository directory discovered in workspace hierarchy. | git init |
| GIT001 | WARN | Git | No .gitignore file found in Git repositoryProjects without .gitignore risk accidentally committing virtual environments, dependencies, or secrets. | Create .gitignore and add .venv/, node_modules/, and .env |
| GIT002 | WARN | Git | .env exists but is not listed in .gitignoreUnprotected .env file risks being accidentally committed to version control. | echo '.env' >> .gitignore |
| GIT003 | ERROR | Git | Sensitive file tracked in Git indexA sensitive configuration or credential file is actively tracked in git stage or tree. | git rm --cached .env && git commit -m 'Untrack sensitive .env file' |
| GIT004 | INFO | Git | Git author identity not configuredGit user.name or user.email is missing from repository or global config. | git config user.name 'Dev Name' && git config user.email 'dev@domain.com' |
| GIT005 | ERROR | Git | Unresolved Git merge conflict markers detectedFile contains unmerged merge conflict markers ('<<<<<<<', '=======', '>>>>>>>'). | Resolve conflict markers manually before building or running tests. |
| JS000 | OK | JavaScript | Consistent JavaScript lockfile detectedSingle, valid package manager lockfile corresponds to package.json. | No action required. |
| JS001 | ERROR | JavaScript | Malformed package.json syntaxpackage.json contains invalid JSON syntax and cannot be parsed. | Fix trailing comma or syntax error in package.json. |
| JS002 | WARN | JavaScript | Multiple conflicting JavaScript lockfiles detectedSimultaneous existence of package-lock.json and yarn.lock or pnpm-lock.yaml creates install confusion. | Delete unused lockfile and stick to one package manager. |
| JS003 | INFO | JavaScript | package.json has dependencies but no lockfile foundDependencies declared but lockfile has not been generated. | Run 'npm install' or 'pnpm install' to generate a reproducible lockfile. |
From zero to verified in seconds.
Standard Python packaging. No daemons, no background workers, no account creation. Just run and inspect.
Install the standalone Python executable
Requires Python >= 3.11. Installs the zero-overhead dextora binary directly into your environment path.
Engineered for safe execution in any codebase.
Dextora operates locally under strict non-destructive constraints. Run it across untrusted PRs, multi-tenant monorepos, and local workstations without side effects.
Secret Key Privacy by Design
Compares declared variable names between .env and template files (.env.example, .env.sample). Secret values are never loaded into memory, displayed in terminal outputs, or included in JSON findings.
100% Read-Only Diagnostics
The doctor command never writes to or deletes scanned files. File system modifications are strictly restricted to dextora init, which creates a local .dextora.toml and refuses to overwrite existing files without --force.
Zero Project Code Execution
Dextora never imports or executes scanned project code, setup.py scripts, npm postinstall hooks, or recommended remediation commands. Diagnostics are purely static and isolated.
Filesystem Boundary Discipline
Diagnostic sweeps do not traverse symlinks leading outside the target directory root. Automatically excludes heavyweight directories (.git, node_modules, .venv, caches, build artifacts).
Dextora performs static offline analysis of declared manifests, lockfiles, and environment templates. It does not phone home, does not query external registries, and does not require cloud credentials.
Built transparently for the Python developer community.
Dextora is free, community-driven software published under the MIT license. Inspect the Python scanner source, propose new framework rules, add diagnostic tests, or contribute enhancements.
Technical answers to common questions.
Everything you need to know about compatibility, diagnostic mechanics, and CI/CD integration.
Linters inspect syntax and AST style inside individual Python files. Dextora is a workspace & environment diagnostic engine: it validates virtualenv interpreter links, detects conflicting package manager lockfiles (e.g. poetry vs requirements.txt), inspects missing keys across .env templates, verifies git merge conflict remnants in config files, and classifies project framework setups.