v0.2.0
[0.2.0] - 2026-08-23
Added
- DAMA six-dimension quality scorecard in
data_profile: completeness, uniqueness, validity, consistency, timeliness, and accuracy (limited declared-schema definition; accuracy is reported undetermined without a declared schema rather than fabricated). The scorecard flows through the profile report, the persisted storage-domain record, and the tool result. - Full-row sha256 content-hash duplicate detection in
data_profile, reporting the duplicate rate plus a bounded sample of 0-based duplicate row indexes (capped byevidenceRowLimit). - Pre-delivery contract validation summary on
data_clean(dedupe before/after row comparison, uniqueness regression, non-null and type regressions) plus a persisted clean before/after profile diff report under the newclean-diffstorage record kind. data_reporttool plusctx.dataQuality.getReport/listReportsquery methods to read persisted reports back byreportKey(path-safe validation, missing records fail loud) or bykind, ordered chronologically.data_cleandryRunparameter: no file written and no report persisted, returning the per-column cleaning plan (incontract.columnDecisions) plus the expectedcontract/diffPreview.- Numeric distribution
count/distinctfields on numeric column profiles. - Config
scorecardWeights(six per-dimension weights, non-negative, equal by default) driving aweightedOverallscorecard total. - Per-column decision trace in the clean contract (
columnDecisions: strategy + affected rows), persisted with the clean report. - File-encoding reporting in
data_profile(encoding: UTF-8 BOM presence and validity; invalid UTF-8 is reported, not fatal). - Built-in industry profile presets (
retail,saas,fund,real-estate,e-commerce,healthcare,logistics,manufacturing,energy) via thedata_profileindustryPresetparameter, feeding the scorecardaccuracydimension; unknown ids fail loud. - Metric reconciliation on
data_verify: optionalexpectations(rowCount/columnSum/columnMean/uniqueCount/nullCount, each withcolumn,expected, optional relativetolerance) reconcile deterministic computed values; a mismatch is a normalpassed: falseverdict with actual/expected/tolerance detail, while invalid metrics, columns, and out-of-range tolerances fail loud. Results flow into the verify report and its persisted record.
Deviations
Documented, deliberate non-goals for this repository (recorded rather than silently omitted):
- Native xlsx — a real Excel parser needs a new dependency (or a sidecar); this repo keeps a zero-dependency parsing contract, so CSV/TSV/JSON/JSONL are the supported dataset formats, now with UTF-8/BOM encoding detection.
- SQL / DuckDB access — database drivers are out of scope for the zero-dependency, in-process TypeScript seam; tabular datasets are files.
qsvas an alternative parser — an external binary violates the no-external-processes contract.- Slot client report panel — a browser report panel needs a client half and bundle changes; the consumption path is covered by the
data_reporttool plus storage-domain persistence instead. - Computer-use fallback collection — macOS-only and brittle; the regular filesystem capability already covers the supported collection path.