Spaces:
Sleeping
Sleeping
Commit History
-
補齊「使用手冊」→「使用說明」更名的實際內容改動
上一個 commit(8eccc5a)只有檔案改名本身進去了,實際的文字內容 改動(app_agent.py 的按鈕標籤/檔案路徑/註解、assets/app.css 註解、 docs/ 底下三份文件、使用說明.md 內文與版本日期、重新產生的 使用說明.docx)因為 git add 指令裡一個路徑打錯導致整批加入失敗, 沒有真的進到上一個 commit,這裡補上。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>9615d53 -
「使用手冊」全面更名為「使用說明」
檔案改名:使用手冊.md/.docx → 使用說明.md/.docx。同步修正所有引用 處,包含畫面上的下載按鈕標籤與檔案路徑(app_agent.py 的 nav_guide_btn)、關於面板文字、CSS 註解、docs/ 底下的設計文件與 UIUX 改版紀錄。 使用說明.md 內文順便:標題、自我指涉(「本手冊」→「本文件」)、 導覽列示意圖項目名稱一併更新;文件版本日期更新為 2026-09-01。 使用說明.docx 已用最新內容重新產生,確認文件內 0 處殘留舊名稱。 未動 系統方法論述.md(業主自己維護的獨立文件)——裡面有一處引用 使用手冊.md/.docx 的舊檔名,因為改名後路徑已失效,這處需要業主 自己確認要不要一併更新,故意留給業主處理。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>76eb0de -
統計技術報告:標題改「統計結果技術報告」,修正分組方式顯示
業主回報下載檔的標題要改名,順手發現「分組方式」那行是真的 bug: 原本直接印 GROUP_COL,這個變數永遠是字面上的 "Type1"(內部欄位 名稱),不管實際是用檔名字首分組還是「個體間比較」都印一樣沒 意義的「分組方式:Type1」。改成依 individual_grouping 是否非空, 動態印出真正描述本次採用哪種分組依據的文字。 同步把下載檔名從 TransPrism_stats_{時間戳}.docx 改成 統計結果技術報告_{時間戳}.docx,跟文件內標題一致;時間戳保留 避免多次下載互相覆蓋。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>330c845
-
移除 system_architecture_flow.svg
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>c0fd97f -
移除 系統架構圖.svg
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>0c7e449 -
修正 app.py 漏帶 css_paths,導致正式機完全沒載入客製樣式
app_agent.py 自己的 __main__ 區塊(本機 `python app_agent.py` 開發用) 一直都有把 assets/app.css 透過 app.launch(css_paths=...) 帶進去,但 app.py(Hugging Face Space/Docker 正式機的進入點,Dockerfile CMD 執行的就是這支)漏了這個參數。結果正式機完全沒載入客製樣式表, Gradio 吃預設樣式,連原本靠 CSS display:none 藏起來的 sc-bridge-btn (純粹給行動版選單 JS 綁定用的隱形按鈕)都整批跑出來變成主畫面上一排 陽春按鈕——業主回報「主畫面整個跑掉、不是最新介面」正是這個原因。 本機開發測試一直是用 app_agent.py 直接跑,從沒踩過這條路徑,兩邊 進入點分開維護、參數各自為政是根因;順便補上同樣缺漏的 footer_links=[]。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>217744a -
固定 gradio 版本為 6.20.0,避免 HF Space 建置抓到不相容新版
requirements.txt 原本寫 gradio>=6.0(無上限),這次部署到 HF Space 全新建置時 pip 抓到 6.26.0,但本機開發與測試一直是 6.20.0。落差 6 個小版本,導致畫面明顯跑版——assets/app.css 裡大量針對 Gradio 內部自動產生的 svelte class 寫了 specificity 補丁,這類 class 是 每次 Gradio 建置產生的,版本一換結構就可能跟著變,樣式選擇器對 不上,畫面掉回接近預設的 Gradio 樣子。 鎖定確切版本,避免未來重新建置又抓到未測試過的新版。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>d2882a0 -
新增分析引擎處理流程圖 SVG
補存先前只透過即時視覺化工具展示、從未存檔的架構流程圖: 已斷詞文本上傳 → A文本格式驗證 → C語言指標計算(62項指標,4大 類別)→ D統計與機器學習分析 → E LLM報告撰寫 → 結構化輸出, 並列出 B語料說明(選擇性分支,內容併入報告撰寫輸入)。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>ebddfec -
文件同步:使用手冊與 README 對齊程式碼實際行為
- 語言指標數量全面改為只講 62 項(原本 75/62 並陳的說法拿掉, 含隱藏指標技術註腳與對應 FAQ 一併移除,FAQ 編號遞補) - 「語料 Metadata 說明」全面改稱「語料說明」,含 TOC 錨點與交叉 引用 - 四種研究情境標題、姊妹工具連結(語料淬鍊 CorpusRefinery, 修正舊的 ckip_segmentation_sumin 連結)與 app 畫面同步 - 使用手冊新增「9. LLM 報告撰寫的規則設計」一節,說明角色邊界、 11 條嚴格禁令、資料完整性把關(含新的零值比例警示)、metadata 一致性檢查,原 9-11 節依序遞補為 10-12 - 使用手冊.docx 依 md 重新產生 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>395d0fd -
統計穩定性警示、system prompt 補強、關於面板、多項 bug 修正
統計正確性: - cohens_d()/eta_squared() 分母趨近於零時回傳 None 而非失真數值 (新增 EFFECT_UNSTABLE_LABEL),修掉效果量算出天文數字的 bug - 新增 ZERO_VARIANCE_WARNING:任一組標準差趨近於 0 但檢定仍算出 p 值的退化情況,加註「統計穩定性有限」警示,不隱藏顯著性判斷 - 新增 ZERO_PROPORTION_WARNING(門檻 50%):任一組半數以上樣本值 為 0、SD 未趨近於零但平均數可能被離群值主導的情況,獨立於上面 的 SD 判準另外偵測,兩者可疊加、不重複描述同一組資料 - 修正 docx 差異性分析表格欄位定位改用欄名查表(原本 len(vals)-4 位置推算已對錯欄) - None/NaN 判斷全面改用 pd.isna(),修掉 docx 表格出現 "nan" 文字 - 群組標籤(如「人工翻譯」)修正為會實際套用到送給 LLM 的 difference_analysis 資料,不再只停留在畫面/圖表 - 差異性分析箱形圖:達顯著指標全部畫出(取消前 12 項上限),排序 改為先依組別、組內再依效果量絕對值 - 兩群比較用詞「較高/較低」、三群以上用詞「最高/最低」 System prompt(LLM1): - 補上角色邊界、11 條嚴格禁令(原 5 條)、指標代碼對照表、 metadata 一致性檢查指示 - 新增 INDICATOR_REFERENCE_TABLE:從 INDEX_CATEGORIES 動態產生, 取代手動謄寫,避免與實際指標定義漂移 - 每次分析新增 06_system_prompt.txt 可重現性附件,保留當次實際 送出的完整 system prompt 原文 介面: - 新增「關於」面板(系統版本、免責聲明、姊妹工具、開發紀錄;版權 /聯絡方式/引用格式因論文尚未發表,暫不公開真實姓名或 email) - 情境 1、4 卡片標題拿掉「同一原文的」;情境選擇小標改為 「請選擇最符合您針對同一原文的重譯研究設計的比較情境」 - 「語料 Metadata 說明」全面改稱「語料說明」(含隱形橋接按鈕文字 同步) - 隱私提醒文案調整(移除「先與計畫主持人確認」,改為「先行確認」) Co…f1c47a3 -
資料修正:T01_成語5335.txt 尾字損毀清理(AG_05 指標)
檢查 AG_05(每千詞成語數1)計算邏輯時發現,成語參考清單 T01_成語5335.txt 裡 1,623 條(30.4%)成語字尾被錯誤多綴一個 「主」字(如「哀鴻遍野主」應為「哀鴻遍野」),導致這些成語永遠 無法比對到真實文本中的斷詞,AG_05 實質上只用約七成的成語清單在 計算,數值系統性偏低。 逐條比對未損毀的母檔 T01_成語.txt(76,082 條原始語料)交叉驗證: - 1,622 條去尾字後即為母檔中真實存在的正確成語,已修正 - 1 條(喧客奪主)經比對確認尾字「主」是成語本身固有的字,不是 損毀,予以保留、撤銷該條修正 - 修正後檔案仍為 5,335 行,無重複、無新增衝突 AG_05 的計算公式與資料串接本身沒有問題,純粹是參考語料檔案的 資料品質瑕疵;此修正不涉及任何程式碼變動。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>fb8098c
-
資料完整性檢查與可重複性技術設定
【資料完整性檢查】 差異性檢定(t 檢定/ANOVA)在任一組樣本數 N<2 時,scipy 會算出 p=NaN, 但原邏輯的 `NaN < 0.05` 比較恆為 False,會 fallthrough 到「ns」,讓 「資料不足、根本無法檢定」跟「已檢定、無顯著差異」變成同一個值,讀者與 LLM 都無法分辨。「個體間比較」功能允許分組粒度細到每檔案一組,N=1 是 實際會發生的情境,不是假設案例。 - 新增 INSUFFICIENT_DATA_LABEL 常數,p=NaN 時明確標成獨立類別,不計算 效果量(不用 cohens_d()/eta_squared() 對 N<2 的 0.0 保底值),不計入 顯著/不顯著的統計比例 - 同步修正 sig_df 篩選、docx 報告表格(紅字改灰字斜體、None 值防呆)、 送給 LLM 的 JSON(新增 untestable_indicators/資料完整性提醒欄位)、 畫面即時說明文字,四處都要排除新標籤,避免被誤算進「顯著指標」 - system prompt 補規則:看到「資料完整性提醒」的指標只能寫「資料不足, 無法檢定」,不能寫成「無顯著差異」 【可重複性技術設定】 - temperature 預設從 0.5 改成 0 - LLM1_MODEL/LLM2_MODEL 從環境變數可覆寫改成寫死常數,執行期無法覆寫 (對應 docs/開發優化建議.md 3.3/3.4 節記錄過的真實案例:測試環境曾 被覆寫成 openrouter/free 自動路由別名,同代號兩次呼叫導向不同模型) - 新增 PROMPT_VERSION 常數,隨 system prompt 異動手動遞增,印在 docx/ txt/畫面三處報告輸出的標頭,讓每份報告可回溯當時用的模型與提示詞版本 - .env.example/使用手冊.md/.docx 同步移除已失效的 LLM_MODEL 覆寫說明 以上均以隔離測試腳本驗證(N=1/N=3/混合案例、LLM 資料層輸出、docx 實際 產出內容),未觸及既有正常流程之行為。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>b6322f6
-
改用 Docker SDK 部署,繞開 HF 免費層級 Gradio SDK 強制 ZeroGPU 的限制
HF 目前的平台政策:免費層級的 Gradio SDK Space 一律跑 ZeroGPU,啟動時 要求偵測到 @spaces.GPU 標記的函式;本專案是純 CPU 應用(scikit-learn/ scipy/matplotlib),沒有這類函式,導致 Gradio SDK 直接啟動失敗 (runtime error: No @spaces.GPU function detected during startup)。 - 新增 Dockerfile:python:3.11-slim 基底,安裝 fonts-noto-cjk(matplotlib 圖表標題與座標軸多為中文,容器內建 Linux 沒有中文字型會變方框; app_agent.py 的 _find_cjk_font() 候選清單本來就含 Noto Sans CJK TC/SC,裝了字型套件即可直接吃到,不用改程式碼),pip 安裝 requirements.txt 內容,EXPOSE 7860,CMD 執行 app.py - 新增 .dockerignore,排除 sessions/、.env、.git 等不該進映像檔的內容 - README.md frontmatter 的 sdk 從 gradio 改成 docker,移除 Docker SDK 用不到的 sdk_version/app_file,改加 app_port: 7860 對應 Dockerfile 的 EXPOSE Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>f072ca3 -
部署前整備:對話氣泡真人感、隱私告知、Space 存取控管與 Session 自動清理
對話流程/文案: - AI 對話補上使用者動作氣泡(上傳檔案、送出或略過語料 Metadata),避免 兩則 AI 訊息中間看起來像自問自答 - 使用者訊息泡泡改用獨立底色/邊框(淡綠),跟 AI 泡泡的中性藍灰區隔 - 對話中的 [WARNING] 純文字標籤改成 ⚠️ emoji,跟技術執行紀錄面板一致 - 使用者訊息裡殘留的舊工具名稱「ckip_segmentation_sumin」全面改為 「語料淬鍊(CorpusRefinery)」,含格式驗證訊息與失敗回退訊息 - 文本上傳卡片新增隱私提醒:告知使用者上傳內容會送第三方 AI 服務分析 部署與維運(對應 docs/開發優化建議.md 第一、四、六節): - app.py 新增 APP_AUTH_USERS 環境變數驅動的登入畫面(Gradio 內建 auth), 讓 Space 可保持 Public 但只有知道帳密的特定使用者能進入內容 - app_agent.py 新增 SESSIONS_DIR 自動清理:啟動時清一次、之後每 24 小時 重跑,依資料夾 mtime 判斷是否超過保留天數(預設 7 天,可用 SESSION_RETENTION_DAYS 覆寫),避免使用者研究語料無限期留在磁碟上 - app_agent.py 本機開發用的 share=True 改成看 GRADIO_SHARE 環境變數, 預設關閉,避免地端執行時意外對外開公開分享連結 使用手冊同步更新為目前實際流程(四步驟、CorpusRefinery 改名、群組層 改文字欄位、個體間比較消歧義邏輯、62/75 指標顯示範圍、下載捷徑精簡等)。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>e02ce54
-
AI 頭像/AI對話圖示:兩顆星改成彩虹弧線
- assets/icons/ai-avatar.svg:頭像圖示從兩顆實心星改成三道白色同心弧 (彩虹弧線剪影),底色維持原本紫藍漸層不動 - assets/icons/chat-bubble.svg:AI對話導覽按鈕圖示同步改成同款弧線造型, 改用跟其他導覽圖示一致的單色線稿(#475569 / stroke-width 1.75), 深色模式沿用既有的 grayscale(1) invert(1) 反色濾鏡,不用額外處理 - assets/app.css:同步更新頭像區塊註解,說明沿用漸層 token 而非固定色的理由 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>f1121d3
-
文件同步:兩份交付文件補上 2026-08-12 本輪改動
《UIUX優化成果與技術說明》停在 8/6,本輪 8 個 commit 全未反映,且 4.4 節 「本次改版不更換配色」與背景色表(#f8fafc/#020617)已與實作不符——那是 交付給業主的文件裡的錯誤敘述,優先修掉。 本次修正: - 4.4 配色章改寫:拆成「強調色(未更動)/底色三層/線條兩級」三段, 補上淺色為何維持白底表格、以及結構線最終 1.46:1 低於 WCAG 1.4.11 的 3:1 門檻是業主連續三輪要求柔和後拍板的取捨(文字對比不受影響) - 新增 3.5 導覽列「使用手冊」下載入口、3.6 AI 訊息頭像 - 4.3 語料說明表單補:欄位不包白色卡片、「比較結構」改小標題(gr.Group→ gr.Column)、radio 欄位標籤對齊文字欄位、選項被裁切的成因與修法 - 4.2 結果分頁排版:語言指標分析的下載鈕由表格之前改到表格之後,六頁一致; 導覽列版面圖與圖示對照表補「回首頁」與「使用手冊」兩項 - 第二章修復項目 19→21:新增 2.2 ⑨(運算中途重置後畫面殘留,含「不是漏清 而是沒中止 generator」的根因)與 2.3 ⑥(表格右側空白帶,含「欄位其實 沒有錯位、13 張表逐欄量測一致」的查證結果與兩條排除掉的修法) - 4.1「開始新分析」更正為現行名稱「回首頁」(2026-07-30 已更名)並註明 第二章部分描述沿用舊名;2.3 ⑤ 的交叉引用編號修正 - app_agent.py 行數 4232→4371;更新紀錄補一列(時間正序,放最後) 《design.md》升 v1.3:AI 頭像改實心與尺寸規格、新增「導覽圖示要量實際 上色範圍」檢查、欄位標籤唯一樣式、表格不自己出捲軸(含兩條不可用的替代 做法)。 《開發優化建議》與 docs/README.md 本輪不需異動(前者結論不受影響,後者 是三份文件對照表、文件未增減)。 驗證:章節數量前後一致(2.1 六項+2.2 九項+2.3 六項=標題與總覽表的 21 項,以腳本逐節數過);design.md front matter 可被 YAML 解析、色票值 與 assets/app.css 現值相符;兩份文件所有表格欄數一致。 Co-Authored-By: Claude Opus 5 <noreply@anth…659e17c -
AI 頭像:兩顆星改實心並放大
業主:對話列的 AI 頭像圖案兩顆都要實心,而且現在視覺上有點小。 - assets/icons/ai-avatar.svg 改 fill 實心、不再描邊,path 一併撐大: 大星 x3.9–17.1/y2.2–17.2、小星 x15.3–21.5/y13.6–20.7,幾乎填滿 24 的 viewBox(原本大星只有 x6.6–17.4/y3.4–16.6,小星更小一圈)。 - CSS:img 內距 5px→3px,圖案在 28px 圓內的可用範圍 18px→22px。 兩件事要一起做才有感——只縮內距是把細線稿放大,只放大 path 又會被內距框住。 - _ICON_PATHS 的行內版 path 同步更新,維持「檔案版與行內版一致」的既有慣例。 驗證:實測頭像容器仍 28px、內距 3px、圖案可用範圍 22px;截圖確認兩顆星 都是實心白、在漸層圓內明顯放大。(這次沒有用像素統計當佐證——頁面底色 本身就接近白,用亮度門檻數白點會把背景一起算進去,改以 DOM 量測+截圖 目視為準。) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MQuAXWC1hCsiT48TXftPc71b38599 -
運算中途按「回首頁」:中止還在跑的分析,並把結果導覽閘門關回去
業主回報:分析運算跑到一半按「回首頁」再重新進來,畫面又冒出上一輪的 分析運算面板,步驟列停在舊狀態、對話也還是舊訊息。 查證分兩段:分析**跑完後**再重置是乾淨的(實測面板/對話/下載捷徑全清), **跑到一半**重置才會重現。所以問題不是重置漏清,而是重置沒有中止那條還在 跑的 generator——_run_computation 每個子階段都會 yield 一次畫面,重置把畫面 清乾淨之後,它後續的 yield 又一格一格把舊內容畫回去,看起來就像重置沒生效。 修法用 Gradio 原生 cancels:按「確定回首頁」時直接中止「確認並開始分析」與 「略過」那兩條事件鏈(兩者都會進同一支 _run_computation),generator 停在 原地,不再有遲到的 yield。為了拿得到那兩個事件物件,reset_confirm_btn 的 接線從原位置搬到 create_app 結尾(Gradio 接線順序不影響行為,只有 cancels 需要引用先前建立的事件)。 順帶修掉查證時發現的另一個殘留:結果導覽的 A2 閘門(語言指標分析/統計四項/ LLM輔助分析)在 _populate_tabs 產出結果時被打開,但重置從來沒關回去——重置 後回到全新首頁,那些項目仍可點,點進去是空白結果頁。已在 on_reset_clear_workspace 一併設回 interactive=False。 驗證(本機 .venv + Playwright): - 中途重置:運算啟動 3.5 秒後按回首頁→確定,再等 12 秒讓遲到的 yield 有機會 出現——首頁正確顯示、工作區隱藏、無分析面板、對話 0 則、步驟列清空; 重新進入工作區後:研究選擇卡片正常、無面板殘留、步驟列回到未完成狀態、 對話只有歡迎詞、下載捷徑不在、語言指標分析與敘述統計皆不可點、 技術執行紀錄只剩「已重新開始分析」。 - 正常流程不受影響:重跑一次完整分析,指標計算/統計分析完成、導覽閘門 正確開啟、下載捷徑出現、步驟列正確(報告階段因本機 429 額度用盡標紅, 屬既有的誠實失敗行為)。 - console 僅 3 筆既有外部資源錯誤。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> C…676c5bb -
表格右側白帶:關掉 dataframe 內部捲軸佔位(不是欄位錯版)
業主回報「表格似乎都會有欄位錯版」,要求全部檢查。 先查證再修:寫了個稽核腳本逐張量全部 13 張表(語料說明 2 張+五個結果頁 11 張),比對每一欄的表頭寬與資料列寬——**沒有任何一欄真的錯位**(misaligned 全為 0)。真正的症狀是表格右側多出一條空帶:Gradio 給 dataframe 的內部 容器 .virtual-table-viewport 設了 max-height:500px + overflow-y:auto,列數 一多就出現垂直捲軸,佔掉 10px 版面寬度。實測不捲動時表格右緣只差 2px (框線),一捲動就跳到 12px,與業主截圖吻合。會踩到的是敘述統計/差異性 分析/監督式學習三張長表,加上業主環境裡列數較多的語料說明兩張表。 修法:.virtual-table-viewport { scrollbar-width: none !important } 捲軸不再佔版面寬度,白帶完全消失(13 張表重新量過,捲軸佔位全為 0、右緣 只剩 2px 框線)。滾輪/觸控/鍵盤照常可捲,虛擬化不受影響。 過程中排除掉的三條死路,已全部寫進 CSS 註解避免重走: 1. 用 ::-webkit-scrollbar 改寬度——完全沒生效。真因不是 specificity: Gradio 在該元件設了標準屬性 scrollbar-width/scrollbar-color,Chrome 一旦 看到標準屬性就整組忽略 legacy 的 ::-webkit-scrollbar 偽元素。 2. 拿掉 max-height 讓表格攤開、交給 canvas 捲(比照 .exec-log 的既有決定) ——會壞掉。這個表格是虛擬捲動,靠自己的捲動位置決定渲染哪幾列,拿掉之後 敘述統計變成「保留 2832px 高度卻只畫 1 列」的空表。 3. 只對語料表單藏捲軸、結果頁保留橫向提示——方向搞反。會產生白帶的是不需要 橫捲的長表,而唯一需要橫向捲軸的語言指標分析(76 欄)從不出現垂直捲軸。 代價講明:語言指標分析的橫向捲軸也跟著隱形(該表仍可橫捲,且它是唯一 需要橫捲的表)。CSS 裡留了一段註解掉的 #canvas_idx 規則,需要時解開即可 單獨還原它的捲軸。 另修:這輪自己引入又當場發現的 CSS 語…6366111 -
使用手冊圖示放大到與其他導覽圖示同量體、radio 欄位標籤對齊文字欄位
1. 使用手冊圖示比其他導覽項目小一圈。用截圖逐一量「非背景像素」的實際 上色範圍才確認:book-open 只有 16×15,folder/chat-bubble/table-cells 都是 18×16(viewBox 全部是 24×24,光看檔案看不出差別)。把 path 撐到 x 3.2–20.8、y 4.5–20,重量後為 18×16,與其他項目一致。 assets/icons/book-open.svg 與 _ICON_PATHS 的行內版同步改,並在註解留下 「新增導覽圖示要量上色像素」這條檢查。 2. 「群組數量/比較方式」欄位標籤原本是一般大小的深色字,跟同一張表單裡 「原文標題/作者」的小灰字粗體不同調——radio 的 fieldset 標籤走的是 Gradio 另一條規則。補上 #metadata_zone fieldset.block > span 對齊成 .7rem/700/--c-text-muted,實測兩者現在都是 11.2px/700/#475569。 .7rem 不是新發明的字級,是對齊 Gradio 既有的欄位標籤值,因此不套 --font-size-base(那是內文用的,標籤本來就小一階)。 驗證:情境 3 實測兩處標籤數值完全相同;十個導覽圖示重新量過上色範圍, 使用手冊已與 folder/chat-bubble/table-cells 同為 18×16。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MQuAXWC1hCsiT48TXftPc7502ffd8 -
淺色再調:線條改用次要按鈕邊框色、底色轉淺、白氣泡、語料表單去卡片
千卉四項指定: 1. 導覽列/對話列/內容列的邊線與水平線「改成跟『重新選擇研究情境』按鈕 的邊框色一樣」→ --c-border-strong 淺色改 rgba(2,132,199,.30),就是 button.secondary 用的那個值(實測 nav 分隔線與按鈕邊框已完全同色)。 對底 1.46:1。這是連續第三輪往柔和調,明確離開 WCAG 1.4.11 的 3:1, 屬業主拍板的視覺取捨;文字對比不受影響,仍全數通過 AA。 2. 淺色背景再淺一點 → --c-bg #e8f1fa → #f3f8fd。 3. 對話氣泡改白 → --c-bubble-bg 淺色 #ffffff(深色 #172136 不動)。 氣泡與欄底填色差剩 1.07:1,邊界改由 --c-bubble-border 撐(淺 1.69:1、 深 1.61:1,兩邊同一級)。 4. 語料說明表單去卡片: - 原文標題/作者/語言/出版年/版本:移除 Gradio 自動包的白色卡片。 這層卡片是兩件事疊起來的——.form 出框線、內層 .block 出白底與內距—— 兩層都要清才會消失。內距清掉後欄位左緣自然對齊小標題與下方表格, 達成業主要的「參考群組層資訊、水平橫列、靠左對齊」。 - 比較結構:gr.Group 改 gr.Column,Gradio 那條藍色標題橫幅與外框跟著 消失,標題自動變成跟「原文資訊」同款的藍色小標題。順帶符合本專案 既有定論——這版 Gradio 的 gr.Group 設 visible=False 只清空內容、 容器仍是 display:flex 會留空色塊,可切換的容器一律用 gr.Column。 已實測情境 1(不需要比較結構)該區塊 display:none、高度 0,無殘留。 - 群組數量/比較方式:同批去掉白底與內距。 順帶修掉一個既有 bug(業主截圖裡就已存在,不是這批造成):那兩組 radio 的選項被裁掉一半。真因是 .form 的 align-items:stretch 把每個欄位的高度 鎖成整列高度,而那個列高只算到選項區(61px)、沒算欄位標籤(20+8px), 多出來的 28px 被 fieldset…b1b0036 -
淡藍底色體系:降低純白/純黑面積,深淺共用三層結構
千卉回報「純黑或純白背景面積很大,整個視覺壓力也變大」,並指定淺色走 「氣泡淡藍+對話欄底稍深淡藍」(她的方案 2)、深色邏輯相同。量過之後 確認抱怨來源不只對話欄:淺色頁面底 #f8fafc 幾乎等於白,真正的大面積 純白是 --c-surface(表格資料列+所有 Gradio 區塊);深色則是 #020617 近乎純黑。 底色改成三層,淺深共用同一套邏輯: 底(--c-bg) 淺 #f8fafc→#e8f1fa 深 #020617→#0b1424 浮起物(--c-bubble-bg)淺 #eef2f7→#f5faff 深 #0d1526→#172136 資料紙張(--c-surface)淺 #ffffff 維持 深 #0d1526→#172136 淺色的表格/卡片刻意維持純白:75 項指標表格是資料密集區,可讀性優先於 「消滅所有純白」;染藍的是它下面那層底,白表格因此變成浮在淡藍上的紙張。 連帶 --c-surface2/--c-thead-bg/--background-fill-secondary 同批換成 同色相的值,避免藍底配灰塊。 線條改走 sky 相(千卉:淺色邊框不要太深,要維持亮麗的淺藍): --c-border-strong #a3aebd→#6ba3d6(結構線,約 2.3:1) --c-divider #b6c0cd→#a9cbe8(表格資料列細線) --c-input-border #a3aebd→#7fb0d9(約 2.0:1) 亮度級距不動,只換色相,手感與上一輪柔化後相同。 順帶修掉一個自己上一輪引入的深淺不一致:氣泡邊框原本共用 --c-divider, 淺色值卻是對著「深色結構線那一級(alpha .28)」挑的,而深色 --c-divider 是更淡的 .18,實測深色 1.37:1/淺色 1.61:1,兩個主題看起來不一樣。改成 獨立 token --c-bubble-border(淺 #a9cbe8、深 rgba(148,163,184,.26)), 兩邊實測都是 1.61:1,--c-divider 也回歸單一用途。 docs/design.md 同步:新增「底色體系:三層」章節(含淺色表格為何維持白底 的準則)、線條表換新值並補「淺色一…3dc69f8 -
線條柔化:結構線降到 2.25:1、氣泡邊框改細線與深色對齊
千卉看實機截圖後回饋兩點:①淺色氣泡的邊框要跟深色一樣淡、兩個模式一致 ②整體線條對比太高、看起來醜,要更柔和。 - --c-border-strong(淺色)#7c8798 → #a3aebd:對白從 3.64:1 降到 2.25:1。 這是刻意離開 WCAG 1.4.11 的 3:1 門檻的視覺決定,但仍是改版前 1.2:1 的 近兩倍,業主原本回報的「淺色看不清楚區塊」在這個亮度差已解決;文字對比 不受影響,全站文字維持 AA。日後若要嚴格達標,把這個 token 調回 #7c8798 即可,19 處線條會一起跟上。 - 對話氣泡邊框從結構線降到細線 --c-divider:淺色 #b6c0cd 對氣泡底 1.64:1、 對欄底 1.76:1,深色 rgba(148,163,184,.28) 疊 #0d1526 是 1.67:1,兩個模式 的邊框亮度差幾乎相同——「深淺一致」是量出來的,不是各挑一個順眼的值。 - --c-input-border(淺色)同步柔化成 #a3aebd。 - 使用者訊息氣泡維持與 AI 同款(業主確認先這樣,只靠左右對齊區分)。 docs/design.md 同步三處:token 表數值、結構線離開 3:1 的取捨說明、氣泡 邊框改用細線的量測依據。 驗證:重啟後實測淺色氣泡邊框 1.64/1.76:1、結構線 2.15-2.25:1,深色數值 與改動前完全相同;情境 1 走到語料說明表單、深淺兩色截圖確認,console 僅 3 筆既有外部資源錯誤。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MQuAXWC1hCsiT48TXftPc7059e85b -
業主第四輪修改:淺色對比度、AI 頭像、下載位置、使用手冊
1. 淺色模式對比度(深色維持原樣) 新增兩級線條 token:--c-border-strong(結構線,淺色 #7c8798,對白 3.64:1、對近白底 3.2-3.5:1)與 --c-divider(表格資料列細線)。深色值 沿用原本散在 .app-header/欄邊框/標題底線各處的 rgba(148,163,184,.28) 硬寫值,那批個別覆寫規則一併刪除。三個 token 宣告點(app.css :root/ .dark、app_agent.py _DARK_MODE_HEAD_CSS)同步。 對話氣泡:淺色底改 --c-bubble-bg #eef2f7(原本白底疊欄底只有 1.07:1) 並加 1px 結構線邊框。表格表頭底改 --c-thead-bg #e2e8f0、表頭分界線改 結構線。輸入框邊框(淺色)從 1.3:1 改 3.6:1。 2. AI 對話氣泡加頭像 gr.Chatbot(avatar_images=(None, ai-avatar.svg)),28px 圓形。漸層畫在 CSS 的 .avatar-container(吃 accent token、隨主題切換),SVG 檔只放 白色四角星——avatar_images 是 Python 端參數,同一個檔沒辦法隨主題換色。 3. 語言指標分析的下載區塊移到表格下方,與其他五個結果頁順序一致 (純宣告順序調整,_TAB_IDX 位置對應不動)。 4. 左側導覽列最後加「使用手冊」下載項目 放在 result_nav_col 外、nav-items-scroll 最末,全程可見;接專案根目錄 既有的 使用手冊.docx(實測下載 41783 bytes 一致,不用改 allowed_paths)。 它是下載動作不是頁面,不進 _ALL_NAV_IDS,不搶導覽 active 狀態。 #nav_guide_btn 比照 #reset_btn 加進導覽列樣式與收合狀態的選擇器清單。 順帶讓 result_nav_col 只佔內容高度(Gradio 預設 flex:1 1 auto 會把它 撐滿、把使用手冊推到欄底)。 docs/design.md 同步:兩級線條準則、對話氣泡…f5990cb
-
文件同步:補記 4 項導覽掛載與下載時序修復(commit 56a8c3b)
修復項目由 15 項增為 19 項,2.2 由 4 項增為 8 項:開始研究分析後 左側導覽列消失、硬點技術執行紀錄內容區塊空白、技術執行紀錄缺大 標題、下載研究報告/完整分析資料在報告撰寫完成前提早出現缺件。 3.1 打包下載機制規則同步更新,程式碼行號一併校正。6afdd75 -
修進工作區後左側導覽列消失、技術執行紀錄空白缺標題、下載捷徑提早缺件三個 bug
- result_nav_col/canvas_exec_col 第一次從 visible=False 翻 True 時, Gradio 前端只認觸發它的 generator 第一個 yield 才會真的掛進 DOM; on_start_analysis_show 原本延到第二個 yield 才設,導致「開始研究 分析」後左側導覽列只剩「回首頁」、硬點技術執行紀錄也是空白。搬到 第一個 yield,比照 on_scenario_pick 已驗證可行的寫法。 - 技術執行紀錄頁補上獨立的靜態標題,不再依賴逐行累加的 log 內容。 - 下載研究報告/下載完整分析資料兩顆導覽列捷徑,改成等 LLM 報告階段 真正跑到終態(done/failed)才生成與顯示,避免報告還在寫的時候就 把缺件的 zip 遞出去。b9619ff -
範圍聲明的未檢視特性改用 ISO/IEC 25010:2023 的特性名稱
該段列舉「不在本次檢視範圍」的特性時,用的是 2011 版的中文譯名(功能 適合性、效能效率、易用性、可攜性),與本專案其他文件及 knowledge/軟體 品質模型/ISO25010與CIA速查.md 採用的 2023 版術語不一致。 改為 2023 版名稱:功能適切性、性能效率、相容性、互動能力、彈性、安全 防護。易用性在 2023 版已改稱互動能力,可攜性拆分後對應彈性,安全防護 (Safety)為 2023 版新增的頂層特性,一併補入。 本段只是範圍聲明的列舉,不涉及任何實際檢視項目,內容與結論均未變動。090658c -
檢視角度:保留 CIA 為主框架,補上「非全面品質稽核」的範圍聲明
上一版曾考慮改以 ISO/IEC 25010 為單一框架(該標準的 Security 特性 底下確實包含 Confidentiality 與 Integrity,Availability 則在 Reliability 底下),但這樣宣稱會有兩個問題:本文件只用到四個角度, 而 25010 有八到九項特性(依 2011 或 2023 版而異);且四者混用了頂層 特性與子特性兩種層級,講成全面套用並不誠實。 CIA 三項則是完整用到、且本次發現確實三類都命中,可以理直氣壯稱為 框架。故維持 CIA 為主,可維護性標示為額外加入,出處只點名 ISO/IEC 25010 的 Maintainability 特性,不報特性總數,一併迴避版本差異。 新增一段範圍聲明,明說本文件不是全面的軟體品質稽核,功能適合性、 效能效率、相容性、易用性、可攜性等特性不在檢視範圍及其理由,避免 讀者誤以為這是完整的品質評估報告。f389355 -
檢視角度改以 CIA 三要素為框架,並校準完整性的定義
原本四個角度只是列舉,沒有說明依據。改為明確採用資訊安全的 CIA 三 要素(機密性/完整性/可用性,ISO/IEC 27000 系列對資訊安全的定義 基礎),並說明選它的理由:任何資訊系統的風險最終都會落在「不該看到 的人看到了」「產出被破壞或殘缺」「該用時用不了」三類之一,涵蓋面完整。 第四項「可維護性」明確標示不屬於 CIA,出處為 ISO/IEC 25010 軟體品質 模型,並說明納入理由(前三項的改善都落在同一份程式碼上)。 同時校準「完整性」的定義。原本寫的是「錯誤情境有沒有處理完」,那是 錯誤處理健全度,不是 Integrity 的標準意思;若直接掛上 CIA 而定義對 不上,反而降低可信度。改為標準定義「資訊與產出保持正確、完整,未遭 意外或未授權的變更」。 第三節補上歸類理由,讓內文支撐表格的分類:LLM 呼叫失敗時系統不會停 下來,而是標記該階段失敗後繼續,使用者仍拿到一份看起來完成、實際缺 了報告本文的產出。缺乏重試機制的後果因此不只是慢或要重跑,而是可能 交付殘缺成果,這才是 Integrity 問題。 表格改為四欄:角度、標準定義、在本系統的具體提問、帶出的項目。8ee55f5 -
建議書第七節底下兩子項提升為第七、第八節,與成果說明八項齊平
成果說明「五、未完成項目」是 8 個平級小節,建議書卻是 6 個主節加 1 個 含 2 子項的第七節。兩邊項目其實一一對應,但排版層級不同,對照時第一眼 會誤以為數量不符(實際發生過)。 將原 7.1、7.2 提升為第七節、第八節,項目總覽表拆為兩列。原本併在 「待決策的項目」底下是因為兩項同屬產品決策、不需工程資源,這個分類 資訊在總覽表的「主要角度」欄已標明,另在兩節末尾各補一句說明,攤平後 不會遺失。 成果說明 5.7/5.8 的指向由「7.1/7.2」改為「第七節/第八節」,八項 現在對八節,不需要換算層級。更新紀錄補三筆本日的修改摘要。a77d188 -
開發優化建議改為中性技術文件,移除第一人稱與第二人稱
原文件以「我對業主提建議」的書信口吻寫成,全文 50 處「我」「您」。 這份文件的實際讀者是後續承接的工程資源,內容是技術評估與施工方向, 用人稱敘述會讓它讀起來像一封信而不是可依循的技術文件;且交接後提出 人不一定在場,「我」指涉誰會失去對象。 全文改為中性陳述,六個含人稱的章節標題一併改寫: - 為什麼我把這一項排在第一位 → 列為最高優先的理由 - 請您確認的事項 → 待確認事項 - 我為什麼提出這件事 → 問題背景 - 我為什麼把它歸類為工程範疇⋯ → 歸類為工程範疇、不納入本次改版施工範圍的理由 - 我建議的實作順序 → 建議的實作順序 - 七、待您決策的項目 → 七、待決策的項目 「我測試時」改為「本次測試時」、「我建議」改為「建議」、「等您決定」 改為「待決定」,其餘依此類推。所有事實、數據、程式碼行號與章節結構 均未變動。順帶修掉一處以破折號作補充說明的寫法。5c42d58 -
修正空狀態提示的過時頁名,統一六顆結果頁下載鈕的命名
兩處都是改版過程中因為導覽項目改名、而文案沒有同步造成的殘留,各改 一行字串,不動任何邏輯。 _EMPTY_HINT(app_agent.py:1837):結果頁在資料尚未產出時提示「請先於 「主頁」完成分析流程」,但左側導覽列上沒有任何叫「主頁」的項目,對應 的是「AI對話」,使用者照著找不到入口。文案改為「請先於「AI對話」完成 分析流程」,與導覽項目名稱一致。 結果頁下載鈕命名(app_agent.py:3042、3111):四個統計子頁用「下載+ 該頁名稱」(下載敘述統計/下載差異性分析/下載監督式學習/下載非監督 式學習),但語言指標分析那顆是「下載檔案」、LLM 輔助分析那顆是「下載 報告」,使用者切換頁面時無法從按鈕文字判斷拿到的是哪一份。依專案既有 的主流命名規則(六顆中四顆已是此形式)統一為「下載語言指標分析」與 「下載LLM輔助分析」。 文件同步:兩項從「已知待修正」升格為第二章的修復項目,第二章由 13 項 增為 15 項(2.2 三項增為四項、2.3 四項增為五項),總覽表數字一併更新。 驗證:AST 解析通過;grep 確認三處字串已改、六顆下載鈕標籤全部一致。 瀏覽器實地渲染尚未驗證,見 commit 說明外的回報。29017e5 -
拆分對話區塊與內容區塊,逐項對照程式碼校正 4.1-4.5
原「右欄(對話畫面)」把對話區塊與內容區塊混為一段,且版面圖畫成 單欄。實際結構是:AI 對話頁為三欄(導覽+對話+內容),其他結果頁 為二欄(對話區塊收起,由 JS 在 .main-layout-row 記 data-nav、CSS 據此控制顯隱)。拆成兩個小節分別說明,各自附版面圖與元件對照。 內容區塊補充步驟列與捲動區分兩層的原因(步驟列自己 position:sticky 會被 Gradio 自動包的 .block wrapper 框住而跟著捲走,已實測)。 結果分頁排版表改為逐頁列出實際元件順序,並補上監督式學習表格與圖 的 1:2 寬度比、非監督式學習兩張圖等寬並排等細節。 空狀態補上 _EMPTY_HINT 的實際文案與行號;無顯著指標的情況補上 tab_box_img 預設 visible=False、該處確實一片空白的說明。 新增兩處「已知待修正」: - 下載鈕命名不一致:四個統計子頁用具名標籤,但語言指標分析是 「下載檔案」、LLM 輔助分析是「下載報告」 - _EMPTY_HINT 文案「請先於「主頁」完成分析流程」是舊版導覽用語, 現行導覽列沒有「主頁」項目,對應的是「AI 對話」 4.3 語料 Metadata 表單經對照確認與程式碼一致,未修改。e4f9e7e -
移除情境標籤敘述,修正步驟列的顯示條件
情境標籤(「情境:X ○○○○ [變更]」)在文件中被寫成已實作,實際上不 存在:app_header_html(app_agent.py:2918)只輸出 _build_header_html() 的步驟列,全檔沒有任何情境資訊的畫面輸出,CSS 也沒有對應樣式。程式碼 註解裡出現的「頂部步驟列+情境標籤」是 Phase 8-B 當時的歷史敘述,該 標籤後來沒有留下。 改為記錄為「已取消的規劃」並說明原因:情境選擇 2026-07-30 搬回工作區 成為步驟列第 1 步後,步驟列本身即可辨識情境進度,變更也已由「開始新 分析」涵蓋,標籤失去存在必要。左側導覽與右欄兩張版面圖一併移除該列, 小節標題由「選擇與標示」改為「選擇與變更」。 順帶修正步驟列的生命週期敘述:原寫「全部完成後隱藏」,實際上是只在 「AI 對話」頁顯示,切到任何結果頁都不顯示(見 app_agent.py:2913 起的 2-A 註解與 elem_id=app_header_wrap 的 CSS 規則)。4ebbb31 -
四、設計規範三處修正為實際畫面
情境卡片說明文字原本寫在「首頁」段落裡,但情境選擇 2026-07-30 已搬 回工作區,內容與段落標題不符。原「情境標籤」小節改名為「研究情境的 選擇與標示」,把卡片說明併入,首頁段落只留一句指向。 左側導覽列版面圖修正:原圖把四個統計子頁縮排畫在「語言指標分析」 底下,看起來像父子層級,實際上八個項目全部平級(2026-07-24 移除 「統計比較分析」父項與 Accordion 後即如此)。補上每個項目對應的 SVG 圖示檔名與元件 id 對照表。 對話輸入框補註實際狀態:元件已實作(chat_upload,app_agent.py:2891) 但外層 chat_upload_col 為 visible=False(app_agent.py:2890),依業主 要求先隱藏不開放。一併記錄目前的參數狀態(sources=[]、submit_btn= False、interactive=True 但無任何地方解析輸入文字)與日後啟用方式。4d9fe25 -
README 精簡為三份文件的對照表
移除三段閱讀路徑導引與行號提醒。導引預設了讀者的來意,實際上翻開 對照表就能自己判斷要看哪份;行號提醒在《開發優化建議》附錄已有 同樣說明,不需要在此重複。15fd1d3 -
移除文件中的「貴系」「貴校」字樣
改為「學校」與省略主詞。兩份文件都要交給業主,用敬稱指稱對方的機構 讀起來像對外提案,不像交付文件。70518f0 -
成果說明文件重整為六章成果導向架構,新增 docs/README.md
原文件為十五章的需求規格結構,是協作時的工作文件,交給業主閱讀時 找不到「這次做了什麼」。重整為六章,分類邏輯從文件書寫順序改為讀者 會問的問題:修好了什麼、新增了什麼、怎麼設計的、還沒做什麼。 新增文首「文件架構與成果總覽」表,兼目錄與成果摘要,一頁掌握全貌。 第二章依使用者實際遭遇情況重新分為三類共 13 項:流程卡住只能重整 頁面(6 項)、畫面與實際狀態不符(3 項)、視覺與可讀性(4 項)。 除原第三章的 5 個 Bug 外,補入改版過程中發現並修復但從未記錄的問題 (上傳取消鈕鎖死入口、重置後情境卡片失效、報告失敗誤報全部完成、 表單殘留上一輪內容、明暗切換失效、標題漸層消失),每項附 commit。 純視覺微調不列入此章,歸入 4.4。 功能項目與其規格章節合併:原第四章缺口 1 與原第九章下載機制併為 3.1、缺口 3 併為 3.2,避免同一件事拆兩處。設計相關的原第五、六、 七、十一、十三章整併為「四、設計規範」,新增 4.6 說明 design.md 的三個用途(工程取值依據、其他系統沿用同一設計語言、設計與程式的 單一事實來源)及其與本章的分工。 第五章未完成項目統一為 8 項,順序與《開發優化建議》一一對應,避免 兩份文件數量對不上。原第十二章既有架構限制移入 1.3。 修正 Footer 章節:原寫「透過 API 使用:保留」,實際 footer_links=[] 為全部移除(commit d928c91),決策後來改變但文件未同步。 新增 docs/README.md 說明三份交付文件的用途與適合讀者,並依「想知道 做了什麼」「準備接手維護」「要調整樣式」三種來意給出閱讀路徑。 刪除 docs/進度報告-2026-07-21.md(2026-07-21 的階段性快照,11 階段 只完成 6 個,內容已被本次重整取代且與現況不符)。docs/design/ 的 四情境首頁設計原型已過時(該設計 2026-07-30 已被推翻),其中的 Crimson Pro 字體檔移至 assets/fonts/ 保留,日後若要移除對 Google Fonts CDN 的依賴可直接使用。 《開發優化建議》六處交叉引用改為新章節編號。798601b -
文件改名與三處內容修正
需求彙整-UIUX改版.md 改名為 UIUX優化成果與技術說明.md(git mv,保留 檔案歷史)。原檔名讓業主誤以為是專案開跑前的內部文件而不會打開,但 文件在補上「本次改版完成項目總覽」後,主要用途已是向業主說明執行成果; 新檔名同時保留「技術說明」,讓工程接手時知道規格仍在這份文件裡。 內文標題同步更新。 第八節標題移除「方案 D」代號:該代號源自 2026-07-20 訪談時的多方案 比較,但 A/B/C 三案從未寫進本文件,單獨留一個 D 對任何讀者都沒有指涉 對象。更新紀錄與開發優化建議.md 內的三處引用一併清除。 第四節缺口 3(監督式/非監督式學習下載按鈕)補註已完成:實作在 commit 80da6cc(Phase 5),元件為 tab_imp_file / tab_cluster_file, 但文件停留在規劃語氣加「✅已確認要做」,與缺口 1 當初有回頭標註 「已實作完成」的處理不一致,容易被誤讀為未施工。 開發優化建議.md:六處對舊檔名/舊稱呼的引用改為《UIUX優化成果與 技術說明》。eba3775 -
兩份交付文件改版:優化建議重構為四視角、需求文件同步最終實作
開發優化建議.md: 以完整性/可用性/可維護性/機密性四個角度重新檢視,新增兩節。 第一節(機密性)研究語料經 prompt 送往 OpenRouter 與其上游供應商, 程式碼無任何資料政策或使用者告知處理,列出三項帳號層級確認事項。 第五節(可維護性)主檔 4232 行、handler 全巢狀定義在 create_app() 內無法單獨測試、零測試檔、設定散落四處,說明它如何放大其他各節的 施工風險。各節依急迫性重排。 補實測數據修正原本的錯誤結論:專案預設 Gemma 模型 reasoning_tokens 為 0、單次 21 秒,先前記錄的 reasoning 浪費與耗時偏長來自本機 .env 覆寫成 openrouter/free(同一代號兩次呼叫路由到不同模型),非專案 預設行為;原文件據此要求業主「換回付費模型」的前提有誤,改為確認 計費與勿用 :free 變體(實測 429,upstream_provider_shared_pool)。 全檔 19 處程式碼行號重抓:原文件行號停留在 aa1f341,CSS 抽出後全檔 位移近兩千行,引用的 :5846/:6124/:6372 均已超出檔案總行數。 需求彙整-UIUX改版.md: 新增「本次改版完成項目總覽」章節置於文首,以非技術語言分四類說明 本次合作實際完成的工作,供業主快速掌握;技術章節原樣保留供工程接手。 其餘就地同步為最終實作結果:5.1 首頁(情境卡片 2026-07-30 已搬回 工作區成第 1 步,首頁只留品牌介紹+單一入口)、5.2 步驟列 7 步更正 為 4 步與導覽列最終項目、6.2/6.3 版面圖(下載捷徑四顆、技術執行紀錄 轉正為獨立頁、設定/API 連結列移除、二欄改三欄)、6.4 補技術執行紀錄 頁、第八節註明存檔/讀檔未實作(首頁為「功能開發中」佔位連結)、 13.1 首頁空狀態、第十四節移除校徽識別項、第二節風險分區行號。e16c550
-
分析運算面板加上「請保持前景、電腦勿休眠」提醒文字
低風險緩解措施,對應開發優化建議.md第一節提到的連線中斷問題:系統 目前沒有連線中斷後恢復進度的機制,先用文案提醒使用者在看到「分析 完成」前不要把分頁切到背景或讓電腦休眠。只在任一子階段status為 running時顯示,全部done/failed後自動隱藏,不干擾完成後的畫面。 Playwright 驗證:情境1(略過Metadata路徑)跑一次完整分析,提醒文字 在運算期間正確顯示、分析完成後正確消失,無 console/server error。686c7cd -
新增 docs/design.md 設計系統文件
依千卉既有 DESIGN.md 慣例格式(YAML frontmatter 機器可讀 tokens + Markdown 本文說明判斷準則),從 assets/app.css 與需求彙整文件第十一節 「視覺規範」萃取本案設計系統:雙主題配色(WCAG AA 驗算通過)、字體 (Crimson Pro 英文數字 + Noto Sans TC 中文)、造型間距、圖示規範、 已知技術限制(Gradio CSS pipeline 的 :root 前綴問題等)。5ece6e2 -
開發優化建議文件補充:提醒業主正式上線前需換回付費模型
目前 .env 的 LLM1_MODEL/LLM2_MODEL 是 openrouter/free 免費模型自動 路由,僅供本次改版測試使用;2.3節列出的路由不穩定、思考過程浪費 時間等問題很大一部分是免費模型固有限制,正式上線前需換成付費模型 並確認額度/付款方式已就緒。54bc138 -
修回首頁重置後語料 Metadata 表單欄位殘留上一輪內容的既有 bug
Phase 11 回歸測試(情境3→情境4)時發現:原文標題等自由文字欄位、 群組數量/比較方式單選,重置後從未被清空過——這幾個 Gradio 元件值 獨立於 state 之外,on_reset_confirm 只重建 session_state,沒有任何 地方碰過它們。群組層/個體層表格不受影響(_show_metadata_form 每次 依當下上傳結果整份覆蓋)。 修法:這些欄位的清空動作併入 on_reset_clear_workspace(而非 on_reset_confirm),理由與該函式其餘欄位一致——workspace_row 這時 還可見、子元件仍掛載,update 才會生效。 Playwright 重現:情境3填「原文標題」+選「三群」後回首頁、換情境4 上傳2個檔案,修復前 Metadata 表單顯示殘留的舊標題文字與「三群」, 修復後正確清空、群組數量正確落在對應「二群」。a924456 -
E5:_TAB_OUTPUTS 拆成具名子清單(零行為改變)
原本 37 元素的單一扁平清單改拆成 11 個具名子清單(語言指標分析/敘述 統計/差異性分析/監督式學習/非監督式學習/研究報告/Canvas可見性/ 補的下載按鈕/技術執行紀錄/導覽列下載捷徑/結果導覽閘門)再串接, 方便肉眼對照 index 屬於哪個功能區塊。最終串接後的順序與內容跟原本 逐一相同,13 處呼叫端的 positional tuple 完全不受影響。 Playwright 端到端驗證(情境3,三群比較,含從未測過的 on_metadata_confirm 真實送出路徑,非略過):指標計算/統計分析/報告撰寫全部完成,語言指標 分析/敘述統計/差異性分析/監督式學習/非監督式學習/LLM輔助分析 六個結果頁與下載檔案全部正確顯示,server log 無 error/traceback。83c2682 -
E4:_CUSTOM_CSS 抽成獨立 assets/app.css
原本內嵌在 app_agent.py 裡約 2165 行的 CSS 字串常數,抽成獨立檔案, 改用 app.launch(css_paths=...)(Gradio 6 原生支援,語意與原本 gr.Blocks(css=...) 相同)。app_agent.py 從 6380 行降到 4185 行。 Playwright 驗證:淺色/深色模式畫面與抽出前逐像素一致,console 僅有 既有的 Gradio CDN 預載警告(非本次改動引入)。0a5d32e -
E3:清除 scenario_btn_col 死碼 wiring
Phase 8 留下的空 Column(純為既有可見性 wiring 保留,selection buttons 早已搬到 homepage_col/scenario_select_row),整段移除: - 宣告本身與對應 CSS(.scenario-buttons 相關規則,含收合狀態覆寫) - on_scenario_pick 四個 yield/outputs 清單移除該 output slot - on_reset_confirm 移除該 output slot,回傳 tuple 9→8 個元素 Playwright 驗證:情境選擇(1/3)、格式要求文案、重新選擇研究情境、 回首頁重置後再選情境,皆正常無 console/server error。6ac48e6 -
新增開發優化建議文件,彙整超出本次改版範圍的工程項目給業主
- Phase 10 持久化機制(存檔/讀取進度):問題重現、原始需求、架構說明、三個實作選項優缺點 - LLM API 呼叫可靠性強化:無重試機制、180秒逾時未真正生效、免費模型自動路由浪費 reasoning token - 本機啟動 share=True 預設開啟公開分享連結的安全性疑慮 - Session 輸出目錄清理機制 - 待業主決策項目:Metadata 補填、致理品牌識別、上傳檔案大小上限761ab7f -
研究選擇搬回工作區成正式第1步+首頁改版+導覽列/對話區視覺打磨(Batch A-G)
- 3-A:情境選擇從首頁搬回工作區,成為步驟列正式第1步「研究選擇」(_STEPS 3→4步) - 2-B:nav-col 三段式改版、對話圖示改對話氣泡樣式 - 2-C:對話輸入框改常駐隱藏、對話氣泡字級調整為14px - 首頁置中、品牌字標2行1.1rem、頂部列去標題、捲軸懸停才顯示 - 4-B/4-C 導覽列消失、重置殘留等回歸問題修復 - 新增「重新選擇研究情境」返回鈕 - .gitignore 補 .gradio/(Gradio本機憑證快取,比照 .venv/ 排除)698954d
-
LLM 輔助分析頁排版一致化 + 首頁產品名稱重新設計
- 補齊 LLM 報告頁(#canvas_report)markdown 的 h1/h2/h5/h6/表格/水平線/ 引言區塊樣式,原本只有 h3/h4 有樣式,字級與其他頁面不一致、表格吃瀏覽器 預設白框 - 修 .txt 報告開頭 "="*60 分隔線被 Markdown 誤判成 Setext 標題底線、把 研究情境/時間吃成巨大無樣式標題的 bug,改用正規 --- 分隔線 - 加強報告 LLM prompt 格式規範,明確要求用 ##/#### 標題語法而非粗體字充當 標題 - 補齊 .nav-col/.chat-col 右邊框、報告頁標題底線在深色模式下太淡的問題 (沿用 .app-header 之前的修法),並修正 Gradio 對 ".dark A, .dark B" 逗號並列選擇器加容器前綴時的既有 bug(拆成各自獨立規則) - 首頁產品名稱重新設計:「譯彩紛呈:重譯文本分析系統」(系列名稱)降級為 副標,「II 分析引擎 SpectraEngine」(子產品名稱)升級為大標題+漸層字, 頂部工作區標題同步更新 - 「讀取進度」連結視覺上改為 enabled 樣式(功能仍未開發,點擊無作用) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JpXMpgHnw5YkEfyeUYt4dy2d56ccb