claude-task-master 0.1.4__tar.gz → 0.1.6__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.
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/PKG-INFO +223 -4
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/README.md +220 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/pyproject.toml +17 -7
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/__init__.py +1 -1
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/api/models.py +309 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/api/routes.py +229 -0
- claude_task_master-0.1.6/src/claude_task_master/api/routes_repo.py +317 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/bin/claudetm +1 -1
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/cli.py +3 -1
- claude_task_master-0.1.6/src/claude_task_master/cli_commands/mailbox.py +295 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/cli_commands/workflow.py +37 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/__init__.py +5 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/agent_phases.py +1 -1
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/config.py +3 -3
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/orchestrator.py +432 -9
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/parallel.py +4 -4
- claude_task_master-0.1.6/src/claude_task_master/core/plan_updater.py +199 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/pr_context.py +176 -62
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/prompts.py +4 -0
- claude_task_master-0.1.6/src/claude_task_master/core/prompts_plan_update.py +148 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/prompts_planning.py +6 -2
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/state.py +5 -1
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/task_runner.py +73 -34
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/workflow_stages.py +229 -22
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/github/client_pr.py +86 -20
- claude_task_master-0.1.6/src/claude_task_master/mailbox/__init__.py +23 -0
- claude_task_master-0.1.6/src/claude_task_master/mailbox/merger.py +163 -0
- claude_task_master-0.1.6/src/claude_task_master/mailbox/models.py +95 -0
- claude_task_master-0.1.6/src/claude_task_master/mailbox/storage.py +209 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/mcp/server.py +183 -0
- claude_task_master-0.1.6/src/claude_task_master/mcp/tools.py +1761 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/webhooks/events.py +356 -2
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master.egg-info/PKG-INFO +223 -4
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master.egg-info/SOURCES.txt +8 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master.egg-info/requires.txt +1 -0
- claude_task_master-0.1.4/src/claude_task_master/mcp/tools.py +0 -840
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/setup.cfg +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/api/__init__.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/api/routes_config.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/api/routes_control.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/api/routes_webhooks.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/api/server.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/auth/__init__.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/auth/middleware.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/auth/password.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/cli_commands/__init__.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/cli_commands/ci_helpers.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/cli_commands/config.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/cli_commands/control.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/cli_commands/fix_pr.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/cli_commands/fix_session.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/cli_commands/github.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/cli_commands/info.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/agent.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/agent_exceptions.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/agent_message.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/agent_models.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/agent_query.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/checkpoint.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/circuit_breaker.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/config_loader.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/console.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/context_accumulator.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/control.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/conversation.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/credentials.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/hooks.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/key_listener.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/logger.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/planner.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/progress_tracker.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/prompts_base.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/prompts_verification.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/prompts_working.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/rate_limit.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/shutdown.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/state_backup.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/state_exceptions.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/state_file_ops.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/state_pr.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/state_recovery.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/subagents.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/core/task_group.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/github/__init__.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/github/client.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/github/client_ci.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/github/exceptions.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/github/pr_cycle.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/mcp/__init__.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/mcp/auth.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/server.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/utils/__init__.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/utils/debug_claude_md.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/utils/doctor.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/webhooks/__init__.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/webhooks/client.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/webhooks/config.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master/wrapper.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master.egg-info/dependency_links.txt +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master.egg-info/entry_points.txt +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/src/claude_task_master.egg-info/top_level.txt +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/tests/test_server.py +0 -0
- {claude_task_master-0.1.4 → claude_task_master-0.1.6}/tests/test_wrapper.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-task-master
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.6
|
|
4
4
|
Summary: Autonomous task orchestration system that keeps Claude working until a goal is achieved
|
|
5
5
|
Author: Claude Task Master Team
|
|
6
6
|
License-Expression: MIT
|
|
@@ -13,13 +13,11 @@ Keywords: claude,agent,autonomous,task,orchestration,ai,automation
|
|
|
13
13
|
Classifier: Development Status :: 3 - Alpha
|
|
14
14
|
Classifier: Intended Audience :: Developers
|
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
18
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
19
17
|
Classifier: Operating System :: OS Independent
|
|
20
18
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
19
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
22
|
-
Requires-Python: >=3.
|
|
20
|
+
Requires-Python: >=3.12
|
|
23
21
|
Description-Content-Type: text/markdown
|
|
24
22
|
Requires-Dist: claude-agent-sdk>=0.1.0
|
|
25
23
|
Requires-Dist: typer>=0.12.0
|
|
@@ -39,6 +37,7 @@ Requires-Dist: pytest>=8.0.0; extra == "dev"
|
|
|
39
37
|
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
|
|
40
38
|
Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
|
|
41
39
|
Requires-Dist: pytest-timeout>=2.4.0; extra == "dev"
|
|
40
|
+
Requires-Dist: hypothesis>=6.100.0; extra == "dev"
|
|
42
41
|
Requires-Dist: ruff>=0.3.0; extra == "dev"
|
|
43
42
|
Requires-Dist: mypy>=1.9.0; extra == "dev"
|
|
44
43
|
Provides-Extra: all
|
|
@@ -159,9 +158,19 @@ Claude Task Master uses the Claude Agent SDK to autonomously work on complex tas
|
|
|
159
158
|
4. **Handle CI** - Wait for checks, fix failures, address review comments
|
|
160
159
|
5. **Merge** - Auto-merge when approved (configurable)
|
|
161
160
|
6. **Verify** - Confirm all success criteria are met
|
|
161
|
+
7. **Adapt** - Accept dynamic plan updates via mailbox while working
|
|
162
162
|
|
|
163
163
|
**Core Philosophy**: Claude is smart enough to do the work AND verify it. Task Master keeps the loop going and persists state between sessions.
|
|
164
164
|
|
|
165
|
+
### Key Features
|
|
166
|
+
|
|
167
|
+
- **Autonomous Execution** - Runs until goal is achieved or needs human input
|
|
168
|
+
- **PR-Based Workflow** - All work flows through pull requests for review
|
|
169
|
+
- **CI Integration** - Handles CI failures and review comments together
|
|
170
|
+
- **Mailbox System** - Receive dynamic plan updates while working (via REST API, MCP, or CLI)
|
|
171
|
+
- **Multi-Instance Coordination** - Multiple instances can communicate via mailbox
|
|
172
|
+
- **State Persistence** - Survives interruptions, resumes where it left off
|
|
173
|
+
|
|
165
174
|
## Workflow
|
|
166
175
|
|
|
167
176
|
```
|
|
@@ -346,6 +355,7 @@ Complete documentation for all features and deployment options:
|
|
|
346
355
|
| **[Authentication](./docs/authentication.md)** | Password-based authentication for REST API, MCP server, and webhooks |
|
|
347
356
|
| **[REST API Reference](./docs/api-reference.md)** | Complete REST API endpoint documentation with examples |
|
|
348
357
|
| **[Webhooks](./docs/webhooks.md)** | Webhook events, payload formats, HMAC signature verification, and integration examples |
|
|
358
|
+
| **[Mailbox System](./docs/mailbox.md)** | Inter-instance communication, dynamic plan updates, and multi-instance coordination |
|
|
349
359
|
|
|
350
360
|
## Usage
|
|
351
361
|
|
|
@@ -355,6 +365,7 @@ Complete documentation for all features and deployment options:
|
|
|
355
365
|
|---------|-------------|
|
|
356
366
|
| `claudetm start "goal"` | Start a new task |
|
|
357
367
|
| `claudetm resume` | Resume a paused task |
|
|
368
|
+
| `claudetm resume "message"` | Update plan with message, then resume |
|
|
358
369
|
| `claudetm status` | Show current status |
|
|
359
370
|
| `claudetm plan` | View task list |
|
|
360
371
|
| `claudetm progress` | View progress summary |
|
|
@@ -364,6 +375,9 @@ Complete documentation for all features and deployment options:
|
|
|
364
375
|
| `claudetm comments` | Show review comments |
|
|
365
376
|
| `claudetm clean` | Clean up task state |
|
|
366
377
|
| `claudetm doctor` | Verify system setup |
|
|
378
|
+
| `claudetm mailbox` | Show mailbox status |
|
|
379
|
+
| `claudetm mailbox send "msg"` | Send message to mailbox |
|
|
380
|
+
| `claudetm mailbox clear` | Clear pending messages |
|
|
367
381
|
|
|
368
382
|
### Start Options
|
|
369
383
|
|
|
@@ -392,6 +406,14 @@ claudetm start "Fix bug in parser" --max-sessions 5
|
|
|
392
406
|
|
|
393
407
|
# Monitor progress
|
|
394
408
|
watch -n 5 'claudetm status'
|
|
409
|
+
|
|
410
|
+
# Resume with a change request (updates plan first)
|
|
411
|
+
claudetm resume "Also add input validation to the forms"
|
|
412
|
+
|
|
413
|
+
# Send message to mailbox via REST API
|
|
414
|
+
curl -X POST http://localhost:8000/mailbox/send \
|
|
415
|
+
-H "Content-Type: application/json" \
|
|
416
|
+
-d '{"content": "Prioritize security fixes", "priority": 2}'
|
|
395
417
|
```
|
|
396
418
|
|
|
397
419
|
## Examples & Use Cases
|
|
@@ -428,6 +450,202 @@ claudetm start "Add API documentation and examples"
|
|
|
428
450
|
7. **[CI/CD Integration](./examples/07-cicd.md)** - GitHub Actions workflows
|
|
429
451
|
8. **[Advanced Workflows](./examples/08-advanced-workflows.md)** - Complex scenarios
|
|
430
452
|
|
|
453
|
+
## AI Developer Workflow
|
|
454
|
+
|
|
455
|
+
Claude Task Master includes built-in support for repository cloning and setup, enabling an AI-driven development environment. This is particularly useful for:
|
|
456
|
+
|
|
457
|
+
- **AI Server Deployments** - Deploy Claude Task Master to servers and have it autonomously clone and setup projects
|
|
458
|
+
- **Development Environment Setup** - Automatically configure repositories for local development
|
|
459
|
+
- **Multi-Project Coordination** - Manage multiple projects simultaneously, each in isolated directories
|
|
460
|
+
- **Continuous AI Development** - Receive work requests, setup projects, implement tasks, all autonomously
|
|
461
|
+
|
|
462
|
+
### Repo Setup Workflow
|
|
463
|
+
|
|
464
|
+
The repo setup workflow consists of three phases:
|
|
465
|
+
|
|
466
|
+
1. **Clone** - Clone a git repository to `~/workspace/claude-task-master/{project-name}`
|
|
467
|
+
2. **Setup** - Automatically install dependencies, create virtual environments, run setup scripts
|
|
468
|
+
3. **Plan or Work** - Either analyze the project and create a plan, or immediately start working on tasks
|
|
469
|
+
|
|
470
|
+
### Clone a Repository
|
|
471
|
+
|
|
472
|
+
**Via REST API:**
|
|
473
|
+
```bash
|
|
474
|
+
curl -X POST http://localhost:8000/repo/clone \
|
|
475
|
+
-H "Content-Type: application/json" \
|
|
476
|
+
-d '{
|
|
477
|
+
"repo_url": "https://github.com/example/my-project.git",
|
|
478
|
+
"project_name": "my-project"
|
|
479
|
+
}'
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
**Via MCP Tools (IDE Integration):**
|
|
483
|
+
```
|
|
484
|
+
Claude: Clone the repository https://github.com/example/my-project.git
|
|
485
|
+
→ Uses clone_repo tool to clone to ~/workspace/claude-task-master/my-project
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
### Setup a Cloned Repository
|
|
489
|
+
|
|
490
|
+
After cloning, setup installs dependencies and prepares the project for development:
|
|
491
|
+
|
|
492
|
+
**Via REST API:**
|
|
493
|
+
```bash
|
|
494
|
+
curl -X POST http://localhost:8000/repo/setup \
|
|
495
|
+
-H "Content-Type: application/json" \
|
|
496
|
+
-d '{
|
|
497
|
+
"project_name": "my-project"
|
|
498
|
+
}'
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
**Via MCP Tools:**
|
|
502
|
+
```
|
|
503
|
+
Claude: Set up the project my-project for development
|
|
504
|
+
→ Uses setup_repo tool to configure and prepare the repository
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
The setup phase:
|
|
508
|
+
- Detects project type (Python, Node.js, Ruby, etc.)
|
|
509
|
+
- Installs package manager if needed (uv, npm, pip, bundler, etc.)
|
|
510
|
+
- Creates virtual environments (venv, node_modules, etc.)
|
|
511
|
+
- Runs setup scripts if present (setup.sh, Makefile, scripts/setup-hooks.sh, etc.)
|
|
512
|
+
- Installs dependencies from lock files (requirements.txt, package.json, Gemfile, etc.)
|
|
513
|
+
|
|
514
|
+
### Plan a Repository (Analysis Only)
|
|
515
|
+
|
|
516
|
+
Analyze a project and generate a task plan without executing work:
|
|
517
|
+
|
|
518
|
+
**Via REST API:**
|
|
519
|
+
```bash
|
|
520
|
+
curl -X POST http://localhost:8000/repo/plan \
|
|
521
|
+
-H "Content-Type: application/json" \
|
|
522
|
+
-d '{
|
|
523
|
+
"project_name": "my-project",
|
|
524
|
+
"goal": "Add authentication to the application"
|
|
525
|
+
}'
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
**Via MCP Tools:**
|
|
529
|
+
```
|
|
530
|
+
Claude: Plan the task "Add authentication" for project my-project
|
|
531
|
+
→ Uses plan_repo tool to analyze and generate a task plan
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
This phase creates a plan in `.claude-task-master/plan.md` without executing any tasks, allowing review before work begins.
|
|
535
|
+
|
|
536
|
+
### Complete AI Developer Workflow Example
|
|
537
|
+
|
|
538
|
+
A full end-to-end workflow:
|
|
539
|
+
|
|
540
|
+
```bash
|
|
541
|
+
# 1. Clone a repository
|
|
542
|
+
curl -X POST http://localhost:8000/repo/clone \
|
|
543
|
+
-H "Content-Type: application/json" \
|
|
544
|
+
-d '{"repo_url": "https://github.com/example/myapp.git", "project_name": "myapp"}'
|
|
545
|
+
|
|
546
|
+
# 2. Setup the project for development
|
|
547
|
+
curl -X POST http://localhost:8000/repo/setup \
|
|
548
|
+
-H "Content-Type: application/json" \
|
|
549
|
+
-d '{"project_name": "myapp"}'
|
|
550
|
+
|
|
551
|
+
# 3. Plan the work (optional - just analyze)
|
|
552
|
+
curl -X POST http://localhost:8000/repo/plan \
|
|
553
|
+
-H "Content-Type: application/json" \
|
|
554
|
+
-d '{"project_name": "myapp", "goal": "Add user authentication with OAuth"}'
|
|
555
|
+
|
|
556
|
+
# 4. Or start work directly with a goal
|
|
557
|
+
curl -X POST http://localhost:8000/task/init \
|
|
558
|
+
-H "Content-Type: application/json" \
|
|
559
|
+
-d '{"project_dir": "~/workspace/claude-task-master/myapp", "goal": "Add user authentication with OAuth"}'
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
### Directory Structure
|
|
563
|
+
|
|
564
|
+
When using the repo setup workflow, projects are organized as follows:
|
|
565
|
+
|
|
566
|
+
```
|
|
567
|
+
~/workspace/claude-task-master/
|
|
568
|
+
├── my-project/
|
|
569
|
+
│ ├── .git/
|
|
570
|
+
│ ├── src/
|
|
571
|
+
│ ├── .claude-task-master/ # State directory (auto-created by claudetm)
|
|
572
|
+
│ │ ├── goal.txt
|
|
573
|
+
│ │ ├── plan.md
|
|
574
|
+
│ │ ├── state.json
|
|
575
|
+
│ │ └── logs/
|
|
576
|
+
│ └── ...
|
|
577
|
+
├── another-project/
|
|
578
|
+
│ └── ...
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
### Use Cases
|
|
582
|
+
|
|
583
|
+
**1. Server-Based AI Development Platform**
|
|
584
|
+
|
|
585
|
+
Deploy Claude Task Master to a server with git credentials and have it:
|
|
586
|
+
- Clone repositories on demand
|
|
587
|
+
- Setup development environments automatically
|
|
588
|
+
- Execute work assignments from a job queue
|
|
589
|
+
- Report results via webhooks
|
|
590
|
+
|
|
591
|
+
```bash
|
|
592
|
+
# Server startup
|
|
593
|
+
docker run -d \
|
|
594
|
+
-p 8000:8000 \
|
|
595
|
+
-v ~/.claude:/root/.claude:ro \
|
|
596
|
+
-v ~/.gitconfig:/root/.gitconfig:ro \
|
|
597
|
+
-v ~/.config/gh:/root/.config/gh:ro \
|
|
598
|
+
-v ~/workspace:/root/workspace \
|
|
599
|
+
ghcr.io/developerz-ai/claude-task-master:latest
|
|
600
|
+
|
|
601
|
+
# External system sends work
|
|
602
|
+
curl http://ai-dev-server:8000/repo/clone -d '{"repo_url": "...", "project_name": "..."}'
|
|
603
|
+
curl http://ai-dev-server:8000/repo/setup -d '{"project_name": "..."}'
|
|
604
|
+
curl http://ai-dev-server:8000/task/init -d '{"project_dir": "...", "goal": "..."}'
|
|
605
|
+
```
|
|
606
|
+
|
|
607
|
+
**2. Local Development Workspace Management**
|
|
608
|
+
|
|
609
|
+
Setup a local workspace where Claude helps manage multiple projects:
|
|
610
|
+
|
|
611
|
+
```bash
|
|
612
|
+
# Initialize workspace
|
|
613
|
+
mkdir -p ~/workspace/claude-task-master
|
|
614
|
+
cd ~/workspace/claude-task-master
|
|
615
|
+
|
|
616
|
+
# Clone and setup multiple projects
|
|
617
|
+
claudetm repo clone https://github.com/org/api-server api-server
|
|
618
|
+
claudetm repo setup api-server
|
|
619
|
+
|
|
620
|
+
claudetm repo clone https://github.com/org/web-client web-client
|
|
621
|
+
claudetm repo setup web-client
|
|
622
|
+
|
|
623
|
+
# Work on individual projects
|
|
624
|
+
cd api-server
|
|
625
|
+
claudetm start "Add rate limiting to API endpoints"
|
|
626
|
+
|
|
627
|
+
cd ../web-client
|
|
628
|
+
claudetm start "Implement dark mode toggle"
|
|
629
|
+
```
|
|
630
|
+
|
|
631
|
+
**3. Continuous Integration as AI Development**
|
|
632
|
+
|
|
633
|
+
Integrate with CI/CD to have Claude automatically work on issues:
|
|
634
|
+
|
|
635
|
+
```bash
|
|
636
|
+
# GitHub Action or external trigger
|
|
637
|
+
curl http://localhost:8000/repo/clone \
|
|
638
|
+
-d '{"repo_url": "'$GITHUB_REPOSITORY'", "project_name": "repo"}'
|
|
639
|
+
|
|
640
|
+
curl http://localhost:8000/repo/setup \
|
|
641
|
+
-d '{"project_name": "repo"}'
|
|
642
|
+
|
|
643
|
+
curl http://localhost:8000/task/init \
|
|
644
|
+
-d '{"project_dir": "~/workspace/claude-task-master/repo", "goal": "'$ISSUE_TITLE'"}'
|
|
645
|
+
|
|
646
|
+
# Results reported via webhook callback
|
|
647
|
+
```
|
|
648
|
+
|
|
431
649
|
## Troubleshooting
|
|
432
650
|
|
|
433
651
|
### Credentials & Setup
|
|
@@ -629,6 +847,7 @@ Each stage has specific handlers that determine when to transition to the next s
|
|
|
629
847
|
├── state.json # Machine-readable state
|
|
630
848
|
├── progress.md # Progress summary
|
|
631
849
|
├── context.md # Accumulated learnings
|
|
850
|
+
├── mailbox.json # Pending messages for plan updates
|
|
632
851
|
└── logs/
|
|
633
852
|
└── run-{timestamp}.txt # Full log (kept on success)
|
|
634
853
|
```
|
|
@@ -113,9 +113,19 @@ Claude Task Master uses the Claude Agent SDK to autonomously work on complex tas
|
|
|
113
113
|
4. **Handle CI** - Wait for checks, fix failures, address review comments
|
|
114
114
|
5. **Merge** - Auto-merge when approved (configurable)
|
|
115
115
|
6. **Verify** - Confirm all success criteria are met
|
|
116
|
+
7. **Adapt** - Accept dynamic plan updates via mailbox while working
|
|
116
117
|
|
|
117
118
|
**Core Philosophy**: Claude is smart enough to do the work AND verify it. Task Master keeps the loop going and persists state between sessions.
|
|
118
119
|
|
|
120
|
+
### Key Features
|
|
121
|
+
|
|
122
|
+
- **Autonomous Execution** - Runs until goal is achieved or needs human input
|
|
123
|
+
- **PR-Based Workflow** - All work flows through pull requests for review
|
|
124
|
+
- **CI Integration** - Handles CI failures and review comments together
|
|
125
|
+
- **Mailbox System** - Receive dynamic plan updates while working (via REST API, MCP, or CLI)
|
|
126
|
+
- **Multi-Instance Coordination** - Multiple instances can communicate via mailbox
|
|
127
|
+
- **State Persistence** - Survives interruptions, resumes where it left off
|
|
128
|
+
|
|
119
129
|
## Workflow
|
|
120
130
|
|
|
121
131
|
```
|
|
@@ -300,6 +310,7 @@ Complete documentation for all features and deployment options:
|
|
|
300
310
|
| **[Authentication](./docs/authentication.md)** | Password-based authentication for REST API, MCP server, and webhooks |
|
|
301
311
|
| **[REST API Reference](./docs/api-reference.md)** | Complete REST API endpoint documentation with examples |
|
|
302
312
|
| **[Webhooks](./docs/webhooks.md)** | Webhook events, payload formats, HMAC signature verification, and integration examples |
|
|
313
|
+
| **[Mailbox System](./docs/mailbox.md)** | Inter-instance communication, dynamic plan updates, and multi-instance coordination |
|
|
303
314
|
|
|
304
315
|
## Usage
|
|
305
316
|
|
|
@@ -309,6 +320,7 @@ Complete documentation for all features and deployment options:
|
|
|
309
320
|
|---------|-------------|
|
|
310
321
|
| `claudetm start "goal"` | Start a new task |
|
|
311
322
|
| `claudetm resume` | Resume a paused task |
|
|
323
|
+
| `claudetm resume "message"` | Update plan with message, then resume |
|
|
312
324
|
| `claudetm status` | Show current status |
|
|
313
325
|
| `claudetm plan` | View task list |
|
|
314
326
|
| `claudetm progress` | View progress summary |
|
|
@@ -318,6 +330,9 @@ Complete documentation for all features and deployment options:
|
|
|
318
330
|
| `claudetm comments` | Show review comments |
|
|
319
331
|
| `claudetm clean` | Clean up task state |
|
|
320
332
|
| `claudetm doctor` | Verify system setup |
|
|
333
|
+
| `claudetm mailbox` | Show mailbox status |
|
|
334
|
+
| `claudetm mailbox send "msg"` | Send message to mailbox |
|
|
335
|
+
| `claudetm mailbox clear` | Clear pending messages |
|
|
321
336
|
|
|
322
337
|
### Start Options
|
|
323
338
|
|
|
@@ -346,6 +361,14 @@ claudetm start "Fix bug in parser" --max-sessions 5
|
|
|
346
361
|
|
|
347
362
|
# Monitor progress
|
|
348
363
|
watch -n 5 'claudetm status'
|
|
364
|
+
|
|
365
|
+
# Resume with a change request (updates plan first)
|
|
366
|
+
claudetm resume "Also add input validation to the forms"
|
|
367
|
+
|
|
368
|
+
# Send message to mailbox via REST API
|
|
369
|
+
curl -X POST http://localhost:8000/mailbox/send \
|
|
370
|
+
-H "Content-Type: application/json" \
|
|
371
|
+
-d '{"content": "Prioritize security fixes", "priority": 2}'
|
|
349
372
|
```
|
|
350
373
|
|
|
351
374
|
## Examples & Use Cases
|
|
@@ -382,6 +405,202 @@ claudetm start "Add API documentation and examples"
|
|
|
382
405
|
7. **[CI/CD Integration](./examples/07-cicd.md)** - GitHub Actions workflows
|
|
383
406
|
8. **[Advanced Workflows](./examples/08-advanced-workflows.md)** - Complex scenarios
|
|
384
407
|
|
|
408
|
+
## AI Developer Workflow
|
|
409
|
+
|
|
410
|
+
Claude Task Master includes built-in support for repository cloning and setup, enabling an AI-driven development environment. This is particularly useful for:
|
|
411
|
+
|
|
412
|
+
- **AI Server Deployments** - Deploy Claude Task Master to servers and have it autonomously clone and setup projects
|
|
413
|
+
- **Development Environment Setup** - Automatically configure repositories for local development
|
|
414
|
+
- **Multi-Project Coordination** - Manage multiple projects simultaneously, each in isolated directories
|
|
415
|
+
- **Continuous AI Development** - Receive work requests, setup projects, implement tasks, all autonomously
|
|
416
|
+
|
|
417
|
+
### Repo Setup Workflow
|
|
418
|
+
|
|
419
|
+
The repo setup workflow consists of three phases:
|
|
420
|
+
|
|
421
|
+
1. **Clone** - Clone a git repository to `~/workspace/claude-task-master/{project-name}`
|
|
422
|
+
2. **Setup** - Automatically install dependencies, create virtual environments, run setup scripts
|
|
423
|
+
3. **Plan or Work** - Either analyze the project and create a plan, or immediately start working on tasks
|
|
424
|
+
|
|
425
|
+
### Clone a Repository
|
|
426
|
+
|
|
427
|
+
**Via REST API:**
|
|
428
|
+
```bash
|
|
429
|
+
curl -X POST http://localhost:8000/repo/clone \
|
|
430
|
+
-H "Content-Type: application/json" \
|
|
431
|
+
-d '{
|
|
432
|
+
"repo_url": "https://github.com/example/my-project.git",
|
|
433
|
+
"project_name": "my-project"
|
|
434
|
+
}'
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
**Via MCP Tools (IDE Integration):**
|
|
438
|
+
```
|
|
439
|
+
Claude: Clone the repository https://github.com/example/my-project.git
|
|
440
|
+
→ Uses clone_repo tool to clone to ~/workspace/claude-task-master/my-project
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
### Setup a Cloned Repository
|
|
444
|
+
|
|
445
|
+
After cloning, setup installs dependencies and prepares the project for development:
|
|
446
|
+
|
|
447
|
+
**Via REST API:**
|
|
448
|
+
```bash
|
|
449
|
+
curl -X POST http://localhost:8000/repo/setup \
|
|
450
|
+
-H "Content-Type: application/json" \
|
|
451
|
+
-d '{
|
|
452
|
+
"project_name": "my-project"
|
|
453
|
+
}'
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
**Via MCP Tools:**
|
|
457
|
+
```
|
|
458
|
+
Claude: Set up the project my-project for development
|
|
459
|
+
→ Uses setup_repo tool to configure and prepare the repository
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
The setup phase:
|
|
463
|
+
- Detects project type (Python, Node.js, Ruby, etc.)
|
|
464
|
+
- Installs package manager if needed (uv, npm, pip, bundler, etc.)
|
|
465
|
+
- Creates virtual environments (venv, node_modules, etc.)
|
|
466
|
+
- Runs setup scripts if present (setup.sh, Makefile, scripts/setup-hooks.sh, etc.)
|
|
467
|
+
- Installs dependencies from lock files (requirements.txt, package.json, Gemfile, etc.)
|
|
468
|
+
|
|
469
|
+
### Plan a Repository (Analysis Only)
|
|
470
|
+
|
|
471
|
+
Analyze a project and generate a task plan without executing work:
|
|
472
|
+
|
|
473
|
+
**Via REST API:**
|
|
474
|
+
```bash
|
|
475
|
+
curl -X POST http://localhost:8000/repo/plan \
|
|
476
|
+
-H "Content-Type: application/json" \
|
|
477
|
+
-d '{
|
|
478
|
+
"project_name": "my-project",
|
|
479
|
+
"goal": "Add authentication to the application"
|
|
480
|
+
}'
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
**Via MCP Tools:**
|
|
484
|
+
```
|
|
485
|
+
Claude: Plan the task "Add authentication" for project my-project
|
|
486
|
+
→ Uses plan_repo tool to analyze and generate a task plan
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
This phase creates a plan in `.claude-task-master/plan.md` without executing any tasks, allowing review before work begins.
|
|
490
|
+
|
|
491
|
+
### Complete AI Developer Workflow Example
|
|
492
|
+
|
|
493
|
+
A full end-to-end workflow:
|
|
494
|
+
|
|
495
|
+
```bash
|
|
496
|
+
# 1. Clone a repository
|
|
497
|
+
curl -X POST http://localhost:8000/repo/clone \
|
|
498
|
+
-H "Content-Type: application/json" \
|
|
499
|
+
-d '{"repo_url": "https://github.com/example/myapp.git", "project_name": "myapp"}'
|
|
500
|
+
|
|
501
|
+
# 2. Setup the project for development
|
|
502
|
+
curl -X POST http://localhost:8000/repo/setup \
|
|
503
|
+
-H "Content-Type: application/json" \
|
|
504
|
+
-d '{"project_name": "myapp"}'
|
|
505
|
+
|
|
506
|
+
# 3. Plan the work (optional - just analyze)
|
|
507
|
+
curl -X POST http://localhost:8000/repo/plan \
|
|
508
|
+
-H "Content-Type: application/json" \
|
|
509
|
+
-d '{"project_name": "myapp", "goal": "Add user authentication with OAuth"}'
|
|
510
|
+
|
|
511
|
+
# 4. Or start work directly with a goal
|
|
512
|
+
curl -X POST http://localhost:8000/task/init \
|
|
513
|
+
-H "Content-Type: application/json" \
|
|
514
|
+
-d '{"project_dir": "~/workspace/claude-task-master/myapp", "goal": "Add user authentication with OAuth"}'
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
### Directory Structure
|
|
518
|
+
|
|
519
|
+
When using the repo setup workflow, projects are organized as follows:
|
|
520
|
+
|
|
521
|
+
```
|
|
522
|
+
~/workspace/claude-task-master/
|
|
523
|
+
├── my-project/
|
|
524
|
+
│ ├── .git/
|
|
525
|
+
│ ├── src/
|
|
526
|
+
│ ├── .claude-task-master/ # State directory (auto-created by claudetm)
|
|
527
|
+
│ │ ├── goal.txt
|
|
528
|
+
│ │ ├── plan.md
|
|
529
|
+
│ │ ├── state.json
|
|
530
|
+
│ │ └── logs/
|
|
531
|
+
│ └── ...
|
|
532
|
+
├── another-project/
|
|
533
|
+
│ └── ...
|
|
534
|
+
```
|
|
535
|
+
|
|
536
|
+
### Use Cases
|
|
537
|
+
|
|
538
|
+
**1. Server-Based AI Development Platform**
|
|
539
|
+
|
|
540
|
+
Deploy Claude Task Master to a server with git credentials and have it:
|
|
541
|
+
- Clone repositories on demand
|
|
542
|
+
- Setup development environments automatically
|
|
543
|
+
- Execute work assignments from a job queue
|
|
544
|
+
- Report results via webhooks
|
|
545
|
+
|
|
546
|
+
```bash
|
|
547
|
+
# Server startup
|
|
548
|
+
docker run -d \
|
|
549
|
+
-p 8000:8000 \
|
|
550
|
+
-v ~/.claude:/root/.claude:ro \
|
|
551
|
+
-v ~/.gitconfig:/root/.gitconfig:ro \
|
|
552
|
+
-v ~/.config/gh:/root/.config/gh:ro \
|
|
553
|
+
-v ~/workspace:/root/workspace \
|
|
554
|
+
ghcr.io/developerz-ai/claude-task-master:latest
|
|
555
|
+
|
|
556
|
+
# External system sends work
|
|
557
|
+
curl http://ai-dev-server:8000/repo/clone -d '{"repo_url": "...", "project_name": "..."}'
|
|
558
|
+
curl http://ai-dev-server:8000/repo/setup -d '{"project_name": "..."}'
|
|
559
|
+
curl http://ai-dev-server:8000/task/init -d '{"project_dir": "...", "goal": "..."}'
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
**2. Local Development Workspace Management**
|
|
563
|
+
|
|
564
|
+
Setup a local workspace where Claude helps manage multiple projects:
|
|
565
|
+
|
|
566
|
+
```bash
|
|
567
|
+
# Initialize workspace
|
|
568
|
+
mkdir -p ~/workspace/claude-task-master
|
|
569
|
+
cd ~/workspace/claude-task-master
|
|
570
|
+
|
|
571
|
+
# Clone and setup multiple projects
|
|
572
|
+
claudetm repo clone https://github.com/org/api-server api-server
|
|
573
|
+
claudetm repo setup api-server
|
|
574
|
+
|
|
575
|
+
claudetm repo clone https://github.com/org/web-client web-client
|
|
576
|
+
claudetm repo setup web-client
|
|
577
|
+
|
|
578
|
+
# Work on individual projects
|
|
579
|
+
cd api-server
|
|
580
|
+
claudetm start "Add rate limiting to API endpoints"
|
|
581
|
+
|
|
582
|
+
cd ../web-client
|
|
583
|
+
claudetm start "Implement dark mode toggle"
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
**3. Continuous Integration as AI Development**
|
|
587
|
+
|
|
588
|
+
Integrate with CI/CD to have Claude automatically work on issues:
|
|
589
|
+
|
|
590
|
+
```bash
|
|
591
|
+
# GitHub Action or external trigger
|
|
592
|
+
curl http://localhost:8000/repo/clone \
|
|
593
|
+
-d '{"repo_url": "'$GITHUB_REPOSITORY'", "project_name": "repo"}'
|
|
594
|
+
|
|
595
|
+
curl http://localhost:8000/repo/setup \
|
|
596
|
+
-d '{"project_name": "repo"}'
|
|
597
|
+
|
|
598
|
+
curl http://localhost:8000/task/init \
|
|
599
|
+
-d '{"project_dir": "~/workspace/claude-task-master/repo", "goal": "'$ISSUE_TITLE'"}'
|
|
600
|
+
|
|
601
|
+
# Results reported via webhook callback
|
|
602
|
+
```
|
|
603
|
+
|
|
385
604
|
## Troubleshooting
|
|
386
605
|
|
|
387
606
|
### Credentials & Setup
|
|
@@ -583,6 +802,7 @@ Each stage has specific handlers that determine when to transition to the next s
|
|
|
583
802
|
├── state.json # Machine-readable state
|
|
584
803
|
├── progress.md # Progress summary
|
|
585
804
|
├── context.md # Accumulated learnings
|
|
805
|
+
├── mailbox.json # Pending messages for plan updates
|
|
586
806
|
└── logs/
|
|
587
807
|
└── run-{timestamp}.txt # Full log (kept on success)
|
|
588
808
|
```
|
|
@@ -4,10 +4,10 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "claude-task-master"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.6"
|
|
8
8
|
description = "Autonomous task orchestration system that keeps Claude working until a goal is achieved"
|
|
9
9
|
readme = "README.md"
|
|
10
|
-
requires-python = ">=3.
|
|
10
|
+
requires-python = ">=3.12"
|
|
11
11
|
license = "MIT"
|
|
12
12
|
authors = [
|
|
13
13
|
{name = "Claude Task Master Team"}
|
|
@@ -17,8 +17,6 @@ classifiers = [
|
|
|
17
17
|
"Development Status :: 3 - Alpha",
|
|
18
18
|
"Intended Audience :: Developers",
|
|
19
19
|
"Programming Language :: Python :: 3",
|
|
20
|
-
"Programming Language :: Python :: 3.10",
|
|
21
|
-
"Programming Language :: Python :: 3.11",
|
|
22
20
|
"Programming Language :: Python :: 3.12",
|
|
23
21
|
"Operating System :: OS Independent",
|
|
24
22
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
@@ -56,6 +54,7 @@ dev = [
|
|
|
56
54
|
"pytest-cov>=4.1.0",
|
|
57
55
|
"pytest-asyncio>=0.23.0",
|
|
58
56
|
"pytest-timeout>=2.4.0",
|
|
57
|
+
"hypothesis>=6.100.0",
|
|
59
58
|
"ruff>=0.3.0",
|
|
60
59
|
"mypy>=1.9.0",
|
|
61
60
|
]
|
|
@@ -89,7 +88,7 @@ claude_task_master = ["bin/claudetm"]
|
|
|
89
88
|
|
|
90
89
|
[tool.ruff]
|
|
91
90
|
line-length = 100
|
|
92
|
-
target-version = "
|
|
91
|
+
target-version = "py312"
|
|
93
92
|
|
|
94
93
|
[tool.ruff.lint]
|
|
95
94
|
select = [
|
|
@@ -110,7 +109,7 @@ quote-style = "double"
|
|
|
110
109
|
indent-style = "space"
|
|
111
110
|
|
|
112
111
|
[tool.mypy]
|
|
113
|
-
python_version = "3.
|
|
112
|
+
python_version = "3.12"
|
|
114
113
|
warn_return_any = true
|
|
115
114
|
warn_unused_configs = true
|
|
116
115
|
disallow_untyped_defs = true
|
|
@@ -138,6 +137,10 @@ ignore_missing_imports = true
|
|
|
138
137
|
module = "passlib.*"
|
|
139
138
|
ignore_missing_imports = true
|
|
140
139
|
|
|
140
|
+
[[tool.mypy.overrides]]
|
|
141
|
+
module = "anthropic.*"
|
|
142
|
+
ignore_missing_imports = true
|
|
143
|
+
|
|
141
144
|
[[tool.mypy.overrides]]
|
|
142
145
|
module = "tests.*"
|
|
143
146
|
disallow_untyped_defs = false
|
|
@@ -155,7 +158,6 @@ addopts = [
|
|
|
155
158
|
"--cov-report=term-missing",
|
|
156
159
|
"--cov-report=html:coverage_html",
|
|
157
160
|
"--cov-report=xml:coverage.xml",
|
|
158
|
-
"--cov-fail-under=50",
|
|
159
161
|
"--timeout=2",
|
|
160
162
|
]
|
|
161
163
|
asyncio_mode = "auto"
|
|
@@ -169,8 +171,16 @@ markers = [
|
|
|
169
171
|
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
|
|
170
172
|
"integration: marks tests as integration tests (require external services)",
|
|
171
173
|
"unit: marks tests as unit tests",
|
|
174
|
+
"property: marks tests as property-based tests using Hypothesis",
|
|
172
175
|
]
|
|
173
176
|
|
|
177
|
+
# Hypothesis settings for property-based tests
|
|
178
|
+
[tool.hypothesis]
|
|
179
|
+
profile = "default"
|
|
180
|
+
# Profiles available: default, ci, dev, quick, thorough
|
|
181
|
+
# Set HYPOTHESIS_PROFILE environment variable to use a different profile
|
|
182
|
+
# Example: HYPOTHESIS_PROFILE=ci pytest tests/property/
|
|
183
|
+
|
|
174
184
|
[tool.coverage.run]
|
|
175
185
|
source = ["src/claude_task_master"]
|
|
176
186
|
branch = true
|