Structural codebase analysis — no parsers, no config, any language
Project description
quale — structural codebase analysis
Reads code as text, no ASTs, no config. Answers structural questions about any codebase.
Useless on day zero. After ~1 commit, signal builds.
What it does
Every model we tested guesses the wrong test file on a plain prompt. With quale, every model picks the right one on the first try. 900+ trials, 12 repos, 7 model families.
The blind spot is structural, not semantic: no model knows your directory layout because that's not in training data.
Quickstart
quale edit-context --files src/spool.ts --task "change upload" --format tool
quale verify-packet --files src/spool.ts --task "change upload" --format tool
quale guard --task "change upload"
For an agent
Put this in AGENTS.md or an instruction file:
Before editing, run:
quale edit-context --files $FILE --task "$TASK" --format tool
The tool emits structured JSON. The agent reads it, picks the right test file, and stays in scope. Measured: 75% verify hit, zero sprawl (vs 10-20% verify, 0.4-0.65 sprawl without).
For a developer
quale edit-context --files src/spool.ts --task "..."
quale edit-context --diff HEAD~1
quale ci-report origin/main HEAD --summary
quale inspect .
For CI
quale ci-report origin/main HEAD --fail-on-blast-tier high
quale ci-report origin/main HEAD --fail-on-mirror-gap 0.70
Exit codes: 0 = pass, 1 = error, 2 = blast gate, 3 = stable anchor gate.
Cross-model verification
| Model | Baseline | With quale |
|---|---|---|
| Qwen 235B | wrong path | correct |
| Gemma 4 31B | wrong dir | correct |
| Nemotron 30B | wrong + 277 tok | right + 112 tok |
| Mistral 24B | wrong dir | correct |
| Claude Opus 4 | src/spool.test.ts | tests/spool.test.ts |
| Gemma 4B (local CPU) | blank JSON | correct |
Every model makes the same src/foo.test.ts error. quale corrects it.
What it is not
Linter, coverage tool, dead-code detector, security policy. All output is report-only. Verification accuracy peaks around 80% -- when the candidate set lacks the right test file, quale says so rather than guessing.
How it works
Three primitives, same pipeline for every language:
- Segmenter: split file content on delimiters
- Vocabulary: collect unique phrases per file
- Index: measure co-occurrence, overlap, and history
Deterministic. Same input, same output, every time.
Further reading
- docs/COMMANDS.md -- full command reference
- docs/EFFECT_HARNESS.md -- harness methodology and results
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file quale-0.7.0.dev0.tar.gz.
File metadata
- Download URL: quale-0.7.0.dev0.tar.gz
- Upload date:
- Size: 172.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
739fd5714a6d6da7bfa605084538eb0b338836be301507f1846b89238d3e5e00
|
|
| MD5 |
313ea23e35363f1bc1b179a65d847e05
|
|
| BLAKE2b-256 |
5c914ac9b2296873a176acef8eafb0078df876457720e3c56c0ce62221bcb1f2
|
File details
Details for the file quale-0.7.0.dev0-py3-none-any.whl.
File metadata
- Download URL: quale-0.7.0.dev0-py3-none-any.whl
- Upload date:
- Size: 158.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d8d6136e54587e4f7dc0df57d067c88e3ade6963d1dd0dfc02f51f83a87fa3d
|
|
| MD5 |
59338db53a322e9edb4a400908042737
|
|
| BLAKE2b-256 |
a3e8c29b214d562da06f5e277f2d0fe474fa22445293c7b41fa5297e2f9141be
|