claude-task-master 0.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. claude_task_master-0.1.1/PKG-INFO +524 -0
  2. claude_task_master-0.1.1/README.md +484 -0
  3. claude_task_master-0.1.1/bin/claudetm +509 -0
  4. claude_task_master-0.1.1/pyproject.toml +181 -0
  5. claude_task_master-0.1.1/setup.cfg +4 -0
  6. claude_task_master-0.1.1/src/claude_task_master/__init__.py +7 -0
  7. claude_task_master-0.1.1/src/claude_task_master/bin/claudetm +509 -0
  8. claude_task_master-0.1.1/src/claude_task_master/cli.py +198 -0
  9. claude_task_master-0.1.1/src/claude_task_master/cli_commands/__init__.py +13 -0
  10. claude_task_master-0.1.1/src/claude_task_master/cli_commands/config.py +197 -0
  11. claude_task_master-0.1.1/src/claude_task_master/cli_commands/github.py +162 -0
  12. claude_task_master-0.1.1/src/claude_task_master/cli_commands/info.py +205 -0
  13. claude_task_master-0.1.1/src/claude_task_master/cli_commands/workflow.py +366 -0
  14. claude_task_master-0.1.1/src/claude_task_master/core/__init__.py +330 -0
  15. claude_task_master-0.1.1/src/claude_task_master/core/agent.py +295 -0
  16. claude_task_master-0.1.1/src/claude_task_master/core/agent_exceptions.py +191 -0
  17. claude_task_master-0.1.1/src/claude_task_master/core/agent_message.py +158 -0
  18. claude_task_master-0.1.1/src/claude_task_master/core/agent_models.py +194 -0
  19. claude_task_master-0.1.1/src/claude_task_master/core/agent_phases.py +327 -0
  20. claude_task_master-0.1.1/src/claude_task_master/core/agent_query.py +463 -0
  21. claude_task_master-0.1.1/src/claude_task_master/core/checkpoint.py +238 -0
  22. claude_task_master-0.1.1/src/claude_task_master/core/circuit_breaker.py +411 -0
  23. claude_task_master-0.1.1/src/claude_task_master/core/config.py +263 -0
  24. claude_task_master-0.1.1/src/claude_task_master/core/config_loader.py +537 -0
  25. claude_task_master-0.1.1/src/claude_task_master/core/console.py +126 -0
  26. claude_task_master-0.1.1/src/claude_task_master/core/context_accumulator.py +44 -0
  27. claude_task_master-0.1.1/src/claude_task_master/core/conversation.py +496 -0
  28. claude_task_master-0.1.1/src/claude_task_master/core/credentials.py +340 -0
  29. claude_task_master-0.1.1/src/claude_task_master/core/hooks.py +479 -0
  30. claude_task_master-0.1.1/src/claude_task_master/core/key_listener.py +189 -0
  31. claude_task_master-0.1.1/src/claude_task_master/core/logger.py +242 -0
  32. claude_task_master-0.1.1/src/claude_task_master/core/orchestrator.py +688 -0
  33. claude_task_master-0.1.1/src/claude_task_master/core/parallel.py +456 -0
  34. claude_task_master-0.1.1/src/claude_task_master/core/planner.py +46 -0
  35. claude_task_master-0.1.1/src/claude_task_master/core/pr_context.py +450 -0
  36. claude_task_master-0.1.1/src/claude_task_master/core/progress_tracker.py +363 -0
  37. claude_task_master-0.1.1/src/claude_task_master/core/prompts.py +52 -0
  38. claude_task_master-0.1.1/src/claude_task_master/core/prompts_base.py +80 -0
  39. claude_task_master-0.1.1/src/claude_task_master/core/prompts_planning.py +189 -0
  40. claude_task_master-0.1.1/src/claude_task_master/core/prompts_verification.py +169 -0
  41. claude_task_master-0.1.1/src/claude_task_master/core/prompts_working.py +281 -0
  42. claude_task_master-0.1.1/src/claude_task_master/core/rate_limit.py +140 -0
  43. claude_task_master-0.1.1/src/claude_task_master/core/shutdown.py +324 -0
  44. claude_task_master-0.1.1/src/claude_task_master/core/state.py +593 -0
  45. claude_task_master-0.1.1/src/claude_task_master/core/state_backup.py +158 -0
  46. claude_task_master-0.1.1/src/claude_task_master/core/state_exceptions.py +187 -0
  47. claude_task_master-0.1.1/src/claude_task_master/core/state_file_ops.py +148 -0
  48. claude_task_master-0.1.1/src/claude_task_master/core/state_pr.py +250 -0
  49. claude_task_master-0.1.1/src/claude_task_master/core/state_recovery.py +122 -0
  50. claude_task_master-0.1.1/src/claude_task_master/core/subagents.py +224 -0
  51. claude_task_master-0.1.1/src/claude_task_master/core/task_group.py +337 -0
  52. claude_task_master-0.1.1/src/claude_task_master/core/task_runner.py +498 -0
  53. claude_task_master-0.1.1/src/claude_task_master/core/workflow_stages.py +503 -0
  54. claude_task_master-0.1.1/src/claude_task_master/github/__init__.py +32 -0
  55. claude_task_master-0.1.1/src/claude_task_master/github/client.py +245 -0
  56. claude_task_master-0.1.1/src/claude_task_master/github/client_ci.py +308 -0
  57. claude_task_master-0.1.1/src/claude_task_master/github/client_pr.py +386 -0
  58. claude_task_master-0.1.1/src/claude_task_master/github/exceptions.py +40 -0
  59. claude_task_master-0.1.1/src/claude_task_master/github/pr_cycle.py +132 -0
  60. claude_task_master-0.1.1/src/claude_task_master/mcp/__init__.py +50 -0
  61. claude_task_master-0.1.1/src/claude_task_master/mcp/server.py +345 -0
  62. claude_task_master-0.1.1/src/claude_task_master/mcp/tools.py +559 -0
  63. claude_task_master-0.1.1/src/claude_task_master/utils/__init__.py +0 -0
  64. claude_task_master-0.1.1/src/claude_task_master/utils/debug_claude_md.py +175 -0
  65. claude_task_master-0.1.1/src/claude_task_master/utils/doctor.py +80 -0
  66. claude_task_master-0.1.1/src/claude_task_master/wrapper.py +167 -0
  67. claude_task_master-0.1.1/src/claude_task_master.egg-info/PKG-INFO +524 -0
  68. claude_task_master-0.1.1/src/claude_task_master.egg-info/SOURCES.txt +71 -0
  69. claude_task_master-0.1.1/src/claude_task_master.egg-info/dependency_links.txt +1 -0
  70. claude_task_master-0.1.1/src/claude_task_master.egg-info/entry_points.txt +4 -0
  71. claude_task_master-0.1.1/src/claude_task_master.egg-info/requires.txt +19 -0
  72. claude_task_master-0.1.1/src/claude_task_master.egg-info/top_level.txt +1 -0
  73. claude_task_master-0.1.1/tests/test_wrapper.py +144 -0
