From ad2421cf86a266ffff0b14bbd2d7cea5d09e9bdb Mon Sep 17 00:00:00 2001 From: Griffin Long <151978260+DrunkOnJava@users.noreply.github.com> Date: Sun, 30 Aug 2026 19:23:55 -0400 Subject: [PATCH] =?UTF-8?q?corpus:=20rebuild=20manifest=20surfaces=20from?= =?UTF-8?q?=20all=20three=20blocks=20=E2=80=94=20fixes=20the=20MANIFEST=5F?= =?UTF-8?q?ERROR=20my=20#9=20merge=20shipped?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The #9 mirror rebuilt semantic_surface/excluded from the counts block alone, dropping relations.IFCRELFILLSELEMENT and storeys.IFCBUILDINGSTOREY, and I merged it while both verdict jobs were red — the gate said MANIFEST_ERROR and was right. The mirror now folds the relations and storeys blocks into the declared surface/exclusions; both verdicts PASS locally against the committed observations and the index re-chains. --- corpus/MANIFEST_INDEX.json | 8 ++++---- corpus/artifacts/g-2026-0001/manifest.json | 10 +++++++++- corpus/artifacts/g-2026-0002/manifest.json | 4 +++- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/corpus/MANIFEST_INDEX.json b/corpus/MANIFEST_INDEX.json index 2571662..bfb67b8 100644 --- a/corpus/MANIFEST_INDEX.json +++ b/corpus/MANIFEST_INDEX.json @@ -5,7 +5,7 @@ "artifact_id": "g-2026-0001", "bridge_sha256": "d07c7462aee22640661faed5262cf802ce0fcbc663f312961a39be92bf857050", "manifest_path": "corpus/artifacts/g-2026-0001/manifest.json", - "manifest_sha256": "211f9ac031a251afaf008ec1fd7cc6ade30e0cbba8bafbcbd02f0a81fd40e3c7", + "manifest_sha256": "a1a9098cbf92beb44d67e23452682119cb3c580daacaf010c5d05b01d27c2674", "prev_hash": null, "source_sha256": "c805df445d613b408e37337765572021265e3f5dfdc7d1fa53b22ba1600b8014", "verdict_hash_sha256": "c615cc6c4606c3486be2a82af7566b4e6a5002623ffd39227f591b9df5182efa", @@ -16,15 +16,15 @@ "artifact_id": "g-2026-0002", "bridge_sha256": "bfdf36ffb0bb768f3409d818403990e64d4c262c6780603be87f8077387ad86d", "manifest_path": "corpus/artifacts/g-2026-0002/manifest.json", - "manifest_sha256": "ceb7a332376d9876977e9932c14bc025c8852270b13da007afe5d59d6a38e86d", - "prev_hash": "303890d7a873c329760c42aebcc26617fdc4c94ed83e2f0fc18ce4b7a269aa2c", + "manifest_sha256": "5261cbc634e23e110d99a7f86c16c40966ea84fe422125658e78ba259a59b7e4", + "prev_hash": "b5783b02c3548d2f4749d29ebb126c5a3753e30699fde08d3eb55afb5a42b9b8", "source_sha256": "c805df445d613b408e37337765572021265e3f5dfdc7d1fa53b22ba1600b8014", "verdict_hash_sha256": "cd171b3167c602d0882dd8a0d38c99791012a9fe693043e43e2d43b028554325", "verdict_status": "PASS" } ], "chain_algorithm": "sha256 over JCS-lite canonical entries (sorted keys, no whitespace, UTF-8)", - "chain_head": "a817018fc5585963a1d66282467677ad863f85035ee709bc19393d940906f32b", + "chain_head": "58c11dc102fdb060171c669801feba8caba8549c04b67601144690e965ce983b", "schema_version": "1.0.0", "signature": null, "signing_status": "not implemented — SPEC.md §12.2 requires an Ed25519 signature over the chain head; no maintainer key is published yet, so this chain is tamper-evident but not cryptographically anchored" diff --git a/corpus/artifacts/g-2026-0001/manifest.json b/corpus/artifacts/g-2026-0001/manifest.json index 7e5d9d7..56177a5 100644 --- a/corpus/artifacts/g-2026-0001/manifest.json +++ b/corpus/artifacts/g-2026-0001/manifest.json @@ -205,7 +205,8 @@ "entity_counts.IFCROOF", "entity_counts.IFCBEAM", "entity_counts.IFCFLOWTERMINAL", - "entity_counts.IFCUNITASSIGNMENT" + "entity_counts.IFCUNITASSIGNMENT", + "storeys.IFCBUILDINGSTOREY" ], "excluded": [ { @@ -270,6 +271,13 @@ "reason": "decoder_baseline", "tracking_issue": 212, "unsupported_feature": null + }, + { + "category": "opening_fills", + "field": "relations.IFCRELFILLSELEMENT", + "reason": "decoder_baseline", + "tracking_issue": 222, + "unsupported_feature": null } ], "notes": "`counts`, `relations` and `storeys` are the normative SPEC.md §6.1 blocks and are what the gate reads; `semantic_surface` and `excluded` are the declared result, and tools/verdict.py fails with MANIFEST_ERROR if they disagree with what those blocks imply — so an accidental status flip is loud rather than a silent surface change. Tracking issues 33/34/35/204/211/212/218/222 are rvt-rs issues (github.com/DrunkOnJava/rvt-rs). Departing from the upstream rvt-rs manifest exactly as corpus/README.md documents, the `decoder_*` fields are dropped and a category that carries no cross-witness type key is dropped with them. The bridge file is a 20 KB element-export fixture, not a full project schedule, so four of the six agreeing surface fields are zero counts — but Revit writes the complete fifteen-storey spatial hierarchy into it even so, which is why `entity_counts.IFCBUILDINGSTOREY` and `storeys.IFCBUILDINGSTOREY` are `known` here and carry the same fifteen (name, elevation) pairs the full export does. `relations.IFCRELFILLSELEMENT` goes the other way: this fixture carries no IfcRelFillsElement at all, so the relation is excluded first-class and is scored only on the sibling full-project artifact. See PROVENANCE.md." diff --git a/corpus/artifacts/g-2026-0002/manifest.json b/corpus/artifacts/g-2026-0002/manifest.json index cacb757..927fa3d 100644 --- a/corpus/artifacts/g-2026-0002/manifest.json +++ b/corpus/artifacts/g-2026-0002/manifest.json @@ -211,7 +211,9 @@ "entity_counts.IFCBEAM", "entity_counts.IFCFLOWTERMINAL", "entity_counts.IFCUNITASSIGNMENT", - "entity_counts.IFCSHADINGDEVICE" + "entity_counts.IFCSHADINGDEVICE", + "relations.IFCRELFILLSELEMENT", + "storeys.IFCBUILDINGSTOREY" ], "excluded": [ {