taskledger 0.5.2__tar.gz → 0.6.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (878) hide show
  1. taskledger-0.6.0/.archledger/archive/records/building_blocks/block-0083.md +39 -0
  2. taskledger-0.6.0/.archledger/archive/records/concepts/concept-0081.md +30 -0
  3. taskledger-0.6.0/.archledger/archive/records/runtime/runtime-0076.md +33 -0
  4. taskledger-0.6.0/.archledger/archive/records/runtime/runtime-0084.md +40 -0
  5. taskledger-0.6.0/.archledger/document-state.json +10 -0
  6. taskledger-0.6.0/.archledger/profiles/arc42/sections/content-0001.md +30 -0
  7. taskledger-0.6.0/.archledger/profiles/arc42/sections/content-0002.md +21 -0
  8. taskledger-0.6.0/.archledger/profiles/arc42/sections/content-0003.md +21 -0
  9. taskledger-0.6.0/.archledger/profiles/arc42/sections/content-0004.md +40 -0
  10. taskledger-0.6.0/.archledger/profiles/arc42/sections/content-0005.md +24 -0
  11. taskledger-0.6.0/.archledger/profiles/arc42/sections/content-0006.md +23 -0
  12. taskledger-0.6.0/.archledger/profiles/arc42/sections/content-0007.md +20 -0
  13. taskledger-0.6.0/.archledger/profiles/arc42/sections/content-0008.md +24 -0
  14. taskledger-0.6.0/.archledger/profiles/arc42/sections/content-0009.md +21 -0
  15. taskledger-0.6.0/.archledger/profiles/arc42/sections/content-0010.md +22 -0
  16. taskledger-0.6.0/.archledger/profiles/arc42/sections/content-0011.md +21 -0
  17. taskledger-0.6.0/.archledger/profiles/arc42/sections/content-0012.md +14 -0
  18. taskledger-0.6.0/.archledger/records/building_blocks/block-0029.md +37 -0
  19. taskledger-0.6.0/.archledger/records/building_blocks/block-0030.md +23 -0
  20. taskledger-0.6.0/.archledger/records/building_blocks/block-0031.md +21 -0
  21. taskledger-0.6.0/.archledger/records/building_blocks/block-0032.md +21 -0
  22. taskledger-0.6.0/.archledger/records/building_blocks/block-0033.md +21 -0
  23. taskledger-0.6.0/.archledger/records/building_blocks/block-0034.md +21 -0
  24. taskledger-0.6.0/.archledger/records/concepts/concept-0040.md +15 -0
  25. taskledger-0.6.0/.archledger/records/concepts/concept-0041.md +15 -0
  26. taskledger-0.6.0/.archledger/records/concepts/concept-0042.md +15 -0
  27. taskledger-0.6.0/.archledger/records/concepts/concept-0043.md +15 -0
  28. taskledger-0.6.0/.archledger/records/concepts/concept-0044.md +15 -0
  29. taskledger-0.6.0/.archledger/records/concepts/concept-0045.md +15 -0
  30. taskledger-0.6.0/.archledger/records/concepts/concept-0082.md +22 -0
  31. taskledger-0.6.0/.archledger/records/concepts/concept-0085.md +17 -0
  32. taskledger-0.6.0/.archledger/records/concepts/concept-0086.md +24 -0
  33. taskledger-0.6.0/.archledger/records/constraints/constraint-0016.md +18 -0
  34. taskledger-0.6.0/.archledger/records/constraints/constraint-0017.md +16 -0
  35. taskledger-0.6.0/.archledger/records/constraints/constraint-0018.md +18 -0
  36. taskledger-0.6.0/.archledger/records/constraints/constraint-0019.md +18 -0
  37. taskledger-0.6.0/.archledger/records/contexts/context-0020.md +47 -0
  38. taskledger-0.6.0/.archledger/records/contexts/context-0021.md +35 -0
  39. taskledger-0.6.0/.archledger/records/contexts/context-0022.md +29 -0
  40. taskledger-0.6.0/.archledger/records/contexts/context-0023.md +22 -0
  41. taskledger-0.6.0/.archledger/records/decisions/adr-0046.md +44 -0
  42. taskledger-0.6.0/.archledger/records/decisions/adr-0047.md +44 -0
  43. taskledger-0.6.0/.archledger/records/decisions/adr-0048.md +43 -0
  44. taskledger-0.6.0/.archledger/records/decisions/adr-0049.md +43 -0
  45. taskledger-0.6.0/.archledger/records/decisions/adr-0050.md +43 -0
  46. taskledger-0.6.0/.archledger/records/decisions/adr-0051.md +42 -0
  47. taskledger-0.6.0/.archledger/records/deployment/deploy-0039.md +34 -0
  48. taskledger-0.6.0/.archledger/records/glossary/glossary-0061.md +18 -0
  49. taskledger-0.6.0/.archledger/records/glossary/glossary-0062.md +18 -0
  50. taskledger-0.6.0/.archledger/records/glossary/glossary-0063.md +18 -0
  51. taskledger-0.6.0/.archledger/records/glossary/glossary-0064.md +18 -0
  52. taskledger-0.6.0/.archledger/records/glossary/glossary-0065.md +18 -0
  53. taskledger-0.6.0/.archledger/records/glossary/glossary-0066.md +18 -0
  54. taskledger-0.6.0/.archledger/records/glossary/glossary-0067.md +16 -0
  55. taskledger-0.6.0/.archledger/records/glossary/glossary-0068.md +16 -0
  56. taskledger-0.6.0/.archledger/records/glossary/glossary-0069.md +18 -0
  57. taskledger-0.6.0/.archledger/records/glossary/glossary-0070.md +18 -0
  58. taskledger-0.6.0/.archledger/records/glossary/glossary-0071.md +18 -0
  59. taskledger-0.6.0/.archledger/records/glossary/glossary-0072.md +18 -0
  60. taskledger-0.6.0/.archledger/records/glossary/glossary-0073.md +18 -0
  61. taskledger-0.6.0/.archledger/records/quality_requirements/quality-0052.md +26 -0
  62. taskledger-0.6.0/.archledger/records/quality_requirements/quality-0053.md +26 -0
  63. taskledger-0.6.0/.archledger/records/quality_requirements/quality-0054.md +25 -0
  64. taskledger-0.6.0/.archledger/records/quality_requirements/quality-0055.md +27 -0
  65. taskledger-0.6.0/.archledger/records/quality_requirements/quality-0056.md +26 -0
  66. taskledger-0.6.0/.archledger/records/requirements/content-0013.md +25 -0
  67. taskledger-0.6.0/.archledger/records/requirements/content-0014.md +25 -0
  68. taskledger-0.6.0/.archledger/records/requirements/content-0015.md +25 -0
  69. taskledger-0.6.0/.archledger/records/risks/risk-0057.md +17 -0
  70. taskledger-0.6.0/.archledger/records/risks/risk-0058.md +19 -0
  71. taskledger-0.6.0/.archledger/records/risks/risk-0059.md +19 -0
  72. taskledger-0.6.0/.archledger/records/risks/risk-0060.md +19 -0
  73. taskledger-0.6.0/.archledger/records/runtime/runtime-0035.md +42 -0
  74. taskledger-0.6.0/.archledger/records/runtime/runtime-0036.md +43 -0
  75. taskledger-0.6.0/.archledger/records/runtime/runtime-0037.md +32 -0
  76. taskledger-0.6.0/.archledger/records/runtime/runtime-0038.md +33 -0
  77. taskledger-0.6.0/.archledger/records/runtime/runtime-0074.md +34 -0
  78. taskledger-0.6.0/.archledger/records/runtime/runtime-0075.md +38 -0
  79. taskledger-0.6.0/.archledger/records/runtime/runtime-0077.md +38 -0
  80. taskledger-0.6.0/.archledger/records/runtime/runtime-0078.md +36 -0
  81. taskledger-0.6.0/.archledger/records/runtime/runtime-0087.md +33 -0
  82. taskledger-0.6.0/.archledger/records/runtime/runtime-0088.md +34 -0
  83. taskledger-0.6.0/.archledger/records/stakeholders/content-0079.md +20 -0
  84. taskledger-0.6.0/.archledger/records/stakeholders/content-0080.md +20 -0
  85. taskledger-0.6.0/.archledger/records/strategy/strategy-0024.md +27 -0
  86. taskledger-0.6.0/.archledger/records/strategy/strategy-0025.md +27 -0
  87. taskledger-0.6.0/.archledger/records/strategy/strategy-0026.md +25 -0
  88. taskledger-0.6.0/.archledger/records/strategy/strategy-0027.md +25 -0
  89. taskledger-0.6.0/.archledger/records/strategy/strategy-0028.md +27 -0
  90. taskledger-0.6.0/.archledger/source-state.json +935 -0
  91. taskledger-0.6.0/.archledger/storage.yaml +5 -0
  92. taskledger-0.6.0/.archledger.toml +121 -0
  93. taskledger-0.6.0/.documentledger/docs/docs-api-md-9eddf4dc.yaml +750 -0
  94. taskledger-0.6.0/.documentledger/docs/docs-architecture-taskledger-split-md-63034c0d.yaml +291 -0
  95. taskledger-0.6.0/.documentledger/docs/docs-command-contract-md-abe6f6d9.yaml +1732 -0
  96. taskledger-0.6.0/.documentledger/docs/docs-full-task-cycle-md-721181f0.yaml +1049 -0
  97. taskledger-0.6.0/.documentledger/docs/docs-multi-repo-md-929e47a9.yaml +177 -0
  98. taskledger-0.6.0/.documentledger/docs/docs-public-surface-md-c1b8772f.yaml +501 -0
  99. taskledger-0.6.0/.documentledger/docs/docs-service-boundary-whitelist-md-800b76f5.yaml +275 -0
  100. taskledger-0.6.0/.documentledger/docs/docs-sync-md-a29422f3.yaml +471 -0
  101. taskledger-0.6.0/.documentledger/docs/docs-transfer-md-f8532303.yaml +263 -0
  102. taskledger-0.6.0/.documentledger/docs/docs-usage-md-72376d0b.yaml +1367 -0
  103. taskledger-0.6.0/.documentledger/scan.yaml +173 -0
  104. taskledger-0.6.0/.documentledger/source-index.json +31492 -0
  105. taskledger-0.6.0/.documentledger/storage.yaml +13 -0
  106. taskledger-0.6.0/.documentledger.toml +25 -0
  107. taskledger-0.6.0/.gitignore +229 -0
  108. taskledger-0.6.0/.ledger/ledger.toml +18 -0
  109. taskledger-0.6.0/.ledger/releaseledger/.ledger-project.toml +6 -0
  110. taskledger-0.6.0/.ledger/releaseledger/config.toml +56 -0
  111. taskledger-0.6.0/.ledger/releaseledger/data/.ledger-project.toml +6 -0
  112. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/events/events.jsonl +3 -0
  113. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0001.md +25 -0
  114. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0002.md +25 -0
  115. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0003.md +25 -0
  116. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0004.md +25 -0
  117. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0005.md +23 -0
  118. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0006.md +23 -0
  119. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0007.md +23 -0
  120. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0008.md +23 -0
  121. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0009.md +23 -0
  122. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0010.md +23 -0
  123. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0011.md +23 -0
  124. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0012.md +23 -0
  125. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0013.md +23 -0
  126. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0014.md +23 -0
  127. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0015.md +25 -0
  128. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0016.md +25 -0
  129. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0017.md +23 -0
  130. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0018.md +25 -0
  131. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0019.md +23 -0
  132. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0020.md +23 -0
  133. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0021.md +23 -0
  134. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0022.md +23 -0
  135. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/entries/entry-0023.md +23 -0
  136. taskledger-0.6.0/.ledger/releaseledger/data/ledgers/main/releases/v0.6.0/release.md +26 -0
  137. taskledger-0.6.0/.ledger/task/config.toml +7 -0
  138. taskledger-0.6.0/.ledger/taskledger/.ledger-project.toml +6 -0
  139. taskledger-0.6.0/.ledger/taskledger/config.toml +7 -0
  140. taskledger-0.6.0/AGENTS.md +463 -0
  141. taskledger-0.6.0/API.md +375 -0
  142. taskledger-0.6.0/ARCHITECTURE.md +792 -0
  143. taskledger-0.6.0/PKG-INFO +898 -0
  144. taskledger-0.6.0/README.md +846 -0
  145. taskledger-0.6.0/docs/api.md +228 -0
  146. taskledger-0.6.0/docs/architecture_taskledger_split.md +69 -0
  147. taskledger-0.6.0/docs/changelog.md +41 -0
  148. taskledger-0.6.0/docs/command_contract.md +734 -0
  149. taskledger-0.6.0/docs/documentation_freshness.md +69 -0
  150. taskledger-0.6.0/docs/full_task_cycle.md +352 -0
  151. taskledger-0.6.0/docs/index.md +29 -0
  152. taskledger-0.6.0/docs/public_surface.md +152 -0
  153. taskledger-0.6.0/docs/service_boundary_whitelist.md +127 -0
  154. taskledger-0.6.0/docs/sync.md +171 -0
  155. taskledger-0.6.0/docs/transfer.md +82 -0
  156. taskledger-0.6.0/docs/usage.md +791 -0
  157. taskledger-0.6.0/pyproject.toml +133 -0
  158. taskledger-0.6.0/requirements/manifest.json +7521 -0
  159. taskledger-0.6.0/skills/taskledger/SKILL.md +575 -0
  160. taskledger-0.6.0/specmason.toml +28 -0
  161. taskledger-0.6.0/specs/behavior/README.md +120 -0
  162. taskledger-0.6.0/specs/behavior/UNMAPPED_TESTS.md +10 -0
  163. taskledger-0.6.0/specs/behavior/features/active_task/active-task.feature +59 -0
  164. taskledger-0.6.0/specs/behavior/features/actor_harness_state/actor-harness-state.feature +214 -0
  165. taskledger-0.6.0/specs/behavior/features/actor_resolution/actor-resolution.feature +112 -0
  166. taskledger-0.6.0/specs/behavior/features/agent_command_logging/agent-command-logging.feature +121 -0
  167. taskledger-0.6.0/specs/behavior/features/agent_session_protocol/agent-session-protocol.feature +116 -0
  168. taskledger-0.6.0/specs/behavior/features/atomic_fast_io/atomic-fast-io.feature +13 -0
  169. taskledger-0.6.0/specs/behavior/features/cli_command_contract/cli-command-contract.feature +59 -0
  170. taskledger-0.6.0/specs/behavior/features/cli_import_resilience/cli-import-resilience.feature +31 -0
  171. taskledger-0.6.0/specs/behavior/features/code_reviews/code-reviews.feature +69 -0
  172. taskledger-0.6.0/specs/behavior/features/command_example_linter/command-example-linter.feature +26 -0
  173. taskledger-0.6.0/specs/behavior/features/command_inventory/command-inventory.feature +97 -0
  174. taskledger-0.6.0/specs/behavior/features/command_runner/command-runner.feature +23 -0
  175. taskledger-0.6.0/specs/behavior/features/compact_mutation_output/compact-mutation-output.feature +68 -0
  176. taskledger-0.6.0/specs/behavior/features/config_cli/config-cli.feature +79 -0
  177. taskledger-0.6.0/specs/behavior/features/delta_remaining_contracts/delta-remaining-contracts.feature +155 -0
  178. taskledger-0.6.0/specs/behavior/features/docs_and_skill/docs-and-skill.feature +199 -0
  179. taskledger-0.6.0/specs/behavior/features/doctor/doctor.feature +192 -0
  180. taskledger-0.6.0/specs/behavior/features/domain_policies/domain-policies.feature +435 -0
  181. taskledger-0.6.0/specs/behavior/features/event_logging_config/event-logging-config.feature +44 -0
  182. taskledger-0.6.0/specs/behavior/features/events/events.feature +25 -0
  183. taskledger-0.6.0/specs/behavior/features/file_link_snapshots/file-link-snapshots.feature +67 -0
  184. taskledger-0.6.0/specs/behavior/features/find_code_clones_script/find-code-clones-script.feature +13 -0
  185. taskledger-0.6.0/specs/behavior/features/handoff_lifecycle/handoff-lifecycle.feature +93 -0
  186. taskledger-0.6.0/specs/behavior/features/help_subprocess/help-subprocess.feature +28 -0
  187. taskledger-0.6.0/specs/behavior/features/implementation_change_scan/implementation-change-scan.feature +41 -0
  188. taskledger-0.6.0/specs/behavior/features/implementation_checks/implementation-checks.feature +60 -0
  189. taskledger-0.6.0/specs/behavior/features/json_contracts/json-contracts.feature +75 -0
  190. taskledger-0.6.0/specs/behavior/features/legacy_cleanup_contracts/legacy-cleanup-contracts.feature +25 -0
  191. taskledger-0.6.0/specs/behavior/features/lifecycle_policies/lifecycle-policies.feature +19 -0
  192. taskledger-0.6.0/specs/behavior/features/lock_diagnostics/lock-diagnostics.feature +161 -0
  193. taskledger-0.6.0/specs/behavior/features/locks_audit/locks-audit.feature +20 -0
  194. taskledger-0.6.0/specs/behavior/features/models_v1_schema/models-v1-schema.feature +38 -0
  195. taskledger-0.6.0/specs/behavior/features/monitor/monitor.feature +81 -0
  196. taskledger-0.6.0/specs/behavior/features/next_action_expired_lock/next-action-expired-lock.feature +28 -0
  197. taskledger-0.6.0/specs/behavior/features/no_log_feature/no-log-feature.feature +169 -0
  198. taskledger-0.6.0/specs/behavior/features/plan_approval_contract/plan-approval-contract.feature +70 -0
  199. taskledger-0.6.0/specs/behavior/features/plan_lint/plan-lint.feature +189 -0
  200. taskledger-0.6.0/specs/behavior/features/plan_review/plan-review.feature +89 -0
  201. taskledger-0.6.0/specs/behavior/features/plan_revision_workflow/plan-revision-workflow.feature +64 -0
  202. taskledger-0.6.0/specs/behavior/features/plan_todo_materialization/plan-todo-materialization.feature +13 -0
  203. taskledger-0.6.0/specs/behavior/features/project_root_config/project-root-config.feature +200 -0
  204. taskledger-0.6.0/specs/behavior/features/question_add_many/question-add-many.feature +35 -0
  205. taskledger-0.6.0/specs/behavior/features/question_filter_answers/question-filter-answers.feature +53 -0
  206. taskledger-0.6.0/specs/behavior/features/question_plan_regeneration/question-plan-regeneration.feature +92 -0
  207. taskledger-0.6.0/specs/behavior/features/ready_work/ready-work.feature +26 -0
  208. taskledger-0.6.0/specs/behavior/features/release_changelog/release-changelog.feature +107 -0
  209. taskledger-0.6.0/specs/behavior/features/search/search.feature +33 -0
  210. taskledger-0.6.0/specs/behavior/features/service_boundaries/service-boundaries.feature +55 -0
  211. taskledger-0.6.0/specs/behavior/features/services_dashboard/services-dashboard.feature +101 -0
  212. taskledger-0.6.0/specs/behavior/features/sidecar_collections/sidecar-collections.feature +23 -0
  213. taskledger-0.6.0/specs/behavior/features/storage_bundle_layout/storage-bundle-layout.feature +71 -0
  214. taskledger-0.6.0/specs/behavior/features/storage_common/storage-common.feature +32 -0
  215. taskledger-0.6.0/specs/behavior/features/storage_init/storage-init.feature +27 -0
  216. taskledger-0.6.0/specs/behavior/features/storage_migration/storage-migration.feature +243 -0
  217. taskledger-0.6.0/specs/behavior/features/storage_repos/storage-repos.feature +80 -0
  218. taskledger-0.6.0/specs/behavior/features/storage_sync/storage-sync.feature +83 -0
  219. taskledger-0.6.0/specs/behavior/features/sync_git/sync-git.feature +88 -0
  220. taskledger-0.6.0/specs/behavior/features/task_archive/archive.feature +48 -0
  221. taskledger-0.6.0/specs/behavior/features/task_events/events.feature +50 -0
  222. taskledger-0.6.0/specs/behavior/features/task_markdown_export/markdown-export.feature +157 -0
  223. taskledger-0.6.0/specs/behavior/features/task_report/report.feature +154 -0
  224. taskledger-0.6.0/specs/behavior/features/taskledger_branch_scoped_ledgers/taskledger-branch-scoped-ledgers.feature +37 -0
  225. taskledger-0.6.0/specs/behavior/features/taskledger_cli_api_parity/taskledger-cli-api-parity.feature +36 -0
  226. taskledger-0.6.0/specs/behavior/features/taskledger_v2_cli/taskledger-v2-cli.feature +333 -0
  227. taskledger-0.6.0/specs/behavior/features/taskledger_v2_exchange/taskledger-v2-exchange.feature +191 -0
  228. taskledger-0.6.0/specs/behavior/features/tasks_service_static/tasks-service-static.feature +13 -0
  229. taskledger-0.6.0/specs/behavior/features/todo_implementation_gate/todo-implementation-gate.feature +181 -0
  230. taskledger-0.6.0/specs/behavior/features/trace/trace.feature +13 -0
  231. taskledger-0.6.0/specs/behavior/features/tree_command/tree-command.feature +161 -0
  232. taskledger-0.6.0/specs/behavior/features/usage_cli/usage-cli.feature +45 -0
  233. taskledger-0.6.0/specs/behavior/features/worker_pipeline_cli/worker-pipeline-cli.feature +88 -0
  234. taskledger-0.6.0/specs/behavior/features/worker_pipeline_config/worker-pipeline-config.feature +49 -0
  235. taskledger-0.6.0/specs/behavior/features/worker_pipeline_context/worker-pipeline-context.feature +48 -0
  236. taskledger-0.6.0/specs/behavior/features/worker_pipeline_handoff/worker-pipeline-handoff.feature +29 -0
  237. taskledger-0.6.0/specs/behavior/features/worker_pipeline_plan_template/worker-pipeline-plan-template.feature +40 -0
  238. taskledger-0.6.0/specs/behavior/features/worker_pipeline_todos/worker-pipeline-todos.feature +20 -0
  239. taskledger-0.6.0/specs/behavior/features/workflow_guidance/workflow-guidance.feature +55 -0
  240. taskledger-0.6.0/specs/behavior/manifest.json +6494 -0
  241. taskledger-0.6.0/specs/behavior/mappings/intentional-unmapped.json +1170 -0
  242. taskledger-0.6.0/specs/behavior/reports/specmason/coverage.json +26034 -0
  243. taskledger-0.6.0/specs/behavior/reports/specmason/coverage.md +2091 -0
  244. taskledger-0.6.0/specs/behavior/reports/specmason/mappings.json +22421 -0
  245. taskledger-0.6.0/taskledger/_version.py +24 -0
  246. taskledger-0.6.0/taskledger/api/config.py +753 -0
  247. taskledger-0.6.0/taskledger/api/project.py +444 -0
  248. taskledger-0.6.0/taskledger/api/repair.py +184 -0
  249. taskledger-0.6.0/taskledger/api/storage.py +294 -0
  250. taskledger-0.6.0/taskledger/cli.py +1765 -0
  251. taskledger-0.6.0/taskledger/cli_common.py +901 -0
  252. taskledger-0.6.0/taskledger/cli_config.py +291 -0
  253. taskledger-0.6.0/taskledger/cli_help.py +189 -0
  254. taskledger-0.6.0/taskledger/cli_ledger.py +503 -0
  255. taskledger-0.6.0/taskledger/cli_migrate.py +613 -0
  256. taskledger-0.6.0/taskledger/cli_misc.py +1567 -0
  257. taskledger-0.6.0/taskledger/cli_runtime.py +26 -0
  258. taskledger-0.6.0/taskledger/cli_storage.py +434 -0
  259. taskledger-0.6.0/taskledger/cli_sync.py +868 -0
  260. taskledger-0.6.0/taskledger/command_inventory.py +1885 -0
  261. taskledger-0.6.0/taskledger/compat/__init__.py +1 -0
  262. taskledger-0.6.0/taskledger/compat/ledgercore.py +386 -0
  263. taskledger-0.6.0/taskledger/domain/lock.py +128 -0
  264. taskledger-0.6.0/taskledger/domain/states.py +337 -0
  265. taskledger-0.6.0/taskledger/errors.py +284 -0
  266. taskledger-0.6.0/taskledger/exchange.py +1381 -0
  267. taskledger-0.6.0/taskledger/migrations/__init__.py +1 -0
  268. taskledger-0.6.0/taskledger/migrations/hooks.py +240 -0
  269. taskledger-0.6.0/taskledger/services/agent_logging.py +625 -0
  270. taskledger-0.6.0/taskledger/services/doctor.py +551 -0
  271. taskledger-0.6.0/taskledger/services/doctor_checks/project_scan.py +269 -0
  272. taskledger-0.6.0/taskledger/services/doctor_checks/task_checks.py +577 -0
  273. taskledger-0.6.0/taskledger/services/git_sync.py +1154 -0
  274. taskledger-0.6.0/taskledger/services/git_utils.py +201 -0
  275. taskledger-0.6.0/taskledger/services/lock_inventory.py +294 -0
  276. taskledger-0.6.0/taskledger/services/navigation.py +1288 -0
  277. taskledger-0.6.0/taskledger/services/next_action_logic.py +51 -0
  278. taskledger-0.6.0/taskledger/services/run_store.py +134 -0
  279. taskledger-0.6.0/taskledger/services/runtime_info.py +149 -0
  280. taskledger-0.6.0/taskledger/services/storage_locations.py +756 -0
  281. taskledger-0.6.0/taskledger/services/storage_migration.py +111 -0
  282. taskledger-0.6.0/taskledger/services/task_lifecycle.py +931 -0
  283. taskledger-0.6.0/taskledger/services/tasks.py +2849 -0
  284. taskledger-0.6.0/taskledger/services/usage.py +448 -0
  285. taskledger-0.6.0/taskledger/services/validation_flow.py +494 -0
  286. taskledger-0.6.0/taskledger/services/workspace_snapshot.py +697 -0
  287. taskledger-0.6.0/taskledger/storage/__init__.py +52 -0
  288. taskledger-0.6.0/taskledger/storage/init.py +358 -0
  289. taskledger-0.6.0/taskledger/storage/layout_migration.py +1935 -0
  290. taskledger-0.6.0/taskledger/storage/ledger_config.py +379 -0
  291. taskledger-0.6.0/taskledger/storage/ledger_local_config.py +36 -0
  292. taskledger-0.6.0/taskledger/storage/ledger_manifest.py +70 -0
  293. taskledger-0.6.0/taskledger/storage/ledgercore_backend.py +472 -0
  294. taskledger-0.6.0/taskledger/storage/locks.py +86 -0
  295. taskledger-0.6.0/taskledger/storage/migrations.py +528 -0
  296. taskledger-0.6.0/taskledger/storage/paths.py +293 -0
  297. taskledger-0.6.0/taskledger/storage/project_binding.py +179 -0
  298. taskledger-0.6.0/taskledger/storage/project_config.py +1555 -0
  299. taskledger-0.6.0/taskledger/storage/project_context.py +461 -0
  300. taskledger-0.6.0/taskledger/storage/project_identity.py +243 -0
  301. taskledger-0.6.0/taskledger/storage/task_ids.py +181 -0
  302. taskledger-0.6.0/taskledger/storage/task_index.py +325 -0
  303. taskledger-0.6.0/taskledger/storage/task_store.py +1317 -0
  304. taskledger-0.6.0/taskledger/storage/taskledger_migration.py +65 -0
  305. taskledger-0.6.0/taskledger.egg-info/PKG-INFO +898 -0
  306. taskledger-0.6.0/taskledger.egg-info/SOURCES.txt +553 -0
  307. taskledger-0.6.0/taskledger.egg-info/requires.txt +27 -0
  308. taskledger-0.6.0/taskledger.egg-info/scm_file_list.json +548 -0
  309. taskledger-0.6.0/taskledger.egg-info/scm_version.json +8 -0
  310. taskledger-0.6.0/tests/__init__.py +0 -0
  311. taskledger-0.6.0/tests/test_active_task.py +390 -0
  312. taskledger-0.6.0/tests/test_actor_harness_state.py +623 -0
  313. taskledger-0.6.0/tests/test_actor_resolution.py +199 -0
  314. taskledger-0.6.0/tests/test_agent_command_logging.py +687 -0
  315. taskledger-0.6.0/tests/test_agent_session_protocol.py +974 -0
  316. taskledger-0.6.0/tests/test_atomic_fast_io.py +34 -0
  317. taskledger-0.6.0/tests/test_canonical_config_split.py +34 -0
  318. taskledger-0.6.0/tests/test_canonical_layout_migration.py +254 -0
  319. taskledger-0.6.0/tests/test_canonical_mount_paths.py +47 -0
  320. taskledger-0.6.0/tests/test_canonical_project_boundary.py +266 -0
  321. taskledger-0.6.0/tests/test_canonical_project_context.py +73 -0
  322. taskledger-0.6.0/tests/test_cli_command_contract.py +417 -0
  323. taskledger-0.6.0/tests/test_cli_import_resilience.py +165 -0
  324. taskledger-0.6.0/tests/test_cli_runner_compatibility.py +185 -0
  325. taskledger-0.6.0/tests/test_code_reviews.py +314 -0
  326. taskledger-0.6.0/tests/test_command_example_linter.py +193 -0
  327. taskledger-0.6.0/tests/test_command_inventory.py +425 -0
  328. taskledger-0.6.0/tests/test_command_runner.py +42 -0
  329. taskledger-0.6.0/tests/test_compact_mutation_output.py +351 -0
  330. taskledger-0.6.0/tests/test_config_cli.py +312 -0
  331. taskledger-0.6.0/tests/test_delta_remaining_contracts.py +1279 -0
  332. taskledger-0.6.0/tests/test_docs_and_skill.py +522 -0
  333. taskledger-0.6.0/tests/test_doctor.py +736 -0
  334. taskledger-0.6.0/tests/test_domain_policies.py +766 -0
  335. taskledger-0.6.0/tests/test_error_contracts.py +38 -0
  336. taskledger-0.6.0/tests/test_event_logging_config.py +239 -0
  337. taskledger-0.6.0/tests/test_events.py +132 -0
  338. taskledger-0.6.0/tests/test_file_link_snapshots.py +256 -0
  339. taskledger-0.6.0/tests/test_find_code_clones_script.py +100 -0
  340. taskledger-0.6.0/tests/test_handoff_lifecycle.py +341 -0
  341. taskledger-0.6.0/tests/test_help_subprocess.py +92 -0
  342. taskledger-0.6.0/tests/test_implementation_change_scan.py +335 -0
  343. taskledger-0.6.0/tests/test_implementation_checks.py +361 -0
  344. taskledger-0.6.0/tests/test_import_boundaries.py +123 -0
  345. taskledger-0.6.0/tests/test_json_contracts.py +496 -0
  346. taskledger-0.6.0/tests/test_ledger_manifest_mutation.py +60 -0
  347. taskledger-0.6.0/tests/test_ledgercore_compat.py +172 -0
  348. taskledger-0.6.0/tests/test_legacy_cleanup_contracts.py +79 -0
  349. taskledger-0.6.0/tests/test_lifecycle_policies.py +102 -0
  350. taskledger-0.6.0/tests/test_lock_diagnostics.py +519 -0
  351. taskledger-0.6.0/tests/test_lock_inventory.py +214 -0
  352. taskledger-0.6.0/tests/test_locks_audit.py +148 -0
  353. taskledger-0.6.0/tests/test_models_v1_schema.py +272 -0
  354. taskledger-0.6.0/tests/test_monitor.py +361 -0
  355. taskledger-0.6.0/tests/test_next_action_expired_lock.py +118 -0
  356. taskledger-0.6.0/tests/test_no_log_feature.py +488 -0
  357. taskledger-0.6.0/tests/test_plan_approval_contract.py +466 -0
  358. taskledger-0.6.0/tests/test_plan_lint.py +1146 -0
  359. taskledger-0.6.0/tests/test_plan_review.py +304 -0
  360. taskledger-0.6.0/tests/test_plan_revision_workflow.py +415 -0
  361. taskledger-0.6.0/tests/test_plan_todo_materialization.py +127 -0
  362. taskledger-0.6.0/tests/test_project_root_config.py +751 -0
  363. taskledger-0.6.0/tests/test_question_add_many.py +164 -0
  364. taskledger-0.6.0/tests/test_question_filter_answers.py +343 -0
  365. taskledger-0.6.0/tests/test_question_plan_regeneration.py +981 -0
  366. taskledger-0.6.0/tests/test_ready_work.py +134 -0
  367. taskledger-0.6.0/tests/test_release_changelog.py +277 -0
  368. taskledger-0.6.0/tests/test_runtime_info.py +80 -0
  369. taskledger-0.6.0/tests/test_search.py +137 -0
  370. taskledger-0.6.0/tests/test_service_boundaries.py +540 -0
  371. taskledger-0.6.0/tests/test_services_dashboard.py +412 -0
  372. taskledger-0.6.0/tests/test_shared_tool_ledger_storage.py +129 -0
  373. taskledger-0.6.0/tests/test_sidecar_collections.py +134 -0
  374. taskledger-0.6.0/tests/test_storage_bundle_layout.py +547 -0
  375. taskledger-0.6.0/tests/test_storage_common.py +250 -0
  376. taskledger-0.6.0/tests/test_storage_init.py +77 -0
  377. taskledger-0.6.0/tests/test_storage_migration.py +1011 -0
  378. taskledger-0.6.0/tests/test_storage_migration_coordinator.py +121 -0
  379. taskledger-0.6.0/tests/test_storage_repos.py +228 -0
  380. taskledger-0.6.0/tests/test_storage_sync.py +390 -0
  381. taskledger-0.6.0/tests/test_storage_where_repair.py +496 -0
  382. taskledger-0.6.0/tests/test_sync_git.py +508 -0
  383. taskledger-0.6.0/tests/test_task_archive.py +566 -0
  384. taskledger-0.6.0/tests/test_task_events.py +170 -0
  385. taskledger-0.6.0/tests/test_task_ids.py +47 -0
  386. taskledger-0.6.0/tests/test_task_markdown_export.py +499 -0
  387. taskledger-0.6.0/tests/test_task_report.py +443 -0
  388. taskledger-0.6.0/tests/test_taskledger_branch_scoped_ledgers.py +72 -0
  389. taskledger-0.6.0/tests/test_taskledger_canonical_sync.py +115 -0
  390. taskledger-0.6.0/tests/test_taskledger_cli_api_parity.py +159 -0
  391. taskledger-0.6.0/tests/test_taskledger_ledgercore_050_adapter.py +52 -0
  392. taskledger-0.6.0/tests/test_taskledger_ledgercore_050_context.py +63 -0
  393. taskledger-0.6.0/tests/test_taskledger_ledgercore_050_migration_topology.py +17 -0
  394. taskledger-0.6.0/tests/test_taskledger_ledgercore_050_sync.py +39 -0
  395. taskledger-0.6.0/tests/test_taskledger_migration_v3.py +53 -0
  396. taskledger-0.6.0/tests/test_taskledger_sibling_migration.py +295 -0
  397. taskledger-0.6.0/tests/test_taskledger_sibling_storage.py +97 -0
  398. taskledger-0.6.0/tests/test_taskledger_storage_commands_v3.py +49 -0
  399. taskledger-0.6.0/tests/test_taskledger_v2_cli.py +2352 -0
  400. taskledger-0.6.0/tests/test_taskledger_v2_exchange.py +1990 -0
  401. taskledger-0.6.0/tests/test_tasks_service_static.py +22 -0
  402. taskledger-0.6.0/tests/test_todo_implementation_gate.py +1003 -0
  403. taskledger-0.6.0/tests/test_trace.py +43 -0
  404. taskledger-0.6.0/tests/test_tree_command.py +681 -0
  405. taskledger-0.6.0/tests/test_usage_cli.py +194 -0
  406. taskledger-0.6.0/tests/test_validation_git_snapshot_recovery.py +226 -0
  407. taskledger-0.6.0/tests/test_worker_pipeline_cli.py +638 -0
  408. taskledger-0.6.0/tests/test_worker_pipeline_config.py +291 -0
  409. taskledger-0.6.0/tests/test_worker_pipeline_context.py +214 -0
  410. taskledger-0.6.0/tests/test_worker_pipeline_handoff.py +166 -0
  411. taskledger-0.6.0/tests/test_worker_pipeline_plan_template.py +168 -0
  412. taskledger-0.6.0/tests/test_worker_pipeline_todos.py +244 -0
  413. taskledger-0.6.0/tests/test_workflow_guidance.py +128 -0
  414. taskledger-0.5.2/.archledger/archive/records/building_blocks/al_block_0083.md +0 -41
  415. taskledger-0.5.2/.archledger/archive/records/concepts/al_concept_0081.md +0 -32
  416. taskledger-0.5.2/.archledger/archive/records/runtime/al_runtime_0076.md +0 -33
  417. taskledger-0.5.2/.archledger/archive/records/runtime/al_runtime_0084.md +0 -42
  418. taskledger-0.5.2/.archledger/profiles/arc42/sections/al_content_0001.md +0 -30
  419. taskledger-0.5.2/.archledger/profiles/arc42/sections/al_content_0002.md +0 -21
  420. taskledger-0.5.2/.archledger/profiles/arc42/sections/al_content_0003.md +0 -24
  421. taskledger-0.5.2/.archledger/profiles/arc42/sections/al_content_0004.md +0 -38
  422. taskledger-0.5.2/.archledger/profiles/arc42/sections/al_content_0005.md +0 -25
  423. taskledger-0.5.2/.archledger/profiles/arc42/sections/al_content_0006.md +0 -22
  424. taskledger-0.5.2/.archledger/profiles/arc42/sections/al_content_0007.md +0 -21
  425. taskledger-0.5.2/.archledger/profiles/arc42/sections/al_content_0008.md +0 -24
  426. taskledger-0.5.2/.archledger/profiles/arc42/sections/al_content_0009.md +0 -22
  427. taskledger-0.5.2/.archledger/profiles/arc42/sections/al_content_0010.md +0 -21
  428. taskledger-0.5.2/.archledger/profiles/arc42/sections/al_content_0011.md +0 -20
  429. taskledger-0.5.2/.archledger/profiles/arc42/sections/al_content_0012.md +0 -15
  430. taskledger-0.5.2/.archledger/records/building_blocks/al_block_0029.md +0 -37
  431. taskledger-0.5.2/.archledger/records/building_blocks/al_block_0030.md +0 -24
  432. taskledger-0.5.2/.archledger/records/building_blocks/al_block_0031.md +0 -22
  433. taskledger-0.5.2/.archledger/records/building_blocks/al_block_0032.md +0 -22
  434. taskledger-0.5.2/.archledger/records/building_blocks/al_block_0033.md +0 -22
  435. taskledger-0.5.2/.archledger/records/building_blocks/al_block_0034.md +0 -22
  436. taskledger-0.5.2/.archledger/records/concepts/al_concept_0040.md +0 -18
  437. taskledger-0.5.2/.archledger/records/concepts/al_concept_0041.md +0 -16
  438. taskledger-0.5.2/.archledger/records/concepts/al_concept_0042.md +0 -16
  439. taskledger-0.5.2/.archledger/records/concepts/al_concept_0043.md +0 -16
  440. taskledger-0.5.2/.archledger/records/concepts/al_concept_0044.md +0 -16
  441. taskledger-0.5.2/.archledger/records/concepts/al_concept_0045.md +0 -16
  442. taskledger-0.5.2/.archledger/records/concepts/al_concept_0082.md +0 -25
  443. taskledger-0.5.2/.archledger/records/constraints/al_constraint_0016.md +0 -17
  444. taskledger-0.5.2/.archledger/records/constraints/al_constraint_0017.md +0 -17
  445. taskledger-0.5.2/.archledger/records/constraints/al_constraint_0018.md +0 -17
  446. taskledger-0.5.2/.archledger/records/constraints/al_constraint_0019.md +0 -17
  447. taskledger-0.5.2/.archledger/records/contexts/al_context_0020.md +0 -20
  448. taskledger-0.5.2/.archledger/records/contexts/al_context_0021.md +0 -20
  449. taskledger-0.5.2/.archledger/records/contexts/al_context_0022.md +0 -20
  450. taskledger-0.5.2/.archledger/records/contexts/al_context_0023.md +0 -20
  451. taskledger-0.5.2/.archledger/records/decisions/al_adr_0046.md +0 -45
  452. taskledger-0.5.2/.archledger/records/decisions/al_adr_0047.md +0 -45
  453. taskledger-0.5.2/.archledger/records/decisions/al_adr_0048.md +0 -44
  454. taskledger-0.5.2/.archledger/records/decisions/al_adr_0049.md +0 -44
  455. taskledger-0.5.2/.archledger/records/decisions/al_adr_0050.md +0 -43
  456. taskledger-0.5.2/.archledger/records/decisions/al_adr_0051.md +0 -43
  457. taskledger-0.5.2/.archledger/records/deployment/al_deploy_0039.md +0 -35
  458. taskledger-0.5.2/.archledger/records/glossary/al_glossary_0061.md +0 -17
  459. taskledger-0.5.2/.archledger/records/glossary/al_glossary_0062.md +0 -17
  460. taskledger-0.5.2/.archledger/records/glossary/al_glossary_0063.md +0 -17
  461. taskledger-0.5.2/.archledger/records/glossary/al_glossary_0064.md +0 -17
  462. taskledger-0.5.2/.archledger/records/glossary/al_glossary_0065.md +0 -17
  463. taskledger-0.5.2/.archledger/records/glossary/al_glossary_0066.md +0 -17
  464. taskledger-0.5.2/.archledger/records/glossary/al_glossary_0067.md +0 -17
  465. taskledger-0.5.2/.archledger/records/glossary/al_glossary_0068.md +0 -17
  466. taskledger-0.5.2/.archledger/records/glossary/al_glossary_0069.md +0 -17
  467. taskledger-0.5.2/.archledger/records/glossary/al_glossary_0070.md +0 -17
  468. taskledger-0.5.2/.archledger/records/glossary/al_glossary_0071.md +0 -17
  469. taskledger-0.5.2/.archledger/records/glossary/al_glossary_0072.md +0 -17
  470. taskledger-0.5.2/.archledger/records/glossary/al_glossary_0073.md +0 -17
  471. taskledger-0.5.2/.archledger/records/quality_requirements/al_quality_0052.md +0 -27
  472. taskledger-0.5.2/.archledger/records/quality_requirements/al_quality_0053.md +0 -26
  473. taskledger-0.5.2/.archledger/records/quality_requirements/al_quality_0054.md +0 -26
  474. taskledger-0.5.2/.archledger/records/quality_requirements/al_quality_0055.md +0 -27
  475. taskledger-0.5.2/.archledger/records/quality_requirements/al_quality_0056.md +0 -26
  476. taskledger-0.5.2/.archledger/records/requirements/al_content_0013.md +0 -26
  477. taskledger-0.5.2/.archledger/records/requirements/al_content_0014.md +0 -26
  478. taskledger-0.5.2/.archledger/records/requirements/al_content_0015.md +0 -26
  479. taskledger-0.5.2/.archledger/records/risks/al_risk_0057.md +0 -18
  480. taskledger-0.5.2/.archledger/records/risks/al_risk_0058.md +0 -18
  481. taskledger-0.5.2/.archledger/records/risks/al_risk_0059.md +0 -18
  482. taskledger-0.5.2/.archledger/records/risks/al_risk_0060.md +0 -18
  483. taskledger-0.5.2/.archledger/records/runtime/al_runtime_0035.md +0 -33
  484. taskledger-0.5.2/.archledger/records/runtime/al_runtime_0036.md +0 -36
  485. taskledger-0.5.2/.archledger/records/runtime/al_runtime_0037.md +0 -28
  486. taskledger-0.5.2/.archledger/records/runtime/al_runtime_0038.md +0 -30
  487. taskledger-0.5.2/.archledger/records/runtime/al_runtime_0074.md +0 -30
  488. taskledger-0.5.2/.archledger/records/runtime/al_runtime_0075.md +0 -32
  489. taskledger-0.5.2/.archledger/records/runtime/al_runtime_0077.md +0 -32
  490. taskledger-0.5.2/.archledger/records/runtime/al_runtime_0078.md +0 -31
  491. taskledger-0.5.2/.archledger/records/stakeholders/al_content_0079.md +0 -15
  492. taskledger-0.5.2/.archledger/records/stakeholders/al_content_0080.md +0 -15
  493. taskledger-0.5.2/.archledger/records/strategy/al_strategy_0024.md +0 -26
  494. taskledger-0.5.2/.archledger/records/strategy/al_strategy_0025.md +0 -26
  495. taskledger-0.5.2/.archledger/records/strategy/al_strategy_0026.md +0 -26
  496. taskledger-0.5.2/.archledger/records/strategy/al_strategy_0027.md +0 -26
  497. taskledger-0.5.2/.archledger/records/strategy/al_strategy_0028.md +0 -26
  498. taskledger-0.5.2/.archledger/source-state.json +0 -894
  499. taskledger-0.5.2/.archledger/storage.yaml +0 -5
  500. taskledger-0.5.2/.archledger.toml +0 -129
  501. taskledger-0.5.2/.gitignore +0 -222
  502. taskledger-0.5.2/.specweave.toml +0 -44
  503. taskledger-0.5.2/.taskledger.toml +0 -30
  504. taskledger-0.5.2/AGENTS.md +0 -459
  505. taskledger-0.5.2/API.md +0 -367
  506. taskledger-0.5.2/ARCHITECTURE.md +0 -754
  507. taskledger-0.5.2/CHANGELOG.md +0 -340
  508. taskledger-0.5.2/PKG-INFO +0 -859
  509. taskledger-0.5.2/README.md +0 -809
  510. taskledger-0.5.2/docs/api.md +0 -216
  511. taskledger-0.5.2/docs/architecture_taskledger_split.md +0 -37
  512. taskledger-0.5.2/docs/command_contract.md +0 -711
  513. taskledger-0.5.2/docs/full_task_cycle.md +0 -354
  514. taskledger-0.5.2/docs/index.md +0 -27
  515. taskledger-0.5.2/docs/public_surface.md +0 -152
  516. taskledger-0.5.2/docs/service_boundary_whitelist.md +0 -113
  517. taskledger-0.5.2/docs/sync.md +0 -169
  518. taskledger-0.5.2/docs/transfer.md +0 -78
  519. taskledger-0.5.2/docs/usage.md +0 -758
  520. taskledger-0.5.2/pyproject.toml +0 -132
  521. taskledger-0.5.2/skills/taskledger/SKILL.md +0 -541
  522. taskledger-0.5.2/specs/behavior/README.md +0 -1639
  523. taskledger-0.5.2/specs/behavior/UNMAPPED_TESTS.md +0 -65
  524. taskledger-0.5.2/specs/behavior/features/active_task/active-task.feature +0 -59
  525. taskledger-0.5.2/specs/behavior/features/actor_harness_state/actor-harness-state.feature +0 -214
  526. taskledger-0.5.2/specs/behavior/features/actor_resolution/actor-resolution.feature +0 -112
  527. taskledger-0.5.2/specs/behavior/features/agent_command_logging/agent-command-logging.feature +0 -121
  528. taskledger-0.5.2/specs/behavior/features/agent_session_protocol/agent-session-protocol.feature +0 -116
  529. taskledger-0.5.2/specs/behavior/features/atomic_fast_io/atomic-fast-io.feature +0 -13
  530. taskledger-0.5.2/specs/behavior/features/bdd_cli/bdd-cli.feature +0 -156
  531. taskledger-0.5.2/specs/behavior/features/bdd_gherkin/bdd-gherkin.feature +0 -68
  532. taskledger-0.5.2/specs/behavior/features/bdd_models/bdd-models.feature +0 -85
  533. taskledger-0.5.2/specs/behavior/features/bdd_report_import/bdd-report-import.feature +0 -40
  534. taskledger-0.5.2/specs/behavior/features/bdd_storage/bdd-storage.feature +0 -58
  535. taskledger-0.5.2/specs/behavior/features/bdd_validation_integration/bdd-validation-integration.feature +0 -40
  536. taskledger-0.5.2/specs/behavior/features/cli_command_contract/cli-command-contract.feature +0 -59
  537. taskledger-0.5.2/specs/behavior/features/cli_import_resilience/cli-import-resilience.feature +0 -31
  538. taskledger-0.5.2/specs/behavior/features/code_reviews/code-reviews.feature +0 -69
  539. taskledger-0.5.2/specs/behavior/features/command_example_linter/command-example-linter.feature +0 -26
  540. taskledger-0.5.2/specs/behavior/features/command_inventory/command-inventory.feature +0 -97
  541. taskledger-0.5.2/specs/behavior/features/command_runner/command-runner.feature +0 -23
  542. taskledger-0.5.2/specs/behavior/features/compact_mutation_output/compact-mutation-output.feature +0 -68
  543. taskledger-0.5.2/specs/behavior/features/config_cli/config-cli.feature +0 -79
  544. taskledger-0.5.2/specs/behavior/features/delta_remaining_contracts/delta-remaining-contracts.feature +0 -155
  545. taskledger-0.5.2/specs/behavior/features/docs_and_skill/docs-and-skill.feature +0 -199
  546. taskledger-0.5.2/specs/behavior/features/doctor/doctor.feature +0 -192
  547. taskledger-0.5.2/specs/behavior/features/domain_policies/domain-policies.feature +0 -435
  548. taskledger-0.5.2/specs/behavior/features/event_logging_config/event-logging-config.feature +0 -44
  549. taskledger-0.5.2/specs/behavior/features/events/events.feature +0 -25
  550. taskledger-0.5.2/specs/behavior/features/file_link_snapshots/file-link-snapshots.feature +0 -67
  551. taskledger-0.5.2/specs/behavior/features/find_code_clones_script/find-code-clones-script.feature +0 -13
  552. taskledger-0.5.2/specs/behavior/features/handoff_lifecycle/handoff-lifecycle.feature +0 -93
  553. taskledger-0.5.2/specs/behavior/features/help_subprocess/help-subprocess.feature +0 -28
  554. taskledger-0.5.2/specs/behavior/features/implementation_change_scan/implementation-change-scan.feature +0 -41
  555. taskledger-0.5.2/specs/behavior/features/implementation_checks/implementation-checks.feature +0 -60
  556. taskledger-0.5.2/specs/behavior/features/json_contracts/json-contracts.feature +0 -75
  557. taskledger-0.5.2/specs/behavior/features/legacy_cleanup_contracts/legacy-cleanup-contracts.feature +0 -25
  558. taskledger-0.5.2/specs/behavior/features/lifecycle_policies/lifecycle-policies.feature +0 -19
  559. taskledger-0.5.2/specs/behavior/features/lock_diagnostics/lock-diagnostics.feature +0 -161
  560. taskledger-0.5.2/specs/behavior/features/locks_audit/locks-audit.feature +0 -20
  561. taskledger-0.5.2/specs/behavior/features/models_v1_schema/models-v1-schema.feature +0 -38
  562. taskledger-0.5.2/specs/behavior/features/monitor/monitor.feature +0 -81
  563. taskledger-0.5.2/specs/behavior/features/next_action_expired_lock/next-action-expired-lock.feature +0 -28
  564. taskledger-0.5.2/specs/behavior/features/no_log_feature/no-log-feature.feature +0 -169
  565. taskledger-0.5.2/specs/behavior/features/plan_approval_contract/plan-approval-contract.feature +0 -70
  566. taskledger-0.5.2/specs/behavior/features/plan_lint/plan-lint.feature +0 -189
  567. taskledger-0.5.2/specs/behavior/features/plan_review/plan-review.feature +0 -89
  568. taskledger-0.5.2/specs/behavior/features/plan_revision_workflow/plan-revision-workflow.feature +0 -64
  569. taskledger-0.5.2/specs/behavior/features/plan_todo_materialization/plan-todo-materialization.feature +0 -13
  570. taskledger-0.5.2/specs/behavior/features/project_root_config/project-root-config.feature +0 -200
  571. taskledger-0.5.2/specs/behavior/features/question_add_many/question-add-many.feature +0 -35
  572. taskledger-0.5.2/specs/behavior/features/question_filter_answers/question-filter-answers.feature +0 -53
  573. taskledger-0.5.2/specs/behavior/features/question_plan_regeneration/question-plan-regeneration.feature +0 -92
  574. taskledger-0.5.2/specs/behavior/features/ready_work/ready-work.feature +0 -26
  575. taskledger-0.5.2/specs/behavior/features/release_changelog/release-changelog.feature +0 -107
  576. taskledger-0.5.2/specs/behavior/features/search/search.feature +0 -33
  577. taskledger-0.5.2/specs/behavior/features/service_boundaries/service-boundaries.feature +0 -55
  578. taskledger-0.5.2/specs/behavior/features/services_dashboard/services-dashboard.feature +0 -101
  579. taskledger-0.5.2/specs/behavior/features/sidecar_collections/sidecar-collections.feature +0 -23
  580. taskledger-0.5.2/specs/behavior/features/storage_bundle_layout/storage-bundle-layout.feature +0 -71
  581. taskledger-0.5.2/specs/behavior/features/storage_common/storage-common.feature +0 -32
  582. taskledger-0.5.2/specs/behavior/features/storage_init/storage-init.feature +0 -27
  583. taskledger-0.5.2/specs/behavior/features/storage_migration/storage-migration.feature +0 -243
  584. taskledger-0.5.2/specs/behavior/features/storage_repos/storage-repos.feature +0 -80
  585. taskledger-0.5.2/specs/behavior/features/storage_sync/storage-sync.feature +0 -83
  586. taskledger-0.5.2/specs/behavior/features/sync_git/sync-git.feature +0 -88
  587. taskledger-0.5.2/specs/behavior/features/task_archive/archive.feature +0 -48
  588. taskledger-0.5.2/specs/behavior/features/task_events/events.feature +0 -50
  589. taskledger-0.5.2/specs/behavior/features/task_markdown_export/markdown-export.feature +0 -157
  590. taskledger-0.5.2/specs/behavior/features/task_report/report.feature +0 -154
  591. taskledger-0.5.2/specs/behavior/features/taskledger_branch_scoped_ledgers/taskledger-branch-scoped-ledgers.feature +0 -57
  592. taskledger-0.5.2/specs/behavior/features/taskledger_cli_api_parity/taskledger-cli-api-parity.feature +0 -36
  593. taskledger-0.5.2/specs/behavior/features/taskledger_v2_cli/taskledger-v2-cli.feature +0 -333
  594. taskledger-0.5.2/specs/behavior/features/taskledger_v2_exchange/taskledger-v2-exchange.feature +0 -191
  595. taskledger-0.5.2/specs/behavior/features/tasks_service_static/tasks-service-static.feature +0 -13
  596. taskledger-0.5.2/specs/behavior/features/todo_implementation_gate/todo-implementation-gate.feature +0 -181
  597. taskledger-0.5.2/specs/behavior/features/trace/trace.feature +0 -13
  598. taskledger-0.5.2/specs/behavior/features/tree_command/tree-command.feature +0 -161
  599. taskledger-0.5.2/specs/behavior/features/usage_cli/usage-cli.feature +0 -45
  600. taskledger-0.5.2/specs/behavior/features/worker_pipeline_cli/worker-pipeline-cli.feature +0 -88
  601. taskledger-0.5.2/specs/behavior/features/worker_pipeline_config/worker-pipeline-config.feature +0 -49
  602. taskledger-0.5.2/specs/behavior/features/worker_pipeline_context/worker-pipeline-context.feature +0 -48
  603. taskledger-0.5.2/specs/behavior/features/worker_pipeline_handoff/worker-pipeline-handoff.feature +0 -29
  604. taskledger-0.5.2/specs/behavior/features/worker_pipeline_plan_template/worker-pipeline-plan-template.feature +0 -40
  605. taskledger-0.5.2/specs/behavior/features/worker_pipeline_todos/worker-pipeline-todos.feature +0 -20
  606. taskledger-0.5.2/specs/behavior/features/workflow_guidance/workflow-guidance.feature +0 -55
  607. taskledger-0.5.2/specs/behavior/manifest.json +0 -13836
  608. taskledger-0.5.2/specs/behavior/reports/specweave/coverage-gaps.md +0 -330
  609. taskledger-0.5.2/specs/behavior/reports/specweave/coverage.json +0 -99522
  610. taskledger-0.5.2/specs/behavior/reports/specweave/mappings.json +0 -7352
  611. taskledger-0.5.2/taskledger/_version.py +0 -24
  612. taskledger-0.5.2/taskledger/api/config.py +0 -608
  613. taskledger-0.5.2/taskledger/api/project.py +0 -339
  614. taskledger-0.5.2/taskledger/api/storage.py +0 -53
  615. taskledger-0.5.2/taskledger/cli.py +0 -1551
  616. taskledger-0.5.2/taskledger/cli_common.py +0 -833
  617. taskledger-0.5.2/taskledger/cli_config.py +0 -195
  618. taskledger-0.5.2/taskledger/cli_ledger.py +0 -522
  619. taskledger-0.5.2/taskledger/cli_migrate.py +0 -337
  620. taskledger-0.5.2/taskledger/cli_misc.py +0 -1408
  621. taskledger-0.5.2/taskledger/cli_storage.py +0 -115
  622. taskledger-0.5.2/taskledger/cli_sync.py +0 -847
  623. taskledger-0.5.2/taskledger/command_inventory.py +0 -1623
  624. taskledger-0.5.2/taskledger/domain/lock.py +0 -128
  625. taskledger-0.5.2/taskledger/domain/states.py +0 -337
  626. taskledger-0.5.2/taskledger/errors.py +0 -170
  627. taskledger-0.5.2/taskledger/exchange.py +0 -1389
  628. taskledger-0.5.2/taskledger/services/agent_logging.py +0 -620
  629. taskledger-0.5.2/taskledger/services/doctor.py +0 -381
  630. taskledger-0.5.2/taskledger/services/doctor_checks/project_scan.py +0 -122
  631. taskledger-0.5.2/taskledger/services/doctor_checks/task_checks.py +0 -541
  632. taskledger-0.5.2/taskledger/services/git_sync.py +0 -991
  633. taskledger-0.5.2/taskledger/services/git_utils.py +0 -111
  634. taskledger-0.5.2/taskledger/services/navigation.py +0 -1665
  635. taskledger-0.5.2/taskledger/services/run_store.py +0 -124
  636. taskledger-0.5.2/taskledger/services/storage_locations.py +0 -441
  637. taskledger-0.5.2/taskledger/services/task_lifecycle.py +0 -937
  638. taskledger-0.5.2/taskledger/services/tasks.py +0 -2849
  639. taskledger-0.5.2/taskledger/services/usage.py +0 -398
  640. taskledger-0.5.2/taskledger/services/validation_flow.py +0 -494
  641. taskledger-0.5.2/taskledger/services/workspace_snapshot.py +0 -572
  642. taskledger-0.5.2/taskledger/storage/__init__.py +0 -39
  643. taskledger-0.5.2/taskledger/storage/init.py +0 -210
  644. taskledger-0.5.2/taskledger/storage/ledger_config.py +0 -341
  645. taskledger-0.5.2/taskledger/storage/locks.py +0 -83
  646. taskledger-0.5.2/taskledger/storage/migrations.py +0 -509
  647. taskledger-0.5.2/taskledger/storage/paths.py +0 -176
  648. taskledger-0.5.2/taskledger/storage/project_config.py +0 -1404
  649. taskledger-0.5.2/taskledger/storage/project_identity.py +0 -205
  650. taskledger-0.5.2/taskledger/storage/task_index.py +0 -356
  651. taskledger-0.5.2/taskledger/storage/task_store.py +0 -1180
  652. taskledger-0.5.2/taskledger.egg-info/PKG-INFO +0 -859
  653. taskledger-0.5.2/taskledger.egg-info/SOURCES.txt +0 -463
  654. taskledger-0.5.2/taskledger.egg-info/requires.txt +0 -25
  655. taskledger-0.5.2/taskledger.egg-info/scm_file_list.json +0 -458
  656. taskledger-0.5.2/taskledger.egg-info/scm_version.json +0 -8
  657. taskledger-0.5.2/tests/test_active_task.py +0 -396
  658. taskledger-0.5.2/tests/test_actor_harness_state.py +0 -632
  659. taskledger-0.5.2/tests/test_actor_resolution.py +0 -213
  660. taskledger-0.5.2/tests/test_agent_command_logging.py +0 -712
  661. taskledger-0.5.2/tests/test_agent_session_protocol.py +0 -1006
  662. taskledger-0.5.2/tests/test_atomic_fast_io.py +0 -34
  663. taskledger-0.5.2/tests/test_cli_command_contract.py +0 -411
  664. taskledger-0.5.2/tests/test_cli_import_resilience.py +0 -175
  665. taskledger-0.5.2/tests/test_cli_runner_compatibility.py +0 -184
  666. taskledger-0.5.2/tests/test_code_reviews.py +0 -319
  667. taskledger-0.5.2/tests/test_command_example_linter.py +0 -196
  668. taskledger-0.5.2/tests/test_command_inventory.py +0 -427
  669. taskledger-0.5.2/tests/test_command_runner.py +0 -43
  670. taskledger-0.5.2/tests/test_compact_mutation_output.py +0 -387
  671. taskledger-0.5.2/tests/test_config_cli.py +0 -320
  672. taskledger-0.5.2/tests/test_delta_remaining_contracts.py +0 -1437
  673. taskledger-0.5.2/tests/test_docs_and_skill.py +0 -540
  674. taskledger-0.5.2/tests/test_doctor.py +0 -762
  675. taskledger-0.5.2/tests/test_domain_policies.py +0 -828
  676. taskledger-0.5.2/tests/test_event_logging_config.py +0 -229
  677. taskledger-0.5.2/tests/test_events.py +0 -135
  678. taskledger-0.5.2/tests/test_file_link_snapshots.py +0 -271
  679. taskledger-0.5.2/tests/test_find_code_clones_script.py +0 -101
  680. taskledger-0.5.2/tests/test_handoff_lifecycle.py +0 -353
  681. taskledger-0.5.2/tests/test_help_subprocess.py +0 -101
  682. taskledger-0.5.2/tests/test_implementation_change_scan.py +0 -378
  683. taskledger-0.5.2/tests/test_implementation_checks.py +0 -365
  684. taskledger-0.5.2/tests/test_import_boundaries.py +0 -117
  685. taskledger-0.5.2/tests/test_json_contracts.py +0 -504
  686. taskledger-0.5.2/tests/test_legacy_cleanup_contracts.py +0 -106
  687. taskledger-0.5.2/tests/test_lifecycle_policies.py +0 -110
  688. taskledger-0.5.2/tests/test_lock_diagnostics.py +0 -568
  689. taskledger-0.5.2/tests/test_locks_audit.py +0 -150
  690. taskledger-0.5.2/tests/test_models_v1_schema.py +0 -278
  691. taskledger-0.5.2/tests/test_monitor.py +0 -365
  692. taskledger-0.5.2/tests/test_next_action_expired_lock.py +0 -141
  693. taskledger-0.5.2/tests/test_no_log_feature.py +0 -496
  694. taskledger-0.5.2/tests/test_plan_approval_contract.py +0 -496
  695. taskledger-0.5.2/tests/test_plan_lint.py +0 -1175
  696. taskledger-0.5.2/tests/test_plan_review.py +0 -313
  697. taskledger-0.5.2/tests/test_plan_revision_workflow.py +0 -444
  698. taskledger-0.5.2/tests/test_plan_todo_materialization.py +0 -137
  699. taskledger-0.5.2/tests/test_project_root_config.py +0 -776
  700. taskledger-0.5.2/tests/test_question_add_many.py +0 -179
  701. taskledger-0.5.2/tests/test_question_filter_answers.py +0 -346
  702. taskledger-0.5.2/tests/test_question_plan_regeneration.py +0 -1082
  703. taskledger-0.5.2/tests/test_ready_work.py +0 -134
  704. taskledger-0.5.2/tests/test_release_changelog.py +0 -273
  705. taskledger-0.5.2/tests/test_search.py +0 -140
  706. taskledger-0.5.2/tests/test_service_boundaries.py +0 -513
  707. taskledger-0.5.2/tests/test_services_dashboard.py +0 -416
  708. taskledger-0.5.2/tests/test_sidecar_collections.py +0 -133
  709. taskledger-0.5.2/tests/test_storage_bundle_layout.py +0 -553
  710. taskledger-0.5.2/tests/test_storage_common.py +0 -243
  711. taskledger-0.5.2/tests/test_storage_init.py +0 -76
  712. taskledger-0.5.2/tests/test_storage_migration.py +0 -1048
  713. taskledger-0.5.2/tests/test_storage_repos.py +0 -231
  714. taskledger-0.5.2/tests/test_storage_sync.py +0 -380
  715. taskledger-0.5.2/tests/test_sync_git.py +0 -498
  716. taskledger-0.5.2/tests/test_task_archive.py +0 -563
  717. taskledger-0.5.2/tests/test_task_events.py +0 -176
  718. taskledger-0.5.2/tests/test_task_markdown_export.py +0 -553
  719. taskledger-0.5.2/tests/test_task_report.py +0 -457
  720. taskledger-0.5.2/tests/test_taskledger_branch_scoped_ledgers.py +0 -202
  721. taskledger-0.5.2/tests/test_taskledger_cli_api_parity.py +0 -188
  722. taskledger-0.5.2/tests/test_taskledger_v2_cli.py +0 -2412
  723. taskledger-0.5.2/tests/test_taskledger_v2_exchange.py +0 -2026
  724. taskledger-0.5.2/tests/test_tasks_service_static.py +0 -32
  725. taskledger-0.5.2/tests/test_todo_implementation_gate.py +0 -1167
  726. taskledger-0.5.2/tests/test_trace.py +0 -42
  727. taskledger-0.5.2/tests/test_tree_command.py +0 -696
  728. taskledger-0.5.2/tests/test_usage_cli.py +0 -197
  729. taskledger-0.5.2/tests/test_validation_git_snapshot_recovery.py +0 -227
  730. taskledger-0.5.2/tests/test_worker_pipeline_cli.py +0 -659
  731. taskledger-0.5.2/tests/test_worker_pipeline_config.py +0 -305
  732. taskledger-0.5.2/tests/test_worker_pipeline_context.py +0 -235
  733. taskledger-0.5.2/tests/test_worker_pipeline_handoff.py +0 -169
  734. taskledger-0.5.2/tests/test_worker_pipeline_plan_template.py +0 -199
  735. taskledger-0.5.2/tests/test_worker_pipeline_todos.py +0 -245
  736. taskledger-0.5.2/tests/test_workflow_guidance.py +0 -134
  737. {taskledger-0.5.2 → taskledger-0.6.0}/.codecrate.toml +0 -0
  738. {taskledger-0.5.2 → taskledger-0.6.0}/.github/workflows/codecov.yml +0 -0
  739. {taskledger-0.5.2 → taskledger-0.6.0}/.github/workflows/pre-commit.yml +0 -0
  740. {taskledger-0.5.2 → taskledger-0.6.0}/.github/workflows/python-publish.yml +0 -0
  741. {taskledger-0.5.2 → taskledger-0.6.0}/.github/workflows/tests.yml +0 -0
  742. /taskledger-0.5.2/specs/behavior/evidence/.gitkeep → /taskledger-0.6.0/.ledger/releaseledger/write.lock +0 -0
  743. {taskledger-0.5.2 → taskledger-0.6.0}/.planledger.toml +0 -0
  744. {taskledger-0.5.2 → taskledger-0.6.0}/.pre-commit-config.yaml +0 -0
  745. {taskledger-0.5.2 → taskledger-0.6.0}/.readthedocs.yaml +0 -0
  746. {taskledger-0.5.2 → taskledger-0.6.0}/.releaseledger.toml +0 -0
  747. {taskledger-0.5.2 → taskledger-0.6.0}/.ruff.toml +0 -0
  748. {taskledger-0.5.2 → taskledger-0.6.0}/LICENSE +0 -0
  749. {taskledger-0.5.2 → taskledger-0.6.0}/Makefile +0 -0
  750. {taskledger-0.5.2 → taskledger-0.6.0}/docs/Makefile +0 -0
  751. {taskledger-0.5.2 → taskledger-0.6.0}/docs/build.sh +0 -0
  752. {taskledger-0.5.2 → taskledger-0.6.0}/docs/conf.py +0 -0
  753. {taskledger-0.5.2 → taskledger-0.6.0}/docs/multi_repo.md +0 -0
  754. {taskledger-0.5.2 → taskledger-0.6.0}/docs/requirements.txt +0 -0
  755. {taskledger-0.5.2 → taskledger-0.6.0}/scripts/find_code_clones.py +0 -0
  756. {taskledger-0.5.2 → taskledger-0.6.0}/setup.cfg +0 -0
  757. {taskledger-0.5.2 → taskledger-0.6.0}/setup.py +0 -0
  758. {taskledger-0.5.2/specs/behavior/features → taskledger-0.6.0/specs/behavior/evidence}/.gitkeep +0 -0
  759. {taskledger-0.5.2 → taskledger-0.6.0}/specs/behavior/evidence/taskledger-test-feature-coverage.json +0 -0
  760. {taskledger-0.5.2/specs/behavior/mappings → taskledger-0.6.0/specs/behavior/features}/.gitkeep +0 -0
  761. {taskledger-0.5.2/specs/behavior/reports/specweave → taskledger-0.6.0/specs/behavior/mappings}/.gitkeep +0 -0
  762. /taskledger-0.5.2/taskledger/py.typed → /taskledger-0.6.0/specs/behavior/reports/specmason/.gitkeep +0 -0
  763. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/__init__.py +0 -0
  764. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/__main__.py +0 -0
  765. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/api/__init__.py +0 -0
  766. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/api/handoff.py +0 -0
  767. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/api/introductions.py +0 -0
  768. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/api/locks.py +0 -0
  769. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/api/plans.py +0 -0
  770. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/api/questions.py +0 -0
  771. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/api/releases.py +0 -0
  772. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/api/reviews.py +0 -0
  773. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/api/search.py +0 -0
  774. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/api/sync.py +0 -0
  775. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/api/task_runs.py +0 -0
  776. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/api/tasks.py +0 -0
  777. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/cli_actor.py +0 -0
  778. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/cli_archive.py +0 -0
  779. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/cli_implement.py +0 -0
  780. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/cli_pipeline.py +0 -0
  781. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/cli_plan.py +0 -0
  782. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/cli_question.py +0 -0
  783. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/cli_ref.py +0 -0
  784. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/cli_release.py +0 -0
  785. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/cli_review.py +0 -0
  786. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/cli_task.py +0 -0
  787. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/cli_trace.py +0 -0
  788. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/cli_validate.py +0 -0
  789. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/domain/__init__.py +0 -0
  790. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/domain/_model_utils.py +0 -0
  791. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/domain/active_state.py +0 -0
  792. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/domain/actor.py +0 -0
  793. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/domain/change.py +0 -0
  794. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/domain/check.py +0 -0
  795. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/domain/event.py +0 -0
  796. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/domain/handoff.py +0 -0
  797. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/domain/models.py +0 -0
  798. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/domain/plan.py +0 -0
  799. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/domain/policies.py +0 -0
  800. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/domain/question.py +0 -0
  801. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/domain/release.py +0 -0
  802. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/domain/review.py +0 -0
  803. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/domain/run.py +0 -0
  804. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/domain/sidecars.py +0 -0
  805. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/domain/task.py +0 -0
  806. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/ids.py +0 -0
  807. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/launcher.py +0 -0
  808. /taskledger-0.5.2/tests/__init__.py → /taskledger-0.6.0/taskledger/py.typed +0 -0
  809. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/refs.py +0 -0
  810. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/search.py +0 -0
  811. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/__init__.py +0 -0
  812. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/actors.py +0 -0
  813. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/agent_transcripts.py +0 -0
  814. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/change_tracking.py +0 -0
  815. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/check_tracking.py +0 -0
  816. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/code_review.py +0 -0
  817. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/command_runner.py +0 -0
  818. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/dashboard.py +0 -0
  819. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/doctor_checks/migration_checks.py +0 -0
  820. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/event_logging.py +0 -0
  821. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/file_links.py +0 -0
  822. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/handoff.py +0 -0
  823. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/handoff_lifecycle.py +0 -0
  824. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/implementation_flow.py +0 -0
  825. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/lock_diagnostics.py +0 -0
  826. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/monitor.py +0 -0
  827. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/next_action_model.py +0 -0
  828. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/next_action_payload.py +0 -0
  829. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/phase5_lock_transfer.py +0 -0
  830. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/plan_editing.py +0 -0
  831. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/plan_hash.py +0 -0
  832. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/plan_input.py +0 -0
  833. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/plan_lint.py +0 -0
  834. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/plan_materialization.py +0 -0
  835. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/plan_review.py +0 -0
  836. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/planning_flow.py +0 -0
  837. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/ready_work.py +0 -0
  838. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/releases.py +0 -0
  839. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/task_archive.py +0 -0
  840. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/task_collections.py +0 -0
  841. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/task_events.py +0 -0
  842. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/task_export.py +0 -0
  843. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/task_queries.py +0 -0
  844. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/task_repair.py +0 -0
  845. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/task_reports.py +0 -0
  846. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/trace.py +0 -0
  847. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/tree.py +0 -0
  848. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/validation.py +0 -0
  849. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/worker_context.py +0 -0
  850. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/worker_pipeline.py +0 -0
  851. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/services/workflow_guidance.py +0 -0
  852. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/storage/agent_logs.py +0 -0
  853. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/storage/atomic.py +0 -0
  854. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/storage/common.py +0 -0
  855. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/storage/events.py +0 -0
  856. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/storage/frontmatter.py +0 -0
  857. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/storage/indexes.py +0 -0
  858. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/storage/meta.py +0 -0
  859. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/storage/repos.py +0 -0
  860. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/storage/sidecar_index.py +0 -0
  861. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/storage/toml_edit.py +0 -0
  862. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/storage/worker_pipeline_config.py +0 -0
  863. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/storage/yaml_store.py +0 -0
  864. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger/timeutils.py +0 -0
  865. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger.egg-info/dependency_links.txt +0 -0
  866. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger.egg-info/entry_points.txt +0 -0
  867. {taskledger-0.5.2 → taskledger-0.6.0}/taskledger.egg-info/top_level.txt +0 -0
  868. {taskledger-0.5.2 → taskledger-0.6.0}/tests/conftest.py +0 -0
  869. {taskledger-0.5.2 → taskledger-0.6.0}/tests/support/__init__.py +0 -0
  870. {taskledger-0.5.2 → taskledger-0.6.0}/tests/support/builders.py +0 -0
  871. {taskledger-0.5.2 → taskledger-0.6.0}/tests/support/fake_command_runner.py +0 -0
  872. {taskledger-0.5.2 → taskledger-0.6.0}/tests/test_ledgercore_dependency.py +0 -0
  873. {taskledger-0.5.2 → taskledger-0.6.0}/tests/test_performance_caching.py +0 -0
  874. {taskledger-0.5.2 → taskledger-0.6.0}/tests/test_plan_input.py +0 -0
  875. {taskledger-0.5.2 → taskledger-0.6.0}/tests/test_plan_input_cli.py +0 -0
  876. {taskledger-0.5.2 → taskledger-0.6.0}/tests/test_resource_refs.py +0 -0
  877. {taskledger-0.5.2 → taskledger-0.6.0}/tests/test_storage_yaml_store.py +0 -0
  878. {taskledger-0.5.2 → taskledger-0.6.0}/tests/test_workspace_snapshot.py +0 -0
