imacat and Claude Opus 5
e9fd56e2a8
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
f60f6b218a
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
ada85291fe
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
88d64f0553
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
5961a739bd
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
e9c29e5867
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
03ee51912d
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
87ad31568a
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
ed54a1248f
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
64dd9b0cc3
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
2c15c0bb8b
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
5d10383dcb
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
99f5c1c260
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
d370ac51dc
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
c7b630c632
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
5194d4246b
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
36b3456414
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
511abd0a55
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
047f322bf3
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
2d8a34ea9e
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
71f9c713f0
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
95b843f76e
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
7a5176b8b3
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
045086f9ca
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
bfb5208133
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
10fccca108
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
8c06406b3a
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
3a2419f43a
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
8299906b51
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
85db4dac12
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
c2ffa9d247
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
c997cc8d74
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
fbb80180af
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
c5ad09524b
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
5b376e001d
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
864735352a
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
1c4d5c5ed7
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
066ae15800
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
bf2b4970fd
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
a14e2a878a
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
0b995e5a51
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
d9014cf1f3
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
cba73a6ace
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
cf80a6f51e
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
5092e04d34
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
376916fb8c
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
21c5ae5481
Drop the engine preparation from build-db
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-04 15:34:36 +08:00
imacat and Claude Fable 5
383670ab2b
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
imacat and Claude Fable 5
c59a023095
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
imacat and Claude Fable 5
10dc4cb693
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