Character thinking

Active Claude

A task scheduler that uses Claude Agent SDK to execute development tasks in parallel. Workers claim tasks, run in isolated worktrees, and a reviewer validates completions.

🚧 Building Read the Story →

System Overview

How the pieces fit together

DATA SOURCEStasks.mdJira / GDocsConfluenceMeetingsSCHEDULERTaskDBParserUsage TrackerFile WatcherHeartbeatWorker LoopEXECUTORSCode WorkerClaude OpusResearch WorkerRead-onlyExtraction Workerwork_items.yamlReviewerClaude SonnetISOLATION.worktrees/task-001research-002wi-003 (shared)context-repo/MONITORINGAPI ServerFastAPI :8420DashboardReact :5173

Extraction Pipeline

NEW

From documents to actionable tasks

DataSourceJira, GDocsExtractionAI extracts itemsContext Repowork_items.yamlUser ReviewApprove / EditWork ItemsActionableStep 1Step 2Step 3Step 4Step 5
SKIP

Not actionable - too vague or needs discussion first

RESEARCH

Needs investigation - creates read-only task, outputs report.md

TASK

Ready for implementation - full access, produces PR

Task Lifecycle

Every task flows through this state machine

PROPOSEDPENDINGRUNNINGREVIEWINGPR READYDONERETRY (max 3×)FAILED
PROPOSEDAI generated, awaiting approval
PENDINGApproved, waiting for worker
RUNNINGWorker executing
REVIEWINGReviewer validating
PR READYReady for PR creation
DONECompleted successfully

Task Types

Three ways Claude can help

CODE
Opus

Full read/write access - implements features, fixes bugs

Output

PR-ready code changes

Tools
ReadEditWriteBashGlobGrep
RESEARCH
Opus

Read-only access - investigates codebase, understands architecture

Output

report.md with findings

Tools
ReadBashGlobGrep
EXTRACTION
Sonnet

Parses external sources - Jira, Google Docs, Confluence

Output

work_items.yaml

Tools
API callsYAML write

Key Components

Where the magic happens

scheduler/main.py

Entry point - orchestrates all loops

main_async()
worker_loop()
reviewer_loop()
scheduler/db.py

Async SQLite with task queue semantics

claim_task()
update_status()
save_work_items()
executors/coding/worker.py

Runs Claude Agent SDK for code tasks

run_task()
build_prompt()
broadcast_event()
executors/extraction/worker.py

Extracts work items from data sources

run_extraction_task()
build_work_items_yaml()
context/repo.py

Context repo for extraction worktrees

ensure_context_repo()
create_extraction_worktree()
api/routes/work_items.py

Work item triage API

POST /skip
POST /research
POST /task

Tech Stack

Built with

Backend

Python 3.12+Core runtime
Claude Agent SDKAI task execution
FastAPIREST API
aiosqliteAsync SQLite

Frontend

React 18UI framework
TypeScriptType safety
TanStack QueryServer state
Tailwind CSSStyling

Infrastructure

Git worktreesParallel isolation
gh CLIGitHub PRs
uvPython packages
pnpmNode packages