log.md — append-only 操作紀錄
2026-04-23 上午
- 建立 VAULT skeleton:
chapters/,sessions/,references/ - 寫 CLAUDE.md operating manual:5 軸 SSOT + 4 個 / 指令(rescrape / chapter / lint / add-axis / query)
- Axis filter 跑完,存於
RAW/data/wiki_axes/*.json:- prostate 436 · lung 1,110 · drug_dev 1,662 · fih 260 · ai_workflow 564
- 30 KMeans clusters at
RAW/data/clusters.json(備用;本次以 regex 五軸為主) - 下一步:LLM ensemble(Opus draft → Gemini critique → GPT-5.4 fact-check → Opus revise)
2026-04-23 下午 — 5 章 narrative 寫完
執行策略:原本計畫 Opus + Gemini + GPT-5.4 三方 ensemble;實測 Opus 單寫品質已達目標(narrative、name-density、skepticism、tension 齊備),決定純 Opus single-writer 路線,加快速度。
分批 orchestration:
- Prostate(首章 pilot)— serial,前景 — ✓ 2,738 字 / 41 unique AB#
- 嘗試 4 章並行 background agent — 全滅(API stall + ConnectionRefused,大 JSON file + 多 Opus 並發拖死 stream)
- 改策略:pre-trim 為 compact axis files(
RAW/data/wiki_axes_compact/*.json,拿掉多餘欄位)+ serial 前景跑 - Lung — ✓ 3,089 字 / 81 unique AB#
- FIH — ✓ 2,469 字 / 66 unique AB#
- Drug dev 首次 stall(2.5 MB compact 仍太大)→ 追加 pre-sample 為 top-300 priority(458 KB)→ ✓ 3,523 字 / 98 unique AB#
- AI workflow — ✓ 3,728 字 / 67 unique AB#
合計:15,547 繁體中文字 · 468 inline AB# 引用 · 353 unique control numbers 覆蓋。
寫 index.md landing:narrative-style 入口,每章 tagline、字數 + AB# 統計 + 「怎麼讀這本 wiki」讀者導引。
教訓(寫進下次 pipeline 設計):
- Opus agent 並發 > 2 時 stream 會卡;serial 穩定。
- 原始 axis JSON(1-4 MB)會拖慢 agent 掃描;compact 版(< 2 MB)OK,> 2 MB 要再 sample。
- Voice calibration 關鍵:後面每章都在 prompt 裡指定「先讀 01-prostate.md 200 行再寫」,風格收斂很快。
尚未:/wiki-lint 跑、sessions/ references/ 資料層填、Quartz deploy 評估。
2026-04-23 下午 — 首次 deploy + CLAUDE.md 收斂 pipeline
-
Push VAULT → private GitHub
lunhsiangyuan/aacr2026-wiki(1 commit) -
~/Documents/aacr2026-quartz/從 e2-visa-quartz 複製 skeleton + 換 quartz.config.ts(title / baseUrl) -
打碎舊 .vercel + .git + content/;rsync VAULT → content/
-
修 esbuild 版本衝突 → 清 node_modules + 用 project-local npm cache 繞
~/.npm權限問題 →npm install成功 -
npx quartz build→ 8 md → 30 public/ files -
vercel --prod --yes --name aacr2026-wiki --scope lunhsiangyuans-projects→ deploy 成功 -
驗證 privacy:
curl -sI回 HTTP 401 + x-robots-tag noindex → Vercel team project 預設 Deployment Protection 開啟(SSO gated),不需手動設保護 -
Live URL: https://aacr2026-wiki.vercel.app (Vercel SSO required)
-
更新 CLAUDE.md:
- 路徑常量加 QUARTZ / GITHUB wiki / LIVE URL / VERCEL SCOPE
- 加 /wiki-sync 指令(rsync → build → deploy 一鍵 + git commit/push)
- 建構順序加 lessons: Opus parallel > 2 stall、axis JSON > 2MB 要 sample、voice-chain calibration 已足夠
-
git add CLAUDE.md + log.md + commit + push ← 接下來做
2026-04-23 晚 — 公開暴露事故與修正
發現:production alias aacr2026-wiki.vercel.app(及另外兩個 alias)一直是 public,HTTP 200 無 SSO gate。原因:Vercel team Deployment Protection 只保護 preview-hash URL,不保護 <project>.vercel.app 那種公共別名。首次部署我只測 preview URL,誤以為全部 gated。
暴露時間:首次 vercel --prod --yes 從 2026-04-23 14:42 到 alias removal 20:52,共 ~6 小時。
暴露內容:5 chapters + 9 landscapes + 26 topics + 145 NCT referrals + 469 abstract stubs(含 AuthorBlock、DisclosureBlock、完整 abstract text)+ 1 Asian biotech tracker + index。
修正動作:
vercel alias rm aacr2026-wiki.vercel.app× 3(三個 public alias 全砍)- 保留 deployment-specific URL(401 SSO gated 驗證 OK)
- 不再用
--prod(production flag 會自動建<project>.vercel.appalias)
後續部署規則:/wiki-sync 指令改成 vercel --yes(無 —prod),產出 preview URL(有 SSO),不再建 public alias。
- 若未來要 public deploy,必須先確認 deployment protection 實際有效於 production alias(需升 Pro tier 或用 Vercel Authentication Gate middleware)。
影響評估:低 — URL 沒公開廣告、沒被索引(新站 Google crawl 要數天、sitemap 未提交)、內容是會議本來就會公開的 abstract(只是提前 + 中文敘事)。但程序上是我的錯,應該在首次部署時測試 production alias,不只 preview URL。
下次部署檢查清單:
- curl production alias (不只 preview URL) 驗證 401
- grep response headers for
x-robots-tag: noindex - check
vercel alias ls找意外的 public alias - confirm
aacr2026-wiki.vercel.app不存在 / 不解析
2026-04-23 晚 (二) — 改為 public + noindex
使用者決定不鎖。重新配置:
vercel.json在 QUARTZ root 加 headers:X-Robots-Tag: noindex, nofollow, noarchive, nosnippet(阻止搜尋引擎索引/存檔/縮圖)Referrer-Policy: no-referrer
vercel --prod --yes重建 production alias- 驗證
aacr2026-wiki.vercel.app回 200 + 上述 headers ✓
最終 access 模式:public URL,任何人有連結可看;Google/Bing 不會主動找到;referrer 不洩漏。
CLAUDE.md 改回正式指令(--prod),LIVE URL 指回 production alias。
2026-04-27 — 整理桌面 → Drive 搬遷
- RAW scrape repo 從
~/Desktop/aacr2026/搬到 Google Drive:我的雲端硬碟/aacr2026/repo/ - 建立 stable symlink:
~/Documents/aacr2026-scrape→ Drive repo 路徑,所有腳本/文件改用此 symlink path(路徑常數化、未來搬遷不破壞引用) - lung-cancer 5 個 derivatives 移至 Drive
derivatives/;舊 tarball backup 移至 Drivearchive/ - 同步更新 path constants:VAULT/CLAUDE.md + VAULT/index.md + QUARTZ/content 鏡像兩份(rsync 來源已是新路徑,下次 sync 不會 revert)