Qualifier
Deterministic quality attestations for software artifacts.
Qualifier records structured quality signals against code artifacts and computes aggregate scores that propagate through dependency graphs. Everything is stored in VCS-friendly JSONL files that sit alongside your source code.
Quick Start
# Install
# Initialize in your repo
# Record a quality concern
# View scores
# Show details for one artifact
# CI gate (exits non-zero if any artifact is below threshold)
Core Concepts
Attestations are immutable quality signals: pass, fail, blocker, concern, praise, suggestion, waiver. Each carries a score delta (-100 to +100) and is content-addressed via BLAKE3. Attestations are append-only — updates use supersession chains rather than mutation.
Raw score is the clamped sum of active (non-superseded) attestation scores for an artifact, bounded to [-100, 100].
Effective score is the minimum of an artifact's raw score and the effective scores of all its dependencies. A low-quality dependency pulls down everything that depends on it.
Compaction prunes superseded attestations or collapses history into epoch attestations, preserving scores while reducing file size.
.qual files are JSONL files containing attestations. The recommended layout
is one .qual file per directory. See SPEC.md for layout options
and trade-offs.
CLI Commands
| Command | Description |
|---|---|
qualifier attest <artifact> |
Record an attestation |
qualifier show <artifact> |
Show attestations and scores for an artifact |
qualifier score |
Display scores for all qualified artifacts |
qualifier ls |
List artifacts, filterable by score or kind |
qualifier check |
CI gate: exit non-zero if scores below threshold |
qualifier compact <artifact> |
Prune or snapshot a .qual file |
qualifier graph |
Visualize the dependency graph |
qualifier blame <artifact> |
VCS attribution for a .qual file |
qualifier init |
Initialize qualifier in a repository |
All read commands support --format json for machine-readable output.
Example Workflow
# Code review finds an issue
# Developer fixes it and supersedes the blocker
# CI verifies the repo is healthy
# Periodically compact history
Agent Integration
Qualifier is built for both humans and coding agents:
--format jsononscore,show, andlsfor structured output--stdinbatch mode reads JSONL attestations for bulk qualificationsuggested_fixfield carries actionable remediation advice--graphflag accepts dependency graphs from build tools (Bazel, etc.)
Configuration
Layered configuration (highest priority first):
- CLI flags
- Environment variables (
QUALIFIER_GRAPH,QUALIFIER_AUTHOR) - Project config (
.qualifier.toml) - User config (
~/.config/qualifier/config.toml) - Built-in defaults
Specification
See SPEC.md for the full format specification, scoring algorithm, and design rationale.
License
MIT OR Apache-2.0