⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠ You can decompress Drawing data with the command palette: ‘Decompress current Excalidraw file’. For more info check in plugin settings under ‘Saving’
Excalidraw Data
Text Elements
analysis_jobs
pending
queued
running
finalizing
succeeded
partial
failed
canceled
line_analysis_tasks
retry_wait
enqueue song_analysis.start
worker claimed job
all line tasks finished
summary assembled
some line tasks failed
fatal setup error
canceled before execution
canceled by user/admin
retry failed lines
manual retry
enqueue line_analysis.generate
worker claimed task
line analysis saved
transient LLM / network error
backoff elapsed
attempts exhausted / validation failed
parent job canceled
parent job canceled
manual retry
analysis_jobs
pending
queued
planning
running
finalizing
succeeded
partial
failed
canceling
canceled
analysis_tasks
retry_wait
task types in analysis_tasks
song_analysis_start
line_analysis_generate
song_analysis_summarize
song_analysis_assemble
song_analysis_validate
job created
enqueue song_analysis.start
song_analysis.start claimed
line tasks enqueued
all line tasks reached terminal state
result assembled and validated
result assembled with failed lines
assemble / validation fatal error
cancel requested
cancel before start
cancel during planning
queued/running tasks canceled
retry failed lines
manual retry
manual restart
task row created
available_at reached
worker claimed task
task output saved
transient error and attempts remain
backoff elapsed
attempts exhausted
deterministic validation failed
parent job canceled
parent job canceled
parent job canceled
worker acknowledged cancel
manual retry
manual restart
creates N line tasks
all line tasks terminal
song_analysis.start
Normalize lyrics
RuleBasedChunkPlanner
Create chunk_analysis.generate tasks
Worker executes chunk_analysis.generate
Call LLM
Parse JSON
Chunk JSON valid?
retry_wait with backoff
chunk task failed
Output range valid?
Save ChunkAnalysisOutput
chunk task succeeded
All chunk tasks terminal?
song_analysis.summarize
song_analysis.assemble
song_analysis.validate
No, attempts remain
No, attempts exhausted
Yes
No, attempts remain
No, attempts exhausted
Yes
No
Yes
analysis_jobs
pending
queued
planning
running
finalizing
succeeded
partial
failed
canceled
enqueue song_analysis.start
song_analysis.start claimed
chunk tasks enqueued
all chunk tasks terminal
all chunks valid
some chunks failed but result usable
fatal assemble / validate error
retry failed chunks requested
manual retry
retry_failed_chunks claimed and failed tasks requeued
POST /lyrics-analysis/jobs
Create AnalysisJob: pending
Create task: song_analysis.start
Job: queued
Execute song_analysis.start
Normalize lyrics into LyricLine[]
RuleBasedChunkPlanner creates ChunkPlan
Create N chunk_analysis.generate tasks
Job: running
Workers execute chunk_analysis.generate
Call LLM
Parse JSON
Validate chunk JSON + output range
Save ChunkAnalysisOutput
retry_wait
chunk task failed
All chunk tasks terminal?
Create task: song_analysis.assemble
Assemble final SongAnalysisResult
Create task: song_analysis.validate
Final validation
Job: succeeded
Job: partial
Job: failed
valid
invalid, attempts remain
attempts exhausted
No
Yes
complete valid
usable with failed chunks
fatal invalid