Skip to content

docs(#549): freeze S0 model/runtime dependency inventory - #570

Merged
raylei50653 merged 3 commits into
mainfrom
docs/549-s0-model-inventory
Oct 10, 2026
Merged

raylei50653 merged 3 commits into
mainfrom
docs/549-s0-model-inventory

Conversation

@raylei50653

@raylei50653 raylei50653 commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

Summary

#549 的模型/runtime 分離設計需要先固定現行依賴與驗證邊界。本 PR 提交 S0 盤點快照:66 筆依賴記錄(61 present/5 unavailable)、17 個 runtime surfaces、N01–N06 unchanged-model baseline,以及 G01–G07 existing-vs-missing 設計輸入。

新增兩份盤點文件 docs/reference/model_runtime_inventory_549.md 與同名 JSON,並在 docs/reference/README.md 加入 reference index 列。P04 明確標為 Python teacher/temporal/gated/JDE;snapshot JSON 不是 S1 model bundle/loader schema。Source baseline:b56ad9f4cd4d982fc3f0b293206a32f7c8675332(#569 合併後)。

Refs #549。S0 最終驗收與 merge 等待正式 PR 審查;#549 保持 open。S1/S2 未授權,#547 的 local-only/owner_confirmation=null 不變。

Review 修訂(62ec2579、e5685dd6)

逐項複查 code review 的 8 項 findings,全部成立並修正;只動上述三個文件:

  • 漏列 runtime default:新增 A066 models/yolo/yolo26n_native.engine(src/main.cpp:21 寫死,SACCADE_WITH_OPENCV=ON 才建置的 saccade_node;本機 unavailable,不以同名檔替代)與 surface P03b。其餘 source 字面值掃描的未列項只有 docstring 範例。
  • 權利證據對象:每筆 licence 加 category/audit_item。只有 N01/N02/N05 的 audit_item 是 M-1(M-1 scope=shipped model root);model root 外的 YOLO 血統只引 ADR 023:27;embedding/ReID、learned policy JSON、operator binary、metadata 為 audit_item: null,如實記錄 [465 follow-up] Public distribution readiness: licence decisions, release key, publish decision #547 目前沒有稽核項目追蹤。是否開立新項目由 [465 follow-up] Public distribution readiness: licence decisions, release key, publish decision #547 owner 決定,本 PR 不代為處理。
  • reference_only 指標:12 筆改指向實際命名它們的檔案/行(N04/N05、各 MANIFEST runtime_identity/pins/licenses 區塊等),並加 reference_basis。A009 沒有 checked-in 檔案提及,改用 git_refs(ea619545 發布、b24c27f8 歸檔)。
  • 可重播性:§7 replay 改為 committed 的完整檢查(present bytes/SHA、每個不重複 source ref 的檔案與行號範圍、git_refs、§2 native 表六列 vs JSON),用 .venv/bin/python,raw output 寫入 results/549_s0_inventory/<時戳>/。JSON 註明原 snapshot 的 101 是含重複的 reference 次數(不重複 71);原 snapshot raw report 不改寫。
  • 重播失敗彙總(e5685dd6,正式審查 P3):§7 replay 改在 subshell 內累積各步 exit status,結尾印出 overall exit N 並以其結束;各步仍全部執行並記錄。
  • 小修:A052 consumer 描述(無 configs/ preset 使用,改列實際 eval/training 腳本)、A062 行號統一為 :43-71。

Behavior change?

  • No — documentation only;模型、runtime、shipping、configs、identity publication、license audit 皆未改動。
  • Yes

未改 decision layer、檢查工具、CI workflows 或 required checks。

Evidence scope

模型與 raw reports 仍在 gitignored 的 models/、runs/、build/、results/。記錄的檔案身分與 static 檢查屬 local-only evidence;本 PR 不攜帶模型/raw-report bytes,不能視為 clean-checkout reproducible evidence、CI 模型重播、GPU parity 重跑、來源認證或權利批准。

原 snapshot 的 raw-report paths/SHA 保留不改寫;PR 修訂後的檢查在此另記。Identity checker 未重算 host-specific environment、legacy runtime inputs 或 probe;equivalence=unproven 不變。

Test plan

  • 本機獨立 byte/metadata 核對:61/61 present files 大小/SHA 相符;4 unavailable 仍 absent;65 artifact IDs/paths與16 surface IDs唯一;101 source references有效;六份 retained validation reports的大小/SHA相符。
  • 本機 installed check_shipping_bundle.py static --manifest:13/13 PASS;只讀 static檢查,沒有runtime/GPU replay。
  • check_doc_links.py:3036 relative links resolve。
  • check_doc_structure.py --strict:PASS;兩個既有 research index warnings保留。
  • check_runtime_identity_staleness.py --mode attested:exit 0,保留上述未重算範圍。
  • git diff --check:PASS。
  • Committed-head d0dbeaedd1c2eb6e130d3637f510949ca7b8bfde:以 tools/resctl.py run --wait cpu-heavy 執行完整 scripts/pre_push.sh,exit 0;pytest 5450 passed、52 skipped、105 deselected、5 xfailed;working tree clean。無 C++/determinism-sensitive changes,對應 build/continuous chain 未觸發。
  • Exact-head 獨立本機文件審查:PASS,限 documentation scope;不代表 owner S0 acceptance。
  • Review 修訂後本機 replay(results/549_s0_inventory/20261010T171218/,從 §7 原文抽出執行):artifact replay、static、doc links、doc structure、runtime identity、whitespace 六步皆 exit 0。66 artifacts/61 present 身分相符;96 個不重複 source refs 的檔案與行號範圍有效;2 個 git refs 存在;native 表 6 列一致。Static --manifest 13/13 PASS,report 與原 snapshot 位元組相同(SHA fa6fc461…)。Doc links 3039 resolve;doc structure 仍只有兩個既有 warnings。
  • Replay 負控制(scratch 複本):竄改 1 個 SHA、1 個行號範圍、1 個 git ref、1 列 native 表,四項皆被報出,exit 1。
  • Committed-head 62ec25799067173a3855102ab560c8d69a128e0b:直接執行完整 scripts/pre_push.sh(未經 resctl),exit 0;pytest 5450 passed、52 skipped、105 deselected、5 xfailed;無 C++/determinism-sensitive changes。
  • P3 修正後(e5685dd6)從 §7 原文抽出 replay,bash 與 zsh 各跑一次:六步與 overall exit 皆 0,整段 exit 0(results/549_s0_inventory/20261010T175308/、20261010T175320/)。負控制:artifact replay 失敗(竄改複本)與中間步驟失敗(doc_links 換成 false)時,後續步驟仍執行且最後一步成功,整段仍 exit 1,bash/zsh 皆同。
  • Committed-head e5685dd6:直接執行完整 scripts/pre_push.sh(未經 resctl),exit 0;pytest 5450 passed、52 skipped、105 deselected、5 xfailed。
  • Remote CI(62ec2579):contracts、pytest、mypy、ruff、lint-typecheck、lockfile、shipping-config-loader 7/7 pass。
  • Remote CI:e5685dd6 執行中。
  • Owner S0 final acceptance/merge review。

🤖 Generated with Claude Code

raylei50653 and others added 3 commits October 10, 2026 16:30
- Add A066/P03b: saccade_node hardcodes models/yolo/yolo26n_native.engine
  (unavailable locally, no producer/lineage record).
- Licence entries gain category/audit_item; only N01/N02/N05 cite M-1.
  Other artifacts record that no #547 audit item tracks them.
- Point reference_only source_refs at files that actually name them;
  A009 uses git_refs (ea61954 publish, b24c27f archive).
- Fix A052 consumer description and A062 line range.
- Replace §7 replay with a committed check of bytes/SHA, unique source
  ref ranges, git refs and the native table; .venv/bin/python, raw output
  under results/549_s0_inventory/<timestamp>/. Note that the snapshot's
  101 counted occurrences (71 unique).
- Index the inventory in docs/reference/README.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The §7 replay printed each step's exit code but returned the status of
the last command, so a failed artifact replay could end with exit 0.
Run it in a subshell that records every step's status, prints
"overall exit N" and exits with it; all steps still run and log.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

1 participant