Skip to content

Phase 5: measure and explain - #56

Merged
adolgert merged 12 commits into
feature/phase4-interfacefrom
feature/phase5-measure
Oct 3, 2026
Merged

adolgert merged 12 commits into
feature/phase4-interfacefrom
feature/phase5-measure

Conversation

@adolgert

Copy link
Copy Markdown
Owner

Phase 5 of design/20260926_implementation_plan.md, stacked on #55. Review note with the acceptance transcript and open decisions: design/phase5_review.md.

  • coverage(cases, space; strength, stronger) measures any supplied rows independently of generator bookkeeping: covered targets need no search, missing ones are classified with attribution, unresolved ones are listed without a percentage, rejected rows contribute nothing, duplicates count once, ordinary and negative parts are separate. coverage(cases::TestCases) reads the result's request; missing_interactions refuses to hide uncertainty.
  • report(cases): guarantee line, excluded list, bonus at strength + 1, prefix curve, seed. design_sizes(space): one row per strategy with cases, share, pairs and triples covered; Fable's example gives exactly 81 / 3 / 10 / 31 / 9 / 33.
  • Agreement with the independent checker on every fixture and on random problems for both engines; the top-up and extend recipes are tested.
  • coverage_set.jl deleted; unconstrained requests stream their certification recount (fixture 1 IPOG 4.0 s → 3.3 s).

Full suite: 276,744 pass, 5 pending (Phase 6), 0 failures. Aqua and docs build green.

🤖 Generated with Claude Code

adolgert and others added 3 commits September 27, 2026 18:03
coverage measures any supplied rows against a space, independent of
generator bookkeeping: covered targets need no search, missing ones are
classified with attribution, unknown ones are listed without a
percentage, ordinary and negative parts are kept separate, and rejected
rows contribute nothing. Unconstrained requests no longer materialize
their target list for the certification recount.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
report verifies a result independently of its bookkeeping: a guarantee
line, the excluded list with attribution, bonus coverage at strength + 1,
a prefix curve computed in one pass, and the seed, never printing a
percentage while a target is unresolved. design_sizes runs each strategy
and tabulates cases, share of the valid product, and pairs and triples
covered, recording a resource-limit status instead of a count.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The excursion guarantee exempts must-include rows; report shows its own
freshly verified exclusions and labels recorded proofs as a fallback;
coverage(cases; strength) keeps stored stronger groups unless replaced;
plain() gives a Report, Coverage, or DesignSizes representation with no
executable state, tested by round trip; measurement docstring examples
are doctests with real output. The release is 0.5.0: the maintainer
wants a 0.x version to use before calling anything 1.0.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@adolgert

Copy link
Copy Markdown
Owner Author

Review round 1 applied (see design/phase5_review.md): excursion guarantee exempts must-include rows; report prefers its own fresh exclusions and labels recorded ones "(recorded at generation)" only where its measurement is unresolved; coverage(cases; strength) keeps stored groups unless stronger is passed and errors on an incompatible strength; unexported plain gives an executable-state-free representation, tested by a real round trip; seven measurement docstring examples are now passing doctests with real output (bonus 5/5, design_sizes 10 pairwise).

Also: the target release is now 0.5.0, not 1.0.0, so the maintainer can use a 0.x version before calling anything 1.0. Project.toml is 0.5.0-DEV, the release branch is release/0.5 (PR #52 retargeted), and the contract, docs, plan, and release-notes draft say 0.5.

Full suite: 277,525 pass, 5 pending, 0 failures.

🤖 Generated with Claude Code

…matrix

Negative targets are classified through the negative-row search and
covered by a sub-request over the other parameters with the same engine,
with separate bookkeeping and a ! marker on negative rows. Must-include,
full factorial, and excursions accept wrappers under their row policies.
realize draws each Partition once under the caller's rng. diagnose ranks
combinations present only in failing cases and groups indistinguishable
ones; followups finds isolating cases or proves there are none.
github_matrix writes a validated GitHub Actions include matrix with
JSON.jl.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
adolgert and others added 7 commits September 27, 2026 20:50
figures, JSON field-name validation

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The docs environment pinned Documenter 0.25, which needs JSON 0.21, while
the package now requires JSON 1, so CI could not resolve it. Documenter 1
makes missing docstrings and unresolved references errors by default;
they stay warnings until Phase 7 completes the manual.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
README and home page lead with the promise, the decision table, and one
example with its printed output. The manual is a tutorial in five levels,
nine how-to guides by job, explanation pages on values and oracles,
interaction coverage and its evidence, constraints, and the engines, a
reference organized by purpose with every exported docstring opening on
the situation it serves, a 0.4 to 0.5 migration table, developer pages,
and a one-pager for AI agents. Doctests run in the docs build and in the
test suite; the build fails on any warning.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
wording, two-check lockfile pattern, badge and contract wording

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Phase 7: documentation and first contact
@adolgert adolgert closed this Oct 3, 2026
Phase 6: Invalid, Partition, diagnose, github_matrix
@adolgert adolgert reopened this Oct 3, 2026
@adolgert
adolgert merged commit 1858689 into feature/phase4-interface Oct 3, 2026
21 checks passed
@adolgert
adolgert deleted the feature/phase5-measure branch October 3, 2026 15:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant