name: earnings-task-setup description: Set up earnings tasks for a ticker with CSV persistence and Claude task tracking context: fork allowed-tools:
- TaskCreate
- TaskList
- TaskGet
- TaskUpdate
- Read
- Write
- Bash
- Glob
Earnings Task Setup
Sets up tasks for earnings analysis workflow with:
- CSV persistence (survives across sessions)
- Claude task tracking (within-session dependencies)
Arguments
Expects: TICKER QUARTER ACCESSION
Example: AAPL Q1-2024 0000320193-24-000001
If no arguments provided, will prompt for them.
Arguments received: $ARGUMENTS
Workflow Pattern
Wave 1 (parallel):
├── {ticker}-{quarter}-news-impact
└── {ticker}-{quarter}-guidance
Wave 2 (blocked by Wave 1):
└── {ticker}-{quarter}-prediction
Wave 3 (blocked by Wave 2):
└── {ticker}-{quarter}-attribution
Instructions
Step 1: Parse Arguments
Extract ticker, quarter, and accession from: $ARGUMENTS
If arguments are missing or empty, use these defaults for testing:
- Ticker: TEST
- Quarter: Q1-2024
- Accession: test-accession-001
Step 2: Check CSV Tracker
Read earnings-analysis/task-tracker.csv to see current status.
If row doesn't exist for this ticker/quarter/accession, add it:
{ticker},{quarter},{accession},pending,pending,pending,pending,{ISO_TIMESTAMP}
If row exists, check which tasks are still pending.
Step 3: Create Claude Tasks
For each PENDING task (not already completed in CSV), create a Claude task:
Subject: {TICKER}-{QUARTER}-{task_name}
Description: {task_description}
ActiveForm: {active_form}
Task descriptions:
- news-impact: "Analyze news sentiment and events around {TICKER} {QUARTER} earnings. Accession: {ACCESSION}"
- guidance: "Update cumulative guidance inventory for {TICKER} with {QUARTER} data. Accession: {ACCESSION}"
- prediction: "Predict {TICKER} stock direction at T=0 using PIT data. Accession: {ACCESSION}"
- attribution: "Analyze why {TICKER} moved after {QUARTER} earnings (T+1). Accession: {ACCESSION}"
Step 4: Set Up Dependencies
Use TaskUpdate with addBlockedBy:
- prediction blocked by news-impact AND guidance
- attribution blocked by prediction
Step 5: Output Summary
Write to earnings-analysis/test-outputs/earnings-task-setup-{TICKER}-{QUARTER}.txt:
EARNINGS TASK SETUP
==================
Ticker: {TICKER}
Quarter: {QUARTER}
Accession: {ACCESSION}
Timestamp: {ISO_TIMESTAMP}
CSV STATUS (before):
- news_impact: {status}
- guidance: {status}
- prediction: {status}
- attribution: {status}
CLAUDE TASKS CREATED:
- #{id} {TICKER}-{QUARTER}-news-impact [no blockers]
- #{id} {TICKER}-{QUARTER}-guidance [no blockers]
- #{id} {TICKER}-{QUARTER}-prediction [blocked by #{news_id}, #{guidance_id}]
- #{id} {TICKER}-{QUARTER}-attribution [blocked by #{prediction_id}]
NEXT STEPS:
1. Execute unblocked tasks (news-impact, guidance can run parallel)
2. After each task completes, run:
python -c "from scripts.task_tracker import TaskTracker; TaskTracker().update_status('{TICKER}', '{QUARTER}', '{ACCESSION}', 'TASK_NAME', 'completed')"
3. Mark Claude task as completed with TaskUpdate
PARALLEL TASKS AVAILABLE:
{list tasks with no blockers}
Step 6: Return Summary
Return a brief summary of:
- How many tasks were created
- Which tasks are ready to execute (no blockers)
- Command to check status:
python scripts/task_tracker.py status