2.0 KiB
2.0 KiB
Project Workflow Rules
Keep this file minimal. It is injected into every Claude Code
subagent; NEVER put research domain knowledge, theory, coding
criteria, or expected results here. Domain material lives in
docs/ and is read only when explicitly needed.
Roles
- The main Claude Code session is for discussion, planning, and writing only. All analysis is executed by deterministic scripts.
- Claude Code subagents are used only for engineering support (writing scripts, style checks, reviews) — never as research instruments.
Analysis pipeline (paper-bound work)
- LLM analysis runs via Python scripts calling the Anthropic
Messages API: model
claude-sonnet-4-6,temperature=0, thinking disabled, Batch API where possible. - Prompt definition files live in
prompts/<task>_v<N>.mdand are passed verbatim as the system prompt. - Every LLM step runs the same definition file twice, then a separate arbitration step reconciles the two outputs ("2 runs + 1 arbitration"). If arbitration output is unexpected, revise the definition file and repeat the whole cycle; never patch results by hand.
- Every execution is archived self-contained under
runs/<phase>/<date>-<prompt-version>/: prompt snapshot, raw outputs of both runs, arbitration output, andmeta.json(model ID, parameters, timestamps, batch IDs). - Scripts read the API key from the
ANTHROPIC_API_KEYenvironment variable (.env, gitignored). Never hardcode keys.
Data rules
data/yearend_hot100_2016_2025.csvis the only hand-placed raw file; everything else indata/is script-derived.- Full lyrics are copyrighted: they stay in
data/lyrics/(gitignored) and must never be committed or reproduced in full anywhere in the repo.
Documents
results/holds final arbitrated tables (what the paper cites);runs/holds raw audit records. The paper citesresults/only.- Any change to a definition file, the codebook, or the plan is
recorded in
docs/decision_log.mdwith date and reason.