aosr-v3 現況

這頁由機器算出,不要手改;手改會被下一次合併蓋掉
今天:主線最近一次雲端檢查(verify)綠(過了)。最新合進去的是「docs: 振幅的精度契約——容差跟著相位角長,常數取單精度四格(#192) (#195)」(2026-09-12 20:10)。有 0 題要老闆拍板。

要你回的

現在沒有要你回的——要老闆拍板的題(標籤 decision)一題都沒有。

最近做完的

最近關掉的票(issue,待辦票),新的在前。一張票要串得起三樣東西:一個把它關掉的PR(合併請求)、那個 PR 併出來的那一顆 commit、以及那一顆 commit 的雲端檢查(verify)在機器分支上留下的一份綠收據(雲端那一跑留下的成績單)。串不起來的用紅字寫問題。

正在做

開著的合併請求(PR,等人看等人合)(2 張)

其他開著的票(含等條件才立得起來的卡,標籤 deferred-cards)(20 張)

健康燈

主線最近一次雲端檢查(verify):綠——綠(過了)。那一跑的工作(job)跑了 約 3 分鐘(227 秒)。
看那一跑每一步(中文那幾步就是一支一支的檢查)
那一步結論跑了多久
Set up job綠(過了)2 秒
Run actions/checkout@v4綠(過了)1 秒
Run astral-sh/setup-uv@v5綠(過了)3 秒
裝依賴綠(過了)2 秒
把 status 分支上的機器收據鏡到被忽略的目錄(三張收據卡與後設測試讀這裡;不上網,checkout 已帶 origin/status)綠(過了)1 秒
規矩卡必填欄位——自己跑一次乾淨樹綠(過了)29 秒
離開碼誠實——自己跑一次乾淨樹綠(過了)11 秒
斷言不准鎖死數量——自己跑一次乾淨樹綠(過了)0 秒
進度待辦不准手寫進版控——自己跑一次乾淨樹綠(過了)0 秒
入口檔的規矩節等於重生結果、指路牌等於登記的那一段、生成段不留佔位、不超過行數上限——自己跑一次乾淨樹綠(過了)1 秒
決策紙一題一檔、取代關係雙向、鏈不成環——自己跑一次乾淨樹綠(過了)0 秒
docs 的標頭要齊、逐類與總量份數有上限、每一行有字元上限、三類裡面不准再分層——自己跑一次乾淨樹綠(過了)0 秒
每次開工會載入的檔不准出現模型名、CLI 名、用量字樣——自己跑一次乾淨樹綠(過了)0 秒
檔案放哪裡走白名單、路徑純 ASCII——自己跑一次乾淨樹綠(過了)1 秒
雲端工作不准無聲死掉——自己跑一次乾淨樹綠(過了)0 秒
路徑與連結都要解析得到、不准指到 repo 外——自己跑一次乾淨樹綠(過了)0 秒
測試不准依賴環境現況、不准寫進真 repo——自己跑一次乾淨樹綠(過了)1 秒
提交身分在名單裡——自己跑一次乾淨樹綠(過了)0 秒
產品程式與測試要同一支合併請求落地——自己跑一次乾淨樹綠(過了)0 秒
環境交給 uv 管、uv run 是唯一入口——自己跑一次乾淨樹綠(過了)1 秒
門檻數字只准住在卡的登記簿——自己跑一次乾淨樹綠(過了)0 秒
掃描面不准有洞(宣告的 scope 要等於實際列舉的檔案集合)——自己跑一次乾淨樹綠(過了)4 秒
合併門口的設定從伺服器回讀比對——唯一准上網的檢查(決策紙 merge-gate-check-may-read-github)綠(過了)1 秒
關掉的票都要有一個合進主線的關票 PR——第二支准上網的檢查(決策紙 hand-closed-issues-block-merge)綠(過了)1 秒
雲端收據欄位齊全、每個數字有證據——讀鏡像(上面那一步鏡的)自己跑一次乾淨樹綠(過了)0 秒
算數的收據來自雲端那一跑、自報離開碼不算——讀鏡像自己跑一次乾淨樹綠(過了)0 秒
收據不准由被查的那一跑寫、不准由人寫——讀鏡像自己跑一次乾淨樹綠(過了)0 秒
文件裡的 commit sha 與雲端 run id 必須解析得到——自己跑一次乾淨樹(sha 對本機物件庫,run id 對鏡像)綠(過了)0 秒
每筆放行都要有理由與到期日——自己跑一次乾淨樹綠(過了)1 秒
密碼、金鑰、.env 不准進版控,歷史也要掃——自己跑一次乾淨樹綠(過了)3 秒
寫法警衛——自己跑一次乾淨樹綠(過了)1 秒
ruff——寫法警衛的另一半(規則集與它的數字住在 pyproject.toml 的 [tool.ruff])綠(過了)0 秒
新家的 import 只准往下流、不准成環、只有最底一層准碰機器設定——自己跑一次乾淨樹綠(過了)0 秒
型別警衛——型別對不上就紅、公開函式一律要有標註、逃生門一律紅——自己跑一次乾淨樹綠(過了)12 秒
後設測試(每張卡六回合),順手把 junit 收據寫到卡宣告的路徑綠(過了)145 秒
綠必須是真的綠——收據不准有 skip、收集數不准低於地板綠(過了)1 秒
上傳收據片段(前面紅了也要傳——那正是要留證據的時候)綠(過了)1 秒
Post Run astral-sh/setup-uv@v5綠(過了)0 秒
Post Run actions/checkout@v4綠(過了)0 秒
Complete job綠(過了)0 秒

那一跑是 雲端那一跑(run 34692969439),狀態 completed 開始 2026-09-12 20:10 對著提交(commit)d7074322233c 收工 2026-09-12 20:14。這一頁只認雲端那一跑的結論,本機跑綠不算數。

收據(雲端那一跑留下的成績單)齊全:最近 20 跑每一跑都有收據。
看缺收據的那幾跑

收據讀自 origin/status(154 份收據)。收據是雲端那一跑留下的成績單。比對的是收據裡的 run id;還在跑的那一跑不算(它本來就還沒有收據)。

每一跑都有收據。

關掉的票串不起綠收據的有 0 張——最近關掉的每一張票都有一個合併請求(PR)做掉它、而且收據是綠的。
看逐票三格(做掉的 PR、那顆提交(commit)、綠收據)

收據讀自 origin/status(154 份收據)。綠是從收據的欄位重算的:那一跑綠、verify 那個工作(job)綠、而且每一支檢查的離開碼都是 0——不看收據自報的那一欄。

標題關掉的時間做掉它的 PR併出來那一顆提交(commit)綠收據
#192振幅的精度契約:v3 算的反射乘積與每條路徑的壓力,跟上一代(單精度)要對到多近?2026-09-12 20:10#195d7074322233c 雲端那一跑(run 34692969439)
#187第三段:反射長到二階、三階(純幾何)——參考答案、v3 計算、命令列、逐位比對2026-09-12 19:13#190ed34c049bdeb 雲端那一跑(run 34690494305)
#185第三段做哪一個:先長二階以上的反射(純幾何),還是先長振幅與材料吸收?2026-09-12 17:51#18997618c55a0c1 雲端那一跑(run 34686929423)
#182讓 uv 把新家 src/aosr 裝進環境:現在 `uv run python -m aosr.…` 跑不起來,要 PYTHONPATH=src2026-09-12 17:09#186aa5d0421fb54 雲端那一跑(run 34685093019)
#181第二段:v3 自己算參考房——可改的輸入 → 直達與一次反射 → 命令列印表 → 跟參考答案逐位比2026-09-12 16:35#18351892c6e2742 雲端那一跑(run 34683668406)
#178精度契約:v3 算路徑距離與到達時間,要跟參考答案對到哪一位?2026-09-12 15:19#18021be373401b9 雲端那一跑(run 34680412582)
#175第一個參考房間:跑通凍結 v2 並保存可重跑資料2026-09-12 14:56#179618324a24385 雲端那一跑(run 34679439929)
#123鎖住 v2:記號 v3-donor 釘 626f5d97、repo 設成唯讀2026-09-12 13:24#1778ad2183927c0 雲端那一跑(run 34675492177)

路線走到哪(里程碑 milestone,一段路線)

batch-1 關了 關掉 1/還開著 0 100%
1 裁判補洞 開著 關掉 4/還開著 0 100%
2 守門根治與立卡 開著 關掉 3/還開著 1 75%
3 第二塊:材料與 scoring 開著 關掉 0/還開著 2 0%
4 順手:case/地板/守衛 開著 關掉 0/還開著 4 0%
5 帳與工具 開著 關掉 0/還開著 6 0%
6 等/背景 開著 關掉 1/還開著 5 17%

規矩與當初規劃的 38 張卡

展開:立好的規矩卡、時間軸、與當初規劃的卡的去向

規矩卡(29 張,每一張都有檢查程式與必紅樣本)

這 29 張卡總共對到上一代 19 件事故(v2 事故庫一共 66 件)。

  • assertions-not-pinned-to-counts:測試檔裡的斷言不准把數量鎖死
  • check-exit-code-honest:每支檢查的離開碼要誠實:0 是真的掃過而且乾淨、1 是抓到違規、2 是這一跑不算數
  • ci-jobs-cannot-die-quietly:雲端那一跑不准無聲死掉,六條:紅了不准不擋、離開碼不准被吞掉、job 不准漂綠也不准沒有上限、不准有只會回綠的空 j…
  • commit-author-allowlisted:本次 PR 整段提交範圍(base..head,不只 HEAD)的每一筆,author 與 committer 兩個…
  • decision-paper-structure:決策紙一題一檔,格式與取代關係由機器守
  • doc-frontmatter-and-dates:docs 底下的設計文件與知識文件要有齊全的標頭,份數逐類有上限、全部加起來另有一個總量上限,docs 三類與兩份入…
  • entry-files-rendered-from-registry:入口檔的規矩節由登記簿生成,不是手寫的:標記之間的內容必須等於用 `governance/rules/` 底下每一張…
  • exemptions-need-expiry:每一筆「放行」都要寫得出為什麼、以及什麼時候失效
  • file-placement-allowlist:檔案放哪裡走白名單,名字一律 ASCII,兩條:①repo 根層與 docs 根只准出現這張卡列出的檔名與目錄名,多…
  • four-roles-different-actors:收據不准由被查的那一跑寫,也不准由人寫:每一份雲端收據的 written_by.run_id 不准等於 run.ru…
  • green-must-be-real-green:測試那盞綠燈要是真的綠:pytest 產的 junit 收據按 `classname` 前綴分成卡上登記的幾個籃子(…
  • identity-strings-generated:版控裡的文件出現的 commit sha 與雲端 run id 必須解析得到:docs 底下的 .md 與幾份根層檔…
  • issues-closed-only-by-merged-pr:人手關的票超過零張就紅:每一張關掉的票(issue,GitHub 上的待辦票)都必須有一個**合進主線**的關票 P…
  • layers-import-downward-only:新引擎的資料夾有高低順序,底下的不准去拿上面的東西,也不准繞成一圈;只有最底下那一層 `runtime` 可以動 J…
  • merge-gate-read-back:合併門口的設定要從伺服器回讀比對:主線的 ruleset 必須是登記的那一個、還在生效、掛在預設分支上、沒有人能繞過…
  • no-model-names-in-entry-files:每次開工都會載入的檔——兩份入口檔,加上 `docs/decisions/` 底下每一份決策紙——**全文**不准出…
  • receipt-authority-is-the-cloud-run:算數的收據來自雲端那一跑,自報的離開碼不算:每一份收據的 authority 必須是卡上登記的那個值、run id …
  • receipt-schema-complete:雲端收據的欄位要齊全、每個數字要有證據:頂層、run、written_by、每一支檢查的必填欄位都在(欄位名按收據的…
  • refs-and-links-resolve:文件裡的路徑與連結都要解析得到,也不准指到 repo 外
  • rule-card-required-fields:規矩卡必填「怎麼查、壞樣本在哪、擋得住還是只會叫、裝在哪個 job」四欄,缺一欄、掛載點寫不滿四段、執行者填人或本機…
  • scan-scope-has-no-holes:每張卡宣告的掃描面(scope)必須等於那支檢查實際列舉出來的檔案集合,兩者不等即紅——宣告了沒掃到是洞(卡面看起來…
  • secrets-never-committed:密碼、金鑰、`.env` 一進版控就紅,現在的樹與**全部歷史**都要掃
  • status-page-computed-not-typed:進度、待辦、狀態一律由機器現算,不准手寫進版控
  • style-guard:寫法警衛,掃版控裡的每一支 .py(扣掉必紅樣本樹與本機工具目錄),五條
  • tests-isolated-from-real-env:測試不准依賴環境現況,也不准寫進真的 repo
  • tests-land-with-code:一支合併請求改動 `src/` 底下的 Python 產品程式,同一段差異裡就必須有 `tests/` 底下的 Py…
  • thresholds-live-only-in-registry:門檻數字只准住在卡的登記簿,檢查程式與卡的人話裡不准再寫一次
  • type-guard:型別警衛,掃版控裡的每一支 .py(扣掉必紅樣本樹與本機工具目錄),兩層,第二層刻意獨立於 mypy
  • uv-single-entrypoint:環境交給 uv 管,`uv run` 是唯一入口,三條

時間軸:卡是哪一天進主線的

2026-09-09 13 張 2026-09-10 14 張 2026-09-11 1 張 2026-09-12 1 張 今天 2026-09-12
  • 2026-09-09:assertions-not-pinned-to-counts、check-exit-code-honest、ci-jobs-cannot-die-quietly、commit-author-allowlisted、file-placement-allowlist、green-must-be-real-green、refs-and-links-resolve、rule-card-required-fields、scan-scope-has-no-holes、status-page-computed-not-typed、tests-isolated-from-real-env、thresholds-live-only-in-registry、uv-single-entrypoint
  • 2026-09-10:decision-paper-structure、doc-frontmatter-and-dates、entry-files-rendered-from-registry、exemptions-need-expiry、four-roles-different-actors、identity-strings-generated、issues-closed-only-by-merged-pr、merge-gate-read-back、no-model-names-in-entry-files、receipt-authority-is-the-cloud-run、receipt-schema-complete、secrets-never-committed、style-guard、type-guard
  • 2026-09-11:layers-import-downward-only
  • 2026-09-12:tests-land-with-code

當初規劃的 38 張卡走到哪

deferred:4 張dropped:5 張merged:2 張pass:27 張

分組來自 blueprint/cards-38.json 的 feasibility_v2(pass=可以立、deferred=暫緩、dropped=丟掉)與 blocked_on(在等什麼),這一頁只讀不寫。同一組也各有一張 issue(待辦票),標籤 deferred-cards,現在有 3 張。

暫緩的卡在等什麼:

  • design-report-exists:design-report-self-consistent
  • shell-scripts-in-repo:shell-scripts-are-bash
  • src-tree-in-repo:signature-keyed-on-semantics、tests-land-with-code

主線(repo:neknufelet/aosr-v3)

算這一頁的那棵樹在 main:比 origin/main(GitHub 上的主線)領先 0 筆、落後 0 筆。

最新一筆(提交):d7074322233c docs: 振幅的精度契約——容差跟著相位角長,常數取單精度四格(#192) (#195) (2026-09-12 20:10)

算出時間:2026-09-12 20:15(台北時間)。算這一頁的是:雲端 run 34693144352(第 1 次嘗試):https://github.com/neknufelet/aosr-v3/actions/runs/34693144352。這一頁反映的是:main 的 d7074322233c(docs: 振幅的精度契約——容差跟著相位角長,常數取單精度四格(#192) (#195));接在 verify run 34692969439 之後算的。這頁由機器算出,不要手改;手改會被下一次合併蓋掉。這一頁由機器算出,每次併入主線由雲端重算重推;算不出資料的時候它回離開碼 2(工具自壞),不產一頁沒資料的。固定網址:https://neknufelet.github.io/aosr-v3/