imacat and Claude Opus 5
aa1128728b
Restructure the remaining commands into the house shape
...
Every command now runs as one orchestrating class (the ctor
stores, run() executes, helpers and constants private), main a
thin controller; the guards the fixed corpus cannot trigger are
dropped, docstrings say each level's own contract once, and the
build-db summary reports the songs and the artists alone.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-19 10:46:21 +08:00
imacat and Claude Opus 5
ca0d84223f
Restructure tally-groups into the house command shape
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-19 10:28:31 +08:00
imacat and Claude Opus 5
5fc7efafec
Restructure tally-annotations into the house command shape
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-19 09:49:39 +08:00
imacat and Claude Fable 5
10a1b19f14
Import the settled patterns and annotations into the working store
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-18 22:37:32 +08:00
imacat and Claude Fable 5
66cb06b633
Add the tally-annotations subcommand settling the pattern matrix
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-18 22:37:32 +08:00
imacat and Claude Fable 5
f8ec423aba
Correct three performer genders via build-db --gender-corrections
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-17 22:38:42 +08:00
imacat and Claude Fable 5
744b04f697
Import the settled code groups into the working store
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-17 22:38:41 +08:00
imacat and Claude Fable 5
9e4d7a611e
Add the tally-groups subcommand settling results/groups.csv
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-17 22:38:41 +08:00
imacat and Claude Fable 5
fbe1a39773
Replace the quote newline escape with the lyric line-break convention
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-17 22:38:40 +08:00
imacat and Claude Fable 5
c0cf934bee
Add a model option to run-llm for the claude-fable-5 model
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-17 22:38:40 +08:00
imacat and Claude Opus 5
02fcfd4b78
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
imacat and Claude Opus 5
0158714d7f
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
imacat and Claude Opus 5
76427d63a8
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
imacat and Claude Opus 5
bb83b75196
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
imacat and Claude Opus 5
c383da35ac
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
imacat and Claude Opus 5
dbb6bc518e
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
imacat and Claude Opus 5
dca83a7e93
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
imacat and Claude Opus 5
82929d4e31
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
imacat and Claude Opus 5
dcf18f589d
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
imacat and Claude Opus 5
d0146cecd9
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
imacat and Claude Opus 5
0f88376b50
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
imacat and Claude Opus 5
5d4a29800c
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
imacat and Claude Opus 5
cc88d2e3d6
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
imacat and Claude Opus 5
74d72cd15e
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
imacat and Claude Opus 5
147e838b91
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
imacat and Claude Opus 5
bf3d663d39
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
imacat and Claude Opus 5
cd233319fa
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
imacat and Claude Opus 5
d4fe3b868b
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
imacat and Claude Opus 5
c5c000b604
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
imacat and Claude Opus 5
d9d79295e6
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
imacat and Claude Opus 5
28c02852fc
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
imacat and Claude Opus 5
5ffb268884
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
imacat and Claude Opus 5
fd1400b749
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
imacat and Claude Opus 5
975571391d
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
imacat and Claude Opus 5
fdcd73699f
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
imacat and Claude Opus 5
512aaf90fd
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
imacat and Claude Opus 5
50a0631454
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
imacat and Claude Opus 5
d2cf1a8950
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
imacat and Claude Opus 5
b1a9e0d816
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
imacat and Claude Opus 5
5c40033132
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
imacat and Claude Opus 5
52405591c9
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
imacat and Claude Opus 5
e49feabe94
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
imacat and Claude Opus 5
733dada424
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
imacat and Claude Opus 5
4b47281a7c
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
imacat and Claude Fable 5
faeb0a523a
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
imacat and Claude Fable 5
140c4d6ac2
Add watermark normalization to fetch-lyrics
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-17 22:38:26 +08:00
imacat and Claude Fable 5
5c0004dfe3
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
imacat and Claude Fable 5
f96452aee4
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
imacat and Claude Fable 5
314b18214e
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
imacat and Claude Fable 5
b782a39a7e
Drop the engine preparation from build-db
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-04 15:34:36 +08:00