Repository navigation
WS2b: a cited fact is executable, fixtures beside fact tests, seeds by footprint - #55
Merged
Merged
Conversation
docs-query check gains fact-not-executable-cited: a refused entry of the axes file, a not-promised entry or an obligation's inapplicable declaration in claims.json, or a Cite.Fact/Baseline.Fact literal of the harness and probe sources that cites a fact without a test fails at the citing line. No test means none, no file, a missing file or no class of the fact's id; Baseline.Fact also needs a fixture. The check also holds fixture: lines (fact-fixture-missing, fact-fixture, fact-orphan-fixture), and its summary counts citations by kind, with floors in RepositoryTests. prober seeds without --all runs only the probes whose seeds identity (probe identity, seeds, patch content), product footprint or seeded file changed since every seed was caught; seeds-last.json records identity and commit per probe, a missed seed drops the record, and each skip is printed with its reason. --all runs everything; the release runs it. Decision 107 records both, and the fixture convention the Facts commit follows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
KB001, KB026, KB027 and KB037 hold their measured answers in KBNNN.fixture.json beside the test (documents at a JSON pointer, statuses, an exception at an operation), named by a fixture: line in the entry; each test is a theory over the fixture's answers. FactFixture, BCL only, reads them and states the rule the harness will follow when it reads one as Baseline.Fact (decision 107). FixtureTests holds every copied fixture to a loadable form and its fact's test class. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
WS2b's three rules (concept §6.3b), recorded as decision 107.
1.
docs-query check:fact-not-executable-citedThe check fails at the citing line, naming the fact, when a fact without a test is cited by:
refusedentry of.claude/probe-axes.mdwhose reason namesKB-NNNnot-promisedentry ofclaims.jsonwhosesourceis the fact's file or which saysfact:KB-NNNinapplicabledeclaration withcite: fact:KB-NNNCite.Fact("KB-NNN")orBaseline.Fact("KB-NNN")literal inharness/orprobes/. These are read as text with comments blanked out."Without a test" means
none, …, no path, a path whose file is missing, or a file that declares noKBNNNclass. ABaseline.Factalso needs afixture:.Citations found in the repository today (the check's summary prints these counts;
RepositoryTestsholds floors on both the places read and the citations found):source)All 4 are executable, so the check is clean:
0 problems in 725 links, 512 ids, 4 fact citations (0 refused, 2 not-promised, 0 obligation, 2 harness) and 38 facts.2. Fixtures beside fact tests
test/CodoMetis.TypeKit.Facts/KBNNN.fixture.jsonholds the fact id and itsanswers. Each answer has anid, akind(documentwithat, a JSON pointer;status; orexception), awhen(axis to value, as a row names them), avalueand anote. The entry names the file with afixture:line.docs-query checkadds three rules:fact-fixture-missing: the file is missing.fact-fixture: the file is not beside the test, or belongs to a fact without a test.fact-orphan-fixture: no fact names the fixture.FactFixtureis BCL only (a test holds it to that). Its doc comment states the rule the harness will follow forBaseline.Fact:whensetting matches the row. No match means the harness measures the framework itself; several matches are a harness error.3.
prober seedsby footprintWithout
--all,seedsruns only the probes where one of these is true:It prints
runs P: …orskips P: …with the reason.seeds-last.jsongainsprobes(identity and commit per probe, carried forward for skipped probes),skippedandall, and the schema is updated. A missed seed drops the probe's record, so it is never skipped on the next run.--allruns every probe, and so does--probe Pfor P.release.ymlandAGENTS.md(Releasing) say the release runsseeds --all, locally before the tag. CI still builds no seed (decision 100), so inrelease.ymlthis is a comment, not a step.Seeds
test:line removed (scratch copy)test:pointed at a missing file (scratch copy)json.DefaultIgnoreCondition=Alwayscites prose KB-005as-text-refused-in-globalization-invariant-modesourced from KB-005cite: fact:KB-005Cite.Fact("KB-005")"required": falseKB001.The_framework_writes_the_body_the_fixture_holdsKB037.MVC_answers_as_the_fixture_holds(depth-1-query-unreadable)A_changed_identity_reruns,A_changed_seed_reruns,A_seed_missed_after_a_catch_drops_the_recordA_changed_product_footprint_rerunsA_change_to_the_file_the_seed_patches_reruns--allignoredAll_ignores_the_recordA_missed_seed_is_never_skipped_next_time,A_seed_missed_after_a_catch_drops_the_recordAn_unchanged_probe_is_skipped_and_says_why,A_change_outside_the_footprint_skipsA_probe_without_a_recorded_footprint_runsThe rule's unit tests in
FactCitationTestsalso seed each kind in a temporary repository.Tests (through build-verdict)
DocsQuery.Tests 120 passed · Facts 69 passed, 9 skipped (the
TYPEKIT_PGfacts) · Prober.Tests 257 passed · Conventions.Tests 1484 passed.No edits to
harness/,probes/or the trackedclaims.json.🤖 Generated with Claude Code