docs(6209): wide net, startup, stamps, slippage, miss route and parity tests
CI & Build / Python lint (push) Successful in 3s
CI & Build / Plugin hooks (push) Successful in 15s
CI & Build / TypeScript typecheck (push) Successful in 53s
CI & Build / integration (push) Successful in 1m10s
CI & Build / Build & push image (push) Canceled after 0s
CI & Build / Python tests (push) Canceled after 1m23s
CI & Build / Python lint (push) Successful in 3s
CI & Build / Plugin hooks (push) Successful in 15s
CI & Build / TypeScript typecheck (push) Successful in 53s
CI & Build / integration (push) Successful in 1m10s
CI & Build / Build & push image (push) Canceled after 0s
CI & Build / Python tests (push) Canceled after 1m23s
Eight more test files state the property they pin as a present-tense fact. Incident narratives (a dated storage stall, a week of zero tuning events, a two-project poisoned ledger, a twenty-site owner audit) become the failure shape each test defends; one-install figures that name a rule become a general worked example with the calibration numbers kept. The family-grouping regression guard is renamed for what it checks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,10 +1,9 @@
|
||||
"""The review surface: rows whose evidence no longer meets the bar, and
|
||||
canons whose own rows no longer agree what they are (#4204, #4208).
|
||||
canons whose own rows no longer agree what they are.
|
||||
|
||||
WHAT THESE GUARD, and it is a property rather than an output shape. The
|
||||
ledger was poisoned by a machine writing permanent classifications that
|
||||
nobody read — 32 rows on one project, 334 on another. The correction is NOT
|
||||
a machine that un-writes them; that is the same mistake pointed the other
|
||||
WHAT THESE GUARD, and it is a property rather than an output shape. A machine
|
||||
writing permanent classifications that nobody reads poisons the ledger. The
|
||||
correction is NOT a machine that un-writes them; that is the same mistake pointed the other
|
||||
way. It is a reader that puts the evidence in front of a judge.
|
||||
|
||||
So the tests below assert two things hardest:
|
||||
@@ -15,8 +14,8 @@ So the tests below assert two things hardest:
|
||||
* the listing changes nothing, which is checked by giving it rows and
|
||||
asserting the rows come back untouched.
|
||||
|
||||
The round-trip test exists because the score used to live only inside a
|
||||
prose sentence. Writer and parser are now one constant apart, and a change
|
||||
The round-trip test exists because the score is carried inside a prose
|
||||
sentence. Writer and parser are one constant apart, and a change
|
||||
to one that the other does not follow is exactly the kind of silent rot the
|
||||
hook's own history is made of.
|
||||
"""
|
||||
@@ -135,10 +134,9 @@ def test_a_canon_whose_members_agree_is_not_listed() -> None:
|
||||
|
||||
|
||||
def test_a_canon_whose_members_are_all_different_things_is_listed() -> None:
|
||||
"""Portal's #3283, in miniature: a class, a getter, a test and a binding
|
||||
recorded as instances of one pattern — and in four different files, as
|
||||
they really were. The paths matter now: a callable sharing a file with a
|
||||
class is read as that class's method (#4220), so putting them all in one
|
||||
"""A class, a getter, a test and a binding recorded as instances of one
|
||||
pattern — in four different files. The paths matter: a callable sharing a
|
||||
file with a class is read as that class's method, so putting them all in one
|
||||
file would test the excuse rather than the disagreement."""
|
||||
rows = [_member("class SessionAbsent(RuntimeError):", path="src/errors.py",
|
||||
symbol="SessionAbsent"),
|
||||
@@ -198,7 +196,7 @@ def test_the_review_changes_nothing_about_the_rows_it_reads() -> None:
|
||||
|
||||
|
||||
def test_the_service_carries_no_machinery_for_bulk_withdrawal() -> None:
|
||||
"""A structural guard (rule 167) on the design decision, not on output.
|
||||
"""A structural guard on the design decision, not on output.
|
||||
If someone adds an auto-retire path to the ledger, this fails and the
|
||||
conversation about whether a machine may un-judge in bulk happens again
|
||||
— deliberately, rather than in a diff nobody read."""
|
||||
@@ -209,19 +207,18 @@ def test_the_service_carries_no_machinery_for_bulk_withdrawal() -> None:
|
||||
assert banned not in body, banned
|
||||
|
||||
|
||||
# ── coherence is about what a canon CANNOT account for (#4220) ────────────
|
||||
# ── coherence is about what a canon CANNOT account for ────────────────────
|
||||
#
|
||||
# The first version of this check asked whether every member shared a form.
|
||||
# On its first live day the only two canons it reported were both sound,
|
||||
# while the genuinely polluted one had already been cleaned by hand — a
|
||||
# surface whose whole output is noise is one that stops being read.
|
||||
# Asking whether every member shares a form reports sound canons — a class and
|
||||
# its methods are two forms of one shape — and a surface whose whole output is
|
||||
# noise stops being read.
|
||||
#
|
||||
# The obvious repair — group by family, keep the majority test — is a trap,
|
||||
# and `test_family_grouping_alone_would_have_gone_blind` is the guard that
|
||||
# stops anyone walking back into it.
|
||||
# and `test_family_grouping_alone_passes_a_polluted_canon` is the guard that
|
||||
# stops anyone walking into it.
|
||||
|
||||
def _model(sym, path):
|
||||
"""A SQLAlchemy model class, as #2844 holds one."""
|
||||
"""A SQLAlchemy model class, as the model-convention canon holds one."""
|
||||
return _member(f"class {sym}(Base, TimestampMixin):", path=path)
|
||||
|
||||
|
||||
@@ -231,10 +228,9 @@ def _to_dict(path):
|
||||
|
||||
|
||||
def test_a_class_and_the_to_dict_beside_it_are_one_shape() -> None:
|
||||
"""#2844 exactly: the SQLAlchemy model convention, whose own text is
|
||||
about the class AND the to_dict it must carry. Live it scored
|
||||
37/62 = 0.597 and was called incoherent for containing precisely what it
|
||||
says it contains."""
|
||||
"""The SQLAlchemy model convention, whose own text is about the class AND
|
||||
the to_dict it must carry. A form-level check scores it 37/62 = 0.597 and
|
||||
calls it incoherent for containing precisely what it says it contains."""
|
||||
rows = []
|
||||
for i in range(6):
|
||||
rows += [_model(f"M{i}", f"src/scribe/models/m{i}.py"),
|
||||
@@ -244,9 +240,9 @@ def test_a_class_and_the_to_dict_beside_it_are_one_shape() -> None:
|
||||
|
||||
|
||||
def test_a_sync_starter_and_the_async_tick_it_schedules_are_one_shape() -> None:
|
||||
"""#2849: four loop-starters and three ticks. `shape_family` already
|
||||
collapses fn and async-fn for the divergence gate; this surface was the
|
||||
one place still asking at form level."""
|
||||
"""Four loop-starters and three ticks. `shape_family` collapses fn and
|
||||
async-fn for the divergence gate, and this surface asks at the same
|
||||
level."""
|
||||
rows = [_member("def start_notification_loop() -> None:", path="src/n.py"),
|
||||
_member("def start_log_retention_loop() -> None:", path="src/l.py"),
|
||||
_member("def start_auth_token_retention_loop() -> None:", path="src/a.py"),
|
||||
@@ -256,10 +252,10 @@ def test_a_sync_starter_and_the_async_tick_it_schedules_are_one_shape() -> None:
|
||||
assert stamps_to_review(rows)["incoherent_count"] == 0
|
||||
|
||||
|
||||
def test_family_grouping_alone_would_have_gone_blind() -> None:
|
||||
"""THE REGRESSION GUARD. Polluted #2844 as it stood this morning: 37
|
||||
model classes, 25 to_dict methods beside them, and 31 rows that had no
|
||||
business being there. Counted as families that is 56 callables to 37
|
||||
def test_family_grouping_alone_passes_a_polluted_canon() -> None:
|
||||
"""THE REGRESSION GUARD. A polluted model canon: 37 model classes, 25
|
||||
to_dict methods beside them, and 31 rows that have no business being
|
||||
there. Counted as families that is 56 callables to 37
|
||||
types — 0.602, a clean pass under any majority test. Those 31 rows are
|
||||
the ones the surface exists to find, so a change that lets this canon
|
||||
read as coherent has broken the feature while keeping every other test
|
||||
@@ -352,12 +348,11 @@ def test_the_coherence_verdict_reads_rows_and_writes_nothing() -> None:
|
||||
for r in rows] == before
|
||||
|
||||
|
||||
# ── a weak stamp is listed for judgment and counted by nobody (#4608) ─────
|
||||
# ── a weak stamp is listed for judgment and counted by nobody ─────────────
|
||||
#
|
||||
# The floor guarded new writes; the rows written before it went on electing
|
||||
# canons. On two projects a YAML CI snippet "dominated" a Svelte directory on
|
||||
# the strength of 0.68-0.72 stamps, and every write there was told it
|
||||
# diverged from it. The readers below must agree with the review surface
|
||||
# The floor guards new writes; rows written below it would otherwise go on
|
||||
# electing canons, so an unrelated snippet "dominates" a directory on the
|
||||
# strength of 0.68-0.72 stamps and every write there is told it diverged. The readers below must agree with the review surface
|
||||
# about what "weak" means — one predicate, so they cannot drift apart.
|
||||
|
||||
def test_one_predicate_says_what_weak_is() -> None:
|
||||
|
||||
Reference in New Issue
Block a user