@@ -0,0 +1,524 @@
1
+ Metadata-Version: 2.4
2
+ Name: claude-task-master
3
+ Version: 0.1.1
4
+ Summary: Autonomous task orchestration system that keeps Claude working until a goal is achieved
5
+ Author: Claude Task Master Team
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/developerz-ai/claude-task-master
8
+ Project-URL: Documentation, https://github.com/developerz-ai/claude-task-master#readme
9
+ Project-URL: Repository, https://github.com/developerz-ai/claude-task-master
10
+ Project-URL: Issues, https://github.com/developerz-ai/claude-task-master/issues
11
+ Project-URL: Changelog, https://github.com/developerz-ai/claude-task-master/blob/main/CHANGELOG.md
12
+ Keywords: claude,agent,autonomous,task,orchestration,ai,automation
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Operating System :: OS Independent
20
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
22
+ Requires-Python: >=3.10
23
+ Description-Content-Type: text/markdown
24
+ Requires-Dist: claude-agent-sdk>=0.1.0
25
+ Requires-Dist: typer>=0.12.0
26
+ Requires-Dist: pydantic>=2.0.0
27
+ Requires-Dist: rich>=13.0.0
28
+ Requires-Dist: httpx>=0.27.0
29
+ Provides-Extra: mcp
30
+ Requires-Dist: mcp>=1.0.0; extra == "mcp"
31
+ Provides-Extra: dev
32
+ Requires-Dist: pytest>=8.0.0; extra == "dev"
33
+ Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
34
+ Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
35
+ Requires-Dist: pytest-timeout>=2.4.0; extra == "dev"
36
+ Requires-Dist: ruff>=0.3.0; extra == "dev"
37
+ Requires-Dist: mypy>=1.9.0; extra == "dev"
38
+ Provides-Extra: all
39
+ Requires-Dist: claude-task-master[dev,mcp]; extra == "all"
40
+
41
+ # Claude Task Master
42
+
43
+ [![CI](https://github.com/developerz-ai/claude-task-master/actions/workflows/ci.yml/badge.svg)](https://github.com/developerz-ai/claude-task-master/actions/workflows/ci.yml)
44
+ [![codecov](https://codecov.io/gh/developerz-ai/claude-task-master/graph/badge.svg)](https://codecov.io/gh/developerz-ai/claude-task-master)
45
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
46
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
47
+ [![PyPI version](https://badge.fury.io/py/claude-task-master.svg)](https://badge.fury.io/py/claude-task-master)
48
+
49
+ Autonomous task orchestration system that keeps Claude working until a goal is achieved.
50
+
51
+ ## Quick Start
52
+
53
+ ```bash
54
+ # Install from PyPI
55
+ pip install claude-task-master
56
+
57
+ # Or with uv (recommended)
58
+ uv tool install claude-task-master
59
+
60
+ # Verify setup
61
+ claudetm doctor
62
+
63
+ # Run a task
64
+ cd your-project
65
+ claudetm start "Add user authentication with tests"
66
+ ```
67
+
68
+ ## Overview
69
+
70
+ Claude Task Master uses the Claude Agent SDK to autonomously work on complex tasks. Give it a goal, and it will:
71
+
72
+ 1. **Plan** - Analyze codebase and create a task list organized by PRs
73
+ 2. **Execute** - Work through each task, committing and pushing changes
74
+ 3. **Create PRs** - All work is pushed and submitted as pull requests
75
+ 4. **Handle CI** - Wait for checks, fix failures, address review comments
76
+ 5. **Merge** - Auto-merge when approved (configurable)
77
+ 6. **Verify** - Confirm all success criteria are met
78
+
79
+ **Core Philosophy**: Claude is smart enough to do the work AND verify it. Task Master keeps the loop going and persists state between sessions.
80
+
81
+ ## Workflow
82
+
83
+ ```
84
+ ┌─────────────────────────────────────────────────────────────────┐
85
+ │ PLANNING │
86
+ │ Read codebase → Create task list → Define success criteria │
87
+ └─────────────────────────────────────────────────────────────────┘
88
+
89
+ ┌─────────────────────────────────────────────────────────────────┐
90
+ │ WORKING (per task) │
91
+ │ Make changes → Run tests → Commit → Push → Create PR │
92
+ └─────────────────────────────────────────────────────────────────┘
93
+
94
+ ┌─────────────────────────────────────────────────────────────────┐
95
+ │ PR LIFECYCLE │
96
+ │ Wait for CI → Fix failures → Address reviews → Merge │
97
+ └─────────────────────────────────────────────────────────────────┘
98
+
99
+ ┌─────────────────────────────────────────────────────────────────┐
100
+ │ VERIFICATION │
101
+ │ Run tests → Check lint → Verify criteria → Done │
102
+ └─────────────────────────────────────────────────────────────────┘
103
+ ```
104
+
105
+ ### Work Completion Requirements
106
+
107
+ Every task must be:
108
+ - **Committed** with a descriptive message
109
+ - **Pushed** to remote (`git push -u origin HEAD`)
110
+ - **In a PR** (`gh pr create ...`)
111
+
112
+ Work is NOT complete until it's pushed and in a pull request.
113
+
114
+ ## Installation
115
+
116
+ ### Prerequisites
117
+
118
+ 1. **Python 3.10+** - [Install Python](https://www.python.org/downloads/)
119
+ 2. **Claude CLI** - [Install Claude](https://github.com/anthropics/anthropic-sdk-python) and run `claude` to authenticate
120
+ 3. **GitHub CLI** - [Install gh](https://cli.github.com/) and run `gh auth login`
121
+
122
+ ### Install Claude Task Master
123
+
124
+ **Option 1: Using uv (recommended)**
125
+
126
+ ```bash
127
+ # Install uv if you haven't already
128
+ curl https://astral.sh/uv/install.sh | sh
129
+
130
+ # Install Claude Task Master
131
+ uv sync
132
+
133
+ # Verify installation
134
+ uv run claudetm doctor
135
+ ```
136
+
137
+ **Option 2: Using pip**
138
+
139
+ ```bash
140
+ # Install from PyPI
141
+ pip install claude-task-master
142
+
143
+ # Verify installation
144
+ claudetm doctor
145
+ ```
146
+
147
+ **Option 3: Development installation**
148
+
149
+ ```bash
150
+ # Clone the repository
151
+ git clone https://github.com/developerz-ai/claude-task-master
152
+ cd claude-task-master
153
+
154
+ # Install with development dependencies
155
+ pip install -e ".[dev]"
156
+
157
+ # Run tests
158
+ pytest
159
+ ```
160
+
161
+ ### Initial Setup
162
+
163
+ Run the doctor command to verify everything is configured:
164
+
165
+ ```bash
166
+ claudetm doctor
167
+ ```
168
+
169
+ This checks for:
170
+ - ✓ Claude CLI credentials at `~/.claude/.credentials.json`
171
+ - ✓ GitHub CLI authentication
172
+ - ✓ Git configuration
173
+ - ✓ Python version compatibility
174
+
175
+ ## Configuration
176
+
177
+ Claude Task Master uses a config file to override environment variables. This is useful for:
178
+ - Using alternative API providers (OpenRouter, etc.)
179
+ - Customizing model names
180
+ - Setting project-specific settings
181
+
182
+ ### Create Config File
183
+
184
+ ```bash
185
+ # Initialize default config
186
+ claudetm --init-config
187
+
188
+ # View current config
189
+ claudetm --show-config
190
+ ```
191
+
192
+ This creates `.claude-task-master/config.json`:
193
+
194
+ ```json
195
+ {
196
+ "version": "1.0",
197
+ "api": {
198
+ "anthropic_api_key": null,
199
+ "anthropic_base_url": "https://api.anthropic.com",
200
+ "openrouter_api_key": null,
201
+ "openrouter_base_url": "https://openrouter.ai/api/v1"
202
+ },
203
+ "models": {
204
+ "sonnet": "claude-sonnet-4-5-20250929",
205
+ "opus": "claude-opus-4-5-20251101",
206
+ "haiku": "claude-haiku-4-5-20251001"
207
+ },
208
+ "git": {
209
+ "target_branch": "main",
210
+ "auto_push": true
211
+ }
212
+ }
213
+ ```
214
+
215
+ ### Environment Variables
216
+
217
+ The config file sets these environment variables before Python starts:
218
+
219
+ | Config Key | Environment Variable | Description |
220
+ |------------|---------------------|-------------|
221
+ | `api.anthropic_api_key` | `ANTHROPIC_API_KEY` | Anthropic API key |
222
+ | `api.anthropic_base_url` | `ANTHROPIC_BASE_URL` | API base URL |
223
+ | `api.openrouter_api_key` | `OPENROUTER_API_KEY` | OpenRouter API key |
224
+ | `api.openrouter_base_url` | `OPENROUTER_BASE_URL` | OpenRouter base URL |
225
+ | `models.sonnet` | `CLAUDETM_MODEL_SONNET` | Model for sonnet tier |
226
+ | `models.opus` | `CLAUDETM_MODEL_OPUS` | Model for opus tier |
227
+ | `models.haiku` | `CLAUDETM_MODEL_HAIKU` | Model for haiku tier |
228
+ | `git.target_branch` | `CLAUDETM_TARGET_BRANCH` | Target branch for PRs |
229
+
230
+ ### Using OpenRouter
231
+
232
+ To use OpenRouter instead of direct Anthropic API:
233
+
234
+ ```json
235
+ {
236
+ "api": {
237
+ "openrouter_api_key": "sk-or-v1-xxx",
238
+ "openrouter_base_url": "https://openrouter.ai/api/v1"
239
+ },
240
+ "models": {
241
+ "sonnet": "anthropic/claude-sonnet-4",
242
+ "opus": "anthropic/claude-opus-4",
243
+ "haiku": "anthropic/claude-haiku"
244
+ }
245
+ }
246
+ ```
247
+
248
+ ### Debug Config Loading
249
+
250
+ ```bash
251
+ # Enable debug mode to see config loading
252
+ CLAUDETM_DEBUG=1 claudetm status
253
+ ```
254
+
255
+ ## Usage
256
+
257
+ ### CLI Commands
258
+
259
+ | Command | Description |
260
+ |---------|-------------|
261
+ | `claudetm start "goal"` | Start a new task |
262
+ | `claudetm resume` | Resume a paused task |
263
+ | `claudetm status` | Show current status |
264
+ | `claudetm plan` | View task list |
265
+ | `claudetm progress` | View progress summary |
266
+ | `claudetm context` | View accumulated learnings |
267
+ | `claudetm logs` | View session logs |
268
+ | `claudetm pr` | Show PR status and CI checks |
269
+ | `claudetm comments` | Show review comments |
270
+ | `claudetm clean` | Clean up task state |
271
+ | `claudetm doctor` | Verify system setup |
272
+
273
+ ### Start Options
274
+
275
+ ```bash
276
+ claudetm start "Your goal here" [OPTIONS]
277
+ ```
278
+
279
+ | Option | Description | Default |
280
+ |--------|-------------|---------|
281
+ | `--model` | Model to use (sonnet, opus, haiku) | sonnet |
282
+ | `--auto-merge/--no-auto-merge` | Auto-merge PRs when ready | True |
283
+ | `--max-sessions` | Limit number of sessions | unlimited |
284
+ | `--pause-on-pr` | Pause after creating PR | False |
285
+
286
+ ### Common Workflows
287
+
288
+ ```bash
289
+ # Simple task with auto-merge
290
+ claudetm start "Add factorial function to utils.py with tests"
291
+
292
+ # Complex task with manual review
293
+ claudetm start "Refactor auth system" --model opus --no-auto-merge
294
+
295
+ # Limited sessions to prevent runaway
296
+ claudetm start "Fix bug in parser" --max-sessions 5
297
+
298
+ # Monitor progress
299
+ watch -n 5 'claudetm status'
300
+ ```
301
+
302
+ ## Examples & Use Cases
303
+
304
+ Check the [examples/](./examples/) directory for detailed walkthroughs:
305
+
306
+ ### Quick Examples
307
+
308
+ ```bash
309
+ # Add a simple function
310
+ claudetm start "Add a factorial function to utils.py with tests"
311
+
312
+ # Fix a bug
313
+ claudetm start "Fix authentication timeout in login.py" --no-auto-merge
314
+
315
+ # Feature development
316
+ claudetm start "Add dark mode toggle to settings" --model opus
317
+
318
+ # Refactoring
319
+ claudetm start "Refactor API client to use async/await" --max-sessions 5
320
+
321
+ # Documentation
322
+ claudetm start "Add API documentation and examples"
323
+ ```
324
+
325
+ ### Available Guides
326
+
327
+ 1. **[Basic Usage](./examples/01-basic-usage.md)** - Simple tasks and fundamentals
328
+ 2. **[Feature Development](./examples/02-feature-development.md)** - Building complete features
329
+ 3. **[Bug Fixing](./examples/03-bug-fixing.md)** - Debugging and fixing issues
330
+ 4. **[Code Refactoring](./examples/04-refactoring.md)** - Improving code structure
331
+ 5. **[Testing](./examples/05-testing.md)** - Adding test coverage
332
+ 6. **[Documentation](./examples/06-documentation.md)** - Documentation and examples
333
+ 7. **[CI/CD Integration](./examples/07-cicd.md)** - GitHub Actions workflows
334
+ 8. **[Advanced Workflows](./examples/08-advanced-workflows.md)** - Complex scenarios
335
+
336
+ ## Troubleshooting
337
+
338
+ ### Credentials & Setup
339
+
340
+ #### "Claude CLI credentials not found"
341
+ ```bash
342
+ # Run the Claude CLI to authenticate
343
+ claude
344
+
345
+ # Verify credentials were saved
346
+ ls -la ~/.claude/.credentials.json
347
+
348
+ # Run doctor to check setup
349
+ claudetm doctor
350
+ ```
351
+
352
+ #### "GitHub CLI not authenticated"
353
+ ```bash
354
+ # Authenticate with GitHub
355
+ gh auth login
356
+
357
+ # Verify authentication
358
+ gh auth status
359
+ ```
360
+
361
+ ### Common Issues
362
+
363
+ #### Task appears stuck or not progressing
364
+
365
+ ```bash
366
+ # Check current status
367
+ claudetm status
368
+
369
+ # View detailed logs
370
+ claudetm logs -n 100
371
+
372
+ # If truly stuck, you can interrupt and resume
373
+ # Press Ctrl+C, then:
374
+ claudetm resume
375
+ ```
376
+
377
+ #### PR creation fails
378
+
379
+ ```bash
380
+ # Verify you're in a git repository
381
+ git status
382
+
383
+ # Verify remote is set up
384
+ git remote -v
385
+
386
+ # Check if a PR already exists
387
+ gh pr list
388
+
389
+ # Run doctor to diagnose
390
+ claudetm doctor
391
+ ```
392
+
393
+ #### Tests or linting failures
394
+
395
+ The system will handle failures and retry. To debug:
396
+
397
+ ```bash
398
+ # Check the latest logs
399
+ claudetm logs
400
+
401
+ # View progress summary
402
+ claudetm progress
403
+
404
+ # See what Claude learned from errors
405
+ claudetm context
406
+ ```
407
+
408
+ #### Clean up and restart
409
+
410
+ ```bash
411
+ # Safe cleanup - removes state but keeps logs
412
+ claudetm clean
413
+
414
+ # Force cleanup without confirmation
415
+ claudetm clean -f
416
+
417
+ # Start fresh task
418
+ claudetm start "Your new goal"
419
+ ```
420
+
421
+ ### Performance Tips
422
+
423
+ 1. **Use the right model**:
424
+ - `opus` for complex tasks (default)
425
+ - `sonnet` for balanced speed/quality
426
+ - `haiku` for simple tasks
427
+
428
+ 2. **Limit sessions to prevent infinite loops**:
429
+ ```bash
430
+ claudetm start "Task" --max-sessions 10
431
+ ```
432
+
433
+ 3. **Manual review for critical changes**:
434
+ ```bash
435
+ claudetm start "Task" --no-auto-merge
436
+ ```
437
+
438
+ 4. **Monitor in another terminal**:
439
+ ```bash
440
+ watch -n 5 'claudetm status'
441
+ ```
442
+
443
+ ### Debug Mode
444
+
445
+ View detailed execution information:
446
+
447
+ ```bash
448
+ # Show recent log entries
449
+ claudetm logs -n 200
450
+
451
+ # View current plan and progress
452
+ claudetm plan
453
+ claudetm progress
454
+
455
+ # See accumulated context from previous sessions
456
+ claudetm context
457
+ ```
458
+
459
+ ## Architecture
460
+
461
+ The system follows SOLID principles with strict Single Responsibility:
462
+
463
+ ### Core Components
464
+
465
+ | Component | Responsibility |
466
+ |-----------|----------------|
467
+ | **Credential Manager** | OAuth credential loading from `~/.claude/.credentials.json` |
468
+ | **State Manager** | Persistence to `.claude-task-master/` directory |
469
+ | **Agent Wrapper** | Claude Agent SDK interactions with streaming output |
470
+ | **Planner** | Planning phase with read-only tools (Read, Glob, Grep, Bash) |
471
+ | **Orchestrator** | Main execution loop and workflow stage management |
472
+ | **GitHub Client** | PR creation, CI monitoring, comment handling |
473
+ | **PR Cycle Manager** | Full PR lifecycle (create → CI → reviews → merge) |
474
+ | **Context Accumulator** | Builds learnings across sessions |
475
+
476
+ ### Workflow Stages
477
+
478
+ ```
479
+ working → pr_created → waiting_ci → ci_failed → waiting_reviews → addressing_reviews → ready_to_merge → merged
480
+ ```
481
+
482
+ Each stage has specific handlers that determine when to transition to the next stage.
483
+
484
+ ## State Directory
485
+
486
+ ```
487
+ .claude-task-master/
488
+ ├── goal.txt # Original user goal
489
+ ├── criteria.txt # Success criteria
490
+ ├── plan.md # Task list with checkboxes
491
+ ├── state.json # Machine-readable state
492
+ ├── progress.md # Progress summary
493
+ ├── context.md # Accumulated learnings
494
+ └── logs/
495
+ └── run-{timestamp}.txt # Full log (kept on success)
496
+ ```
497
+
498
+ ## Exit Codes
499
+
500
+ - **0 (Success)**: All tasks completed, criteria met. State cleaned up, logs preserved.
501
+ - **1 (Blocked)**: Task cannot proceed, needs human intervention or error occurred.
502
+ - **2 (Interrupted)**: User pressed Ctrl+C, state preserved for resume.
503
+
504
+ ## Development
505
+
506
+ ### Testing
507
+
508
+ ```bash
509
+ pytest # Run all tests
510
+ pytest -v # Verbose output
511
+ pytest -k "test_name" # Run specific tests
512
+ ```
513
+
514
+ ### Linting & Formatting
515
+
516
+ ```bash
517
+ ruff check . # Lint
518
+ ruff format . # Format
519
+ mypy . # Type check
520
+ ```
521
+
522
+ ## License
523
+
524
+ MIT