diff --git a/benchmarks/cases/java-semantic-packs-v0.9.1.yaml b/benchmarks/cases/java-semantic-packs-v0.9.1.yaml deleted file mode 100644 index 3081846..0000000 --- a/benchmarks/cases/java-semantic-packs-v0.9.1.yaml +++ /dev/null @@ -1,43 +0,0 @@ -schemaVersion: 2 -corpus: { partition: development, selection: analyzer_informed } -groundTruth: { status: author_reviewed, reviewers: [DavidBakerEffendi] } -referencePolicy: bindings_optional -positionEncoding: utf-16 -source: { kind: fixture, path: fixtures/java/semantic-packs } -language: java -semanticPacks: - releaseVersion: 0.9.1 - bundleUrl: https://github.com/BrokkAi/bifrost/releases/download/v0.9.1/bifrost-semantic-packs-v0.9.1.tar.gz - bundleSha256: a01cb3d7651ec95ad65c157647db243464f7fd10d14cde9e5262b626fc372f9b - evidence: - - language: java - ecosystem: jdk - module: { name: java.base } - toolchain: { name: jdk, version: 21.0.8 } - target: jvm - artifactSha256: 5440baccc6c54b18671ab9cb9bf6ffdd7698d3a85ee74faa0b47b111312f200c - expectedPacks: - - packId: bifrost.jdk - packVersion: 21.0.8 - semanticSha256: f8fe5aa74028ad2c274c32c963a63137ae40b5a041ce47130e4f627bd998c504 - completeness: partial - probes: - - symbol: java.util.ArrayList - ancestor: java.util.AbstractList - - symbol: java.util.ArrayList.size - signatureContains: size -cases: - - id: java-published-pack-array-list-navigation - usageLookups: - - operation: definition - usage: - location: { uri: benchmark://source/src/Main.java, range: { start: { line: 3, character: 18 }, end: { line: 3, character: 27 } } } - kind: class - displayName: ArrayList - expectedDeclaration: - location: { uri: bifrost-model://v1/f8fe5aa74028ad2c274c32c963a63137ae40b5a041ce47130e4f627bd998c504/type/type.7085c38223effc81cafbf18bb7c08e2c08004f151a9a78b87c25e3e65e3664b4, range: { start: { line: 0, character: 0 }, end: { line: 0, character: 0 } } } - kind: class - displayName: java.util.ArrayList - verification: - method: manual_inspection - notes: Exact v0.9.1 release artifact, digest, coordinate, pack version, semantic digest, and stable ArrayList record identity reviewed on 2026-08-11. diff --git a/benchmarks/cases/scala-semantic-packs-v0.9.1.yaml b/benchmarks/cases/scala-semantic-packs-v0.9.1.yaml deleted file mode 100644 index c4403d6..0000000 --- a/benchmarks/cases/scala-semantic-packs-v0.9.1.yaml +++ /dev/null @@ -1,43 +0,0 @@ -schemaVersion: 2 -corpus: { partition: development, selection: analyzer_informed } -groundTruth: { status: author_reviewed, reviewers: [DavidBakerEffendi] } -referencePolicy: bindings_optional -positionEncoding: utf-16 -source: { kind: fixture, path: fixtures/scala/semantic-packs } -language: scala -semanticPacks: - releaseVersion: 0.9.1 - bundleUrl: https://github.com/BrokkAi/bifrost/releases/download/v0.9.1/bifrost-semantic-packs-v0.9.1.tar.gz - bundleSha256: a01cb3d7651ec95ad65c157647db243464f7fd10d14cde9e5262b626fc372f9b - evidence: - - language: scala - ecosystem: maven - package: { name: org.scala-lang:scala-library, version: 2.13.16 } - toolchain: { name: scala, version: 2.13.16 } - target: jvm - artifactSha256: c02edc324e7db59c52115214a6ef36e2d78d0a50dff635eda4dcee5502b1dea5 - expectedPacks: - - packId: bifrost.scala-library - packVersion: 2.13.16 - semanticSha256: 87053e06f21f3bda4652f4391978c7839e58c9ec28172a5ee65e654b82b37e94 - completeness: complete - probes: - - symbol: scala.collection.immutable.List - ancestor: scala.collection.immutable.LinearSeq - - symbol: scala.collection.LinearSeqOps.head - signatureContains: head -cases: - - id: scala-published-pack-list-navigation - usageLookups: - - operation: definition - usage: - location: { uri: benchmark://source/src/Main.scala, range: { start: { line: 3, character: 26 }, end: { line: 3, character: 30 } } } - kind: type - displayName: List - expectedDeclaration: - location: { uri: bifrost-model://v1/87053e06f21f3bda4652f4391978c7839e58c9ec28172a5ee65e654b82b37e94/type/type.265e98b629a501e7c6db842e4eb77821f0e3bc373faa3ceabb6aae21620a537f, range: { start: { line: 0, character: 0 }, end: { line: 0, character: 0 } } } - kind: type - displayName: scala.collection.immutable.List - verification: - method: manual_inspection - notes: Exact v0.9.1 release artifact, digest, coordinate, pack version, semantic digest, and stable List record identity reviewed on 2026-08-11. diff --git a/docs/src/content/docs/results/evidence.md b/docs/src/content/docs/results/evidence.md index a57f691..f24d95a 100644 --- a/docs/src/content/docs/results/evidence.md +++ b/docs/src/content/docs/results/evidence.md @@ -32,7 +32,7 @@ Each profile remains visible before any aggregate. The numbers here are selected ## Reviewed legacy boundaries -The immutable promotion is `legacy-promotion-v1-balanced-core`. Its balanced core is **110 cases**, with **42 overflow** candidates and **6 controls** kept outside the correctness denominator. The source-only legacy inventory contains 158 cases; the remaining development corpus also contains 2 semantic-pack cases that were never part of that inventory. +The immutable promotion is `legacy-promotion-v1-balanced-core`. Its balanced core is **110 cases**, with **42 overflow** candidates and **6 controls** kept outside the correctness denominator. The source-only legacy inventory contains 158 cases. | Language | Balanced-core cases | | --- | ---: | @@ -60,7 +60,7 @@ The entries below are derived only from checksum-verified release bundles. The g ## Remaining development evidence -The checked-in development corpus contains **160 cases**. The reviewed legacy core accounts for 110; the 50 cases outside that core comprise 42 frozen overflow candidates, 6 unsupported/not-planned controls, and 2 semantic-pack cases. This remainder is retained for regression and diagnosis; it is not silently added to v1, v2, or the legacy denominator. +The checked-in development corpus contains **158 cases**. The reviewed legacy core accounts for 110; the 48 cases outside that core comprise 42 frozen overflow candidates and 6 unsupported/not-planned controls. This remainder is retained for regression and diagnosis; it is not silently added to v1, v2, or the legacy denominator. ## Publication safeguards diff --git a/docs/src/data/evidence.json b/docs/src/data/evidence.json index 3af5452..b509bc3 100644 --- a/docs/src/data/evidence.json +++ b/docs/src/data/evidence.json @@ -1,12 +1,12 @@ { "development": { "balancedCoreCases": 110, - "caseCount": 160, + "caseCount": 158, "controlCases": 6, "legacyInventoryCases": 158, "overflowCases": 42, - "remainingCases": 50, - "semanticPackCases": 2 + "remainingCases": 48, + "semanticPackCases": 0 }, "generatedBy": "scripts/generate-docs-evidence.py", "guardrails": [ diff --git a/fixtures/java/semantic-packs/src/Main.java b/fixtures/java/semantic-packs/src/Main.java deleted file mode 100644 index c06af32..0000000 --- a/fixtures/java/semantic-packs/src/Main.java +++ /dev/null @@ -1,5 +0,0 @@ -import java.util.ArrayList; - -final class Main { - private final ArrayList values = new ArrayList<>(); -} diff --git a/fixtures/scala/semantic-packs/src/Main.scala b/fixtures/scala/semantic-packs/src/Main.scala deleted file mode 100644 index 1f12dda..0000000 --- a/fixtures/scala/semantic-packs/src/Main.scala +++ /dev/null @@ -1,5 +0,0 @@ -import scala.collection.immutable.List - -object Main { - val values: List[Int] = List(1, 2, 3) -} diff --git a/scripts/generate-docs-evidence.py b/scripts/generate-docs-evidence.py index c2a107d..405d0e1 100644 --- a/scripts/generate-docs-evidence.py +++ b/scripts/generate-docs-evidence.py @@ -393,6 +393,28 @@ def development_case_ids() -> list[str]: return ids +def _semantic_pack_clause(development: dict[str, Any]) -> str: + """Mention semantic-pack cases only while the corpus carries any. + + The category is empty once the published v0.9.1 packs are retired, and a + sentence that reports zero of something reads as an oversight rather than a + boundary. + """ + + count = development["semanticPackCases"] + if not count: + return "" + return ( + f" The remaining development corpus also contains {count} semantic-pack " + "cases that were never part of that inventory." + ) + + +def _semantic_pack_tail(development: dict[str, Any]) -> str: + count = development["semanticPackCases"] + return f", and {count} semantic-pack cases" if count else "" + + def build_legacy(bundles: dict[str, dict[str, Any]]) -> dict[str, Any]: # The published legacy result is the authority for this slice, so the map # describes the manifest that snapshot was frozen under, not the one the @@ -564,7 +586,7 @@ def markdown(data: dict[str, Any]) -> str: "", "## Reviewed legacy boundaries", "", - f"The immutable promotion is `{legacy['promotionId']}`. Its balanced core is **{legacy['caseCount']} cases**, with **{legacy['overflowCases']} overflow** candidates and **{legacy['controlCases']} controls** kept outside the correctness denominator. The source-only legacy inventory contains {legacy['inventoryCases']} cases; the remaining development corpus also contains {development['semanticPackCases']} semantic-pack cases that were never part of that inventory.", + f"The immutable promotion is `{legacy['promotionId']}`. Its balanced core is **{legacy['caseCount']} cases**, with **{legacy['overflowCases']} overflow** candidates and **{legacy['controlCases']} controls** kept outside the correctness denominator. The source-only legacy inventory contains {legacy['inventoryCases']} cases.{_semantic_pack_clause(development)}", "", "| Language | Balanced-core cases |", "| --- | ---: |", @@ -603,7 +625,7 @@ def markdown(data: dict[str, Any]) -> str: "", "## Remaining development evidence", "", - f"The checked-in development corpus contains **{development['caseCount']} cases**. The reviewed legacy core accounts for {development['balancedCoreCases']}; the {development['remainingCases']} cases outside that core comprise {development['overflowCases']} frozen overflow candidates, {development['controlCases']} unsupported/not-planned controls, and {development['semanticPackCases']} semantic-pack cases. This remainder is retained for regression and diagnosis; it is not silently added to v1, v2, or the legacy denominator.", + f"The checked-in development corpus contains **{development['caseCount']} cases**. The reviewed legacy core accounts for {development['balancedCoreCases']}; the {development['remainingCases']} cases outside that core comprise {development['overflowCases']} frozen overflow candidates and {development['controlCases']} unsupported/not-planned controls{_semantic_pack_tail(development)}. This remainder is retained for regression and diagnosis; it is not silently added to v1, v2, or the legacy denominator.", "", "## Publication safeguards", "", diff --git a/src/runners/bifrost.rs b/src/runners/bifrost.rs index 4f9cd17..e3957e2 100644 --- a/src/runners/bifrost.rs +++ b/src/runners/bifrost.rs @@ -2979,9 +2979,9 @@ mod tests { let totals = requested_run_totals(documents.iter().map(|(_, document)| document), false, None); - assert_eq!(totals.documents, 61); - assert_eq!(totals.authored_cases, 232); - assert_eq!(totals.planned_cases, 226); + assert_eq!(totals.documents, 59); + assert_eq!(totals.authored_cases, 230); + assert_eq!(totals.planned_cases, 224); assert_eq!( totals.development_planned_cases + totals.evaluation_planned_cases, totals.planned_cases