Skip to content

Releases: Wake360/wald

0.3.0

Choose a tag to compare

@Wake360 Wake360 released this 10 Jul 06:10
  • CLI: .py input support — wald check analysis.py runs on plain
    scripts (one analysis unit) and percent-format files (# %% code
    cells, # %% [markdown] markdown cells); reported lines are
    file-absolute. Directory arguments still collect only *.ipynb
    pass .py files explicitly. examples/leaky.py ships alongside
    examples/leaky.ipynb.
  • CLI: --keep-going on wald check — continue past unreadable files
    instead of aborting on the first one; each failure is reported to
    stderr, and the run exits 3 if any file failed, even alongside a
    high-severity finding elsewhere that would otherwise exit 2. The
    multi-file TTY summary line gains a , N failed suffix.
  • CLI: wald rules — lists the taxonomy's flaw classes (id, layer,
    severity, definition); --format json for machines.
  • LLM narrative layer: the G2/G3 quality gates never ran — they need
    ANTHROPIC_API_KEY + OPENAI_API_KEY, and the keys never arrived. Per
    the pre-planned termination rule, v1 ships as the static linter; no
    narrative-layer recall/F1 numbers are claimed. The layer remains
    available as an experimental, unvalidated path via --llm-subscription
    (claude/codex CLIs, no API keys) and --llm for key holders; an
    indicative non-gate dev-split run is at
    evals/2026-07-09-llm-eval-dev-subscription-indicative.md.
  • .pre-commit-hooks.yaml: wald hook for notebooks, wald-scripts for
    .py files.
  • New GitHub issue template for false-positive reports
    (.github/ISSUE_TEMPLATE/false_positive.md).
  • Launch post addendum (posts/2026-07-04-i-mutation-tested-statistical-malpractice.md)
    covering the 60-notebook wide dogfood.

0.2.1

Choose a tag to compare

@Wake360 Wake360 released this 07 Jul 15:00

CLI UX: TTY color, recursive directory input, roll-up summary line, and wald check --llm progress. pyright is now a hard CI gate. Temporal-shuffle evasion triage (4 shapes accepted). selection-survivorship-cohort parked for narrative fusion. Golden byte-identity test. Composite GitHub Action (action.yml) emitting SARIF for PR annotations, inputs passed via env to avoid command injection.

No detector behavior change — four static classes still precision 1.00 / recall 1.00 on 192 mutants, 0.0% FP on 83 clean notebooks. Full notes in CHANGELOG.md.

wald 0.2.0

Choose a tag to compare

@Wake360 Wake360 released this 05 Jul 21:17

New static class: leakage-temporal-shuffle — shuffled splits on time-ordered data (default train_test_split or shuffled KFold over lag/rolling features), detected per evaluation sink on that sink's dependency chain. 16 execution-verified mutants at precision 1.00 / recall 1.00; clean false-positive rate 0.0% on the 83-notebook corpus (56 synthetic + 27 real). Adversarial review closed four confirmed false-positive shapes (neighbor-comparison features on score/rank/price-sorted frames) before release; four evasion shapes are documented residual risk. Full numbers: evals/2026-07-05-eval.json.

wald 0.1.0

Choose a tag to compare

@Wake360 Wake360 released this 05 Jul 16:02

First public release.

Static layer: three decided flaw classes (leakage-fit-before-split, testing-multiple-uncorrected, baserate-accuracy-imbalanced) plus a survivorship candidate. Deterministic, key-free, exit-code gated. Measured by a mutation corpus: 176 verified mutants, 0.0% false positives on 75 clean notebooks (27 real, hand-reviewed). SARIF output and agent-gate recipes (Claude Code hook, pre-commit, GitHub Actions) in docs/agent-gate.md.

The LLM narrative layer ships built but unclaimed: its quality gates need cross-provider API runs that have not happened yet. Static-only is the default and calls no API.

pip install wald-lint