docs: plans×code 修復輪 Wave A(grill 裁決落地+docs stale 同步) - #321
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G9C6aJGUJR37PgWSBPBNVf
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G9C6aJGUJR37PgWSBPBNVf
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G9C6aJGUJR37PgWSBPBNVf
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G9C6aJGUJR37PgWSBPBNVf
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G9C6aJGUJR37PgWSBPBNVf
📝 WalkthroughWalkthroughThe PR updates governance documentation for ChangesGovernance documentation alignment
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 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 |
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G9C6aJGUJR37PgWSBPBNVf
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G9C6aJGUJR37PgWSBPBNVf
There was a problem hiding this comment.
Actionable comments posted: 5
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
docs/plans/ai-bim-governance-前端對齊DS-保留後端-實作手冊.md (1)
216-216: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winValidate
#minioagainst the MinIO source.This acceptance check asserts
/api/governance/files/tree, which is the A1 local_fs source. The documented#minioimplementation uses/api/minio/objects; otherwise this test can pass while true MinIO browsing is absent.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/plans/ai-bim-governance-前端對齊DS-保留後端-實作手冊.md` at line 216, Update the `#minio` acceptance criterion to validate the MinIO implementation through /api/minio/objects rather than the A1 local_fs endpoint /api/governance/files/tree; retain checks for source_kind and the demo bucket-layout panel using p1/demo.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/plans/ai-bim-governance-互動實作規格與標準對齊.md`:
- Line 116: Synchronize the conversion status across the document: update the
stale history-page statement near Line 45 and the prioritize/retry endpoint
status near Line 232 to match the implemented behavior described in the `#conv`
section. Ensure the history pagination limitation (>50 historical records not
scheduled) and the implemented endpoints have consistent status and definitions
throughout.
In `@docs/plans/ai-bim-governance-前端對齊DS-保留後端-實作手冊.md`:
- Line 163: Update the documented API contract entry listing retained backend
APIs to include the approved A1 viewer-session endpoint POST
/api/external/ifc-ready/:jobId/review-session, explicitly noting its
evidence-gated and manual-start behavior so inline viewer implementation creates
the review session correctly.
In `@docs/plans/ai-bim-governance-實作紀律與技術債防線.md`:
- Line 37: Update the “官方有就用官方” item to explicitly include the self-built
IFC→USD converter alongside the approved diff engine, BCF bridge, and conversion
coverage reports; ensure the wording aligns with the D-18 and §11 requirements
and does not imply that IFC→USD conversion is forbidden.
In `@docs/plans/docs-plans-README.md`:
- Line 152: Update the A1 governance row to preserve the distinction between the
built core closure and unfinished v2 frontend surfaces: label the core workflow
as built, and explicitly mark the v2 UI elements such as the review panel,
assignment field, and 3D highlighting as pending until accepted, consistent with
alignment matrix §4.4.
In `@docs/superpowers/plans/2026-07-10-plans-code-remediation.md`:
- Around line 365-379: The test_stage_composition_fields_present_everywhere
function currently checks only raw substrings, allowing comments or unrelated
symbols to satisfy the contract. Replace the broad text search with syntax-aware
declaration checks or narrowly scoped source-specific patterns that verify
primary, secondary, and load_order are actual stage-composition fields in each
source file.
---
Outside diff comments:
In `@docs/plans/ai-bim-governance-前端對齊DS-保留後端-實作手冊.md`:
- Line 216: Update the `#minio` acceptance criterion to validate the MinIO
implementation through /api/minio/objects rather than the A1 local_fs endpoint
/api/governance/files/tree; retain checks for source_kind and the demo
bucket-layout panel using p1/demo.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: b99ffaca-a181-46f6-bc0b-0ef7768bcbfa
📒 Files selected for processing (7)
docs/plans/ai-bim-governance-design-system-對齊矩陣.mddocs/plans/ai-bim-governance-互動實作規格與標準對齊.mddocs/plans/ai-bim-governance-前端對齊DS-保留後端-實作手冊.mddocs/plans/ai-bim-governance-實作紀律與技術債防線.mddocs/plans/docs-plans-README.mddocs/superpowers/plans/2026-07-10-plans-code-remediation.mddocs/superpowers/specs/2026-07-10-plans-code-remediation-design.md
| **#viewer**:做成「證據矩陣」頁——openStage / focusPrim / selectPrims / clearHighlight 已實作(走既有 viewer 的 DataChannel),highlightPrimsRequest P1.5、first_frame_at P1、stage truth P1。這頁設計**比原型更成熟**(viewport 留在既有 viewer,不在 console 重渲染 WebRTC),應回寫進文件成為正式架構。 | ||
|
|
||
| **#conv**:讀真 `/api/external/ifc-ready`(實測看到 project 271 的 job、`model.usdc` artifact URL、review_session)。差距:mapping coverage 報告 P1;插隊/重試/並行數控制 P1(原型的拖曳排序在實作改為 controlled action endpoint——正確,但 endpoint 未建)。 | ||
| **#conv**(2026-07-10 更新:alias→`#minio`,功能併入 ModelDataPage):讀真 `/api/external/ifc-ready`。原差距已陸續收口:插隊/重試(`POST /api/conversion/jobs/:id/prioritize|retry`)與手動觸發(`POST /api/conversion/trigger`)已建(IP allowlist+確認對話框);coverage 回填由 INFRA 切片(PR #315)落地。殘餘:>50 筆歷史分頁未排程。 |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Synchronize the stale conversion statements.
This line says history, prioritize/retry, and manual trigger are implemented, but the same document still says the history page is missing (Line 45) and labels prioritize/retry endpoints as pending (Line 232). Update those stale passages so this canonical contract has one status and endpoint definition.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/plans/ai-bim-governance-互動實作規格與標準對齊.md` at line 116, Synchronize the
conversion status across the document: update the stale history-page statement
near Line 45 and the prioritize/retry endpoint status near Line 232 to match the
implemented behavior described in the `#conv` section. Ensure the history
pagination limitation (>50 historical records not scheduled) and the implemented
endpoints have consistent status and definitions throughout.
| #### `#a1`(A1GovernanceWorkbenchPage)— HERO BUILT(**v2 改版 2026-07-02 · D10**) | ||
| - **DS 視覺**:頁首「① 選檔 · 偵測到的 IFC」Panel:來源切換 pills(local_fs 檔案庫/MinIO bucket 偵測)+ 選檔元件(三樣式擇一:下拉 optgroup/級聯 pills/樹狀;原型供挑)+ 選定檔列(key·大小·mtime·「測試資料」Badge);5-step Stepper(**選檔→檢核→結果→審查(Issue·BCF)→交付**);記分板 MetricCard(來自真實 run);可點 rule 清單;**BCF 審查面板**(topic 列:ID·標題·規則碼·severity·狀態 chip 可流轉·指派 dashed 待建標;footer 匯出 BCF 2.1/Excel);**A1 連動橋**:四格證據 rail + GUID 佇列 + 高亮鍵(**不用 hatched phase Panel 視窗佔位,不內嵌 3D**)。 | ||
| - **DS 視覺**:頁首「① 選檔 · 偵測到的 IFC」Panel:來源切換 pills(local_fs 檔案庫/MinIO bucket 偵測)+ 選檔元件(三樣式擇一:下拉 optgroup/級聯 pills/樹狀;原型供挑)+ 選定檔列(key·大小·mtime·「測試資料」Badge);5-step Stepper(**選檔→檢核→結果→審查(Issue·BCF)→交付**);記分板 MetricCard(來自真實 run);可點 rule 清單;**BCF 審查面板**(topic 列:ID·標題·規則碼·severity·狀態 chip 可流轉·指派 dashed 待建標;footer 匯出 BCF 2.1/Excel);**A1 連動橋**:四格證據 rail + GUID 佇列 + 高亮鍵(**不用 hatched phase Panel 視窗佔位**;inline 3D 僅限 evidence-gated、手動啟動的 `a1-inline` 路徑——IX-3D-01 v2.1(2026-07-10 R1)修訂版,其他頁不內嵌)。 | ||
| - **保留後端 API**:`governanceClient` → `GET /api/governance/files/tree`、`POST /api/governance/rule-runs`、`GET .../rule-runs/:id`、`/results`、`/failures`、`/export?fmt=excel`、`GET /api/governance/issues?rule_run=`、`POST /api/governance/issues/:id/transition`、`POST /api/governance/issues/from-rule-run/:runId`、`GET /api/governance/bcf/export`;`coordinatorClient` → `GET /api/minio/objects?prefix=&delimiter=/`、`runtimeStatus` + `POST /api/review-sessions/:id/first-frame`;EmbeddedViewer postMessage highlight(P1.5)。**全部既存,零後端改動;assignee 欄不存在(O7)——前端不得自建。** |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
Add the approved A1 viewer-session endpoint to this API contract.
R1 registers POST /api/external/ifc-ready/:jobId/review-session, but this A1 API list omits it while documenting the inline viewer. Add the endpoint and its evidence-gated/manual-start behavior so implementation does not omit session creation.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/plans/ai-bim-governance-前端對齊DS-保留後端-實作手冊.md` at line 163, Update the
documented API contract entry listing retained backend APIs to include the
approved A1 viewer-session endpoint POST
/api/external/ifc-ready/:jobId/review-session, explicitly noting its
evidence-gated and manual-start behavior so inline viewer implementation creates
the review session correctly.
| 1. **先查文件,不靠記憶**:對應功能先在 `docs/plans/` 找到 DoD 條目、IX 互動卡、或 API 草案。找不到 → 停下來問人,不自己發明。 | ||
| 2. **確認里程碑順序**:M0 → M1(A1 純 CPU,不碰 3D)→ M2 → M3 → M4 → M5+,**不要先做 3D**。 | ||
| 3. **官方有就用官方**:diff 用 `ifcdiff`、BCF 用官方 bcf 庫語意、3D 量測/批註/剖切/書籤/場景樹/屬性/串流一律走 Omniverse 官方件;自製只做 BCF 橋接層與轉檔 coverage 報告。 | ||
| 3. **官方有就用官方**:diff 採簽核之自製多級鍵引擎(2026-07-10 R2,語意對齊 ifcdiff;理由與限制見 README 鐵律 #9)、BCF 用官方 bcf 庫語意、3D 量測/批註/剖切/書籤/場景樹/屬性/串流一律走 Omniverse 官方件;自製只做 diff 引擎(已簽核)、BCF 橋接層與轉檔 coverage 報告。 |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
Include the IFC→USD converter in the self-built scope.
This line limits self-built work to the diff engine, BCF bridge, and coverage reports, but the same document’s D-18 and §11 require a self-built IFC→USD converter. As written, contributors may interpret this as forbidding the converter.
Proposed wording
-3. **官方有就用官方**:diff 採簽核之自製多級鍵引擎(2026-07-10 R2,語意對齊 ifcdiff;理由與限制見 README 鐵律 `#9`)、BCF 用官方 bcf 庫語意、3D 量測/批註/剖切/書籤/場景樹/屬性/串流一律走 Omniverse 官方件;自製只做 diff 引擎(已簽核)、BCF 橋接層與轉檔 coverage 報告。
+3. **官方有就用官方**:diff 採簽核之自製多級鍵引擎(2026-07-10 R2,語意對齊 ifcdiff;理由與限制見 README 鐵律 `#9`)、BCF 用官方 bcf 庫語意、3D 量測/批註/剖切/書籤/場景樹/屬性/串流一律走 Omniverse 官方件;自製只做已簽核的 diff 引擎、BCF 橋接層、IFC→USD 轉檔器與其 coverage 報告。📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| 3. **官方有就用官方**:diff 採簽核之自製多級鍵引擎(2026-07-10 R2,語意對齊 ifcdiff;理由與限制見 README 鐵律 #9)、BCF 用官方 bcf 庫語意、3D 量測/批註/剖切/書籤/場景樹/屬性/串流一律走 Omniverse 官方件;自製只做 diff 引擎(已簽核)、BCF 橋接層與轉檔 coverage 報告。 | |
| 3. **官方有就用官方**:diff 採簽核之自製多級鍵引擎(2026-07-10 R2,語意對齊 ifcdiff;理由與限制見 README 鐵律 `#9`)、BCF 用官方 bcf 庫語意、3D 量測/批註/剖切/書籤/場景樹/屬性/串流一律走 Omniverse 官方件;自製只做已簽核的 diff 引擎、BCF 橋接層、IFC→USD 轉檔器與其 coverage 報告。 |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/plans/ai-bim-governance-實作紀律與技術債防線.md` at line 37, Update the “官方有就用官方”
item to explicitly include the self-built IFC→USD converter alongside the
approved diff engine, BCF bridge, and conversion coverage reports; ensure the
wording aligns with the D-18 and §11 requirements and does not imply that
IFC→USD conversion is forbidden.
| | App | 狀態 | 真相要點 | | ||
| |---|---|---| | ||
| | A1 治理檢核 | **built** | **v2 流程:選檔(雙來源)→ 檢核 → 結果 → 審查(Issue·BCF)→ 交付**。rule_engine + ifctester(IDS) + issues + BCF 2.1;選檔=`GET /api/governance/files/tree`(local_fs·built)+`GET /api/minio/objects`(真 MinIO 逐層·built,唯讀),檔案一律標「測試資料」;BCF 審查面板=issues API(列表/狀態流轉 built;**指派欄待建 P1**);3D 高亮 P1.5——A1 連動橋只讀 `#sessions` 證據,證據未齊鍵保持 disabled | | ||
| | A1 治理檢核 | **built** | **v2 流程:選檔(雙來源)→ 檢核 → 結果 → 審查(Issue·BCF)→ 交付**。rule_engine + ifctester(IDS) + issues + BCF 2.1;選檔=`GET /api/governance/files/tree`(local_fs·built)+`GET /api/minio/objects`(真 MinIO 逐層·built,唯讀),local_fs 測試 fixtures 標「測試資料」(MinIO=真實資料監控,不標;R8);BCF 審查面板=issues API(列表/狀態流轉 built;**指派欄待建 P1**);3D 高亮 P1.5——A1 連動橋只讀 `#sessions` 證據,證據未齊鍵保持 disabled | |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Preserve the A1 built-status granularity.
This row presents the full v2 flow as built, while the alignment matrix §4.4 says only the A1 core closure is built and the v2 frontend surfaces remain pending until accepted. Split this into “core built” plus explicit v2 UI pending status.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/plans/docs-plans-README.md` at line 152, Update the A1 governance row to
preserve the distinction between the built core closure and unfinished v2
frontend surfaces: label the core workflow as built, and explicitly mark the v2
UI elements such as the review panel, assignment field, and 3D highlighting as
pending until accepted, consistent with alignment matrix §4.4.
| ```python | ||
| import re, pathlib | ||
| FIELDS = {"primary", "secondary", "load_order"} | ||
| SOURCES = [ | ||
| "services/kit-manager-api/app/kit_service.py", | ||
| "bim-streaming-server/source/extensions/ezplus.bim_review_stream.messaging/ezplus/bim_review_stream/messaging/stage_loading.py", | ||
| "web-viewer-sample/src/types/review.ts", | ||
| "apps/kit-manager-web/src/models.ts", | ||
| ] | ||
| def test_stage_composition_fields_present_everywhere(): | ||
| for p in SOURCES: | ||
| text = pathlib.Path(p).read_text(encoding="utf-8") | ||
| missing = {f for f in FIELDS if f not in text} | ||
| assert not missing, f"{p} 缺 stage_composition 欄位 {missing}" | ||
| ``` |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Make the stage-composition test validate structure, not substrings.
missing = {f for f in FIELDS if f not in text} can pass when a field name appears only in a comment, string, or unrelated symbol. Use syntax-aware declarations or narrow source-specific patterns so the contract test actually guards the mirrored schema.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/superpowers/plans/2026-07-10-plans-code-remediation.md` around lines 365
- 379, The test_stage_composition_fields_present_everywhere function currently
checks only raw substrings, allowing comments or unrelated symbols to satisfy
the contract. Replace the broad text search with syntax-aware declaration checks
or narrowly scoped source-specific patterns that verify primary, secondary, and
load_order are actual stage-composition fields in each source file.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6ff2943d5e
ℹ️ 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".
|
|
||
| - [ ] **Step 1: 失敗測試**:store A 建 job → new Store(同 path)→ 斷言 job 讀得回(id/status/tenant 完整);壞 JSON 檔 → 不 crash、空启动。 | ||
| - [ ] **Step 2**: Run → FAIL。 | ||
| - [ ] **Step 3**: 比照 `conversionLedger.ts:82-91`:建構子 load、每 mutation 後 `persist()`(`.tmp` 寫入+rename atomic swap、注入式 path 與時鐘);**app.ts 呼叫點零變更**(持久化全在 store 內部)。 |
There was a problem hiding this comment.
Wire the persistence path into the store
This step says to add externalIfcReadyStorePath to config.ts while leaving app.ts call sites unchanged, but the current coordinator creates the store in bim-review-coordinator/src/app.ts with new ExternalIfcReadyStore(). With zero app.ts wiring, the new config/env path cannot reach the store, so a future implementation would either ignore EXTERNAL_IFC_READY_STORE_PATH or bypass the loaded config by reading env inside the service, leaving production and tests using different path semantics.
Useful? React with 👍 / 👎.
| | `#minio` 頁 | **2026-07-02 更新**:頁面接 coordinator `GET /api/minio/objects?prefix=&delimiter=/`(真 MinIO raw-folder 逐層,唯讀;`app.ts:1597`);local_fs 樹 API(`files/tree`)保留 | **真 MinIO raw-folder 逐層瀏覽已建(唯讀);三層「專案/種類/版本」僅 watcher 解析語意,非 bucket 結構宣稱;兩條 API 供 A1 v2 雙來源** | **binding** | | ||
| | 轉檔歷史頁 | coordinator 有 `/api/dev/conversions` proxy(`app.ts:1795`)轉發 streaming `/api/conversions` list;`conversion_authority.py:126` `GET /api/conversions` 存在;但**前端 console 未渲染成歷史頁** | 後端 list + proxy 皆在;缺的是 UI 呈現層。精確說法:「job 在 streaming-server 有 JSON 持久化與 list API,但前端無轉檔歷史紀錄頁」 | **binding·落差:不得寫「完全沒接線」** | | ||
| | 手動觸發 UI | `#conv` prioritize/retry 只對既有 ifc-ready job 排序/重試;`PUT /api/conversion/watch` 只開關 watcher 生命週期 | **無已接線的手動佇列/插隊 UI 觸發新轉檔** | binding | | ||
| | 轉檔歷史頁 | coordinator `/api/dev/conversions` proxy 轉發 streaming `/api/conversions` list;**前端歷史呈現已落地(2026-07-06 #303)**:ModelDataPage GlobalConversionPane「轉檔歷史」折疊區(前 50 筆、誠實空/錯誤狀態) | 殘餘:獨立第一入口頁與 >50 筆分頁未排程。不得寫「完全沒接線」或「缺前端歷史頁」 | **binding** | |
There was a problem hiding this comment.
Update the stale L3 matrix row too
This row now says the conversion history UI has landed, but the same matrix still has L3 later saying the remaining fix is that the frontend UI layer is missing. Since this document is used as the binding status/correction source, readers can still follow L3 and schedule work for a non-existent gap; update or retire the L3 entry in the same sync.
Useful? React with 👍 / 👎.
| - [ ] **Step 2: 實作紀律 D-11 改寫**:`A2 diff 現行採自製多級鍵引擎(2026-07-10 簽核,選型理由與限制見 README 鐵律 #9);前端直接吃其 JSON;跨 schema 需求出現時再評估 from ifcdiff import IfcDiff。`;§11 與 §13 E1 對應句同步(E1 改為「A2 diff 走簽核之自製引擎,語意對齊 ifcdiff」)。 | ||
| - [ ] **Step 3: 驗證+commit** | ||
|
|
||
| Run: `grep -rn "一律用.*ifcdiff\|無自寫比對" docs/plans/ | grep -v "再評估"` |
There was a problem hiding this comment.
Fix the R2 verification before relying on it
The new Wave A verification expects this grep to return zero old ifcdiff mandates, but the current tree still matches docs/plans/ai-bim-governance-互動實作規格與標準對齊.md:352 with 版本比對一律用 ifcdiff. That leaves the highest-priority interaction spec contradicting R2 and makes the documented verification step fail immediately; include that stale line in Wave A or adjust the gate.
Useful? React with 👍 / 👎.
| import { loadConfig } from "../src/config"; | ||
| describe("test data projects config", () => { | ||
| it("parses TEST_DATA_PROJECT_IDS csv", () => { | ||
| const cfg = loadConfig({ TEST_DATA_PROJECT_IDS: "270, 889,990,271" }); |
There was a problem hiding this comment.
Pass env through the test setup instead
loadConfig currently accepts Partial<CoordinatorConfig>, not arbitrary env keys, so this object literal with TEST_DATA_PROJECT_IDS will be a TypeScript excess-property error before the new config parsing can be tested. Use process.env.TEST_DATA_PROJECT_IDS (with cleanup) or add an explicit env-loading test helper; the same applies to the later loadConfig({ NODE_ENV: "production" }) example.
Useful? React with 👍 / 👎.
| | A1 for-ifc-ready rule-run | 2026-07-08 Superpowers spec 標示 `/api/governance/rule-runs/for-ifc-ready/:jobId` 已實作;此屬凍結契約 approved exception,不能外推成任意 proxy 可改。 | 禁把該例外當成 §1 後端凍結全面放寬。 | | ||
| | A1 built 粒度 | A1 core closure built;v2 新增前端面(雙來源接線、BCF 審查面板、A1BridgeRail)仍依矩陣 §4.4 標示,不得未驗收即宣稱完整交付。 | 禁把「A1 built」解讀成所有 v2 user-facing surface 均已 E2E complete。 | | ||
| | A3 clash | A3 federation built;clash NOT BUILT · blocked-on-OCC。舊 A3 clash implementation plan 若無新決策,不得重啟。 | 禁顯示真實 clash 數字;禁依 2026-06-23 plan 直接重開 clash backend。 | | ||
| | A3 clash | A3 federation built;clash NOT BUILT · **未開工**。O6 已裁定官方 `ifcclash` 路線(2026-07-07 spec),依 `docs/superpowers/plans/2026-07-07-a3-clash-ifcclash.md` 執行。 | 禁顯示真實 clash 數字;禁再引用「blocked-on-OCC」與 2026-06-23 舊 clash plan。 | |
There was a problem hiding this comment.
Sync the A3 clash decision across the matrix
This new README row forbids further blocked-on-OCC references, but ai-bim-governance-design-system-對齊矩陣.md still marks A3 clash as blocked-on-OCC in its binding §4.4/L4 entries. Because that matrix is documented as the unique A1–A10 status裁決 source, leaving it unchanged preserves the old decision and directly contradicts this new rule; update the matrix rows in the same Wave A sync.
Useful? React with 👍 / 👎.
摘要
2026-07-10 plans×code 分析輪 Wave A:grill 裁決(R1–R10)文件落地+docs stale 同步。純文件變更,無 code。
docs/superpowers/specs/2026-07-10-plans-code-remediation-design.md、docs/superpowers/plans/2026-07-10-plans-code-remediation.md(裁決帳 R1–R10、Wave A–D 任務)#conv改 alias→#minio;PART A 對照表/差距段、PART D 前提 1、RT#runtime列同步POST /api/conversion/trigger;§1 新增第 13 條加性慣例;§5.A inline 3D 修訂;#conv除役同步#conv、轉檔歷史頁、手動觸發列;實作紀律:§2 原則 3、D-11、M5+、§11、§13 E1同步來源
repo 現況 code(
EdgeConsole.tsx:83、modelData/GlobalConversionPane.tsx:363-388、app.ts:1281/2096、governanceProxy.ts:223/266、diff_engine/engine.py)+ 2026-07-10 grill 裁決紀錄(spec R1–R10)。驗證
🤖 Generated with Claude Code
https://claude.ai/code/session_01G9C6aJGUJR37PgWSBPBNVf
Summary by CodeRabbit
#conv已整合至#minio與 ModelDataPage。AI Coding Governance evidence
docs/superpowers/specs/2026-07-10-plans-code-remediation-design.md(R1/R2/R3/R6/R8 對應本 PR 各檔修訂)git diff --stat origin/main...HEAD僅 7 個 .md+spec/plan 新檔,無 code symbol 異動;index 已 reanalyze 至本分支 HEAD.claude/workflows/、agent 腳本與 CI workflow 定義)