Author SHA1 Message Date
imacat 190f95b632 Add conference paper first draft. 2026-08-17 22:38:40 +08:00
imacatandClaude Fable 5 54e42c072c Record the blind semantic code grouping in the decision log
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 22:38:40 +08:00
imacatandClaude Fable 5 77049eb026 Record the full k-value comparison table in the decision log
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 22:38:39 +08:00
imacatandClaude Opus 5 f87e3642f6 Derive the performing group genders from their Wikidata members
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:39 +08:00
imacatandClaude Opus 5 bebf85814e Derive the song performer gender and identify Pinkfong as Hope Segoine
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:39 +08:00
imacatandClaude Opus 5 ea9df52bc3 Drop the redundant HTTP error class from the retry catch
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:39 +08:00
imacatandClaude Opus 5 62adf7f937 Pin the parenthesized members pattern to a single split point
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:38 +08:00
imacatandClaude Opus 5 35d8e08871 Make the module-level helpers private instead of protected
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:38 +08:00
imacatandClaude Opus 5 693dbccc9d Extract the protected name restoration out of the credit parser
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:38 +08:00
imacatandClaude Opus 5 2ea23d9bce Classify the transient request errors in one place
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:38 +08:00
imacatandClaude Opus 5 87926d9622 Extract the record content builder out of the export line builder
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:38 +08:00
imacatandClaude Opus 5 aa8b84c8cd Stop binding the unread role in the parsed credit check
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:38 +08:00
imacatandClaude Opus 5 7739abd105 Remove the unused skipped counter of the artist fetcher
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:37 +08:00
imacatandClaude Opus 5 dfdfccc460 Capture the command output in the parent-directory export test
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:37 +08:00
imacatandClaude Opus 5 4ae6fa7b2e Merge the two identical chart-position formatters of the CSV exporter
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:37 +08:00
imacatandClaude Opus 5 3aa5c7a432 Unify the export-llm-input and run-llm summary lines with build-db
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:37 +08:00
imacatandClaude Opus 5 bc44d60d18 Close the HTTP error fixtures when the test ends
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:37 +08:00
imacatandClaude Opus 5 a64c04a128 Run the tests on an in-memory store and dispose the engine afterwards
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:36 +08:00
imacatandClaude Opus 5 c3e48aac56 Trim the build-db summary to songs, artists, codings and elapsed time
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:36 +08:00
imacatandClaude Opus 5 40c41f2734 Import the settled coding into the working store
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:36 +08:00
imacatandClaude Opus 5 58189bae3a Settle the coding of the 883 songs against the 101 keywords
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:36 +08:00
imacatandClaude Opus 5 745a8eed9b Repair the coding output with a reviewed correction table
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:35 +08:00
imacatandClaude Opus 5 7f43cf238b Record how far the coding output departs from its stated contract
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:35 +08:00
imacatandClaude Opus 5 95a05a0631 Add the tally-codings subcommand for the majority vote
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:35 +08:00
imacatandClaude Opus 5 24a4ca6970 Archive the third coding run
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:34 +08:00
imacatandClaude Opus 5 c51c9d71e1 Settle the coding by a majority of three runs instead of an arbitration
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:34 +08:00
imacatandClaude Opus 5 7008e14972 Import each command module only when its subcommand runs
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:34 +08:00
imacatandClaude Opus 5 668f1bb118 Restructure cluster-keywords into builders and result records
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:34 +08:00
imacatandClaude Opus 5 019f317a82 Archive the arbitration pass over the coding disagreements
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:34 +08:00
imacatandClaude Opus 5 20c48f04b9 Quote one line per kept keyword in the arbitration
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:33 +08:00
imacatandClaude Opus 5 3bae24b930 Build the arbitration input with a per-ID extras merge
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:33 +08:00
imacatandClaude Opus 5 1714257c89 Add the compare-codings subcommand for the arbitration handoff
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:33 +08:00
imacatandClaude Opus 5 949a0f9c8d Drop the source-provenance artifact from cluster-keywords
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:33 +08:00
imacatandClaude Opus 5 f2a80475a5 Rename the arbitration definition file to 03-02-arbitration
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:32 +08:00
imacatandClaude Opus 5 7c2e286c9d Archive the second coding pass against the 101 keywords
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:32 +08:00
imacatandClaude Opus 5 5325a8f9a4 Archive the first coding pass against the 101 keywords
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:32 +08:00
imacatandClaude Opus 5 71b640085a Keep the medoid group names after testing LLM naming
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:32 +08:00
imacatandClaude Opus 5 dcf9e280d0 Report the clustering result in a sentence
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:32 +08:00
imacatandClaude Opus 5 e4f40e7c0f Rebuild the coding keywords with 100 groups
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:31 +08:00
imacatandClaude Opus 5 4dc526c4b0 Record the clustering invocation in a meta file
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:31 +08:00
imacatandClaude Opus 5 15f1843cde Raise the clustering to 100 groups
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:31 +08:00
imacatandClaude Opus 5 8cdeb3db2e Quote one line per assigned keyword
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:31 +08:00
imacatandClaude Opus 5 4fdc7b48fd Take the extra coding keywords from the command line
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:30 +08:00
imacatandClaude Opus 5 de8b8ee678 Merge the keyword pooling into cluster-keywords
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:30 +08:00
imacatandClaude Opus 5 5cf2b8ee8c Separate the clustered keyword list from the keywords to merge
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:30 +08:00
imacatandClaude Opus 5 04d5095e44 Pass the coding keywords as input instead of baking them into the prompt
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:29 +08:00
imacatandClaude Opus 5 ce4f9ad481 Archive the clustered coding vocabulary
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:29 +08:00
imacatandClaude Opus 5 41dc3ea2ea Add the cluster-keywords subcommand for the coding vocabulary
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:29 +08:00
imacatandClaude Opus 5 c03add4868 Archive the pooled keywords of the two tagging runs
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:29 +08:00
imacatandClaude Opus 5 d73de3d01c Add the pool-keywords subcommand for the tagging runs' keywords
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:28 +08:00
imacatandClaude Opus 5 14a3cbe121 Rebuild the vocabulary step on embeddings and drop the screen track
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:38:28 +08:00
imacatandClaude Fable 5 4313d58471 Report the elapsed time when run-llm finishes
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 22:38:28 +08:00
imacatandClaude Fable 5 db9fbd71d4 Archive the tag run2 execution
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 22:38:27 +08:00
imacatandClaude Fable 5 1802dac07a Archive the tag run1 execution and add the run-cost ledger
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 22:38:27 +08:00
imacatandClaude Fable 5 9b2af3bb50 Require valid JSON with escaped quotes in the definition files
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 22:38:27 +08:00
imacatandClaude Fable 5 99bbd566cf Forbid Markdown code fences in the definition-file outputs
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 22:38:27 +08:00
imacatandClaude Fable 5 3f793afd34 Record the song-775 refusal ablation and rule it unanalyzable
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 22:38:27 +08:00
imacatandClaude Fable 5 05ba3942a2 Add watermark normalization to fetch-lyrics
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 22:38:26 +08:00
imacatandClaude Fable 5 d46c50a2db Changed the natural-coding definition files to single-pass convergence
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 22:38:26 +08:00
imacatandClaude Fable 5 964006ec6d Add the natural-coding definition files and the convergence algorithms
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 22:38:26 +08:00
imacatandClaude Fable 5 0c82da7a1d Settle women-power as the a-priori screen label term
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 22:38:26 +08:00
imacatandClaude Fable 5 93a4f808bf Reduce run-llm to a pure batch executor
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 22:38:26 +08:00
imacatandClaude Fable 5 7a58f37d9f Record the natural-coding pipeline design in the project documents
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 22:38:26 +08:00
imacatandClaude Fable 5 b727284ef3 Gather the CLI command modules into a commands sub-package
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 22:38:26 +08:00
imacatandClaude Fable 5 396848e898 Add the export-llm-input subcommand for the lyrics-only LLM input
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 22:38:26 +08:00
imacatandClaude Fable 5 55926b8dc4 Regenerate the artists report with the Wikidata snapshot applied
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 22:38:26 +08:00
imacatandClaude Fable 5 ee6a1b88c5 Rename the Markdown documents to dash-connected names
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 22:38:20 +08:00
imacatandClaude Fable 5 1a7519becd Drop the engine preparation from build-db
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 15:34:36 +08:00
imacatandClaude Fable 5 a534b1b70b Move the invariant checks into the importers and drop find_violations
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 15:34:36 +08:00
imacatandClaude Fable 5 8fdd21f8a2 Package the capture-layer application into a CaptureImporter class
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 15:34:36 +08:00
imacatandClaude Fable 5 c561330bd0 Repackage the build-db import steps into job classes
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 15:34:36 +08:00
imacatandClaude Fable 5 64c62eb394 Capture the song lyrics from the pilot study and the public APIs
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 15:34:36 +08:00
imacatandClaude Fable 5 0d3cd69a0f Align the fetch-lyrics summary with fetch-artists via shared utils
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 15:34:26 +08:00
imacatandClaude Fable 5 81975b72e4 Remove the missing-lyrics report from fetch-lyrics
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 15:15:49 +08:00
imacatandClaude Fable 5 1b21471845 Fall back to the original artist credit when fetching lyrics
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 15:15:49 +08:00
imacatandClaude Fable 5 15f207ffc6 Remove the retired artist overrides layer and the mixed artist type
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 15:15:49 +08:00
imacat 93aa06703b Keep the artist snapshot sorted by name 2026-08-04 15:15:49 +08:00
imacat 8fdd25f569 Show resolved count and elapsed time in the fetch-artists summary 2026-08-04 15:15:49 +08:00
imacat 00b5c208ec Resolve artists on Wikidata via exact-match SPARQL with song corroboration 2026-08-04 15:15:49 +08:00
imacat c81bfcf51d Restore official artist name spellings in the canonical table 2026-08-04 15:15:49 +08:00
imacat 942a74c86c Record the complete-Wikidata-then-capture workflow decision 2026-08-04 15:15:49 +08:00
imacat 1f95f0231d Export human-readable songs and artists reports to the derived data layer 2026-08-04 15:15:49 +08:00
imacat ae0e9d0a08 Split artist credits with documented exceptions and normalize artist names 2026-08-04 15:15:49 +08:00
imacat 6a91bc73eb Merge same-song chart rows via a canonical artist credit table 2026-08-04 15:15:49 +08:00
imacat e15c988bf4 Store the source chart CSV with its original CRLF line endings 2026-08-04 15:15:49 +08:00
imacat f36a30411d Align the source chart CSV with the archived Billboard year-end charts 2026-08-04 15:15:49 +08:00
imacatandClaude Fable 5 5d5e4fac50 Reorganize data/ into source, captures, and manual layers
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 15:15:49 +08:00
imacatandClaude Fable 5 e9027472f4 Make every subcommand input an explicit CLI argument or option
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 15:13:31 +08:00
imacatandClaude Fable 5 e0eb343ce0 Refactor internal data passing to dataclasses and enums, and remove unneeded defensive code
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 15:13:31 +08:00
imacatandClaude Fable 5 8d223177cd Add the data layer with the build-db, fetch-lyrics, and fetch-artists subcommands
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 15:12:22 +08:00
imacatandClaude Fable 5 f9ab79f0c2 Use the unified pydantic-settings configuration in run_llm
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 14:03:37 +08:00
imacatandClaude Fable 5 b68393ab01 Record the data storage architecture and phase-1 plan in the project documents
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 14:03:37 +08:00
imacatandClaude Fable 5 12ace6f45a Add the tools sub-project with the run_llm batch runner
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 14:03:28 +08:00
imacatandClaude Fable 5 9a42b463a3 Initialize project structure, workflow rules, and research plan
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 18:51:10 +08:00
5 changed files with 14 additions and 19 deletions
+10 -11
View File
@@ -99,8 +99,8 @@
## 2026-08-02
- **`import-lyrics` 不設為子命令,pilot 歌詞改以 `excludes/`
私人腳本匯入**。理由:pilot 捕捉檔不隨論文發布,子命令
- **`import-lyrics` 不設為子命令,pilot 歌詞改以私人腳本
匯入**。理由:pilot 捕捉檔不隨論文發布,子命令
形式會在發布的 CLI 裡留下讀者無法執行的死命令——要交待的
是「沿用 pilot 捕捉」的事實(記於 lyrics-provenance.csv 與
論文方法節),不是工具本身;工具移出專案,發布管線即
@@ -178,8 +178,8 @@
來源公開可稽核,快照乾淨、overrides 縮小;論文方法節揭露
「捕捉前經研究者查證補完」。性別以公開自我認同為準,
推測不確定且無佐證者列疑慮清單;查證屬資料策展而非
分析,以 Claude Code 輔助、不走分析 APIQS 批次
`excludes/`私人工作檔,不隨論文發布
分析,以 Claude Code 輔助、不走分析 APIQS 批次
私人工作檔留存,不隨論文發布。
## 2026-08-04
@@ -227,7 +227,7 @@
- **Markdown 檔名一律以 dash 連接**decision-log.md、
research-plan.md、project-structure.md 等;與 data/ 層
CSV 檔名慣例一致),定義檔命名慣例同步改為
`prompts/<task>-v<N>.md`(如 screen-v1.md),`excludes/`
`prompts/<task>-v<N>.md`(如 screen-v1.md),版本庫外的
私人工作檔一併改名;`conference_abstract.md` 改名並搬入
`paper/`——它是本次年會實際送出的摘要,與全文同屬投稿
血脈,不是 `docs/` 的內部工作文件。全 repo 指涉同步更新。
@@ -583,8 +583,8 @@
Billboard 署名 Pinkfong 為品牌(Wikidata Q55735607,型態
brand),非演唱者;其唯一上榜曲 Baby Shark2019#75
的實際演唱者為 Hope SegoineKTVB 2019-03-06 報導、
Songfacts、經紀簡介,出處詳
`excludes/quickstatements/hope-segoine.md`)。藉既有的
Songfacts、經紀簡介,出處詳私人留存的
QuickStatements 草稿)。藉既有的
署名正規化機制(`ArtistImporter.CANONICAL_ARTIST_NAMES`
指認:歌曲的署名字串維持榜單所印的 "Pinkfong",解析出
的演出者實體為 Hope Segoine。品牌無性別可言,人有;
@@ -637,10 +637,9 @@
sentence-transformers/all-mpnet-base-v2, revision
e8c3b32e)對 `runs/02-cluster/source-keywords.txt`
5,999 個關鍵字重新計算。組內一致性定義為組內成員兩兩
餘弦相似度之平均。k=50 直接取自留存的分群結果
`excludes/k50/02-cluster/groups.csv`);k=30 以同參數
重跑(確定性演算法),重算所得最大組恰為 491 詞,與
當時粗算紀錄吻合,佐證重算與原實驗一致。數表:
餘弦相似度之平均。k=50 直接取自私人留存的分群結果
k=30 以同參數重跑(確定性演算法),重算所得最大組恰為
491 詞,與當時粗算紀錄吻合,佐證重算與原實驗一致。數表:
| | k=30 | k=50 | k=100 |
|---|---|---|---|
+1 -1
View File
@@ -81,7 +81,7 @@ pop-fem-audit/
│ └── methodology.md # 方法細節(全文方法節底稿;
│ # 映射分析方法須在看結果前寫定)
└── paper/
├── conference-abstract.md # pilot 摘要(投稿版)
├── abstract.md # 摘要
└── full-paper.md # 全文
```
+3 -7
View File
@@ -7,7 +7,7 @@
- **研究敘事**:全文為獨立完整的正式研究(2016–2025 十年語料
共 1000 筆榜單紀錄,凍結程序後全量執行),**不與先導研究
paper/conference-abstract.md做比較**;全文數字一律以正式研究
做比較**;全文數字一律以正式研究
結果為準。先導研究僅作為 codebook v0 與假說的內部來源,
記於決策日誌,不進入論文敘事。
- **執行原則**:主會話只做討論;所有分析由 deterministic script
@@ -75,8 +75,8 @@
候選歌曲的歌手另做深度背景(族裔以公開自我認同為準、音樂
場景),script 輔助、人工核定。
- **Pilot 歌詞沿用(私人匯入,不進發布管線)**:先導研究
捕捉檔(lyrics.json684 首,20182025)以 `excludes/`
私人腳本匯入歌詞快取——只取識別欄位與歌詞本文,以
捕捉檔(lyrics.json684 首,20182025)以私人腳本
匯入歌詞快取——只取識別欄位與歌詞本文,以
(year, rank) 精確匹配 song_id。匯入工具不屬於專案交付物
(讀者拿不到其輸入),讀者的重現路徑純粹是 `fetch-lyrics`
沿用之**事實**記於 `data/captures/lyrics-provenance.csv`(進 git):
@@ -164,15 +164,11 @@
與「貶低其他女性/以男性指標定義權力」。
- 流程:v0 → 校準樣本試編 → 修訂 → 凍結 v1 → 全量編碼;
中途修訂須記決策日誌並回檢已編歌曲。
- Positionality statement 寫入論文(53 歲、長年婦運者、資深
工程師、離開學術圈多年、因整理榜單而起)。
## 其他已定案事項
- 歌詞受版權保護:完整歌詞不進 git(`data/captures/lyrics/` gitignored),
論文與 repo 只留分類所引摘錄。
- 工程支援(寫 script、style check、審稿)用公司訂閱的
Claude Code;進論文的分析 token 由個人 API 帳號支付。
- Fable 5 不用於 pipeline:成本高、thinking 無法關閉且不可稽核、
無 temperature 控制,且會混淆「盲點是提示問題」的核心主張。
2026-08-05 實測確認:Claude 5 系模型拒收 temperature