taskill 0.1.3__tar.gz → 0.1.4__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.
- {taskill-0.1.3 → taskill-0.1.4}/CHANGELOG.md +23 -0
- {taskill-0.1.3 → taskill-0.1.4}/PKG-INFO +5 -5
- {taskill-0.1.3 → taskill-0.1.4}/README.md +4 -4
- {taskill-0.1.3 → taskill-0.1.4}/SUMD.md +22 -24
- {taskill-0.1.3 → taskill-0.1.4}/SUMR.md +49 -57
- {taskill-0.1.3 → taskill-0.1.4}/TODO.md +1 -1
- taskill-0.1.4/VERSION +1 -0
- {taskill-0.1.3 → taskill-0.1.4}/app.doql.less +1 -1
- {taskill-0.1.3 → taskill-0.1.4}/project/README.md +1 -1
- {taskill-0.1.3 → taskill-0.1.4}/project/analysis.toon.yaml +11 -15
- {taskill-0.1.3 → taskill-0.1.4}/project/calls.mmd +36 -39
- taskill-0.1.4/project/calls.png +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/project/calls.toon.yaml +15 -17
- {taskill-0.1.3 → taskill-0.1.4}/project/calls.yaml +217 -225
- taskill-0.1.4/project/compact_flow.mmd +3 -0
- taskill-0.1.4/project/compact_flow.png +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/project/context.md +35 -41
- {taskill-0.1.3 → taskill-0.1.4}/project/duplication.toon.yaml +1 -1
- {taskill-0.1.3 → taskill-0.1.4}/project/evolution.toon.yaml +1 -1
- {taskill-0.1.3 → taskill-0.1.4}/project/flow.mmd +4 -4
- taskill-0.1.4/project/flow.png +0 -0
- taskill-0.1.4/project/index.html +623 -0
- {taskill-0.1.3 → taskill-0.1.4}/project/mermaid.export +14 -14
- {taskill-0.1.3 → taskill-0.1.4}/project/project.toon.yaml +9 -9
- {taskill-0.1.3 → taskill-0.1.4}/pyproject.toml +1 -1
- {taskill-0.1.3 → taskill-0.1.4}/src/taskill/__init__.py +1 -1
- taskill-0.1.3/VERSION +0 -1
- taskill-0.1.3/project/calls.png +0 -0
- taskill-0.1.3/project/compact_flow.mmd +0 -4
- taskill-0.1.3/project/compact_flow.png +0 -0
- taskill-0.1.3/project/flow.png +0 -0
- taskill-0.1.3/project/index.html +0 -623
- {taskill-0.1.3 → taskill-0.1.4}/.gitignore +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/.windsurf/workflows/daily-docs-update.md +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/LICENSE +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/ROADMAP.md +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/daily_update.sh +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/examples/ansible-playbook.yml +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/examples/github-action.yml +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/examples/gitlab-ci.yml +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/examples/systemd-timer/taskill.service +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/examples/systemd-timer/taskill.timer +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/goal.yaml +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/planfile.yaml +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/prefact.yaml +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/project/map.toon.yaml +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/project/prompt.txt +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/project.sh +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/src/taskill/bulk.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/src/taskill/cli.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/src/taskill/config.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/src/taskill/core.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/src/taskill/git_state.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/src/taskill/providers/__init__.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/src/taskill/providers/algorithmic.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/src/taskill/providers/base.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/src/taskill/providers/openrouter.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/src/taskill/providers/windsurf_mcp.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/src/taskill/state.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/src/taskill/triggers.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/src/taskill/updaters/__init__.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/src/taskill/updaters/base.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/src/taskill/updaters/changelog.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/src/taskill/updaters/readme.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/src/taskill/updaters/todo.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/taskill.yaml +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/testql-scenarios/generated-cli-tests.testql.toon.yaml +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/tests/__init__.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/tests/test_algorithmic.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/tests/test_bulk.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/tests/test_config.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/tests/test_providers.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/tests/test_triggers.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/tests/test_updaters.py +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/tree.sh +0 -0
- {taskill-0.1.3 → taskill-0.1.4}/tree.txt +0 -0
|
@@ -81,6 +81,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
81
81
|
- README: new "Bulk / fleet-wide runs" and "Extending taskill" sections
|
|
82
82
|
- ROADMAP: marked v0.2.1, v0.2.3, and v0.5 baseline as shipped
|
|
83
83
|
|
|
84
|
+
## [0.1.4] - 2026-04-25
|
|
85
|
+
|
|
86
|
+
### Docs
|
|
87
|
+
- Update README.md
|
|
88
|
+
- Update SUMD.md
|
|
89
|
+
- Update SUMR.md
|
|
90
|
+
- Update TODO.md
|
|
91
|
+
- Update project/README.md
|
|
92
|
+
- Update project/context.md
|
|
93
|
+
|
|
94
|
+
### Other
|
|
95
|
+
- Update app.doql.less
|
|
96
|
+
- Update project/analysis.toon.yaml
|
|
97
|
+
- Update project/calls.mmd
|
|
98
|
+
- Update project/calls.png
|
|
99
|
+
- Update project/calls.toon.yaml
|
|
100
|
+
- Update project/calls.yaml
|
|
101
|
+
- Update project/compact_flow.mmd
|
|
102
|
+
- Update project/compact_flow.png
|
|
103
|
+
- Update project/duplication.toon.yaml
|
|
104
|
+
- Update project/evolution.toon.yaml
|
|
105
|
+
- ... and 5 more files
|
|
106
|
+
|
|
84
107
|
## [0.1.3] - 2026-04-25
|
|
85
108
|
|
|
86
109
|
### Docs
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: taskill
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
4
4
|
Summary: Daily project hygiene: keep README / CHANGELOG / TODO in sync with reality. LLM-first, algorithmic fallback.
|
|
5
5
|
Project-URL: Homepage, https://github.com/oqlos/taskill
|
|
6
6
|
Project-URL: Issues, https://github.com/oqlos/taskill/issues
|
|
@@ -37,11 +37,11 @@ Description-Content-Type: text/markdown
|
|
|
37
37
|
|
|
38
38
|
## AI Cost Tracking
|
|
39
39
|
|
|
40
|
-
    
