Skip to content

docs(openspec): archive streaming-server-enumeration-semantic-mapping + vendor blocker evidence - #118

Merged
monkey1sai merged 1 commit into
mainfrom
docs/archive-streaming-server-enumeration-semantic-mapping-2026-05-26
May 26, 2026
Merged

monkey1sai merged 1 commit into
mainfrom
docs/archive-streaming-server-enumeration-semantic-mapping-2026-05-26

Conversation

@monkey1sai

Copy link
Copy Markdown
Owner

PR #117 archive sync。實作正確,但 HOOPS A3D vendor library 產 USD 不含 IFC metadata,Semantic=yes 在 HOOPS happy path 不可達。

Archive

  • folder openspec/changes/archive/2026-05-26-streaming-server-enumeration-semantic-mapping/
  • spec ADD 1 requirement(已通過 strict validate)

Vendor-side blocker

HOOPS 產 model.usdc 10,872 prim:

  • CustomData keys = ['userDocBrief'] 只有 HOOPS 自家 metadata
  • attribute 內沒任何 'ifc' 字串
  • 全 prim 路徑 /model/Looks/... 與 /model/MeshN,非 IFC class grouped

C1 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

… + 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 觀看。
Copilot AI review requested due to automatic review settings May 26, 2026 02:43
@coderabbitai

coderabbitai Bot commented May 26, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@monkey1sai, we couldn't start this review because you've reached your PR review rate limit.

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 7e0f64f5-4748-493e-ac14-cf0c467486a0

📥 Commits

Reviewing files that changed from the base of the PR and between e6549be and 7292d67.

📒 Files selected for processing (6)
  • docs/evidence/2026-05-25-fast-mvp-edge-bim-server-console/c2-viewer-semantic-final-vendor-blocker.md
  • openspec/changes/archive/2026-05-26-streaming-server-enumeration-semantic-mapping/design.md
  • openspec/changes/archive/2026-05-26-streaming-server-enumeration-semantic-mapping/proposal.md
  • openspec/changes/archive/2026-05-26-streaming-server-enumeration-semantic-mapping/specs/streaming-ifc-usdc-conversion-authority/spec.md
  • openspec/changes/archive/2026-05-26-streaming-server-enumeration-semantic-mapping/tasks.md
  • openspec/specs/streaming-ifc-usdc-conversion-authority/spec.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/archive-streaming-server-enumeration-semantic-mapping-2026-05-26

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@monkey1sai
monkey1sai merged commit 3c048ed into main May 26, 2026
1 of 2 checks passed
@monkey1sai
monkey1sai deleted the docs/archive-streaming-server-enumeration-semantic-mapping-2026-05-26 branch May 26, 2026 02:43

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment on lines +297 to +298
- **THEN** `quality_metrics.json` SHALL 含 `semantic_mapping_fidelity = null`
/`undefined`,`mapping_has_ifc_type = false`、`mapping_has_ifc_name = false`
Comment on lines +22 to +33
`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
}
```

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 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 👍 / 👎.

Comment on lines +297 to +298
- **THEN** `quality_metrics.json` SHALL 含 `semantic_mapping_fidelity = null`
/`undefined`,`mapping_has_ifc_type = false`、`mapping_has_ifc_name = false`

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Comment on lines +264 to +266
(`_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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Comment on lines +259 to +262
### 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`)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants