# 研究步驟規劃 (2026-07-30 討論定案;2026-08-15 依執行現況全面改寫, 舊版規劃見 git 歷史;歷次變更與理由記於 `decision-log.md`, 程序細節見 `methodology.md`) ## 總體框架 - **研究敘事**:全文為獨立完整的正式研究(2016–2025 十年 語料共 1000 筆榜單紀錄、883 首歌,凍結程序後全量執行), **不與先導研究做比較**; 全文數字一律以正式研究結果為準。先導研究僅作為假說的 內部來源,記於決策日誌,不進入論文敘事。 - **執行原則**:主會話只做討論;所有分析由 deterministic script 執行。LLM 步驟以 Python script 呼叫 Anthropic Messages API(個人 Console 帳號、Batch API 五折),定義 檔逐字作為 system prompt。可逐項機械比對的判斷(步驟 3 編碼、步驟 4 選群、步驟 5-4 樣態標註)採「同一定義檔 獨立執行三次+多數決」,計票由確定性子命令完成。自由 生成(步驟 1 自由標註)兩次執行全數進池。步驟 5-1 至 5-3 為質性閱讀協定:三次獨立閱讀為分析者三角檢核、 逐首整合、樣態統整產出草稿,不適用投票與仲裁。詞彙表 不經 LLM,由詞向量嵌入+確定性分群產生。驗證結果不符 預期則修訂定義檔重跑該循環,絕不手改結果。 - **提示詞只定格式、不定語意**:研究對象是通用 LLM 以其 網路語料知識背景所做的自然編碼與閱讀,其結果本身是 批判對象。定義檔只規定任務形狀(輸入、數量範圍、輸出 格式),不給任何主題的定義、判準或範例。LLM 判斷一律 要求逐項引述歌詞原句,作為檢視偏差的依據。 - **模型**:步驟 1、3 用 `claude-sonnet-4-6`(temperature=0、 thinking 關閉);步驟 4、5 用 `claude-fable-5`(兩參數 不適用,均不送出;取樣變異由多數決或整合吸收)——實測 發現 sonnet 將「Women Power」拆讀為 women+power 的組合 語意,fable-5 讀為詞彙化概念,語意層任務因此換用 fable-5(經過見決策日誌)。 - **信度與效度**:三次獨立執行量測穩定性(intra-rater reliability,可報告兩兩一致率);封閉母體全量檢查取代 抽樣防衛。可重現性定義為「程序透明+可稽核」:公開定義 檔、記錄 model ID 與執行時間、保存全部原始輸出。 ## 資料儲存與模型 - **Commit 判準**:凡能由「committed 的輸入+committed 的 程式」決定性再生者,不 commit;凡不能者——源頭資料、 外部世界的捕捉(Wikidata 快照、LLM 原始輸出)、人工 著作——一律以文字格式 commit。格式跟著層次走。 - **分層**: - 源頭:原始榜單 CSV(進 git)。 - 捕捉:Wikidata 快照 CSV、`runs/` JSONL(皆進 git); 歌詞 `.txt` 快取(版權因素 gitignored,為已知的稽核 缺口)。 - 人工:`data/manual/`(僅研究者親手寫入:編碼修正、 演唱者性別修正)。 - 工作儲存:SQLite 單檔(`tools/instance/`,generated、 不進 git),SQLAlchemy 2.0 typed ORM 定義 schema, 設定經 pydantic-settings(`.env` 供應 `SQLALCHEMY_DATABASE_URL` 與 `ANTHROPIC_API_KEY`)。 歌詞全文入 DB(不進 git 故無版權疑慮)。 - 衍生:`build-db` 建置工作儲存的同一動作產出人讀報表 (`data/derived/`,進 git),與 SQLite 同交易語意。 - 報表:論文引用的定案表進 `results/`—— `codings.csv`(步驟 3 定案編碼)、`groups.csv` (步驟 4 定案編碼群)、`patterns.csv`(步驟 5-3 定案 樣態表)、`annotations.csv`(步驟 5-4 定案歌×樣態 矩陣)。衍生與報表為「可再生仍 commit」的例外,理由: 引用穩定性、審稿人零門檻、撰稿期數字變動可 diff。 - **資料模型**:`songs`(含 lyrics、`performer_gender`—— 演唱聲音之性別,由署名藝人之 Wikidata 性別推導後套用 `data/manual/performer-gender-corrections.csv` 手工修正)、 `chart_entries`、`artists`、`song_artists`、`codings`、 `groups`(語意編碼群)、`patterns`(深讀樣態)、 `annotations`(歌×樣態定案矩陣)。領域不變量(恰 1000 筆榜單、每歌至少一 primary 歌手等)檢查內建於 `build-db`,違規即建置失敗。 - **歌手背景防火牆**:歌手背景資料只進人工解讀階段, **絕不進 LLM 輸入**——LLM 任務的 user message 維持 歌詞-only 或管線中間產物-only,避免光環偏誤。 - **Pilot 歌詞沿用(私人匯入,不進發布管線)**:先導研究 捕捉檔(lyrics.json,684 首,2018–2025)以私人腳本 匯入歌詞快取;讀者的重現路徑純粹是 `fetch-lyrics`;沿用之事實記於 `data/captures/lyrics-provenance.csv`(進 git)。 - **子命令**(`pop-fem-audit-tools `):`build-db` (`--codings`、`--groups`、`--gender-corrections`、 `--patterns`、`--annotations`)、`cluster-keywords`、 `export-llm-input`、`fetch-artists`、`fetch-lyrics`、 `run-llm`(`--model` 於模型登錄表中擇一)、 `tally-codings`、`tally-groups`、`tally-annotations`。 ## 分析管線(五步驟,全部完成) 1. **自由標註(步驟 1)**:逐首歌請模型標註 thematic keywords,附歌詞引述;提示零語意內容。獨立執行兩次, 兩次輸出全數進池。 2. **詞彙表建構(步驟 2)**:聯集去重後以句向量模型嵌入、 階層式聚合分群 k=100,組名取 medoid;再併入研究者先驗 主題詞 `women-power`(據實揭露的儀器介入),共 101 碼。 3. **編碼(步驟 3)**:以定稿詞彙表對全 883 首編碼,逐 標籤附引述,×3+多數決(`tally-codings`),定案 `results/codings.csv`。「女性力量」候選集(wp 66 首、 fe 144 首、wp∪fe 145 首)由此浮現。 4. **語意編碼群(步驟 4)**:LLM 依編碼字面語意將 101 碼 選入研究者指定的四個主題群(women-power/misogyny/ masculine/vulnerable),×3+多數決(`tally-groups`), 定案 `results/groups.csv`;wp/fe 與各編碼、各編碼群之 關聯統計(BH-FDR 校正)入論文。 5. **女性主義問題之質性深讀(步驟 5)**:對 wp∪fe 145 首 ——5-1 逐首盲讀(僅歌詞全文)×3;5-2 逐首整合(收斂 註記、主清單限兩讀以上);5-3 樣態統整(全體基底+ 男聲/女聲/混合三個發話脈絡分組);5-4 樣態標註—— 以分組樣態表逐首標註「有問題」的 111 首,×3+多數決 (`tally-annotations`),定案 `results/patterns.csv` 與 `results/annotations.csv`。 定義檔命名 `prompts/<步>-<次步>-.md`,編號的所指是 工序而非定義檔(確定性的第 2 步無定義檔仍佔編號);檔名 不帶版本號——版本即 git 歷史;每次執行的定義檔快照隨 `runs/` 自我完備,token 費用逐筆記於 `docs/run-costs.md`。 ## 時程與剩餘工作 - 全文截稿 2026-08-15;已向主辦致歉延後一至二日交件。 - 分析管線與定案表全部完成;剩餘為論文撰寫:「挪用與 污染」結論(步驟 5 素材已備)、信度說明、fe 與新自由 主義敘事之詮釋標註。 ## 其他已定案事項 - 歌詞受版權保護:完整歌詞不進 git (`data/captures/lyrics/` gitignored),論文與 repo 只留 分析所引摘錄。