|
|
41
|
+
  
|
|
42
42
|
|
|
43
|
-
- 🤖 **LLM usage:** $0.
|
|
44
|
-
- 👤 **Human dev:** ~$
|
|
43
|
+
- 🤖 **LLM usage:** $0.4500 (3 commits)
|
|
44
|
+
- 👤 **Human dev:** ~$333 (3.3h @ $100/h, 30min dedup)
|
|
45
45
|
|
|
46
46
|
Generated on 2026-04-25 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
|
|
47
47
|
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
|
|
4
4
|
## AI Cost Tracking
|
|
5
5
|
|
|
6
|
-
    
|
|
7
|
+
  
|
|
8
8
|
|
|
9
|
-
- 🤖 **LLM usage:** $0.
|
|
10
|
-
- 👤 **Human dev:** ~$
|
|
9
|
+
- 🤖 **LLM usage:** $0.4500 (3 commits)
|
|
10
|
+
- 👤 **Human dev:** ~$333 (3.3h @ $100/h, 30min dedup)
|
|
11
11
|
|
|
12
12
|
Generated on 2026-04-25 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
|
|
13
13
|
|
|
@@ -20,7 +20,7 @@ Daily project hygiene: keep README / CHANGELOG / TODO in sync with reality. LLM-
|
|
|
20
20
|
## Metadata
|
|
21
21
|
|
|
22
22
|
- **name**: `taskill`
|
|
23
|
-
- **version**: `0.1.
|
|
23
|
+
- **version**: `0.1.3`
|
|
24
24
|
- **python_requires**: `>=3.10`
|
|
25
25
|
- **license**: Apache-2.0
|
|
26
26
|
- **ai_model**: `openrouter/qwen/qwen3-coder-next`
|
|
@@ -40,7 +40,7 @@ SUMD (description) → DOQL/source (code) → taskfile (automation) → testql (
|
|
|
40
40
|
|
|
41
41
|
app {
|
|
42
42
|
name: taskill;
|
|
43
|
-
version: 0.1.
|
|
43
|
+
version: 0.1.3;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
dependencies {
|
|
@@ -100,7 +100,7 @@ LOG[3]{message}:
|
|
|
100
100
|
```yaml
|
|
101
101
|
project:
|
|
102
102
|
name: taskill
|
|
103
|
-
version: 0.1.
|
|
103
|
+
version: 0.1.3
|
|
104
104
|
env: local
|
|
105
105
|
```
|
|
106
106
|
|
|
@@ -379,7 +379,7 @@ D:
|
|
|
379
379
|
|
|
380
380
|
## Call Graph
|
|
381
381
|
|
|
382
|
-
*
|
|
382
|
+
*43 nodes · 35 edges · 13 modules · CC̄=2.0*
|
|
383
383
|
|
|
384
384
|
### Hubs (by degree)
|
|
385
385
|
|
|
@@ -387,16 +387,16 @@ D:
|
|
|
387
387
|
|----------|----|----|-----|-------|
|
|
388
388
|
| `load_config` *(in src.taskill.config)* | 8 | 6 | 35 | **41** |
|
|
389
389
|
| `bulk_run_cmd` *(in src.taskill.cli)* | 17 ⚠ | 0 | 38 | **38** |
|
|
390
|
-
| `generate` *(in src.taskill.providers.windsurf_mcp.WindsurfMcpProvider)* | 7 | 0 | 32 | **32** |
|
|
391
390
|
| `run` *(in src.taskill.cli)* | 16 ⚠ | 0 | 32 | **32** |
|
|
391
|
+
| `generate` *(in src.taskill.providers.windsurf_mcp.WindsurfMcpProvider)* | 7 | 0 | 32 | **32** |
|
|
392
392
|
| `generate` *(in src.taskill.providers.openrouter.OpenRouterProvider)* | 6 | 0 | 27 | **27** |
|
|
393
|
-
| `bulk_run` *(in src.taskill.bulk)* | 17 ⚠ |
|
|
394
|
-
| `status` *(in src.taskill.cli)* | 11 ⚠ | 0 | 25 | **25** |
|
|
393
|
+
| `bulk_run` *(in src.taskill.bulk)* | 17 ⚠ | 1 | 26 | **27** |
|
|
395
394
|
| `evaluate` *(in src.taskill.triggers)* | 21 ⚠ | 2 | 23 | **25** |
|
|
395
|
+
| `status` *(in src.taskill.cli)* | 11 ⚠ | 0 | 25 | **25** |
|
|
396
396
|
|
|
397
397
|
```toon markpact:analysis path=project/calls.toon.yaml
|
|
398
398
|
# code2llm call graph | /home/tom/github/semcod/taskill
|
|
399
|
-
# nodes:
|
|
399
|
+
# nodes: 43 | edges: 35 | modules: 13
|
|
400
400
|
# CC̄=2.0
|
|
401
401
|
|
|
402
402
|
HUBS[20]:
|
|
@@ -404,34 +404,34 @@ HUBS[20]:
|
|
|
404
404
|
CC=8 in:6 out:35 total:41
|
|
405
405
|
src.taskill.cli.bulk_run_cmd
|
|
406
406
|
CC=17 in:0 out:38 total:38
|
|
407
|
-
src.taskill.providers.windsurf_mcp.WindsurfMcpProvider.generate
|
|
408
|
-
CC=7 in:0 out:32 total:32
|
|
409
407
|
src.taskill.cli.run
|
|
410
408
|
CC=16 in:0 out:32 total:32
|
|
409
|
+
src.taskill.providers.windsurf_mcp.WindsurfMcpProvider.generate
|
|
410
|
+
CC=7 in:0 out:32 total:32
|
|
411
411
|
src.taskill.providers.openrouter.OpenRouterProvider.generate
|
|
412
412
|
CC=6 in:0 out:27 total:27
|
|
413
413
|
src.taskill.bulk.bulk_run
|
|
414
|
-
CC=17 in:
|
|
415
|
-
src.taskill.cli.status
|
|
416
|
-
CC=11 in:0 out:25 total:25
|
|
414
|
+
CC=17 in:1 out:26 total:27
|
|
417
415
|
src.taskill.triggers.evaluate
|
|
418
416
|
CC=21 in:2 out:23 total:25
|
|
417
|
+
src.taskill.cli.status
|
|
418
|
+
CC=11 in:0 out:25 total:25
|
|
419
419
|
src.taskill.core.Taskill.run
|
|
420
420
|
CC=11 in:0 out:20 total:20
|
|
421
421
|
src.taskill.git_state.collect_snapshot
|
|
422
422
|
CC=3 in:1 out:13 total:14
|
|
423
|
-
src.taskill.git_state.read_coverage
|
|
424
|
-
CC=7 in:1 out:11 total:12
|
|
425
423
|
src.taskill.core.Taskill._apply
|
|
426
424
|
CC=4 in:0 out:12 total:12
|
|
425
|
+
src.taskill.git_state.read_coverage
|
|
426
|
+
CC=7 in:1 out:11 total:12
|
|
427
427
|
src.taskill.updaters.readme.ReadmeUpdater._update_readme
|
|
428
428
|
CC=6 in:0 out:11 total:11
|
|
429
|
+
src.taskill.providers.windsurf_mcp._candidate_endpoints
|
|
430
|
+
CC=5 in:2 out:7 total:9
|
|
429
431
|
src.taskill.bulk._scan
|
|
430
432
|
CC=9 in:2 out:7 total:9
|
|
431
433
|
src.taskill.git_state.commits_since
|
|
432
434
|
CC=7 in:1 out:8 total:9
|
|
433
|
-
src.taskill.providers.windsurf_mcp._candidate_endpoints
|
|
434
|
-
CC=5 in:2 out:7 total:9
|
|
435
435
|
src.taskill.git_state.read_failed_tests
|
|
436
436
|
CC=5 in:1 out:8 total:9
|
|
437
437
|
src.taskill.cli.release
|
|
@@ -442,8 +442,6 @@ HUBS[20]:
|
|
|
442
442
|
CC=3 in:1 out:6 total:7
|
|
443
443
|
|
|
444
444
|
MODULES:
|
|
445
|
-
project.map.toon [1 funcs]
|
|
446
|
-
bulk_run CC=0 out:0
|
|
447
445
|
src.taskill.bulk [5 funcs]
|
|
448
446
|
_rebase_config CC=1 out:3
|
|
449
447
|
_scan CC=9 out:7
|
|
@@ -506,7 +504,7 @@ EDGES:
|
|
|
506
504
|
src.taskill.cli.run → src.taskill.config.load_config
|
|
507
505
|
src.taskill.cli.status → src.taskill.config.load_config
|
|
508
506
|
src.taskill.cli.release → src.taskill.updaters.changelog.release_unreleased
|
|
509
|
-
src.taskill.cli.bulk_run_cmd →
|
|
507
|
+
src.taskill.cli.bulk_run_cmd → src.taskill.bulk.bulk_run
|
|
510
508
|
src.taskill.cli.clean_todo → src.taskill.updaters.todo.empty_todo
|
|
511
509
|
src.taskill.git_state.head_sha → src.taskill.git_state._run
|
|
512
510
|
src.taskill.git_state.commits_since → src.taskill.git_state._run
|
|
@@ -526,6 +524,10 @@ EDGES:
|
|
|
526
524
|
src.taskill.core.Taskill._apply → src.taskill.updaters.changelog.update_changelog
|
|
527
525
|
src.taskill.core.Taskill._apply → src.taskill.updaters.todo.update_todo
|
|
528
526
|
src.taskill.core.Taskill._apply → src.taskill.updaters.readme.update_readme
|
|
527
|
+
src.taskill.bulk.find_repos → src.taskill.bulk._scan
|
|
528
|
+
src.taskill.bulk.resolve_repo_config → src.taskill.config.load_config
|
|
529
|
+
src.taskill.bulk.resolve_repo_config → src.taskill.bulk._rebase_config
|
|
530
|
+
src.taskill.bulk.bulk_run → src.taskill.bulk.find_repos
|
|
529
531
|
src.taskill.updaters.readme.ReadmeUpdater._update_readme → src.taskill.updaters.readme.render_status_block
|
|
530
532
|
src.taskill.providers.windsurf_mcp.WindsurfMcpProvider.is_available → src.taskill.providers.windsurf_mcp._mcp_lib_present
|
|
531
533
|
src.taskill.providers.windsurf_mcp.WindsurfMcpProvider.is_available → src.taskill.providers.windsurf_mcp._candidate_endpoints
|
|
@@ -533,10 +535,6 @@ EDGES:
|
|
|
533
535
|
src.taskill.providers.windsurf_mcp.WindsurfMcpProvider.generate → src.taskill.providers.windsurf_mcp._mcp_lib_present
|
|
534
536
|
src.taskill.providers.openrouter.OpenRouterProvider.generate → src.taskill.providers.openrouter._normalize_model
|
|
535
537
|
src.taskill.providers.build_chain → src.taskill.providers.discover_providers
|
|
536
|
-
src.taskill.bulk.find_repos → src.taskill.bulk._scan
|
|
537
|
-
src.taskill.bulk.resolve_repo_config → src.taskill.config.load_config
|
|
538
|
-
src.taskill.bulk.resolve_repo_config → src.taskill.bulk._rebase_config
|
|
539
|
-
src.taskill.bulk.bulk_run → src.taskill.bulk.find_repos
|
|
540
538
|
```
|
|
541
539
|
|
|
542
540
|
## Test Contracts
|
|
@@ -15,7 +15,7 @@ SUMD - Structured Unified Markdown Descriptor for AI-aware project refactorizati
|
|
|
15
15
|
## Metadata
|
|
16
16
|
|
|
17
17
|
- **name**: `taskill`
|
|
18
|
-
- **version**: `0.1.
|
|
18
|
+
- **version**: `0.1.3`
|
|
19
19
|
- **python_requires**: `>=3.10`
|
|
20
20
|
- **license**: Apache-2.0
|
|
21
21
|
- **ai_model**: `openrouter/qwen/qwen3-coder-next`
|
|
@@ -35,7 +35,7 @@ SUMD (description) → DOQL/source (code) → taskfile (automation) → testql (
|
|
|
35
35
|
|
|
36
36
|
app {
|
|
37
37
|
name: taskill;
|
|
38
|
-
version: 0.1.
|
|
38
|
+
version: 0.1.3;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
dependencies {
|
|
@@ -94,7 +94,7 @@ pfix>=0.1.60
|
|
|
94
94
|
|
|
95
95
|
## Call Graph
|
|
96
96
|
|
|
97
|
-
*
|
|
97
|
+
*43 nodes · 35 edges · 13 modules · CC̄=2.0*
|
|
98
98
|
|
|
99
99
|
### Hubs (by degree)
|
|
100
100
|
|
|
@@ -102,16 +102,16 @@ pfix>=0.1.60
|
|
|
102
102
|
|----------|----|----|-----|-------|
|
|
103
103
|
| `load_config` *(in src.taskill.config)* | 8 | 6 | 35 | **41** |
|
|
104
104
|
| `bulk_run_cmd` *(in src.taskill.cli)* | 17 ⚠ | 0 | 38 | **38** |
|
|
105
|
-
| `generate` *(in src.taskill.providers.windsurf_mcp.WindsurfMcpProvider)* | 7 | 0 | 32 | **32** |
|
|
106
105
|
| `run` *(in src.taskill.cli)* | 16 ⚠ | 0 | 32 | **32** |
|
|
106
|
+
| `generate` *(in src.taskill.providers.windsurf_mcp.WindsurfMcpProvider)* | 7 | 0 | 32 | **32** |
|
|
107
107
|
| `generate` *(in src.taskill.providers.openrouter.OpenRouterProvider)* | 6 | 0 | 27 | **27** |
|
|
108
|
-
| `bulk_run` *(in src.taskill.bulk)* | 17 ⚠ |
|
|
109
|
-
| `status` *(in src.taskill.cli)* | 11 ⚠ | 0 | 25 | **25** |
|
|
108
|
+
| `bulk_run` *(in src.taskill.bulk)* | 17 ⚠ | 1 | 26 | **27** |
|
|
110
109
|
| `evaluate` *(in src.taskill.triggers)* | 21 ⚠ | 2 | 23 | **25** |
|
|
110
|
+
| `status` *(in src.taskill.cli)* | 11 ⚠ | 0 | 25 | **25** |
|
|
111
111
|
|
|
112
112
|
```toon markpact:analysis path=project/calls.toon.yaml
|
|
113
113
|
# code2llm call graph | /home/tom/github/semcod/taskill
|
|
114
|
-
# nodes:
|
|
114
|
+
# nodes: 43 | edges: 35 | modules: 13
|
|
115
115
|
# CC̄=2.0
|
|
116
116
|
|
|
117
117
|
HUBS[20]:
|
|
@@ -119,34 +119,34 @@ HUBS[20]:
|
|
|
119
119
|
CC=8 in:6 out:35 total:41
|
|
120
120
|
src.taskill.cli.bulk_run_cmd
|
|
121
121
|
CC=17 in:0 out:38 total:38
|
|
122
|
-
src.taskill.providers.windsurf_mcp.WindsurfMcpProvider.generate
|
|
123
|
-
CC=7 in:0 out:32 total:32
|
|
124
122
|
src.taskill.cli.run
|
|
125
123
|
CC=16 in:0 out:32 total:32
|
|
124
|
+
src.taskill.providers.windsurf_mcp.WindsurfMcpProvider.generate
|
|
125
|
+
CC=7 in:0 out:32 total:32
|
|
126
126
|
src.taskill.providers.openrouter.OpenRouterProvider.generate
|
|
127
127
|
CC=6 in:0 out:27 total:27
|
|
128
128
|
src.taskill.bulk.bulk_run
|
|
129
|
-
CC=17 in:
|
|
130
|
-
src.taskill.cli.status
|
|
131
|
-
CC=11 in:0 out:25 total:25
|
|
129
|
+
CC=17 in:1 out:26 total:27
|
|
132
130
|
src.taskill.triggers.evaluate
|
|
133
131
|
CC=21 in:2 out:23 total:25
|
|
132
|
+
src.taskill.cli.status
|
|
133
|
+
CC=11 in:0 out:25 total:25
|
|
134
134
|
src.taskill.core.Taskill.run
|
|
135
135
|
CC=11 in:0 out:20 total:20
|
|
136
136
|
src.taskill.git_state.collect_snapshot
|
|
137
137
|
CC=3 in:1 out:13 total:14
|
|
138
|
-
src.taskill.git_state.read_coverage
|
|
139
|
-
CC=7 in:1 out:11 total:12
|
|
140
138
|
src.taskill.core.Taskill._apply
|
|
141
139
|
CC=4 in:0 out:12 total:12
|
|
140
|
+
src.taskill.git_state.read_coverage
|
|
141
|
+
CC=7 in:1 out:11 total:12
|
|
142
142
|
src.taskill.updaters.readme.ReadmeUpdater._update_readme
|
|
143
143
|
CC=6 in:0 out:11 total:11
|
|
144
|
+
src.taskill.providers.windsurf_mcp._candidate_endpoints
|
|
145
|
+
CC=5 in:2 out:7 total:9
|
|
144
146
|
src.taskill.bulk._scan
|
|
145
147
|
CC=9 in:2 out:7 total:9
|
|
146
148
|
src.taskill.git_state.commits_since
|
|
147
149
|
CC=7 in:1 out:8 total:9
|
|
148
|
-
src.taskill.providers.windsurf_mcp._candidate_endpoints
|
|
149
|
-
CC=5 in:2 out:7 total:9
|
|
150
150
|
src.taskill.git_state.read_failed_tests
|
|
151
151
|
CC=5 in:1 out:8 total:9
|
|
152
152
|
src.taskill.cli.release
|
|
@@ -157,8 +157,6 @@ HUBS[20]:
|
|
|
157
157
|
CC=3 in:1 out:6 total:7
|
|
158
158
|
|
|
159
159
|
MODULES:
|
|
160
|
-
project.map.toon [1 funcs]
|
|
161
|
-
bulk_run CC=0 out:0
|
|
162
160
|
src.taskill.bulk [5 funcs]
|
|
163
161
|
_rebase_config CC=1 out:3
|
|
164
162
|
_scan CC=9 out:7
|
|
@@ -221,7 +219,7 @@ EDGES:
|
|
|
221
219
|
src.taskill.cli.run → src.taskill.config.load_config
|
|
222
220
|
src.taskill.cli.status → src.taskill.config.load_config
|
|
223
221
|
src.taskill.cli.release → src.taskill.updaters.changelog.release_unreleased
|
|
224
|
-
src.taskill.cli.bulk_run_cmd →
|
|
222
|
+
src.taskill.cli.bulk_run_cmd → src.taskill.bulk.bulk_run
|
|
225
223
|
src.taskill.cli.clean_todo → src.taskill.updaters.todo.empty_todo
|
|
226
224
|
src.taskill.git_state.head_sha → src.taskill.git_state._run
|
|
227
225
|
src.taskill.git_state.commits_since → src.taskill.git_state._run
|
|
@@ -241,6 +239,10 @@ EDGES:
|
|
|
241
239
|
src.taskill.core.Taskill._apply → src.taskill.updaters.changelog.update_changelog
|
|
242
240
|
src.taskill.core.Taskill._apply → src.taskill.updaters.todo.update_todo
|
|
243
241
|
src.taskill.core.Taskill._apply → src.taskill.updaters.readme.update_readme
|
|
242
|
+
src.taskill.bulk.find_repos → src.taskill.bulk._scan
|
|
243
|
+
src.taskill.bulk.resolve_repo_config → src.taskill.config.load_config
|
|
244
|
+
src.taskill.bulk.resolve_repo_config → src.taskill.bulk._rebase_config
|
|
245
|
+
src.taskill.bulk.bulk_run → src.taskill.bulk.find_repos
|
|
244
246
|
src.taskill.updaters.readme.ReadmeUpdater._update_readme → src.taskill.updaters.readme.render_status_block
|
|
245
247
|
src.taskill.providers.windsurf_mcp.WindsurfMcpProvider.is_available → src.taskill.providers.windsurf_mcp._mcp_lib_present
|
|
246
248
|
src.taskill.providers.windsurf_mcp.WindsurfMcpProvider.is_available → src.taskill.providers.windsurf_mcp._candidate_endpoints
|
|
@@ -248,10 +250,6 @@ EDGES:
|
|
|
248
250
|
src.taskill.providers.windsurf_mcp.WindsurfMcpProvider.generate → src.taskill.providers.windsurf_mcp._mcp_lib_present
|
|
249
251
|
src.taskill.providers.openrouter.OpenRouterProvider.generate → src.taskill.providers.openrouter._normalize_model
|
|
250
252
|
src.taskill.providers.build_chain → src.taskill.providers.discover_providers
|
|
251
|
-
src.taskill.bulk.find_repos → src.taskill.bulk._scan
|
|
252
|
-
src.taskill.bulk.resolve_repo_config → src.taskill.config.load_config
|
|
253
|
-
src.taskill.bulk.resolve_repo_config → src.taskill.bulk._rebase_config
|
|
254
|
-
src.taskill.bulk.bulk_run → src.taskill.bulk.find_repos
|
|
255
253
|
```
|
|
256
254
|
|
|
257
255
|
## Test Contracts
|
|
@@ -270,7 +268,7 @@ EDGES:
|
|
|
270
268
|
|
|
271
269
|
```toon markpact:analysis path=project/calls.toon.yaml
|
|
272
270
|
# code2llm call graph | /home/tom/github/semcod/taskill
|
|
273
|
-
# nodes:
|
|
271
|
+
# nodes: 43 | edges: 35 | modules: 13
|
|
274
272
|
# CC̄=2.0
|
|
275
273
|
|
|
276
274
|
HUBS[20]:
|
|
@@ -278,34 +276,34 @@ HUBS[20]:
|
|
|
278
276
|
CC=8 in:6 out:35 total:41
|
|
279
277
|
src.taskill.cli.bulk_run_cmd
|
|
280
278
|
CC=17 in:0 out:38 total:38
|
|
281
|
-
src.taskill.providers.windsurf_mcp.WindsurfMcpProvider.generate
|
|
282
|
-
CC=7 in:0 out:32 total:32
|
|
283
279
|
src.taskill.cli.run
|
|
284
280
|
CC=16 in:0 out:32 total:32
|
|
281
|
+
src.taskill.providers.windsurf_mcp.WindsurfMcpProvider.generate
|
|
282
|
+
CC=7 in:0 out:32 total:32
|
|
285
283
|
src.taskill.providers.openrouter.OpenRouterProvider.generate
|
|
286
284
|
CC=6 in:0 out:27 total:27
|
|
287
285
|
src.taskill.bulk.bulk_run
|
|
288
|
-
CC=17 in:
|
|
289
|
-
src.taskill.cli.status
|
|
290
|
-
CC=11 in:0 out:25 total:25
|
|
286
|
+
CC=17 in:1 out:26 total:27
|
|
291
287
|
src.taskill.triggers.evaluate
|
|
292
288
|
CC=21 in:2 out:23 total:25
|
|
289
|
+
src.taskill.cli.status
|
|
290
|
+
CC=11 in:0 out:25 total:25
|
|
293
291
|
src.taskill.core.Taskill.run
|
|
294
292
|
CC=11 in:0 out:20 total:20
|
|
295
293
|
src.taskill.git_state.collect_snapshot
|
|
296
294
|
CC=3 in:1 out:13 total:14
|
|
297
|
-
src.taskill.git_state.read_coverage
|
|
298
|
-
CC=7 in:1 out:11 total:12
|
|
299
295
|
src.taskill.core.Taskill._apply
|
|
300
296
|
CC=4 in:0 out:12 total:12
|
|
297
|
+
src.taskill.git_state.read_coverage
|
|
298
|
+
CC=7 in:1 out:11 total:12
|
|
301
299
|
src.taskill.updaters.readme.ReadmeUpdater._update_readme
|
|
302
300
|
CC=6 in:0 out:11 total:11
|
|
301
|
+
src.taskill.providers.windsurf_mcp._candidate_endpoints
|
|
302
|
+
CC=5 in:2 out:7 total:9
|
|
303
303
|
src.taskill.bulk._scan
|
|
304
304
|
CC=9 in:2 out:7 total:9
|
|
305
305
|
src.taskill.git_state.commits_since
|
|
306
306
|
CC=7 in:1 out:8 total:9
|
|
307
|
-
src.taskill.providers.windsurf_mcp._candidate_endpoints
|
|
308
|
-
CC=5 in:2 out:7 total:9
|
|
309
307
|
src.taskill.git_state.read_failed_tests
|
|
310
308
|
CC=5 in:1 out:8 total:9
|
|
311
309
|
src.taskill.cli.release
|
|
@@ -316,8 +314,6 @@ HUBS[20]:
|
|
|
316
314
|
CC=3 in:1 out:6 total:7
|
|
317
315
|
|
|
318
316
|
MODULES:
|
|
319
|
-
project.map.toon [1 funcs]
|
|
320
|
-
bulk_run CC=0 out:0
|
|
321
317
|
src.taskill.bulk [5 funcs]
|
|
322
318
|
_rebase_config CC=1 out:3
|
|
323
319
|
_scan CC=9 out:7
|
|
@@ -380,7 +376,7 @@ EDGES:
|
|
|
380
376
|
src.taskill.cli.run → src.taskill.config.load_config
|
|
381
377
|
src.taskill.cli.status → src.taskill.config.load_config
|
|
382
378
|
src.taskill.cli.release → src.taskill.updaters.changelog.release_unreleased
|
|
383
|
-
src.taskill.cli.bulk_run_cmd →
|
|
379
|
+
src.taskill.cli.bulk_run_cmd → src.taskill.bulk.bulk_run
|
|
384
380
|
src.taskill.cli.clean_todo → src.taskill.updaters.todo.empty_todo
|
|
385
381
|
src.taskill.git_state.head_sha → src.taskill.git_state._run
|
|
386
382
|
src.taskill.git_state.commits_since → src.taskill.git_state._run
|
|
@@ -400,6 +396,10 @@ EDGES:
|
|
|
400
396
|
src.taskill.core.Taskill._apply → src.taskill.updaters.changelog.update_changelog
|
|
401
397
|
src.taskill.core.Taskill._apply → src.taskill.updaters.todo.update_todo
|
|
402
398
|
src.taskill.core.Taskill._apply → src.taskill.updaters.readme.update_readme
|
|
399
|
+
src.taskill.bulk.find_repos → src.taskill.bulk._scan
|
|
400
|
+
src.taskill.bulk.resolve_repo_config → src.taskill.config.load_config
|
|
401
|
+
src.taskill.bulk.resolve_repo_config → src.taskill.bulk._rebase_config
|
|
402
|
+
src.taskill.bulk.bulk_run → src.taskill.bulk.find_repos
|
|
403
403
|
src.taskill.updaters.readme.ReadmeUpdater._update_readme → src.taskill.updaters.readme.render_status_block
|
|
404
404
|
src.taskill.providers.windsurf_mcp.WindsurfMcpProvider.is_available → src.taskill.providers.windsurf_mcp._mcp_lib_present
|
|
405
405
|
src.taskill.providers.windsurf_mcp.WindsurfMcpProvider.is_available → src.taskill.providers.windsurf_mcp._candidate_endpoints
|
|
@@ -407,30 +407,26 @@ EDGES:
|
|
|
407
407
|
src.taskill.providers.windsurf_mcp.WindsurfMcpProvider.generate → src.taskill.providers.windsurf_mcp._mcp_lib_present
|
|
408
408
|
src.taskill.providers.openrouter.OpenRouterProvider.generate → src.taskill.providers.openrouter._normalize_model
|
|
409
409
|
src.taskill.providers.build_chain → src.taskill.providers.discover_providers
|
|
410
|
-
src.taskill.bulk.find_repos → src.taskill.bulk._scan
|
|
411
|
-
src.taskill.bulk.resolve_repo_config → src.taskill.config.load_config
|
|
412
|
-
src.taskill.bulk.resolve_repo_config → src.taskill.bulk._rebase_config
|
|
413
|
-
src.taskill.bulk.bulk_run → src.taskill.bulk.find_repos
|
|
414
410
|
```
|
|
415
411
|
|
|
416
412
|
### Code Analysis (`project/analysis.toon.yaml`)
|
|
417
413
|
|
|
418
414
|
```toon markpact:analysis path=project/analysis.toon.yaml
|
|
419
|
-
# code2llm | 38f
|
|
420
|
-
# CC̄=2.0 | critical:5/
|
|
415
|
+
# code2llm | 38f 5318L | python:18,yaml:12,yml:3,txt:2,shell:2,toml:1 | 2026-04-25
|
|
416
|
+
# CC̄=2.0 | critical:5/172 | dups:0 | cycles:1
|
|
421
417
|
|
|
422
418
|
HEALTH[5]:
|
|
423
419
|
🟡 CC run CC=16 (limit:15)
|
|
424
420
|
🟡 CC bulk_run_cmd CC=17 (limit:15)
|
|
425
421
|
🟡 CC evaluate CC=21 (limit:15)
|
|
426
|
-
🟡 CC _update_todo CC=21 (limit:15)
|
|
427
422
|
🟡 CC bulk_run CC=17 (limit:15)
|
|
423
|
+
🟡 CC _update_todo CC=21 (limit:15)
|
|
428
424
|
|
|
429
425
|
REFACTOR[2]:
|
|
430
426
|
1. split 5 high-CC methods (CC>15)
|
|
431
427
|
2. break 1 circular dependencies
|
|
432
428
|
|
|
433
|
-
PIPELINES[
|
|
429
|
+
PIPELINES[36]:
|
|
434
430
|
[1] Src [stamp]: stamp
|
|
435
431
|
PURITY: 100% pure
|
|
436
432
|
[2] Src [main]: main → _setup_logging
|
|
@@ -445,7 +441,7 @@ PIPELINES[37]:
|
|
|
445
441
|
LAYERS:
|
|
446
442
|
src/ CC̄=4.7 ←in:0 →out:0
|
|
447
443
|
│ !! cli 347L 0C 8m CC=17 ←0
|
|
448
|
-
│ !! bulk 249L 1C 7m CC=17 ←
|
|
444
|
+
│ !! bulk 249L 1C 7m CC=17 ←1
|
|
449
445
|
│ core 211L 2C 9m CC=11 ←0
|
|
450
446
|
│ config 170L 4C 1m CC=8 ←3
|
|
451
447
|
│ algorithmic 155L 1C 5m CC=10 ←0
|
|
@@ -464,12 +460,12 @@ LAYERS:
|
|
|
464
460
|
│ __init__ 30L 0C 0m CC=0.0 ←0
|
|
465
461
|
│
|
|
466
462
|
project/ CC̄=0.0 ←in:0 →out:0
|
|
467
|
-
│ !! calls.yaml
|
|
468
|
-
│ map.toon.yaml
|
|
463
|
+
│ !! calls.yaml 622L 0C 0m CC=0.0 ←0
|
|
464
|
+
│ map.toon.yaml 209L 0C 99m CC=0.0 ←0
|
|
469
465
|
│ calls.toon.yaml 142L 0C 0m CC=0.0 ←0
|
|
470
|
-
│ analysis.toon.yaml
|
|
466
|
+
│ analysis.toon.yaml 85L 0C 0m CC=0.0 ←0
|
|
467
|
+
│ evolution.toon.yaml 59L 0C 0m CC=0.0 ←0
|
|
471
468
|
│ project.toon.yaml 56L 0C 0m CC=0.0 ←0
|
|
472
|
-
│ evolution.toon.yaml 55L 0C 0m CC=0.0 ←0
|
|
473
469
|
│ prompt.txt 47L 0C 0m CC=0.0 ←0
|
|
474
470
|
│ duplication.toon.yaml 34L 0C 0m CC=0.0 ←0
|
|
475
471
|
│
|
|
@@ -479,9 +475,9 @@ LAYERS:
|
|
|
479
475
|
│ pyproject.toml 97L 0C 0m CC=0.0 ←0
|
|
480
476
|
│ daily_update.sh 93L 0C 0m CC=0.0 ←0
|
|
481
477
|
│ prefact.yaml 91L 0C 0m CC=0.0 ←0
|
|
478
|
+
│ tree.txt 80L 0C 0m CC=0.0 ←0
|
|
482
479
|
│ taskill.yaml 57L 0C 0m CC=0.0 ←0
|
|
483
480
|
│ project.sh 47L 0C 0m CC=0.0 ←0
|
|
484
|
-
│ tree.sh 1L 0C 0m CC=0.0 ←0
|
|
485
481
|
│
|
|
486
482
|
examples/ CC̄=0.0 ←in:0 →out:0
|
|
487
483
|
│ ansible-playbook.yml 52L 0C 0m CC=0.0 ←0
|
|
@@ -492,11 +488,7 @@ LAYERS:
|
|
|
492
488
|
│ generated-cli-tests.testql.toon.yaml 12L 0C 0m CC=0.0 ←0
|
|
493
489
|
│
|
|
494
490
|
|
|
495
|
-
COUPLING:
|
|
496
|
-
project.map src.taskill
|
|
497
|
-
project.map ── ←1
|
|
498
|
-
src.taskill 1 ──
|
|
499
|
-
CYCLES: 1
|
|
491
|
+
COUPLING: no cross-package imports detected
|
|
500
492
|
|
|
501
493
|
EXTERNAL:
|
|
502
494
|
validation: run `vallm batch .` → validation.toon
|
|
@@ -514,7 +506,7 @@ SUMMARY:
|
|
|
514
506
|
dup_groups: 1
|
|
515
507
|
dup_fragments: 2
|
|
516
508
|
saved_lines: 29
|
|
517
|
-
scan_ms:
|
|
509
|
+
scan_ms: 4828
|
|
518
510
|
|
|
519
511
|
HOTSPOTS[2] (files with most duplication):
|
|
520
512
|
src/taskill/providers/__init__.py dup=29L groups=1 frags=1 (1.3%)
|
|
@@ -545,7 +537,7 @@ METRICS-TARGET:
|
|
|
545
537
|
### Evolution / Churn (`project/evolution.toon.yaml`)
|
|
546
538
|
|
|
547
539
|
```toon markpact:analysis path=project/evolution.toon.yaml
|
|
548
|
-
# code2llm/evolution |
|
|
540
|
+
# code2llm/evolution | 172 func | 18f | 2026-04-25
|
|
549
541
|
|
|
550
542
|
NEXT[5] (ranked by impact):
|
|
551
543
|
[1] ! SPLIT-FUNC TodoUpdater._update_todo CC=21 fan=20
|
taskill-0.1.4/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.1.4
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
# code2llm | 38f
|
|
2
|
-
# CC̄=2.0 | critical:5/
|
|
1
|
+
# code2llm | 38f 5318L | python:18,yaml:12,yml:3,txt:2,shell:2,toml:1 | 2026-04-25
|
|
2
|
+
# CC̄=2.0 | critical:5/172 | dups:0 | cycles:1
|
|
3
3
|
|
|
4
4
|
HEALTH[5]:
|
|
5
5
|
🟡 CC run CC=16 (limit:15)
|
|
6
6
|
🟡 CC bulk_run_cmd CC=17 (limit:15)
|
|
7
7
|
🟡 CC evaluate CC=21 (limit:15)
|
|
8
|
-
🟡 CC _update_todo CC=21 (limit:15)
|
|
9
8
|
🟡 CC bulk_run CC=17 (limit:15)
|
|
9
|
+
🟡 CC _update_todo CC=21 (limit:15)
|
|
10
10
|
|
|
11
11
|
REFACTOR[2]:
|
|
12
12
|
1. split 5 high-CC methods (CC>15)
|
|
13
13
|
2. break 1 circular dependencies
|
|
14
14
|
|
|
15
|
-
PIPELINES[
|
|
15
|
+
PIPELINES[36]:
|
|
16
16
|
[1] Src [stamp]: stamp
|
|
17
17
|
PURITY: 100% pure
|
|
18
18
|
[2] Src [main]: main → _setup_logging
|
|
@@ -27,7 +27,7 @@ PIPELINES[37]:
|
|
|
27
27
|
LAYERS:
|
|
28
28
|
src/ CC̄=4.7 ←in:0 →out:0
|
|
29
29
|
│ !! cli 347L 0C 8m CC=17 ←0
|
|
30
|
-
│ !! bulk 249L 1C 7m CC=17 ←
|
|
30
|
+
│ !! bulk 249L 1C 7m CC=17 ←1
|
|
31
31
|
│ core 211L 2C 9m CC=11 ←0
|
|
32
32
|
│ config 170L 4C 1m CC=8 ←3
|
|
33
33
|
│ algorithmic 155L 1C 5m CC=10 ←0
|
|
@@ -46,12 +46,12 @@ LAYERS:
|
|
|
46
46
|
│ __init__ 30L 0C 0m CC=0.0 ←0
|
|
47
47
|
│
|
|
48
48
|
project/ CC̄=0.0 ←in:0 →out:0
|
|
49
|
-
│ !! calls.yaml
|
|
50
|
-
│ map.toon.yaml
|
|
49
|
+
│ !! calls.yaml 622L 0C 0m CC=0.0 ←0
|
|
50
|
+
│ map.toon.yaml 209L 0C 99m CC=0.0 ←0
|
|
51
51
|
│ calls.toon.yaml 142L 0C 0m CC=0.0 ←0
|
|
52
|
-
│ analysis.toon.yaml
|
|
52
|
+
│ analysis.toon.yaml 85L 0C 0m CC=0.0 ←0
|
|
53
|
+
│ evolution.toon.yaml 59L 0C 0m CC=0.0 ←0
|
|
53
54
|
│ project.toon.yaml 56L 0C 0m CC=0.0 ←0
|
|
54
|
-
│ evolution.toon.yaml 55L 0C 0m CC=0.0 ←0
|
|
55
55
|
│ prompt.txt 47L 0C 0m CC=0.0 ←0
|
|
56
56
|
│ duplication.toon.yaml 34L 0C 0m CC=0.0 ←0
|
|
57
57
|
│
|
|
@@ -61,9 +61,9 @@ LAYERS:
|
|
|
61
61
|
│ pyproject.toml 97L 0C 0m CC=0.0 ←0
|
|
62
62
|
│ daily_update.sh 93L 0C 0m CC=0.0 ←0
|
|
63
63
|
│ prefact.yaml 91L 0C 0m CC=0.0 ←0
|
|
64
|
+
│ tree.txt 80L 0C 0m CC=0.0 ←0
|
|
64
65
|
│ taskill.yaml 57L 0C 0m CC=0.0 ←0
|
|
65
66
|
│ project.sh 47L 0C 0m CC=0.0 ←0
|
|
66
|
-
│ tree.sh 1L 0C 0m CC=0.0 ←0
|
|
67
67
|
│
|
|
68
68
|
examples/ CC̄=0.0 ←in:0 →out:0
|
|
69
69
|
│ ansible-playbook.yml 52L 0C 0m CC=0.0 ←0
|
|
@@ -74,11 +74,7 @@ LAYERS:
|
|
|
74
74
|
│ generated-cli-tests.testql.toon.yaml 12L 0C 0m CC=0.0 ←0
|
|
75
75
|
│
|
|
76
76
|
|
|
77
|
-
COUPLING:
|
|
78
|
-
project.map src.taskill
|
|
79
|
-
project.map ── ←1
|
|
80
|
-
src.taskill 1 ──
|
|
81
|
-
CYCLES: 1
|
|
77
|
+
COUPLING: no cross-package imports detected
|
|
82
78
|
|
|
83
79
|
EXTERNAL:
|
|
84
80
|
validation: run `vallm batch .` → validation.toon
|