feat(family): the shape ledger judges against family ideas, across languages (milestone 463 step 5, #4991)
CI & Build / Python lint (push) Successful in 2s
CI & Build / Plugin hooks (push) Successful in 13s
CI & Build / TypeScript typecheck (push) Successful in 58s
CI & Build / integration (push) Successful in 1m26s
CI & Build / Python tests (push) Successful in 2m9s
CI & Build / Build & push image (push) Successful in 1m27s
CI & Build / Python lint (push) Successful in 2s
CI & Build / Plugin hooks (push) Successful in 13s
CI & Build / TypeScript typecheck (push) Successful in 58s
CI & Build / integration (push) Successful in 1m26s
CI & Build / Python tests (push) Successful in 2m9s
CI & Build / Build & push image (push) Successful in 1m27s
- classify_shapes takes idea_id: the shape is judged against the idea's reference in its language, or its first. - A shape classified against a canon idea's reference moves the project's adoption row (instance -> adopted, variant -> variant). Withdrawing the shapes that gave an answer returns it to unassessed. This runs on classify_shapes, the sweep, confirm_proposals and the coverage refresh. - assess and undo refuse an answer the shapes contradict. A conflict resolution re-judges the variant shapes on both sides. - The proposer's family arm offers a canon idea's reference on a shared platform, in any language. It proposes only when the reference is the top hit over every readable snippet and scores at least 0.70. The pairs this was measured on are recorded beside _FAMILY_FLOOR. The proposer is now v6. - The matrix cell shows the code that answers it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -64,14 +64,14 @@ def _patch(mock: AsyncMock):
|
||||
|
||||
async def test_a_hit_returns_the_canon() -> None:
|
||||
with _patch(_hits((0.88, CANON))):
|
||||
assert await _semantic_canon(1, BODY, {CANON}) == (CANON, 0.88)
|
||||
assert await _semantic_canon(1, BODY, {CANON}) == (CANON, 0.88, "semantic")
|
||||
|
||||
|
||||
async def test_an_allowed_canon_below_the_top_hit_still_wins() -> None:
|
||||
"""The scan is over the whole result set, so a disallowed snippet ranking
|
||||
first does not hide an allowed one behind it."""
|
||||
with _patch(_hits((0.95, OTHER), (0.83, CANON))):
|
||||
assert await _semantic_canon(1, BODY, {CANON}) == (CANON, 0.83)
|
||||
assert await _semantic_canon(1, BODY, {CANON}) == (CANON, 0.83, "semantic")
|
||||
|
||||
|
||||
async def test_a_miss_is_none_and_nothing_more() -> None:
|
||||
|
||||
Reference in New Issue
Block a user