@@ -0,0 +1,39 @@
1
+ ---
2
+ schema_version: 4
3
+ id: block-0083
4
+ type: black_box
5
+ title: Human Presentation Layer
6
+ status: archived
7
+ section: building_block_view
8
+ level: 1
9
+ parent: block-0029
10
+ order: 60
11
+ interfaces:
12
+ - Service read models -> terminal TUI
13
+ - Dashboard/report payloads -> HTML or Markdown
14
+ location:
15
+ - taskledger/tui/
16
+ - taskledger/services/tui_read_model.py
17
+ - taskledger/services/dashboard.py
18
+ - taskledger/services/task_reports.py
19
+ fulfilled_requirements: []
20
+ risks: []
21
+ tags: []
22
+ body_format: markdown
23
+ source_refs:
24
+ - path: taskledger/tui/
25
+ role: implements
26
+ - path: taskledger/services/tui_read_model.py
27
+ role: implements
28
+ test_refs:
29
+ - tests/test_tui_cli.py
30
+ - tests/test_tui_read_model.py
31
+ archived_reason: TUI and HTML dashboard removed from taskledger; task-0126 ledger-isolation
32
+ archived_from: records/building_blocks/block-0083.md
33
+ kind: block
34
+ version: 1
35
+ ---
36
+
37
+ Optional human-facing views over the same durable task records used by CLI and API operations. The Textual TUI presents task lists, plan review, todos, implementation, code reviews, validation, files, events, and raw reports. HTML dashboard and Markdown report services provide related inspection and sharing views.
38
+
39
+ This layer is read-only with respect to lifecycle state. Users invoke explicit CLI commands for mutations, preserving approval, lock, todo, and validation gates.
@@ -0,0 +1,30 @@
1
+ ---
2
+ schema_version: 4
3
+ id: concept-0081
4
+ type: concept
5
+ title: BDD traceability and report evidence
6
+ status: archived
7
+ section: cross_cutting_concepts
8
+ order: 70
9
+ applies_to: []
10
+ body_format: markdown
11
+ source_refs:
12
+ - path: taskledger/domain/bdd.py
13
+ role: implements
14
+ - path: taskledger/services/bdd_gherkin.py
15
+ role: implements
16
+ - path: taskledger/services/bdd_reports.py
17
+ role: implements
18
+ test_refs:
19
+ - tests/test_bdd_gherkin.py
20
+ - tests/test_bdd_report_import.py
21
+ - tests/test_bdd_validation_integration.py
22
+ archived_reason: BDD traceability removed from taskledger; task-0126 ledger-isolation
23
+ archived_from: records/concepts/concept-0081.md
24
+ kind: concept
25
+ version: 1
26
+ ---
27
+
28
+ BDD is an optional traceability overlay on a managed task. Features contain rules and Given/When/Then examples. Examples can reference canonical acceptance-criterion IDs and Archledger record IDs.
29
+
30
+ Gherkin export is an exchange artifact, not canonical state. Stable tags preserve task, example, criterion, and architecture identities. Imported Cucumber JSON or JUnit XML is matched back to examples and persisted as report evidence that can contribute validation checks. Normal lifecycle and validation gates remain authoritative.
@@ -0,0 +1,33 @@
1
+ ---
2
+ schema_version: 4
3
+ id: runtime-0076
4
+ type: runtime_scenario
5
+ title: HTML report and serve dashboard
6
+ status: archived
7
+ section: runtime_view
8
+ order: 70
9
+ participants:
10
+ - taskledger report html (removed)
11
+ - taskledger serve (removed)
12
+ trigger: Developer runs taskledger report html or taskledger serve
13
+ result: ""
14
+ body_format: markdown
15
+ archived_reason: HTML report and serve dashboard removed; task-0126 ledger-isolation
16
+ archived_from: records/runtime/runtime-0076.md
17
+ kind: runtime
18
+ version: 1
19
+ ---
20
+
21
+ **Trigger**: Developer runs `taskledger report html` or `taskledger serve`.
22
+
23
+ **Flow**:
24
+
25
+ 1. `report html` → Generates a standalone HTML report file from task data using Jinja2 templates
26
+ 2. `task report` → Generates a per-task report with configurable sections (summary, plan, changes, command-log)
27
+ 3. `serve` → Starts a localhost HTTP server with a read-only web dashboard for browsing tasks, plans, and status
28
+ 4. Dashboard renders task trees, status summaries, and plan details in a browser
29
+ 5. All report/serve output is read-only — no mutations through the dashboard
30
+
31
+ **Result**: Human-readable HTML reports and a local dashboard for inspecting task state without the CLI. Agents should continue using JSON output and CLI commands.
32
+
33
+ **Key source**: `taskledger/services/html_reports.py`, `taskledger/services/web_dashboard.py`, `taskledger/services/task_reports.py`, `taskledger/cli_report.py`.
@@ -0,0 +1,40 @@
1
+ ---
2
+ schema_version: 4
3
+ id: runtime-0084
4
+ type: runtime_scenario
5
+ title: BDD example to validation evidence
6
+ status: archived
7
+ section: runtime_view
8
+ order: 100
9
+ participants:
10
+ - coding agent
11
+ - taskledger CLI
12
+ - BDD services
13
+ - task storage
14
+ trigger: An actor wants executable examples linked to task acceptance criteria.
15
+ result: External automation results are persisted as traceable validation evidence.
16
+ body_format: markdown
17
+ source_refs:
18
+ - path: taskledger/cli_bdd.py
19
+ role: implements
20
+ - path: taskledger/services/bdd_gherkin.py
21
+ role: implements
22
+ - path: taskledger/services/bdd_reports.py
23
+ role: implements
24
+ test_refs:
25
+ - tests/test_bdd_cli.py
26
+ - tests/test_bdd_validation_integration.py
27
+ archived_reason: BDD example scenario removed from taskledger; task-0126 ledger-isolation
28
+ archived_from: records/runtime/runtime-0084.md
29
+ kind: runtime
30
+ version: 1
31
+ ---
32
+
33
+ 1. An actor initializes task-local BDD/example records for a managed task.
34
+ 2. Each example links to acceptance-criterion IDs and may link to Archledger records.
35
+ 3. Canonical behavior specs live outside Taskledger under `specs/behavior/features/<area>/<feature>.feature`, owned by SpecWeave.
36
+ 4. Plain pytest files under `tests/test_<area>_<feature>.py` enforce the behavior and may emit JUnit XML under `reports/behavior/`.
37
+ 5. `bdd example link-automation` records metadata that links a task-local example to the external feature file, scenario tag/title, and pytest node id.
38
+ 6. `validate import-bdd-report` imports JUnit XML or Cucumber-compatible JSON evidence and matches it back to task-local examples.
39
+ 7. Matched results become validation evidence through normal validation checks; normal latest-check-wins and mandatory-criterion gates still decide completion.
40
+ 8. `bdd gherkin-export` remains a derived exchange/export command. It must not be presented as the canonical source of executable behavior.
@@ -0,0 +1,10 @@
1
+ {
2
+ "documents": {
3
+ "arc42:markdown:draft=false:superseded=false": {
4
+ "fingerprint": "sha256:90460011ff7f175475e9656f06c3472dfaf38d193f6b057612d880e739849df2",
5
+ "input_count": 84,
6
+ "version": 1
7
+ }
8
+ },
9
+ "schema": "archledger.document-state.v1"
10
+ }
@@ -0,0 +1,30 @@
1
+ ---
2
+ schema_version: 4
3
+ id: content-0001
4
+ type: section
5
+ section: introduction_and_goals
6
+ title: Introduction and Goals
7
+ order: 10
8
+ status: accepted
9
+ body_format: markdown
10
+ kind: content
11
+ version: 2
12
+ ---
13
+
14
+ taskledger is a task-first durable state layer for staged coding work. It provides a Python CLI and library that manages the full lifecycle of coding tasks: creation, planning, user approval, implementation, validation, and completion.
15
+
16
+ The system is designed for use by both human developers and automated coding agents. Its primary goals are:
17
+
18
+ - **Durable task state**: Every task, plan, run, lock, todo, and validation check is persisted as a Markdown record with YAML front matter in the project `.taskledger/` directory. State survives process restarts, context switches, and handoffs between actors.
19
+ - **Explicit lifecycle gates**: Transitions between stages (draft -> planning -> plan_review -> approved -> implementing -> implemented -> validating -> done) are enforced by policy decisions. User approval is required before implementation begins. Validation checks gate completion.
20
+ - **Fresh-context handoffs**: Agents and humans can create, claim, and close handoff records that capture enough context (task state, plan, todos, questions, lock status) for a fresh process to continue work without reading the entire history.
21
+ - **Machine-readable output**: Every CLI command supports `--json` for structured output with a stable envelope shape (`ok`, `command`, `result_type`, `result`, `events`, `warnings`) and deterministic exit codes.
22
+ - **Opaque cross-ledger references**: Task-ledger task, plan, file, and link references remain opaque strings. Taskledger does not interpret ledgercore global refs, archledger IDs, or other external system identifiers.
23
+
24
+ The canonical workflow is:
25
+
26
+ ```text
27
+ task -> plan -> approval -> implement -> validate -> done
28
+ ```
29
+
30
+ This workflow is the product contract, not decoration. Deviations from this flow require explicit user decisions or repair commands.
@@ -0,0 +1,21 @@
1
+ ---
2
+ schema_version: 4
3
+ id: content-0002
4
+ type: section
5
+ section: architecture_constraints
6
+ title: Architecture Constraints
7
+ order: 20
8
+ status: accepted
9
+ body_format: markdown
10
+ kind: content
11
+ version: 2
12
+ ---
13
+
14
+ taskledger operates under several fixed constraints that shape its architecture:
15
+
16
+ - **Python 3.10+ with minimal dependencies**: The runtime depends only on `typer`, `click`, `PyYAML`, `tomli` (Python <3.11), and `ledgercore` for atomic I/O, JSON I/O, YAML I/O, front matter parsing, and cross-ledger ref parsing. No database, no network server, no external service is required.
17
+ - **File-system canonical storage**: All durable state lives in the project `.taskledger/` directory as Markdown files with YAML front matter. This makes state inspectable, diffable, and version-controllable alongside source code.
18
+ - **CLI-first with machine-readable JSON output**: The primary interface is the `taskledger` CLI command. Every command supports `--json` for structured output. The JSON envelope shape and exit codes are part of the public contract.
19
+ - **Skills outside the package**: Agent skill files (for example `skills/taskledger/SKILL.md`) live outside the Python package and are never packaged as Python package data. The package provides the CLI and library; skill distribution is separate.
20
+ - **Project-local configuration**: Each project has its own `taskledger.toml` and `.taskledger/` directory. There is no global state or central server.
21
+ - **Source-first architecture records**: Arc42 architecture records live under `.archledger/` and are the source of truth for `ARCHITECTURE.md`. `docs/architecture_taskledger_split.md` is a concise human-maintained summary. Skills stay outside both the Python package and the archledger build output.
@@ -0,0 +1,21 @@
1
+ ---
2
+ schema_version: 4
3
+ id: content-0003
4
+ type: section
5
+ section: context_and_scope
6
+ title: Context and Scope
7
+ order: 30
8
+ status: accepted
9
+ body_format: markdown
10
+ kind: content
11
+ version: 2
12
+ ---
13
+
14
+ taskledger operates as a self-contained tool within a software development project. It interacts with four categories of external actors:
15
+
16
+ 1. **Agent harnesses** (pi, codex, chatgpt, and similar) invoke taskledger CLI commands to create tasks, propose plans, log implementation changes, run validation checks, and manage handoffs. They consume `--json` output.
17
+ 2. **Human developers** use the CLI directly in terminals for task creation, plan review, approval, lock management, and inspection (`status`, `context`, `next-action`, `doctor`, `monitor`).
18
+ 3. **CI systems** may invoke taskledger for status checks, validation, snapshot/export operations, and `taskledger trace` bundles.
19
+ 4. **Python library consumers** import from `taskledger.api.*` to programmatically manage tasks without the CLI subprocess.
20
+
21
+ The system boundary is the `.taskledger/` directory and the `taskledger.toml` config file at the project root. Everything inside `.taskledger/` is taskledger-owned state. Everything outside is the host project source code. Taskledger does not depend on any external services, databases, or network endpoints. It reads the host project file system for search/symbol operations but does not modify files outside `.taskledger/`.
@@ -0,0 +1,40 @@
1
+ ---
2
+ schema_version: 4
3
+ id: content-0004
4
+ type: section
5
+ section: solution_strategy
6
+ title: Solution Strategy
7
+ order: 40
8
+ status: accepted
9
+ body_format: markdown
10
+ kind: content
11
+ version: 2
12
+ ---
13
+
14
+ taskledger uses a layered architecture with clear dependency direction: upper layers depend on lower layers, never the reverse.
15
+
16
+ 1. **CLI Layer** (`taskledger/cli*.py`) — Typer commands that parse arguments, resolve task references, call service functions, and render output (human text or JSON).
17
+ 2. **API Layer** (`taskledger/api/*.py`) — Stable public wrappers that mirror the CLI surface for programmatic use.
18
+ 3. **Services Layer** (`taskledger/services/*.py`) — Orchestration logic: lifecycle flows (planning, implementation, validation), handoff rendering, doctor checks, plan input validation, plan review, snapshot capture, dashboard assembly, and navigation.
19
+ 4. **Domain Layer** (`taskledger/domain/*.py`) — Pure data models, state enums, normalization, and policy decisions. No I/O, no file system access.
20
+ 5. **Storage Layer** (`taskledger/storage/*.py`) — File system operations: front matter read/write, atomic writes, lock files, sidecar index rebuilds, migrations. Storage delegates low-level primitives to `ledgercore`.
21
+
22
+ Key architectural choices:
23
+
24
+ - **Markdown and YAML front matter as canonical format** — Each record (task, plan, run, lock, handoff, code review, etc.) is stored as a `.md` file with YAML front matter metadata and a Markdown body. This makes state human-readable and Git-friendly.
25
+ - **Sidecar indexes as derived caches** — A `task_sidecars.json` summary index lives under `.taskledger/ledgers/<ledger_ref>/` and is rebuilt from canonical records. Per-task sidecar writes update the index in place.
26
+ - **Policy-based gate decisions** — All lifecycle transitions go through functions in `taskledger/domain/policies.py` that return `Decision` objects with `allowed`, `code`, `message`, and `exit_code`. This keeps gate logic testable and separate from I/O.
27
+ - **Atomic file writes** — All writes use `atomic_write_text` (write to temp, fsync, `os.replace`) from `ledgercore`.
28
+ - **Editable plan input with preflight** — `taskledger plan check` parses editable plan input through `taskledger/services/plan_input.py`, applies worker-pipeline validation, and returns indexed issues before any plan upsert.
29
+ - **Implementation workspace snapshots** — `taskledger/services/workspace_snapshot.py` captures Git and content snapshots when an implementation run starts, and `validate start` blocks when the workspace diverges. `implement snapshot refresh --reason ...` records new snapshots with an audit trail.
30
+ - **Opaque cross-ledger references** — Task refs, plan versions, file links, and external handoff targets are stored as opaque strings. Taskledger does not interpret ledgercore global refs, archledger IDs, or other external system identifiers.
31
+ - **Read-model reuse** — `view`, `status`, `tree`, and `monitor` consume service-level read models. These presentations are read-only and do not bypass lifecycle services.
32
+
33
+ ## Maintenance
34
+
35
+ `ARCHITECTURE.md` in the repository root is generated from archledger source records. Do not edit it directly.
36
+
37
+ - **Edit**: `.archledger/profiles/arc42/sections/*.md` for section content, `.archledger/records/**/*.md` for individual records.
38
+ - **Regenerate**: Run `archledger build` to regenerate `ARCHITECTURE.md`.
39
+ - **Verify**: Run `archledger check` and `pytest -q tests/test_docs_and_skill.py tests/test_service_boundaries.py` after changes.
40
+ - **Authoritative source**: The archledger records under `.archledger/` are the single source of truth for architecture documentation. `docs/architecture_taskledger_split.md` is a concise human-maintained summary.
@@ -0,0 +1,24 @@
1
+ ---
2
+ schema_version: 4
3
+ id: content-0005
4
+ type: section
5
+ section: building_block_view
6
+ title: Building Block View
7
+ order: 50
8
+ status: accepted
9
+ body_format: markdown
10
+ kind: content
11
+ version: 2
12
+ ---
13
+
14
+ The top-level building block is the **taskledger system**, decomposed into five black-box components:
15
+
16
+ 1. **CLI Layer** — Handles command parsing, task reference resolution, and output rendering. Command families cover the canonical lifecycle plus `review`, `config`, task archive operations, transfer and sync, diagnostics, the `monitor` observer, and the `pipeline` overlay.
17
+ 2. **API Layer** — Provides stable Python function wrappers around service operations.
18
+ 3. **Services Layer** — Orchestrates lifecycle flows, plan input validation, plan review, handoffs, snapshot capture, navigation, doctor checks, worker pipelines, archival, code-review evidence, event logging, exports, dashboard assembly, and ready-work inspection.
19
+ 4. **Domain Layer** — Defines models, state machines, and policy decisions.
20
+ 5. **Storage Layer** — Manages file system persistence and layout. Low-level primitives (atomic writes, JSON, YAML, front matter, refs) are delegated to `ledgercore`.
21
+
22
+ Data flows strictly downward: CLI -> Services -> Domain + Storage. The API layer calls Services directly. The Domain layer has no dependencies on Storage or Services.
23
+
24
+ Each task is stored as a **task bundle directory** under `.taskledger/ledgers/<ledger_ref>/` containing the task record (Markdown) and sidecar collections for plans, runs, locks, todos, questions, changes, checks, handoffs, links, and code reviews. Mutations append immutable `TaskEvent` records to the ledger-level `events/` directory. Action and event logging is enabled by default; set `[event_logging] enabled = false` in `taskledger.toml` to disable new event records. Existing records remain readable regardless. A `task_sidecars.json` summary index under the same ledger path is maintained as a derived cache of sidecar counts and lock summaries.
@@ -0,0 +1,23 @@
1
+ ---
2
+ schema_version: 4
3
+ id: content-0006
4
+ type: section
5
+ section: runtime_view
6
+ title: Runtime View
7
+ order: 60
8
+ status: accepted
9
+ body_format: markdown
10
+ kind: content
11
+ version: 2
12
+ ---
13
+
14
+ The runtime view traces the main operational scenarios through the system:
15
+
16
+ 1. **Task lifecycle** — A task is created in `draft`, moves to `planning` (lock acquired, run started), then `plan_review` after a plan is proposed. The user approves -> `approved`. Implementation starts -> `implementing`, finishes -> `implemented`. Validation starts -> `validating`, passes -> `done`.
17
+ 2. **Plan input flow** — `taskledger plan start` opens planning. `plan guidance` reports the active project planning profile. `plan template` writes a fresh plan skeleton; `plan check --file plan.md` runs the preflight parser in `taskledger/services/plan_input.py` without mutating state. `plan upsert --file plan.md` (or `--from-answers`) persists the plan; `plan lint --version N` surfaces blocking issues; `plan review --version N` produces the approval brief; `plan accept --version N --note ...` records the user-only decision.
18
+ 3. **Implementation workspace snapshot** — `implement start` captures a Git and content snapshot in `taskledger/services/workspace_snapshot.py`. `validate start` blocks when the current workspace diverges from the implementation snapshot. `implement snapshot refresh --reason ...` records a new snapshot with an audit trail and is the normal recovery path when validation is blocked by snapshot mismatch.
19
+ 4. **Lock lifecycle** — Starting a stage (planning, implementation, validation) acquires a lock and creates a run. Locks have lease timers and heartbeats. Stale locks require explicit break flow with audit trail.
20
+ 5. **Handoff flow** — A worker creates a handoff with generated context (task state, plan, todos, questions, lock info). Another worker claims it, optionally transferring the lock. The handoff is closed when the receiving worker completes.
21
+ 6. **Doctor checks** — Inspects lock/run consistency, front matter integrity, index staleness, and storage layout version. Reports diagnostics with severity, code, and repair hints.
22
+ 7. **Validation evidence flow** — Acceptance criteria from the accepted plan are checked during the validation stage. Evidence is recorded per criterion with pass/fail/warn status. Latest-check-wins semantics apply; mandatory criteria gate completion.
23
+ 8. **Code-review evidence** — A reviewer records append-only review evidence against an implementation run, handoff, worker step, working tree, or commit. This is evidence attached to the task, not a new lifecycle stage.
@@ -0,0 +1,20 @@
1
+ ---
2
+ schema_version: 4
3
+ id: content-0007
4
+ type: section
5
+ section: deployment_view
6
+ title: Deployment View
7
+ order: 70
8
+ status: accepted
9
+ body_format: markdown
10
+ kind: content
11
+ version: 2
12
+ ---
13
+
14
+ taskledger is a single-node, file-system-based tool. Deployment consists of:
15
+
16
+ - **Installation**: `pip install taskledger` (PyPI) or local `pip install -e .`
17
+ - **Project initialization**: `taskledger init` creates `taskledger.toml` and `.taskledger/` in the project root
18
+ - **Runtime**: The CLI runs as a Python process, reading and writing the project `.taskledger/` directory. No daemon, no server.
19
+ - **CI integration**: taskledger commands can be run in CI pipelines for status checks, validation, snapshot and export operations, and `taskledger trace` bundles
20
+ - **Agent integration**: Agent harnesses invoke taskledger CLI commands as subprocess calls
@@ -0,0 +1,24 @@
1
+ ---
2
+ schema_version: 4
3
+ id: content-0008
4
+ type: section
5
+ section: cross_cutting_concepts
6
+ title: Cross-cutting Concepts
7
+ order: 80
8
+ status: accepted
9
+ body_format: markdown
10
+ kind: content
11
+ version: 2
12
+ ---
13
+
14
+ Cross-cutting concerns that span multiple layers:
15
+
16
+ - **Actor metadata**: Every mutation carries an `ActorRef` (type: agent/user/system, name, role, session, harness). Decisions distinguish user-only actions (approval, waiver) from agent actions.
17
+ - **JSON output envelope**: All CLI commands emit a consistent JSON envelope with `ok`, `command`, `result_type`, `result`, `events`, and `warnings` fields when `--json` is passed. Error envelopes add `code`, `message`, `details`, and `remediation`.
18
+ - **YAML front matter serialization**: All canonical records use YAML front matter (`---` delimited) for metadata and Markdown for body. Serialization and deserialization live in `taskledger/storage/frontmatter.py`, backed by `ledgercore`.
19
+ - **Atomic file writes**: All file writes go through `ledgercore` atomic primitives (temp file, flush, fsync, `os.replace`, directory fsync) to prevent corruption.
20
+ - **Action and event logging (default-on)**: Mutations append immutable `TaskEvent` records to the ledger-level `events/` directory under `.taskledger/ledgers/<ledger_ref>/`. Action and event logging is enabled by default; set `[event_logging] enabled = false` to disable new records. Existing records remain readable. Source: `taskledger/storage/events.py`, `taskledger/services/task_events.py`, `taskledger/domain/event.py`.
21
+ - **Exit code taxonomy**: Errors map to stable exit codes (0=success, 1=generic, 2=bad input, 3=workflow rejection, 4=lock conflict, 5=missing, 6=storage, 7=validation failed).
22
+ - **Opaque cross-ledger references**: Task refs, plan versions, file links, and handoff targets remain opaque strings. Taskledger does not interpret ledgercore global refs, archledger IDs, SpecWeave feature paths, or other external system identifiers.
23
+ - **Read-model reuse**: `view`, `status`, `tree`, and `monitor` commands consume service-level read models. These presentations are read-only and do not bypass lifecycle services.
24
+ - **Editable plan input**: `taskledger plan check` is a pure preflight parser in `taskledger/services/plan_input.py`. It rejects malformed YAML, normalizes the `description` alias to `text`, and surfaces indexed issues before any plan upsert. `plan lint` runs additional structural checks; `plan review` renders the approval brief.
@@ -0,0 +1,21 @@
1
+ ---
2
+ schema_version: 4
3
+ id: content-0009
4
+ type: section
5
+ section: architecture_decisions
6
+ title: Architecture Decisions
7
+ order: 90
8
+ status: accepted
9
+ body_format: markdown
10
+ kind: content
11
+ version: 2
12
+ ---
13
+
14
+ Key architecture decisions documented as ADR records:
15
+
16
+ - **ADR-1**: Markdown and YAML front matter as canonical format (not JSON, not SQLite)
17
+ - **ADR-2**: Sidecar summary index as derived rebuildable cache (not authoritative)
18
+ - **ADR-3**: Explicit lifecycle gates with policy decisions (not free-form state)
19
+ - **ADR-4**: Typer CLI framework (not argparse, not Click directly)
20
+ - **ADR-5**: Task bundle directory layout (not single-file index)
21
+ - **ADR-6**: External skill packaging (skills outside the Python package)
@@ -0,0 +1,22 @@
1
+ ---
2
+ schema_version: 4
3
+ id: content-0010
4
+ type: section
5
+ section: quality_requirements
6
+ title: Quality Requirements
7
+ order: 100
8
+ status: accepted
9
+ body_format: markdown
10
+ kind: content
11
+ version: 2
12
+ ---
13
+
14
+ Quality requirements that gate architectural decisions:
15
+
16
+ - **Data integrity**: Atomic writes and strict front matter validation prevent corrupt state. Partial writes are impossible due to `os.replace` semantics.
17
+ - **CLI exit code contract**: Exit codes are stable and tested. Agents and CI pipelines rely on specific codes for automation.
18
+ - **JSON envelope stability**: The JSON output shape (`ok`, `command`, `result_type`, `result`) is a public API contract. Breaking changes require explicit versioning.
19
+ - **Lifecycle gate correctness**: Every stage transition is validated by policy functions with full test coverage of error paths.
20
+ - **Export/import round-trip**: Archives preserve all state. Import into a fresh workspace reproduces the original taskledger state exactly.
21
+ - **Editable plan input preflight**: `taskledger plan check` returns a structured payload with `passed`, `summary`, indexed `issues`, and parsed counts. Lint and review are gate layers; preflight catches them earlier.
22
+ - **Implementation snapshot fidelity**: `validate start` blocks when the current workspace diverges from the implementation snapshot. `implement snapshot refresh --reason ...` is the only sanctioned recovery path and records an audit trail.
@@ -0,0 +1,21 @@
1
+ ---
2
+ schema_version: 4
3
+ id: content-0011
4
+ type: section
5
+ section: risks_and_technical_debt
6
+ title: Risks and Technical Debt
7
+ order: 110
8
+ status: accepted
9
+ body_format: markdown
10
+ kind: content
11
+ version: 2
12
+ ---
13
+
14
+ Known risks and areas of technical debt:
15
+
16
+ - **Storage scaling with many tasks**: Each task is a directory with multiple sidecar files. Very large projects (hundreds of tasks) may see slowdowns in list and query operations because the `task_sidecars.json` summary index is rebuilt from file scans on miss and updated on writes. The per-task sidecar index keeps the common read path fast but does not eliminate directory overhead.
17
+ - **Migration surface between storage versions**: The storage layout is currently v3 (`TASKLEDGER_STORAGE_LAYOUT_VERSION` in `taskledger/domain/states.py`). Migration code in `taskledger/storage/migrations.py` adds complexity. Future format changes must maintain backward compatibility or ship migration steps.
18
+ - **Service boundary erosion**: Some service modules (notably `tasks.py` and a few focused modules) have grown large. The service layer has no formal interface contracts; boundaries are enforced by convention and the `tests/test_service_boundaries.py` whitelist in `docs/service_boundary_whitelist.md`.
19
+ - **Implementation snapshot drift**: Workspace snapshots are a strong invariant but require explicit refresh after environment changes. `taskledger next-action` and `validate start` surface mismatch diagnostics; the recovery path is `implement snapshot refresh --reason ...`.
20
+ - **Editable plan input compatibility**: `description` is accepted as an alias for `text` on acceptance criteria; strict mode promotes unknown-field findings to errors to prevent silent structured-data loss.
21
+ - **Growing dependency surface**: The runtime dependency set is small (`typer`, `click`, `PyYAML`, `tomli`, `ledgercore`) but new dependencies must be justified by core features rather than optional presentations.
@@ -0,0 +1,14 @@
1
+ ---
2
+ schema_version: 4
3
+ id: content-0012
4
+ type: section
5
+ section: glossary
6
+ title: Glossary
7
+ order: 120
8
+ status: accepted
9
+ body_format: markdown
10
+ kind: content
11
+ version: 2
12
+ ---
13
+
14
+ Domain terms used throughout taskledger. The full glossary lives in the per-term `glossary-NNNN` records under `.archledger/records/glossary/`. Each term is stored as a record with `term`, `definition`, and reference metadata rather than in this section body.
@@ -0,0 +1,37 @@
1
+ ---
2
+ schema_version: 4
3
+ id: block-0029
4
+ type: white_box
5
+ title: taskledger system
6
+ status: proposed
7
+ section: building_block_view
8
+ level: 1
9
+ parent: null
10
+ order: 10
11
+ diagram: null
12
+ quality_characteristics: []
13
+ tags: []
14
+ body_format: markdown
15
+ kind: block
16
+ version: 2
17
+ ---
18
+
19
+ ## Motivation
20
+
21
+ taskledger decomposes into core layers with downward dependency flow. This isolates persistence, business rules, orchestration, and public interfaces. Low-level persistence primitives are delegated to `ledgercore`, but the layer boundary above it stays in `taskledger/storage/`.
22
+
23
+ ## Contained building blocks
24
+
25
+ 1. **CLI Layer** (`block-0030`) — Typer commands, argument parsing, output rendering
26
+ 2. **API Layer** (`block-0031`) — Stable Python function wrappers
27
+ 3. **Services Layer** (`block-0032`) — Lifecycle orchestration, handoffs, plan input, plan review, snapshots, inspection
28
+ 4. **Domain Layer** (`block-0033`) — Models, state machines, policies (no I/O)
29
+ 5. **Storage Layer** (`block-0034`) — File system persistence, atomic writes, sidecar index, layout
30
+
31
+ ## Important interfaces
32
+
33
+ - CLI -> Services: function calls with `workspace_root` plus task references
34
+ - Services -> Domain: policy functions take `PolicyContext`, return `Decision`
35
+ - Services -> Storage: record CRUD operations through `task_store.py` functions and the sidecar index
36
+ - API -> Services: direct function calls mirroring CLI behavior
37
+ - Storage -> ledgercore: atomic I/O, JSON I/O, YAML I/O, front matter parsing, cross-ledger ref parsing
@@ -0,0 +1,23 @@
1
+ ---
2
+ schema_version: 4
3
+ id: block-0030
4
+ type: black_box
5
+ title: CLI Layer
6
+ status: accepted
7
+ section: building_block_view
8
+ level: 1
9
+ parent: block-0029
10
+ order: 10
11
+ interfaces: []
12
+ location: []
13
+ fulfilled_requirements: []
14
+ risks: []
15
+ tags: []
16
+ body_format: markdown
17
+ kind: block
18
+ version: 2
19
+ ---
20
+
21
+ Handles command parsing via Typer, task reference resolution (`--task` option, active task default), and output rendering (human text or JSON envelope via `cli_common.py`). Command families include the canonical lifecycle plus `review`, `config`, task archive operations, transfer and sync, diagnostics, the `monitor` observer, the `pipeline` overlay, and `ref` cross-ledger helpers.
22
+
23
+ Source refs: `taskledger/cli.py`, `taskledger/cli_common.py`, `taskledger/command_inventory.py`, and the focused `taskledger/cli_*.py` registration modules.
@@ -0,0 +1,21 @@
1
+ ---
2
+ schema_version: 4
3
+ id: block-0031
4
+ type: black_box
5
+ title: API Layer
6
+ status: proposed
7
+ section: building_block_view
8
+ level: 1
9
+ parent: block-0029
10
+ order: 20
11
+ interfaces: []
12
+ location: []
13
+ fulfilled_requirements: []
14
+ risks: []
15
+ tags: []
16
+ body_format: markdown
17
+ kind: block
18
+ version: 2
19
+ ---
20
+
21
+ Stable Python function wrappers under `taskledger/api/` that mirror the CLI surface for programmatic use. Each module (tasks, plans, handoff, locks, task runs, sync, reviews, search, etc.) exposes functions that accept workspace paths and return dictionaries matching the JSON output shape. The API layer calls Services directly.
@@ -0,0 +1,21 @@
1
+ ---
2
+ schema_version: 4
3
+ id: block-0032
4
+ type: black_box
5
+ title: Services Layer
6
+ status: proposed
7
+ section: building_block_view
8
+ level: 1
9
+ parent: block-0029
10
+ order: 30
11
+ interfaces: []
12
+ location: []
13
+ fulfilled_requirements: []
14
+ risks: []
15
+ tags: []
16
+ body_format: markdown
17
+ kind: block
18
+ version: 2
19
+ ---
20
+
21
+ Orchestrates lifecycle flows by coordinating Domain policies and records with Storage. Focused services own planning (`planning_flow.py`, `plan_input.py`, `plan_review.py`, `plan_lint.py`, `plan_materialization.py`), implementation (`implementation_flow.py`, `workspace_snapshot.py`), validation (`validation_flow.py`), handoffs (`handoff.py`, `handoff_lifecycle.py`, `worker_context.py`), doctor checks (`doctor.py`, `doctor_checks/`), navigation (`navigation.py`, `next_action_model.py`, `next_action_payload.py`, `ready_work.py`), worker pipelines (`worker_pipeline.py`, `workflow_guidance.py`), archival (`task_archive.py`, `task_export.py`, `task_reports.py`), code-review evidence (`code_review.py`), event logging (`task_events.py`, `agent_transcripts.py`, `agent_logging.py`, `change_tracking.py`, `check_tracking.py`, `event_logging.py`), exports and dashboard assembly (`dashboard.py`, `tree.py`, `monitor.py`). `tasks.py` remains the compatibility-oriented lifecycle facade while ownership is progressively extracted into focused modules.
@@ -0,0 +1,21 @@
1
+ ---
2
+ schema_version: 4
3
+ id: block-0033
4
+ type: black_box
5
+ title: Domain Layer
6
+ status: proposed
7
+ section: building_block_view
8
+ level: 1
9
+ parent: block-0029
10
+ order: 40
11
+ interfaces: []
12
+ location: []
13
+ fulfilled_requirements: []
14
+ risks: []
15
+ tags: []
16
+ body_format: markdown
17
+ kind: block
18
+ version: 2
19
+ ---
20
+
21
+ Data models, state enums, normalization, and policy decisions without storage I/O. Besides lifecycle and sidecar records, the domain defines append-only code-review records. State transitions remain in `states.py`; policy decisions in `policies.py` return structured `Decision` objects. The canonical storage layout version is `TASKLEDGER_STORAGE_LAYOUT_VERSION` in `taskledger/domain/states.py`.
@@ -0,0 +1,21 @@
1
+ ---
2
+ schema_version: 4
3
+ id: block-0034
4
+ type: black_box
5
+ title: Storage Layer
6
+ status: proposed
7
+ section: building_block_view
8
+ level: 1
9
+ parent: block-0029
10
+ order: 50
11
+ interfaces: []
12
+ location: []
13
+ fulfilled_requirements: []
14
+ risks: []
15
+ tags: []
16
+ body_format: markdown
17
+ kind: block
18
+ version: 2
19
+ ---
20
+
21
+ File system persistence for canonical records. Storage layout keeps each task in `.taskledger/ledgers/<ledger_ref>/tasks/<task-id>/`, with independently addressable sidecars including plans, runs, locks, todos, questions, changes, checks, handoffs, links, and code reviews. Ledger-level collections hold events, introductions, releases, and rebuildable indexes. A `task_sidecars.json` summary index is maintained as a derived cache; per-task sidecar writes call `update_sidecar_summary` from `taskledger/storage/sidecar_index.py` so the read path does not need a full rescan. Atomic write primitives, YAML I/O, front matter parsing, and ref parsing are delegated to `ledgercore`. Action and event logging is enabled by default and can be disabled in project config. Project config edits use structured TOML handling rather than ad hoc text replacement.
@@ -0,0 +1,15 @@
1
+ ---
2
+ schema_version: 4
3
+ id: concept-0040
4
+ type: concept
5
+ title: Actor metadata and role semantics
6
+ status: proposed
7
+ section: cross_cutting_concepts
8
+ order: 10
9
+ applies_to: []
10
+ body_format: markdown
11
+ kind: concept
12
+ version: 2
13
+ ---
14
+
15
+ Every mutation carries an `ActorRef` (type: agent/user/system, name, role, session ID, harness ID) and optionally a `HarnessRef` (harness identity, kind, capabilities). The system distinguishes user-only actions (plan approval, criterion waivers, dependency waivers) from agent actions. Actor metadata is persisted in locks, runs, events, and handoff records for audit trails. Source: `taskledger/domain/actor.py` (`ActorRef`, `HarnessRef`), `taskledger/domain/states.py` (`ActorType`, `ActorRole`, `HarnessKind`).