taskledger 0.5.0__tar.gz → 0.5.2__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.
- {taskledger-0.5.0 → taskledger-0.5.2}/.planledger.toml +1 -1
- {taskledger-0.5.0 → taskledger-0.5.2}/.taskledger.toml +2 -2
- {taskledger-0.5.0 → taskledger-0.5.2}/AGENTS.md +2 -2
- {taskledger-0.5.0 → taskledger-0.5.2}/API.md +3 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/CHANGELOG.md +25 -0
- {taskledger-0.5.0/taskledger.egg-info → taskledger-0.5.2}/PKG-INFO +14 -9
- {taskledger-0.5.0 → taskledger-0.5.2}/README.md +4 -4
- taskledger-0.5.2/docs/api.md +216 -0
- taskledger-0.5.2/docs/architecture_taskledger_split.md +37 -0
- taskledger-0.5.2/docs/command_contract.md +711 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/docs/conf.py +13 -1
- taskledger-0.5.2/docs/full_task_cycle.md +354 -0
- taskledger-0.5.2/docs/index.md +27 -0
- taskledger-0.5.2/docs/multi_repo.md +47 -0
- taskledger-0.5.2/docs/public_surface.md +152 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/docs/requirements.txt +1 -0
- taskledger-0.5.2/docs/service_boundary_whitelist.md +113 -0
- taskledger-0.5.2/docs/sync.md +169 -0
- taskledger-0.5.2/docs/transfer.md +78 -0
- taskledger-0.5.2/docs/usage.md +758 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/pyproject.toml +10 -4
- {taskledger-0.5.0 → taskledger-0.5.2}/skills/taskledger/SKILL.md +48 -6
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/plan_lint/plan-lint.feature +2 -2
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/_version.py +3 -3
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/api/plans.py +6 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/api/task_runs.py +2 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli.py +1 -1
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli_implement.py +57 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli_plan.py +124 -27
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli_validate.py +25 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/command_inventory.py +31 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/domain/run.py +17 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/doctor.py +33 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/implementation_flow.py +14 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/navigation.py +95 -26
- taskledger-0.5.2/taskledger/services/plan_input.py +692 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/plan_lint.py +32 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/plan_materialization.py +23 -16
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/plan_review.py +64 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/planning_flow.py +39 -22
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/tasks.py +71 -6
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/validation_flow.py +44 -32
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/workflow_guidance.py +75 -8
- taskledger-0.5.2/taskledger/services/workspace_snapshot.py +572 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/ledger_config.py +15 -5
- {taskledger-0.5.0 → taskledger-0.5.2/taskledger.egg-info}/PKG-INFO +14 -9
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger.egg-info/SOURCES.txt +20 -11
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger.egg-info/requires.txt +6 -0
- taskledger-0.5.2/taskledger.egg-info/scm_file_list.json +458 -0
- taskledger-0.5.2/taskledger.egg-info/scm_version.json +8 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/conftest.py +24 -41
- taskledger-0.5.2/tests/test_cli_runner_compatibility.py +184 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_command_example_linter.py +25 -4
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_command_inventory.py +9 -3
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_docs_and_skill.py +57 -37
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_import_boundaries.py +2 -0
- taskledger-0.5.2/tests/test_plan_input.py +411 -0
- taskledger-0.5.2/tests/test_plan_input_cli.py +398 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_plan_lint.py +119 -3
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_plan_review.py +26 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_question_plan_regeneration.py +14 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_service_boundaries.py +5 -5
- taskledger-0.5.2/tests/test_validation_git_snapshot_recovery.py +227 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_workflow_guidance.py +11 -0
- taskledger-0.5.2/tests/test_workspace_snapshot.py +74 -0
- taskledger-0.5.0/docs/api.rst +0 -233
- taskledger-0.5.0/docs/architecture_taskledger_split.rst +0 -41
- taskledger-0.5.0/docs/command_contract.rst +0 -707
- taskledger-0.5.0/docs/full_task_cycle.rst +0 -371
- taskledger-0.5.0/docs/index.rst +0 -29
- taskledger-0.5.0/docs/multi_repo.rst +0 -50
- taskledger-0.5.0/docs/public_surface.rst +0 -166
- taskledger-0.5.0/docs/service_boundary_whitelist.rst +0 -120
- taskledger-0.5.0/docs/sync.rst +0 -178
- taskledger-0.5.0/docs/transfer.rst +0 -84
- taskledger-0.5.0/docs/usage.rst +0 -779
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/archive/records/building_blocks/al_block_0083.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/archive/records/concepts/al_concept_0081.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/archive/records/runtime/al_runtime_0076.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/archive/records/runtime/al_runtime_0084.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/profiles/arc42/sections/al_content_0001.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/profiles/arc42/sections/al_content_0002.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/profiles/arc42/sections/al_content_0003.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/profiles/arc42/sections/al_content_0004.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/profiles/arc42/sections/al_content_0005.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/profiles/arc42/sections/al_content_0006.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/profiles/arc42/sections/al_content_0007.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/profiles/arc42/sections/al_content_0008.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/profiles/arc42/sections/al_content_0009.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/profiles/arc42/sections/al_content_0010.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/profiles/arc42/sections/al_content_0011.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/profiles/arc42/sections/al_content_0012.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/building_blocks/al_block_0029.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/building_blocks/al_block_0030.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/building_blocks/al_block_0031.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/building_blocks/al_block_0032.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/building_blocks/al_block_0033.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/building_blocks/al_block_0034.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/concepts/al_concept_0040.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/concepts/al_concept_0041.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/concepts/al_concept_0042.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/concepts/al_concept_0043.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/concepts/al_concept_0044.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/concepts/al_concept_0045.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/concepts/al_concept_0082.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/constraints/al_constraint_0016.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/constraints/al_constraint_0017.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/constraints/al_constraint_0018.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/constraints/al_constraint_0019.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/contexts/al_context_0020.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/contexts/al_context_0021.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/contexts/al_context_0022.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/contexts/al_context_0023.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/decisions/al_adr_0046.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/decisions/al_adr_0047.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/decisions/al_adr_0048.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/decisions/al_adr_0049.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/decisions/al_adr_0050.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/decisions/al_adr_0051.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/deployment/al_deploy_0039.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/glossary/al_glossary_0061.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/glossary/al_glossary_0062.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/glossary/al_glossary_0063.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/glossary/al_glossary_0064.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/glossary/al_glossary_0065.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/glossary/al_glossary_0066.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/glossary/al_glossary_0067.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/glossary/al_glossary_0068.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/glossary/al_glossary_0069.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/glossary/al_glossary_0070.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/glossary/al_glossary_0071.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/glossary/al_glossary_0072.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/glossary/al_glossary_0073.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/quality_requirements/al_quality_0052.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/quality_requirements/al_quality_0053.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/quality_requirements/al_quality_0054.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/quality_requirements/al_quality_0055.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/quality_requirements/al_quality_0056.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/requirements/al_content_0013.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/requirements/al_content_0014.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/requirements/al_content_0015.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/risks/al_risk_0057.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/risks/al_risk_0058.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/risks/al_risk_0059.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/risks/al_risk_0060.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/runtime/al_runtime_0035.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/runtime/al_runtime_0036.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/runtime/al_runtime_0037.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/runtime/al_runtime_0038.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/runtime/al_runtime_0074.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/runtime/al_runtime_0075.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/runtime/al_runtime_0077.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/runtime/al_runtime_0078.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/stakeholders/al_content_0079.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/stakeholders/al_content_0080.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/strategy/al_strategy_0024.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/strategy/al_strategy_0025.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/strategy/al_strategy_0026.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/strategy/al_strategy_0027.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/records/strategy/al_strategy_0028.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/source-state.json +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger/storage.yaml +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.archledger.toml +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.codecrate.toml +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.github/workflows/codecov.yml +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.github/workflows/pre-commit.yml +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.github/workflows/python-publish.yml +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.github/workflows/tests.yml +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.gitignore +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.pre-commit-config.yaml +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.readthedocs.yaml +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.releaseledger.toml +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.ruff.toml +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/.specweave.toml +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/ARCHITECTURE.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/LICENSE +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/Makefile +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/docs/Makefile +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/docs/build.sh +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/scripts/find_code_clones.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/setup.cfg +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/setup.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/README.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/UNMAPPED_TESTS.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/evidence/.gitkeep +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/evidence/taskledger-test-feature-coverage.json +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/.gitkeep +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/active_task/active-task.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/actor_harness_state/actor-harness-state.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/actor_resolution/actor-resolution.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/agent_command_logging/agent-command-logging.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/agent_session_protocol/agent-session-protocol.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/atomic_fast_io/atomic-fast-io.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/bdd_cli/bdd-cli.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/bdd_gherkin/bdd-gherkin.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/bdd_models/bdd-models.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/bdd_report_import/bdd-report-import.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/bdd_storage/bdd-storage.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/bdd_validation_integration/bdd-validation-integration.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/cli_command_contract/cli-command-contract.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/cli_import_resilience/cli-import-resilience.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/code_reviews/code-reviews.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/command_example_linter/command-example-linter.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/command_inventory/command-inventory.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/command_runner/command-runner.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/compact_mutation_output/compact-mutation-output.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/config_cli/config-cli.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/delta_remaining_contracts/delta-remaining-contracts.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/docs_and_skill/docs-and-skill.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/doctor/doctor.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/domain_policies/domain-policies.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/event_logging_config/event-logging-config.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/events/events.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/file_link_snapshots/file-link-snapshots.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/find_code_clones_script/find-code-clones-script.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/handoff_lifecycle/handoff-lifecycle.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/help_subprocess/help-subprocess.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/implementation_change_scan/implementation-change-scan.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/implementation_checks/implementation-checks.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/json_contracts/json-contracts.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/legacy_cleanup_contracts/legacy-cleanup-contracts.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/lifecycle_policies/lifecycle-policies.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/lock_diagnostics/lock-diagnostics.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/locks_audit/locks-audit.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/models_v1_schema/models-v1-schema.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/monitor/monitor.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/next_action_expired_lock/next-action-expired-lock.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/no_log_feature/no-log-feature.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/plan_approval_contract/plan-approval-contract.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/plan_review/plan-review.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/plan_revision_workflow/plan-revision-workflow.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/plan_todo_materialization/plan-todo-materialization.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/project_root_config/project-root-config.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/question_add_many/question-add-many.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/question_filter_answers/question-filter-answers.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/question_plan_regeneration/question-plan-regeneration.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/ready_work/ready-work.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/release_changelog/release-changelog.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/search/search.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/service_boundaries/service-boundaries.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/services_dashboard/services-dashboard.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/sidecar_collections/sidecar-collections.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/storage_bundle_layout/storage-bundle-layout.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/storage_common/storage-common.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/storage_init/storage-init.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/storage_migration/storage-migration.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/storage_repos/storage-repos.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/storage_sync/storage-sync.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/sync_git/sync-git.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/task_archive/archive.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/task_events/events.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/task_markdown_export/markdown-export.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/task_report/report.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/taskledger_branch_scoped_ledgers/taskledger-branch-scoped-ledgers.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/taskledger_cli_api_parity/taskledger-cli-api-parity.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/taskledger_v2_cli/taskledger-v2-cli.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/taskledger_v2_exchange/taskledger-v2-exchange.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/tasks_service_static/tasks-service-static.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/todo_implementation_gate/todo-implementation-gate.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/trace/trace.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/tree_command/tree-command.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/usage_cli/usage-cli.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/worker_pipeline_cli/worker-pipeline-cli.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/worker_pipeline_config/worker-pipeline-config.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/worker_pipeline_context/worker-pipeline-context.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/worker_pipeline_handoff/worker-pipeline-handoff.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/worker_pipeline_plan_template/worker-pipeline-plan-template.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/worker_pipeline_todos/worker-pipeline-todos.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/features/workflow_guidance/workflow-guidance.feature +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/manifest.json +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/mappings/.gitkeep +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/reports/specweave/.gitkeep +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/reports/specweave/coverage-gaps.md +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/reports/specweave/coverage.json +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/specs/behavior/reports/specweave/mappings.json +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/__init__.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/__main__.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/api/__init__.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/api/config.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/api/handoff.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/api/introductions.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/api/locks.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/api/project.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/api/questions.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/api/releases.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/api/reviews.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/api/search.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/api/storage.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/api/sync.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/api/tasks.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli_actor.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli_archive.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli_common.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli_config.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli_ledger.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli_migrate.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli_misc.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli_pipeline.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli_question.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli_ref.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli_release.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli_review.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli_storage.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli_sync.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli_task.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/cli_trace.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/domain/__init__.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/domain/_model_utils.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/domain/active_state.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/domain/actor.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/domain/change.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/domain/check.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/domain/event.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/domain/handoff.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/domain/lock.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/domain/models.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/domain/plan.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/domain/policies.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/domain/question.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/domain/release.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/domain/review.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/domain/sidecars.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/domain/states.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/domain/task.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/errors.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/exchange.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/ids.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/launcher.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/py.typed +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/refs.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/search.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/__init__.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/actors.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/agent_logging.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/agent_transcripts.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/change_tracking.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/check_tracking.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/code_review.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/command_runner.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/dashboard.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/doctor_checks/migration_checks.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/doctor_checks/project_scan.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/doctor_checks/task_checks.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/event_logging.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/file_links.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/git_sync.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/git_utils.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/handoff.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/handoff_lifecycle.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/lock_diagnostics.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/monitor.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/next_action_model.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/next_action_payload.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/phase5_lock_transfer.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/plan_editing.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/plan_hash.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/ready_work.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/releases.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/run_store.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/storage_locations.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/task_archive.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/task_collections.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/task_events.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/task_export.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/task_lifecycle.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/task_queries.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/task_repair.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/task_reports.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/trace.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/tree.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/usage.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/validation.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/worker_context.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/services/worker_pipeline.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/__init__.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/agent_logs.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/atomic.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/common.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/events.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/frontmatter.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/indexes.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/init.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/locks.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/meta.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/migrations.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/paths.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/project_config.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/project_identity.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/repos.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/sidecar_index.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/task_index.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/task_store.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/toml_edit.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/worker_pipeline_config.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/storage/yaml_store.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger/timeutils.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger.egg-info/dependency_links.txt +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger.egg-info/entry_points.txt +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/taskledger.egg-info/top_level.txt +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/__init__.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/support/__init__.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/support/builders.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/support/fake_command_runner.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_active_task.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_actor_harness_state.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_actor_resolution.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_agent_command_logging.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_agent_session_protocol.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_atomic_fast_io.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_cli_command_contract.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_cli_import_resilience.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_code_reviews.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_command_runner.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_compact_mutation_output.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_config_cli.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_delta_remaining_contracts.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_doctor.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_domain_policies.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_event_logging_config.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_events.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_file_link_snapshots.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_find_code_clones_script.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_handoff_lifecycle.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_help_subprocess.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_implementation_change_scan.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_implementation_checks.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_json_contracts.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_ledgercore_dependency.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_legacy_cleanup_contracts.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_lifecycle_policies.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_lock_diagnostics.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_locks_audit.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_models_v1_schema.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_monitor.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_next_action_expired_lock.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_no_log_feature.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_performance_caching.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_plan_approval_contract.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_plan_revision_workflow.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_plan_todo_materialization.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_project_root_config.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_question_add_many.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_question_filter_answers.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_ready_work.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_release_changelog.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_resource_refs.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_search.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_services_dashboard.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_sidecar_collections.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_storage_bundle_layout.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_storage_common.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_storage_init.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_storage_migration.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_storage_repos.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_storage_sync.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_storage_yaml_store.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_sync_git.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_task_archive.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_task_events.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_task_markdown_export.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_task_report.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_taskledger_branch_scoped_ledgers.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_taskledger_cli_api_parity.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_taskledger_v2_cli.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_taskledger_v2_exchange.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_tasks_service_static.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_todo_implementation_gate.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_trace.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_tree_command.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_usage_cli.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_worker_pipeline_cli.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_worker_pipeline_config.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_worker_pipeline_context.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_worker_pipeline_handoff.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_worker_pipeline_plan_template.py +0 -0
- {taskledger-0.5.0 → taskledger-0.5.2}/tests/test_worker_pipeline_todos.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Project-local taskledger configuration.
|
|
2
2
|
# This file lives in the source project root.
|
|
3
3
|
config_version = 2
|
|
4
|
-
taskledger_dir = '../
|
|
4
|
+
taskledger_dir = '../ledger/task/taskledger'
|
|
5
5
|
|
|
6
6
|
# Stable project identity. Commit this with your source tree.
|
|
7
7
|
project_uuid = "081c7c05-2d10-42b7-9b37-3d814c2f400a"
|
|
@@ -9,7 +9,7 @@ project_uuid = "081c7c05-2d10-42b7-9b37-3d814c2f400a"
|
|
|
9
9
|
# Taskledger branch-scoped state. This block is intentionally safe to commit.
|
|
10
10
|
ledger_ref = "main"
|
|
11
11
|
ledger_parent_ref = ""
|
|
12
|
-
ledger_next_task_number =
|
|
12
|
+
ledger_next_task_number = 139
|
|
13
13
|
ledger_branch_guard = "off"
|
|
14
14
|
|
|
15
15
|
[prompt_profiles.planning]
|
|
@@ -124,8 +124,8 @@ Use the owning layer before editing.
|
|
|
124
124
|
- `taskledger/errors.py` — public exception taxonomy and exit codes
|
|
125
125
|
- `taskledger/command_inventory.py` — registered command metadata
|
|
126
126
|
- `skills/taskledger/SKILL.md` — external agent skill protocol
|
|
127
|
-
- `docs/command_contract.
|
|
128
|
-
- `API.md`, `docs/api.
|
|
127
|
+
- `docs/command_contract.md` — CLI grammar contract
|
|
128
|
+
- `API.md`, `docs/api.md`, `docs/public_surface.md` — public API documentation
|
|
129
129
|
|
|
130
130
|
## 4. Packaging Rule for Skills
|
|
131
131
|
|
|
@@ -115,6 +115,8 @@ from taskledger.errors import (
|
|
|
115
115
|
- `propose_plan`
|
|
116
116
|
- `plan_template`
|
|
117
117
|
- `upsert_plan`
|
|
118
|
+
- `check_plan_input`
|
|
119
|
+
- `plan_input_schema_text`
|
|
118
120
|
- `PlanReviewOptions`
|
|
119
121
|
- `build_plan_review_payload`
|
|
120
122
|
- `render_plan_review`
|
|
@@ -159,6 +161,7 @@ payload = plan_guidance(Path.cwd(), "task-0001")
|
|
|
159
161
|
- `start_implementation`
|
|
160
162
|
- `restart_implementation`
|
|
161
163
|
- `resume_implementation`
|
|
164
|
+
- `refresh_implementation_snapshot`
|
|
162
165
|
- `log_implementation`
|
|
163
166
|
- `add_implementation_deviation`
|
|
164
167
|
- `add_implementation_artifact`
|
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [v0.5.2] - 2026-07-10
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Added plan review approval brief with decision status, question status, and structured body heading lint rule
|
|
8
|
+
|
|
9
|
+
### Quality
|
|
10
|
+
|
|
11
|
+
- Improved type safety in WorkspaceContentSnapshot and WorktreePathEntry deserialization with round-trip tests
|
|
12
|
+
|
|
13
|
+
<!-- generated by releaseledger -->
|
|
14
|
+
|
|
15
|
+
## [v0.5.1] - 2026-06-26
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- Added plan check command and plan input service for validating editable plan input without creating or revising plans
|
|
20
|
+
- Added implement snapshot refresh command to accept current workspace as implementation snapshot when validation is blocked by IMPLEMENTATION_SNAPSHOT_MISMATCH
|
|
21
|
+
|
|
22
|
+
### Documentation
|
|
23
|
+
|
|
24
|
+
- Converted Sphinx RST documentation to Markdown with myst-parser
|
|
25
|
+
|
|
26
|
+
<!-- generated by releaseledger -->
|
|
27
|
+
|
|
3
28
|
## [v0.5.0] - 2026-06-14
|
|
4
29
|
|
|
5
30
|
### Added
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: taskledger
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.2
|
|
4
4
|
Summary: Durable project-state storage and CLI for coding workflows
|
|
5
5
|
Author: Taskledger Contributors
|
|
6
6
|
Maintainer: Holger Nahrstaedt
|
|
7
7
|
License-Expression: Apache-2.0
|
|
8
|
-
Project-URL: Homepage, https://github.com/
|
|
9
|
-
Project-URL: Repository, https://github.com/
|
|
10
|
-
Project-URL: Issues, https://github.com/
|
|
11
|
-
Project-URL: Changelog, https://github.com/
|
|
8
|
+
Project-URL: Homepage, https://github.com/ledgerwerk/taskledger
|
|
9
|
+
Project-URL: Repository, https://github.com/ledgerwerk/taskledger
|
|
10
|
+
Project-URL: Issues, https://github.com/ledgerwerk/taskledger/issues
|
|
11
|
+
Project-URL: Changelog, https://github.com/ledgerwerk/taskledger/releases
|
|
12
12
|
Keywords: cli,durable-state,project-state,developer-tools,workflows
|
|
13
13
|
Classifier: Development Status :: 4 - Beta
|
|
14
14
|
Classifier: Environment :: Console
|
|
@@ -39,6 +39,11 @@ Requires-Dist: pytest-xdist; extra == "dev"
|
|
|
39
39
|
Requires-Dist: ruff; extra == "dev"
|
|
40
40
|
Requires-Dist: twine; extra == "dev"
|
|
41
41
|
Requires-Dist: types-PyYAML; extra == "dev"
|
|
42
|
+
Provides-Extra: docs
|
|
43
|
+
Requires-Dist: sphinx; extra == "docs"
|
|
44
|
+
Requires-Dist: sphinx-rtd-theme; extra == "docs"
|
|
45
|
+
Requires-Dist: myst-parser; extra == "docs"
|
|
46
|
+
Requires-Dist: rst-to-myst; extra == "docs"
|
|
42
47
|
Provides-Extra: rich
|
|
43
48
|
Requires-Dist: rich; extra == "rich"
|
|
44
49
|
Dynamic: license-file
|
|
@@ -68,7 +73,7 @@ The normal agent path is deliberately small:
|
|
|
68
73
|
actor whoami
|
|
69
74
|
task active | task show | task create | task activate | task follow-up
|
|
70
75
|
next-action | context | can
|
|
71
|
-
plan start -> plan template -> plan upsert -> plan lint -> plan accept
|
|
76
|
+
plan start -> plan guidance -> plan template -> plan check -> plan upsert -> plan lint -> plan accept
|
|
72
77
|
question add | question add-many | question answer | question answer-many | question status | question answers
|
|
73
78
|
todo next | todo show | todo done | todo status
|
|
74
79
|
implement start | implement resume | implement change | implement scan-changes | implement finish
|
|
@@ -172,7 +177,7 @@ taskledger --json plan guidance
|
|
|
172
177
|
|
|
173
178
|
This guidance is advisory and cannot override lifecycle gates, user approval,
|
|
174
179
|
validation requirements, lock rules, or higher-priority harness instructions.
|
|
175
|
-
See `docs/usage.
|
|
180
|
+
See `docs/usage.md` for the full key reference and workflow details.
|
|
176
181
|
|
|
177
182
|
Quick config inspection/edit examples:
|
|
178
183
|
|
|
@@ -602,7 +607,7 @@ taskledger sync git push
|
|
|
602
607
|
taskledger sync git push --message "Sync project-a taskledger state"
|
|
603
608
|
```
|
|
604
609
|
|
|
605
|
-
See `docs/sync.
|
|
610
|
+
See `docs/sync.md` for the full second-PC bootstrap, daily sync protocol, and
|
|
606
611
|
Syncthing/rclone caveats.
|
|
607
612
|
|
|
608
613
|
## JSON output
|
|
@@ -733,7 +738,7 @@ $ taskledger handoff show handoff-0001 --task task-0001 --format text
|
|
|
733
738
|
$ taskledger handoff close handoff-0001 --task task-0001 --reason "Continued."
|
|
734
739
|
```
|
|
735
740
|
|
|
736
|
-
See [docs/usage.
|
|
741
|
+
See [docs/usage.md](docs/usage.md) and
|
|
737
742
|
[skills/taskledger/SKILL.md](skills/taskledger/SKILL.md)
|
|
738
743
|
for task-first handoff guidance.
|
|
739
744
|
|
|
@@ -23,7 +23,7 @@ The normal agent path is deliberately small:
|
|
|
23
23
|
actor whoami
|
|
24
24
|
task active | task show | task create | task activate | task follow-up
|
|
25
25
|
next-action | context | can
|
|
26
|
-
plan start -> plan template -> plan upsert -> plan lint -> plan accept
|
|
26
|
+
plan start -> plan guidance -> plan template -> plan check -> plan upsert -> plan lint -> plan accept
|
|
27
27
|
question add | question add-many | question answer | question answer-many | question status | question answers
|
|
28
28
|
todo next | todo show | todo done | todo status
|
|
29
29
|
implement start | implement resume | implement change | implement scan-changes | implement finish
|
|
@@ -127,7 +127,7 @@ taskledger --json plan guidance
|
|
|
127
127
|
|
|
128
128
|
This guidance is advisory and cannot override lifecycle gates, user approval,
|
|
129
129
|
validation requirements, lock rules, or higher-priority harness instructions.
|
|
130
|
-
See `docs/usage.
|
|
130
|
+
See `docs/usage.md` for the full key reference and workflow details.
|
|
131
131
|
|
|
132
132
|
Quick config inspection/edit examples:
|
|
133
133
|
|
|
@@ -557,7 +557,7 @@ taskledger sync git push
|
|
|
557
557
|
taskledger sync git push --message "Sync project-a taskledger state"
|
|
558
558
|
```
|
|
559
559
|
|
|
560
|
-
See `docs/sync.
|
|
560
|
+
See `docs/sync.md` for the full second-PC bootstrap, daily sync protocol, and
|
|
561
561
|
Syncthing/rclone caveats.
|
|
562
562
|
|
|
563
563
|
## JSON output
|
|
@@ -688,7 +688,7 @@ $ taskledger handoff show handoff-0001 --task task-0001 --format text
|
|
|
688
688
|
$ taskledger handoff close handoff-0001 --task task-0001 --reason "Continued."
|
|
689
689
|
```
|
|
690
690
|
|
|
691
|
-
See [docs/usage.
|
|
691
|
+
See [docs/usage.md](docs/usage.md) and
|
|
692
692
|
[skills/taskledger/SKILL.md](skills/taskledger/SKILL.md)
|
|
693
693
|
for task-first handoff guidance.
|
|
694
694
|
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
# API reference
|
|
2
|
+
|
|
3
|
+
`taskledger` exposes a task-first public API through `taskledger.api`.
|
|
4
|
+
|
|
5
|
+
## Supported modules
|
|
6
|
+
|
|
7
|
+
- `taskledger.api.project`
|
|
8
|
+
- `taskledger.api.tasks`
|
|
9
|
+
- `taskledger.api.plans`
|
|
10
|
+
- `taskledger.api.questions`
|
|
11
|
+
- `taskledger.api.task_runs`
|
|
12
|
+
- `taskledger.api.reviews`
|
|
13
|
+
- `taskledger.api.introductions`
|
|
14
|
+
- `taskledger.api.locks`
|
|
15
|
+
- `taskledger.api.handoff`
|
|
16
|
+
- `taskledger.api.releases`
|
|
17
|
+
- `taskledger.api.storage`
|
|
18
|
+
- `taskledger.api.sync`
|
|
19
|
+
- `taskledger.api.search`
|
|
20
|
+
|
|
21
|
+
## Import boundary
|
|
22
|
+
|
|
23
|
+
Consumers should not import from `taskledger.storage`, `taskledger.services`,
|
|
24
|
+
`taskledger.domain`, or `taskledger.search` directly.
|
|
25
|
+
|
|
26
|
+
## Project API
|
|
27
|
+
|
|
28
|
+
- `init_project`
|
|
29
|
+
- `project_status`
|
|
30
|
+
- `project_status_summary`
|
|
31
|
+
- `project_doctor`
|
|
32
|
+
- `project_export`
|
|
33
|
+
- `project_import`
|
|
34
|
+
- `project_export_archive`
|
|
35
|
+
- `project_import_archive`
|
|
36
|
+
- `project_snapshot`
|
|
37
|
+
- `project_tree`
|
|
38
|
+
|
|
39
|
+
## Task API
|
|
40
|
+
|
|
41
|
+
- `create_task`
|
|
42
|
+
- `record_completed_task`
|
|
43
|
+
- `show_active_task`
|
|
44
|
+
- `activate_task`
|
|
45
|
+
- `deactivate_task`
|
|
46
|
+
- `clear_active_task`
|
|
47
|
+
- `resolve_active_task`
|
|
48
|
+
- `list_task_summaries`
|
|
49
|
+
- `show_task`
|
|
50
|
+
- `edit_task`
|
|
51
|
+
- `cancel_task`
|
|
52
|
+
- `uncancel_task`
|
|
53
|
+
- `close_task`
|
|
54
|
+
- `archive_task`
|
|
55
|
+
- `unarchive_task`
|
|
56
|
+
- `create_follow_up_task`
|
|
57
|
+
- `list_archived_task_summaries`
|
|
58
|
+
- `add_requirement`
|
|
59
|
+
- `remove_requirement`
|
|
60
|
+
- `waive_requirement`
|
|
61
|
+
- `add_file_link`
|
|
62
|
+
- `file_status`
|
|
63
|
+
- `remove_file_link`
|
|
64
|
+
- `list_file_links`
|
|
65
|
+
- `refresh_file_baseline`
|
|
66
|
+
- `add_todo`
|
|
67
|
+
- `set_todo_done`
|
|
68
|
+
- `show_todo`
|
|
69
|
+
- `todo_status`
|
|
70
|
+
- `next_todo`
|
|
71
|
+
- `task_dossier`
|
|
72
|
+
- `render_task_report`
|
|
73
|
+
- `TaskReportOptions`
|
|
74
|
+
- `export_task_markdown`
|
|
75
|
+
- `TaskMarkdownExportOptions`
|
|
76
|
+
- `next_action`
|
|
77
|
+
- `can_perform`
|
|
78
|
+
- `reindex`
|
|
79
|
+
- `repair_task_record`
|
|
80
|
+
- `repair_orphaned_planning_run`
|
|
81
|
+
- `repair_planning_command_changes`
|
|
82
|
+
|
|
83
|
+
## Plan API
|
|
84
|
+
|
|
85
|
+
- `start_planning`
|
|
86
|
+
- `propose_plan`
|
|
87
|
+
- `plan_template`
|
|
88
|
+
- `upsert_plan`
|
|
89
|
+
- `check_plan_input`
|
|
90
|
+
- `plan_input_schema_text`
|
|
91
|
+
- `PlanReviewOptions`
|
|
92
|
+
- `build_plan_review_payload`
|
|
93
|
+
- `render_plan_review`
|
|
94
|
+
- `export_plan`
|
|
95
|
+
- `amend_plan`
|
|
96
|
+
- `list_plan_versions`
|
|
97
|
+
- `show_plan`
|
|
98
|
+
- `diff_plan`
|
|
99
|
+
- `lint_plan`
|
|
100
|
+
- `plan_guidance`
|
|
101
|
+
- `approve_plan`
|
|
102
|
+
- `reject_plan`
|
|
103
|
+
- `revise_plan`
|
|
104
|
+
- `regenerate_plan_from_answers`
|
|
105
|
+
- `materialize_plan_todos`
|
|
106
|
+
- `run_planning_command`
|
|
107
|
+
|
|
108
|
+
Planning guidance example:
|
|
109
|
+
|
|
110
|
+
```python
|
|
111
|
+
from pathlib import Path
|
|
112
|
+
from taskledger.api.plans import plan_guidance
|
|
113
|
+
|
|
114
|
+
payload = plan_guidance(Path.cwd(), "task-0001")
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Question API
|
|
118
|
+
|
|
119
|
+
- `add_question`
|
|
120
|
+
- `add_questions`
|
|
121
|
+
- `answer_question`
|
|
122
|
+
- `answer_questions`
|
|
123
|
+
- `list_questions`
|
|
124
|
+
- `list_open_questions`
|
|
125
|
+
- `dismiss_question`
|
|
126
|
+
- `question_status`
|
|
127
|
+
|
|
128
|
+
## Run API
|
|
129
|
+
|
|
130
|
+
- `start_implementation`
|
|
131
|
+
- `restart_implementation`
|
|
132
|
+
- `resume_implementation`
|
|
133
|
+
- `refresh_implementation_snapshot`
|
|
134
|
+
- `log_implementation`
|
|
135
|
+
- `add_implementation_deviation`
|
|
136
|
+
- `add_implementation_artifact`
|
|
137
|
+
- `add_change`
|
|
138
|
+
- `scan_changes`
|
|
139
|
+
- `run_implementation_command`
|
|
140
|
+
- `finish_implementation`
|
|
141
|
+
- `show_task_run`
|
|
142
|
+
- `start_validation`
|
|
143
|
+
- `add_validation_check`
|
|
144
|
+
- `validation_status`
|
|
145
|
+
- `waive_criterion`
|
|
146
|
+
- `finish_validation`
|
|
147
|
+
- `list_runs`
|
|
148
|
+
- `list_changes`
|
|
149
|
+
|
|
150
|
+
## Review API
|
|
151
|
+
|
|
152
|
+
- `record_code_review`
|
|
153
|
+
- `list_code_review_records`
|
|
154
|
+
- `show_code_review`
|
|
155
|
+
|
|
156
|
+
## Other APIs
|
|
157
|
+
|
|
158
|
+
### Introduction API
|
|
159
|
+
|
|
160
|
+
- `create_introduction`
|
|
161
|
+
- `list_introductions`
|
|
162
|
+
- `resolve_introduction`
|
|
163
|
+
- `link_introduction`
|
|
164
|
+
|
|
165
|
+
### Lock API
|
|
166
|
+
|
|
167
|
+
- `show_lock`
|
|
168
|
+
- `break_lock`
|
|
169
|
+
- `list_locks`
|
|
170
|
+
- `load_active_locks`
|
|
171
|
+
|
|
172
|
+
### Handoff API
|
|
173
|
+
|
|
174
|
+
- `render_handoff`
|
|
175
|
+
- `create_handoff`
|
|
176
|
+
- `list_all_handoffs`
|
|
177
|
+
- `show_handoff`
|
|
178
|
+
- `claim_handoff_api`
|
|
179
|
+
- `close_handoff_api`
|
|
180
|
+
- `cancel_handoff_api`
|
|
181
|
+
|
|
182
|
+
### Release API
|
|
183
|
+
|
|
184
|
+
- `list_release_records`
|
|
185
|
+
- `show_release`
|
|
186
|
+
- `tag_release`
|
|
187
|
+
|
|
188
|
+
### Storage API
|
|
189
|
+
|
|
190
|
+
- `storage_where`
|
|
191
|
+
- `storage_move`
|
|
192
|
+
- `sync_preflight`
|
|
193
|
+
- `sync_status`
|
|
194
|
+
- `sync_commit`
|
|
195
|
+
|
|
196
|
+
### Search API
|
|
197
|
+
|
|
198
|
+
- `search_workspace`
|
|
199
|
+
- `grep_workspace`
|
|
200
|
+
- `symbols_workspace`
|
|
201
|
+
- `dependencies_for_module`
|
|
202
|
+
|
|
203
|
+
### Sync API
|
|
204
|
+
|
|
205
|
+
- `sync_git_init`
|
|
206
|
+
- `sync_git_paths`
|
|
207
|
+
- `sync_git_status`
|
|
208
|
+
- `sync_git_import_local`
|
|
209
|
+
- `sync_git_commit`
|
|
210
|
+
- `sync_git_export_local`
|
|
211
|
+
- `sync_git_pull`
|
|
212
|
+
- `sync_git_push`
|
|
213
|
+
- `sync_git_sync`
|
|
214
|
+
- `sync_git_hooks_install`
|
|
215
|
+
- `sync_git_hooks_status`
|
|
216
|
+
- `sync_git_hooks_uninstall`
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Taskledger architecture
|
|
2
|
+
|
|
3
|
+
`taskledger` is a task-first CLI and Python package for staged coding work.
|
|
4
|
+
The canonical workflow is:
|
|
5
|
+
|
|
6
|
+
```text
|
|
7
|
+
task -> plan -> approval -> implement -> validate -> done
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## Owning layers
|
|
11
|
+
|
|
12
|
+
- `taskledger/domain/` owns lifecycle enums, policies, and record models.
|
|
13
|
+
- `taskledger/storage/task_store.py` and `taskledger/storage/locks.py` own persisted
|
|
14
|
+
task bundles and visible lock files under `.taskledger/`.
|
|
15
|
+
- `taskledger/services/tasks.py` owns task lifecycle orchestration.
|
|
16
|
+
- `taskledger/services/handoff.py` owns handoff payloads and rendering.
|
|
17
|
+
- `taskledger/services/doctor.py` owns integrity checks.
|
|
18
|
+
- `taskledger/api/*` exposes public wrappers.
|
|
19
|
+
- `taskledger/cli*.py` wires commands only.
|
|
20
|
+
|
|
21
|
+
## Storage model
|
|
22
|
+
|
|
23
|
+
Markdown records are canonical. Task, plan, and run reads come from those
|
|
24
|
+
records directly. JSON files under `.taskledger/indexes/` are optional derived
|
|
25
|
+
caches or registries. Active stages require visible lock files, and stale locks
|
|
26
|
+
are reported instead of being cleared silently.
|
|
27
|
+
|
|
28
|
+
## Command surface
|
|
29
|
+
|
|
30
|
+
The supported command groups are `task`, `plan`, `question`,
|
|
31
|
+
`implement`, `validate`, `review`, `todo`, `intro`, `file`, `link`,
|
|
32
|
+
`require`, `release`, `lock`, `handoff`, `context`, `actor`,
|
|
33
|
+
`harness`, `view`, `tree`, `next-action`, `can`, `search`,
|
|
34
|
+
`grep`, `symbols`, `deps`, `doctor`, `repair`, `reindex`,
|
|
35
|
+
`migrate`, `init`, `status`, `export`, `import`, `snapshot`,
|
|
36
|
+
`storage`, `sync`, `ledger`, `report`, `serve`, `pipeline`,
|
|
37
|
+
`commands`, and `review` (code-review records).
|