Repository navigation
docs(openspec): archive streaming-server-enumeration-semantic-mapping + vendor blocker evidence - #118
Conversation
… + vendor blocker evidence PR #117 已 merged + archived: - openspec/changes/archive/2026-05-26-streaming-server-enumeration-semantic-mapping/ - openspec/specs/streaming-ifc-usdc-conversion-authority/spec.md(+1 ADD) - openspec/specs/ 仍 26;openspec validate --specs --strict 26/0 Chrome MCP closeout evidence (docs/evidence/.../c2-viewer-semantic-final-vendor-blocker.md): 實作正確生效(三 semantic 欄位現在明示寫 null/false 進 JSON,不再 missing key),但 Semantic=yes 仍未達成,根因是 vendor-side limitation: HOOPS A3D library 產出的 model.usdc 內 10,872 prim 完全沒 IFC metadata (CustomData 只有 userDocBrief HOOPS 自家標籤,attribute 也沒 ifc 字串)。 HOOPS 視 IFC 為 generic 3D 來源,只保留 mesh + material,不保留 GUID / Type / Name。enumeration 能抽的資料來源不存在。 C1 fallback 之所以 Semantic=yes 可達,因為它用 IfcOpenShell 直接讀 IFC source file 並把 metadata 寫進 USD prim CustomData。HOOPS happy path 跳過 fallback,prim 從未被寫 IFC custom data → enumeration 空 mapping。 建議 follow-up: streaming-server-ifcopenshell-semantic-sidecar-pass (HOOPS 成功後並行跑 IfcOpenShell pass 寫 ifc_semantic_sidecar.json, enumeration 讀此補 mapping)。 對 fast MVP 影響:現狀已可用(File / Runtime / Stage matched / WebRTC), Semantic=no 只是「點選元件反查 IFC」這層限制,不阻擋核心 demo 觀看。
|
Warning Review limit reached
More reviews will be available in 28 minutes and 50 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (6)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
Archives the OpenSpec change streaming-server-enumeration-semantic-mapping by syncing its spec delta into the canonical streaming-ifc-usdc-conversion-authority spec, and adds evidence documenting the HOOPS vendor-side limitation that prevents Semantic-ready from becoming yes on the HOOPS happy path.
Changes:
- Adds an OpenSpec requirement covering semantic-mapping fidelity emission for enumeration/adoption sidecar paths.
- Adds the archived change bundle (proposal/design/tasks/spec delta) under
openspec/changes/archive/.... - Adds a new evidence write-up capturing the final vendor-side blocker findings.
Reviewed changes
Copilot reviewed 2 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| openspec/specs/streaming-ifc-usdc-conversion-authority/spec.md | Syncs the new “enumeration/adoption semantic fidelity” requirement into the canonical spec. |
| openspec/changes/archive/2026-05-26-streaming-server-enumeration-semantic-mapping/tasks.md | Archives the change task breakdown for traceability. |
| openspec/changes/archive/2026-05-26-streaming-server-enumeration-semantic-mapping/specs/streaming-ifc-usdc-conversion-authority/spec.md | Archives the spec delta snapshot for this change. |
| openspec/changes/archive/2026-05-26-streaming-server-enumeration-semantic-mapping/proposal.md | Archives rationale/scope for the change. |
| openspec/changes/archive/2026-05-26-streaming-server-enumeration-semantic-mapping/design.md | Archives design notes and intended behavior for enumeration/adoption enrichment. |
| docs/evidence/2026-05-25-fast-mvp-edge-bim-server-console/c2-viewer-semantic-final-vendor-blocker.md | Adds documented evidence showing HOOPS-produced USD lacks IFC metadata, blocking Semantic-ready yes. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - **THEN** `quality_metrics.json` SHALL 含 `semantic_mapping_fidelity = null` | ||
| /`undefined`,`mapping_has_ifc_type = false`、`mapping_has_ifc_name = false` |
| `GET /api/review-sessions/review_session_fb76771dce5a/stream-config` 回應: | ||
|
|
||
| ```json | ||
| { | ||
| "source_ifc_entity_count": 10872, | ||
| "materialization_strategy": "usd_stage_enumeration", | ||
| "coverage_status": "warn", | ||
| "semantic_mapping_fidelity": null, | ||
| "mapping_has_ifc_type": false, | ||
| "mapping_has_ifc_name": false | ||
| } | ||
| ``` |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7292d6706a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| - **AND** the fallback MUST NOT remove or rename any pre-existing key in the | ||
| mapping or entity-index documents | ||
|
|
||
| ### Requirement: Enumeration and adoption sidecar paths emit IFC-semantic mapping fidelity |
There was a problem hiding this comment.
Sync roadmap artifacts when archiving this OpenSpec change
This commit archives and syncs streaming-server-enumeration-semantic-mapping into openspec/specs, but it does not update docs/plans/AI-BIM-governance-saas-roadmap-2026-05.md (and derived .html) in the same change, which violates the repo rule in AGENTS.md requiring roadmap synchronization after every OpenSpec sync/archive; leaving that out creates an immediate source-of-truth drift between archived specs and execution planning status.
Useful? React with 👍 / 👎.
| - **THEN** `quality_metrics.json` SHALL 含 `semantic_mapping_fidelity = null` | ||
| /`undefined`,`mapping_has_ifc_type = false`、`mapping_has_ifc_name = false` |
There was a problem hiding this comment.
Require explicit null instead of allowing undefined semantic field
The new requirement first says the three semantic fields must be written to quality_metrics.json, but this scenario then allows semantic_mapping_fidelity to be undefined; for no-IFC-metadata exports, that reintroduces the prior missing-key shape and undermines the documented schema-stability goal (explicit null/false), so implementations can regress to omitted keys while still claiming conformance.
Useful? React with 👍 / 👎.
| (`_enumerate_usd_stage` and `_adopt_converter_sidecars`), so that the | ||
| HOOPS-success happy path and the IfcOpenShell fallback path both let viewer / | ||
| `/ui` compute Semantic ready as `yes` when IFC semantics are present. The |
There was a problem hiding this comment.
Reconcile HOOPS semantic-field mandate with existing out-of-scope rule
This new requirement mandates writing semantic fields for both _enumerate_usd_stage and _adopt_converter_sidecars (including HOOPS-success paths), but the same spec already states these fields are not required for the primary HOOPS path; without resolving that prior clause, the spec is internally contradictory and implementers cannot unambiguously determine compliance for HOOPS outputs.
Useful? React with 👍 / 👎.
| ### Requirement: Enumeration and adoption sidecar paths emit IFC-semantic mapping fidelity | ||
|
|
||
| `bim-streaming-server` SHALL write the three C1 semantic fields | ||
| (`semantic_mapping_fidelity` / `mapping_has_ifc_type` / `mapping_has_ifc_name`) |
There was a problem hiding this comment.
Write new OpenSpec requirement prose in Traditional Chinese
The newly added requirement block is primarily written in English, but AGENTS.md explicitly sets a repo policy that OpenSpec artifacts should default to Traditional Chinese (with only parser headers/technical tokens kept in original form); shipping mixed-language requirement prose here breaks that documentation contract and makes this archive non-compliant with the project’s review baseline.
Useful? React with 👍 / 👎.
PR #117 archive sync。實作正確,但 HOOPS A3D vendor library 產 USD 不含 IFC metadata,Semantic=yes 在 HOOPS happy path 不可達。
Archive
openspec/changes/archive/2026-05-26-streaming-server-enumeration-semantic-mapping/Vendor-side blocker
HOOPS 產
model.usdc10,872 prim:['userDocBrief']只有 HOOPS 自家 metadata/model/Looks/...與/model/MeshN,非 IFC class groupedC1 fallback 上 Semantic=yes 可達,因為它用 IfcOpenShell 直接讀 IFC source 並把 metadata 寫進 USD CustomData。HOOPS happy path 沒這條機制。
Recommended follow-up
新 change
streaming-server-ifcopenshell-semantic-sidecar-pass:HOOPS 成功後並行跑 IfcOpenShell pass 寫 ifc_semantic_sidecar.json,讓 enumeration / adopt 讀此補 mapping。fast MVP 影響
現狀 File / Runtime / Stage matched / WebRTC 全綠,Semantic=no 只是「點選元件反查 IFC 語意」這層限制,不阻擋核心 demo 觀看。
🤖 Generated with Claude Code