task-agent 0.1.342__tar.gz → 0.1.490__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 (185) hide show
  1. task_agent-0.1.490/.env +3 -0
  2. task_agent-0.1.490/.ta/agents/agy-cli/meta.toml +12 -0
  3. task_agent-0.1.490/.task-agent/tasks/.task-agent/datapackage.json +27 -0
  4. task_agent-0.1.490/.task-agent/tasks/.task-agent/logs/2026-06-10.jsonl +1 -0
  5. task_agent-0.1.490/.task-agent/tasks/.task-agent/logs/2026-06-11.jsonl +2 -0
  6. task_agent-0.1.490/.task-agent/tasks/.task-agent/mission.usv +12 -0
  7. task_agent-0.1.490/.task-agent/tasks/active/investigate-better-integration-with-antigravity-cli-of-claude-cli/README.md +11 -0
  8. task_agent-0.1.490/.task-agent/tasks/active/investigate-better-integration-with-antigravity-cli-of-claude-cli/investigation_integration.md +78 -0
  9. task_agent-0.1.490/.task-agent/tasks/completed/2026/add-a-history-function/README.md +10 -0
  10. task_agent-0.1.490/.task-agent/tasks/completed/2026/add-an-interactive-new/README.md +16 -0
  11. task_agent-0.1.490/.task-agent/tasks/completed/2026/add-commit-and-push/README.md +10 -0
  12. task_agent-0.1.490/.task-agent/tasks/completed/2026/add-configuration-file-support-for-github-plugin/README.md +10 -0
  13. task_agent-0.1.490/.task-agent/tasks/completed/2026/add-date-created-to-ta-list-and-ta-prior/README.md +14 -0
  14. task_agent-0.1.490/.task-agent/tasks/completed/2026/add-json-switch-to-output-to-json-for-integrations-such-as-nvim/README.md +10 -0
  15. task_agent-0.1.490/.task-agent/tasks/completed/2026/add-post-setup-hook-to-ta-init-agent-for-per-repo-secrets/README.md +44 -0
  16. task_agent-0.1.490/.task-agent/tasks/completed/2026/add-search-feature/README.md +20 -0
  17. task_agent-0.1.490/.task-agent/tasks/completed/2026/add-ta-mr-list-and-ta-merge-commands/README.md +16 -0
  18. task_agent-0.1.490/.task-agent/tasks/completed/2026/add-ta-path-command/README.md +14 -0
  19. task_agent-0.1.490/.task-agent/tasks/completed/2026/add-triage-cli-sorting/README.md +10 -0
  20. task_agent-0.1.490/.task-agent/tasks/completed/2026/add-view-and-edit-features-to-triage/README.md +10 -0
  21. task_agent-0.1.490/.task-agent/tasks/completed/2026/agent-reports-mcp-access-issue/README.md +13 -0
  22. task_agent-0.1.490/.task-agent/tasks/completed/2026/agent-sandboxing-via-linux-accounts/README.md +224 -0
  23. task_agent-0.1.490/.task-agent/tasks/completed/2026/agents-report-commands-are-hanging/README.md +14 -0
  24. task_agent-0.1.490/.task-agent/tasks/completed/2026/allow-dots-in-task-slugs-for-numeric-hierarchies/README.md +38 -0
  25. task_agent-0.1.490/.task-agent/tasks/completed/2026/allow-editing-task-dependencies-in-task-agent-cli-and-mcp/README.md +22 -0
  26. task_agent-0.1.490/.task-agent/tasks/completed/2026/allow-optional-role-property-of-the-issuetask/README.md +10 -0
  27. task_agent-0.1.490/.task-agent/tasks/completed/2026/change-ejected-mission-repo-location/README.md +8 -0
  28. task_agent-0.1.490/.task-agent/tasks/completed/2026/change-ejected-mission-repo-location-to-task-agenttasks/README.md +61 -0
  29. task_agent-0.1.490/.task-agent/tasks/completed/2026/cli-observability-layer/README.md +12 -0
  30. task_agent-0.1.490/.task-agent/tasks/completed/2026/create-a-copy-slug-feature-in-ta-prior/README.md +10 -0
  31. task_agent-0.1.490/.task-agent/tasks/completed/2026/create-a-plan-feature/README.md +10 -0
  32. task_agent-0.1.490/.task-agent/tasks/completed/2026/create-a-soft-delete-feature/README.md +10 -0
  33. task_agent-0.1.490/.task-agent/tasks/completed/2026/create-adk-worker-readme/README.md +14 -0
  34. task_agent-0.1.490/.task-agent/tasks/completed/2026/create-agy-cli-agent-workflow-template-with-validator-verification/README.md +17 -0
  35. task_agent-0.1.490/.task-agent/tasks/completed/2026/create-done-process/README.md +7 -0
  36. task_agent-0.1.490/.task-agent/tasks/completed/2026/create-make-next-script/README.md +10 -0
  37. task_agent-0.1.490/.task-agent/tasks/completed/2026/create-model-configuration-schema/README.md +12 -0
  38. task_agent-0.1.490/.task-agent/tasks/completed/2026/create-plugin-sidecar-strategy/README.md +62 -0
  39. task_agent-0.1.490/.task-agent/tasks/completed/2026/define-task-metadata-standard/README.md +28 -0
  40. task_agent-0.1.490/.task-agent/tasks/completed/2026/dependent-task/README.md +12 -0
  41. task_agent-0.1.490/.task-agent/tasks/completed/2026/depends-on-above-feature-in-prior-links-to-the-bottom-leaf/README.md +10 -0
  42. task_agent-0.1.490/.task-agent/tasks/completed/2026/directory-task/README.md +10 -0
  43. task_agent-0.1.490/.task-agent/tasks/completed/2026/done-mcp-function-does-not-respond-with-a-message-that-agents-understand/README.md +14 -0
  44. task_agent-0.1.490/.task-agent/tasks/completed/2026/done-should-require-explainaition-of-solution/README.md +10 -0
  45. task_agent-0.1.490/.task-agent/tasks/completed/2026/dummy-task/README.md +10 -0
  46. task_agent-0.1.490/.task-agent/tasks/completed/2026/enhance-ta-start-to-trigger-sidecar/README.md +16 -0
  47. task_agent-0.1.490/.task-agent/tasks/completed/2026/enhanced-task-lifecycle-and-git-orchestration/README.md +10 -0
  48. task_agent-0.1.490/.task-agent/tasks/completed/2026/fix-ta-done-pre-commit-hook-timeout-killing-process-before-commit-finishes/README.md +50 -0
  49. task_agent-0.1.490/.task-agent/tasks/completed/2026/fix-uv-lock/README.md +10 -0
  50. task_agent-0.1.490/.task-agent/tasks/completed/2026/history-feature-should-be-sorted-newest-at-the-top/README.md +10 -0
  51. task_agent-0.1.490/.task-agent/tasks/completed/2026/history-should-allow-l-to-view/README.md +10 -0
  52. task_agent-0.1.490/.task-agent/tasks/completed/2026/history-should-show-datetime-in-iso-with-local-timezone/README.md +10 -0
  53. task_agent-0.1.490/.task-agent/tasks/completed/2026/i-can-only-see-20-items-in-the-hsitory-view/README.md +10 -0
  54. task_agent-0.1.490/.task-agent/tasks/completed/2026/implement-adk-sidecar-worker-with-multi-agent-architecture/README.md +20 -0
  55. task_agent-0.1.490/.task-agent/tasks/completed/2026/implement-merge-request-queue/README.md +14 -0
  56. task_agent-0.1.490/.task-agent/tasks/completed/2026/implement-op-1password-secret-resolution-for-template-dotfiles/README.md +38 -0
  57. task_agent-0.1.490/.task-agent/tasks/completed/2026/implement-plugin-based-secret-manager/README.md +12 -0
  58. task_agent-0.1.490/.task-agent/tasks/completed/2026/implement-strict-worktree-lifecycle/README.md +12 -0
  59. task_agent-0.1.490/.task-agent/tasks/completed/2026/implement-ta-done-git-primitive-integration/README.md +12 -0
  60. task_agent-0.1.490/.task-agent/tasks/completed/2026/improve-subtasking-mcpcli-discoverability/README.md +15 -0
  61. task_agent-0.1.490/.task-agent/tasks/completed/2026/init-mcp-doesnt-work-for-opencode/README.md +10 -0
  62. task_agent-0.1.490/.task-agent/tasks/completed/2026/initial-setup/README.md +7 -0
  63. task_agent-0.1.490/.task-agent/tasks/completed/2026/integrate-gh-cli-alt-accounts/README.md +99 -0
  64. task_agent-0.1.490/.task-agent/tasks/completed/2026/integreate-with-github-issues/README.md +20 -0
  65. task_agent-0.1.490/.task-agent/tasks/completed/2026/make-copy-slug-available-from-the-history-list/README.md +10 -0
  66. task_agent-0.1.490/.task-agent/tasks/completed/2026/make-nvim-the-default-editor/README.md +14 -0
  67. task_agent-0.1.490/.task-agent/tasks/completed/2026/make-sure-x1e-is-not-used-as-a-record-separator-anywhere/README.md +10 -0
  68. task_agent-0.1.490/.task-agent/tasks/completed/2026/make-ta-version-show-the-latest-pypiorg-version-of-task-agent/README.md +10 -0
  69. task_agent-0.1.490/.task-agent/tasks/completed/2026/mcp-init-breaks-in-powershell/README.md +18 -0
  70. task_agent-0.1.490/.task-agent/tasks/completed/2026/migrate-docsissues-to-docstasks/README.md +48 -0
  71. task_agent-0.1.490/.task-agent/tasks/completed/2026/migrate-from-markdown-files-to-folders-with-readmemd/README.md +22 -0
  72. task_agent-0.1.490/.task-agent/tasks/completed/2026/migrate-to-tasks-directory/README.md +28 -0
  73. task_agent-0.1.490/.task-agent/tasks/completed/2026/nest-dependent-tasks-under-their-parent-in-list-view/README.md +10 -0
  74. task_agent-0.1.490/.task-agent/tasks/completed/2026/new-issue-feature-in-mcp-should-require-completion-criteria/README.md +10 -0
  75. task_agent-0.1.490/.task-agent/tasks/completed/2026/phase-2-agent-templates/README.md +67 -0
  76. task_agent-0.1.490/.task-agent/tasks/completed/2026/phase-3-per-task-isolation/README.md +42 -0
  77. task_agent-0.1.490/.task-agent/tasks/completed/2026/provide-a-set-active-feature-in-the-prior/README.md +14 -0
  78. task_agent-0.1.490/.task-agent/tasks/completed/2026/refactor-models/README.md +10 -0
  79. task_agent-0.1.490/.task-agent/tasks/completed/2026/remove-from-usv-writer-end-of-line/README.md +10 -0
  80. task_agent-0.1.490/.task-agent/tasks/completed/2026/remove-test-issues-from-the-data/README.md +10 -0
  81. task_agent-0.1.490/.task-agent/tasks/completed/2026/rename-triage/README.md +10 -0
  82. task_agent-0.1.490/.task-agent/tasks/completed/2026/restyle-to-not-use-borders/README.md +12 -0
  83. task_agent-0.1.490/.task-agent/tasks/completed/2026/search-is-not-working/README.md +58 -0
  84. task_agent-0.1.490/.task-agent/tasks/completed/2026/search-should-include-completed-items-in-the-resultes/README.md +16 -0
  85. task_agent-0.1.490/.task-agent/tasks/completed/2026/secure-secret-management-and-config-abstraction/README.md +10 -0
  86. task_agent-0.1.490/.task-agent/tasks/completed/2026/shortcuts-in-prior-are-not-highlighted/README.md +10 -0
  87. task_agent-0.1.490/.task-agent/tasks/completed/2026/sub-agent-observability-and-transparency/README.md +10 -0
  88. task_agent-0.1.490/.task-agent/tasks/completed/2026/ta-list-should-use-the-same-style-template-as-ta-prior/README.md +14 -0
  89. task_agent-0.1.490/.task-agent/tasks/completed/2026/task-agent-should-not-create-read-only-access-on-each-task-markdown/README.md +12 -0
  90. task_agent-0.1.490/.task-agent/tasks/completed/2026/test-per-task-e2e/README.md +10 -0
  91. task_agent-0.1.490/.task-agent/tasks/completed/2026/test-phase-3/README.md +10 -0
  92. task_agent-0.1.490/.task-agent/tasks/completed/2026/test-plan/README.md +12 -0
  93. task_agent-0.1.490/.task-agent/tasks/completed/2026/test-task/README.md +8 -0
  94. task_agent-0.1.490/.task-agent/tasks/completed/2026/the-border-around-triage-is-dark-blue-on-black/README.md +10 -0
  95. task_agent-0.1.490/.task-agent/tasks/completed/2026/triage-should-provide-an-add-feature/README.md +10 -0
  96. task_agent-0.1.490/.task-agent/tasks/completed/2026/update-adk-worker-to-post-mr/README.md +16 -0
  97. task_agent-0.1.490/.task-agent/tasks/completed/2026/update-development-standards-to-use-ta-done/README.md +10 -0
  98. task_agent-0.1.490/.task-agent/tasks/completed/2026/upgrade-to-tasks-should-handle-existing-issues-and-tasks/README.md +14 -0
  99. task_agent-0.1.490/.task-agent/tasks/deleted/deleted.usv +1 -0
  100. task_agent-0.1.490/.task-agent/tasks/deleted/test-soft-delete/README.md +7 -0
  101. task_agent-0.1.490/.task-agent/tasks/draft/add-dependency-model-with-required-reason-for-dependency-declarations/README.md +72 -0
  102. task_agent-0.1.490/.task-agent/tasks/draft/new-task/README.md +7 -0
  103. task_agent-0.1.490/.task-agent/tasks/draft/slug-identified-tasks-with-symlinked-state-folders/README.md +286 -0
  104. task_agent-0.1.490/.task-agent/tasks/draft/test-interactive-task/README.md +15 -0
  105. task_agent-0.1.490/.task-agent/tasks/draft/test-issue/README.md +7 -0
  106. task_agent-0.1.490/.task-agent/tasks/pending/add-secondary-documents-to-the-task-view/README.md +7 -0
  107. task_agent-0.1.490/.task-agent/tasks/pending/allow-create-task-in-other-repo/README.md +7 -0
  108. task_agent-0.1.490/.task-agent/tasks/pending/auto-clean-code-signaturesjson-after-no-verify-commits/README.md +51 -0
  109. task_agent-0.1.490/.task-agent/tasks/pending/create-decompose-feature-to-decompose-a-task/README.md +13 -0
  110. task_agent-0.1.490/.task-agent/tasks/pending/remove-dependency-on-gh-cli-by-adding-api/README.md +7 -0
  111. task_agent-0.1.490/.task-agent/tasks/pending/shard-completed-tasks-by-month-and-index-history/README.md +15 -0
  112. task_agent-0.1.490/.task-agent/tasks/plan.md +9 -0
  113. task_agent-0.1.490/.task-agent/tasks/strategy/.meta.json +3 -0
  114. task_agent-0.1.490/.task-agent/tasks/strategy/README.md +21 -0
  115. {task_agent-0.1.342 → task_agent-0.1.490}/PKG-INFO +1 -1
  116. {task_agent-0.1.342 → task_agent-0.1.490}/docs/task-agents.md +24 -0
  117. {task_agent-0.1.342 → task_agent-0.1.490}/pyproject.toml +2 -2
  118. task_agent-0.1.490/scripts/clean_duplicates.py +38 -0
  119. task_agent-0.1.490/scripts/migrate_tasks.py +58 -0
  120. task_agent-0.1.490/scripts/recover_dates.py +115 -0
  121. task_agent-0.1.490/sidecars/adk-worker/uv.lock +1090 -0
  122. task_agent-0.1.490/sidecars/adk-worker/worker.py +460 -0
  123. {task_agent-0.1.342 → task_agent-0.1.490}/src/taskagent/agent.py +4 -1
  124. {task_agent-0.1.342 → task_agent-0.1.490}/src/taskagent/cli.py +490 -37
  125. {task_agent-0.1.342 → task_agent-0.1.490}/src/taskagent/discovery.py +40 -7
  126. {task_agent-0.1.342 → task_agent-0.1.490}/src/taskagent/manager.py +90 -20
  127. {task_agent-0.1.342 → task_agent-0.1.490}/src/taskagent/mcp.py +15 -8
  128. {task_agent-0.1.342 → task_agent-0.1.490}/src/taskagent/templates.py +58 -1
  129. task_agent-0.1.490/tests/test_agy_cli_worker.py +224 -0
  130. {task_agent-0.1.342 → task_agent-0.1.490}/tests/test_cli.py +149 -0
  131. {task_agent-0.1.342 → task_agent-0.1.490}/tests/test_manager_git.py +41 -0
  132. {task_agent-0.1.342 → task_agent-0.1.490}/tests/test_mcp.py +7 -4
  133. {task_agent-0.1.342 → task_agent-0.1.490}/tests/test_templates.py +85 -0
  134. {task_agent-0.1.342 → task_agent-0.1.490}/uv.lock +1 -1
  135. task_agent-0.1.342/.env +0 -2
  136. task_agent-0.1.342/sidecars/adk-worker/worker.py +0 -256
  137. {task_agent-0.1.342 → task_agent-0.1.490}/.gemini/settings.json +0 -0
  138. {task_agent-0.1.342 → task_agent-0.1.490}/.github/workflows/ci.yml +0 -0
  139. {task_agent-0.1.342 → task_agent-0.1.490}/.github/workflows/publish.yml +0 -0
  140. {task_agent-0.1.342 → task_agent-0.1.490}/.gitignore +0 -0
  141. {task_agent-0.1.342 → task_agent-0.1.490}/.mise.toml +0 -0
  142. {task_agent-0.1.342 → task_agent-0.1.490}/.pre-commit-config.yaml +0 -0
  143. {task_agent-0.1.342 → task_agent-0.1.490}/.python-version +0 -0
  144. {task_agent-0.1.342 → task_agent-0.1.490}/.ta/agents/gh/meta.toml +0 -0
  145. {task_agent-0.1.342 → task_agent-0.1.490}/.ta/agents/minimal/meta.toml +0 -0
  146. {task_agent-0.1.342 → task_agent-0.1.490}/.ta/agents/uat-aws/meta.toml +0 -0
  147. {task_agent-0.1.342 → task_agent-0.1.490}/.ta/worker +0 -0
  148. {task_agent-0.1.342 → task_agent-0.1.490}/.task-agent/worktree-config.json +0 -0
  149. {task_agent-0.1.342 → task_agent-0.1.490}/CLAUDE.md +0 -0
  150. {task_agent-0.1.342 → task_agent-0.1.490}/GEMINI.md +0 -0
  151. {task_agent-0.1.342 → task_agent-0.1.490}/Makefile +0 -0
  152. {task_agent-0.1.342 → task_agent-0.1.490}/README.md +0 -0
  153. {task_agent-0.1.342 → task_agent-0.1.490}/agent.env +0 -0
  154. {task_agent-0.1.342 → task_agent-0.1.490}/docs/README.md +0 -0
  155. {task_agent-0.1.342 → task_agent-0.1.490}/docs/architecture/README.md +0 -0
  156. {task_agent-0.1.342 → task_agent-0.1.490}/docs/chats/gemini-conversation-1773283034591.json +0 -0
  157. {task_agent-0.1.342 → task_agent-0.1.490}/docs/chats/project-init-to-v0.1.46.md +0 -0
  158. {task_agent-0.1.342 → task_agent-0.1.490}/docs/cli/README.md +0 -0
  159. {task_agent-0.1.342 → task_agent-0.1.490}/docs/development/README.md +0 -0
  160. {task_agent-0.1.342 → task_agent-0.1.490}/docs/workflow/README.md +0 -0
  161. {task_agent-0.1.342 → task_agent-0.1.490}/sidecars/adk-worker/.env.example +0 -0
  162. {task_agent-0.1.342 → task_agent-0.1.490}/sidecars/adk-worker/README.md +0 -0
  163. {task_agent-0.1.342 → task_agent-0.1.490}/sidecars/adk-worker/instructions/manager.md +0 -0
  164. {task_agent-0.1.342 → task_agent-0.1.490}/sidecars/adk-worker/instructions/validator.md +0 -0
  165. {task_agent-0.1.342 → task_agent-0.1.490}/sidecars/adk-worker/instructions/worker.md +0 -0
  166. {task_agent-0.1.342 → task_agent-0.1.490}/sidecars/adk-worker/profiles/default.json +0 -0
  167. {task_agent-0.1.342 → task_agent-0.1.490}/sidecars/adk-worker/pyproject.toml +0 -0
  168. {task_agent-0.1.342 → task_agent-0.1.490}/src/taskagent/__init__.py +0 -0
  169. {task_agent-0.1.342 → task_agent-0.1.490}/src/taskagent/__main__.py +0 -0
  170. {task_agent-0.1.342 → task_agent-0.1.490}/src/taskagent/audit.py +0 -0
  171. {task_agent-0.1.342 → task_agent-0.1.490}/src/taskagent/config.py +0 -0
  172. {task_agent-0.1.342 → task_agent-0.1.490}/src/taskagent/models/__init__.py +0 -0
  173. {task_agent-0.1.342 → task_agent-0.1.490}/src/taskagent/models/issue.py +0 -0
  174. {task_agent-0.1.342 → task_agent-0.1.490}/src/taskagent/models/metric.py +0 -0
  175. {task_agent-0.1.342 → task_agent-0.1.490}/src/taskagent/plugins/__init__.py +0 -0
  176. {task_agent-0.1.342 → task_agent-0.1.490}/src/taskagent/plugins/github.py +0 -0
  177. {task_agent-0.1.342 → task_agent-0.1.490}/test-dir/opencode.json +0 -0
  178. {task_agent-0.1.342 → task_agent-0.1.490}/tests/conftest.py +0 -0
  179. {task_agent-0.1.342 → task_agent-0.1.490}/tests/e2e/test_agent_sandboxing.sh +0 -0
  180. {task_agent-0.1.342 → task_agent-0.1.490}/tests/test_agent.py +0 -0
  181. {task_agent-0.1.342 → task_agent-0.1.490}/tests/test_cli_windows.py +0 -0
  182. {task_agent-0.1.342 → task_agent-0.1.490}/tests/test_discovery.py +0 -0
  183. {task_agent-0.1.342 → task_agent-0.1.490}/tests/test_manager.py +0 -0
  184. {task_agent-0.1.342 → task_agent-0.1.490}/tests/test_metrics.py +0 -0
  185. {task_agent-0.1.342 → task_agent-0.1.490}/tests/test_migration.py +0 -0
@@ -0,0 +1,3 @@
1
+ TA_EJECT_TASKS=true
2
+ TA_EJECTED_TASKS_PATH=/home/mstouffer/repos/task-agent/.task-agent/tasks
3
+ TA_EJECTED_ISSUES_PATH=/home/mstouffer/repos/task-agent/.task-agent/tasks
@@ -0,0 +1,12 @@
1
+ name = "agy-cli"
2
+ description = "AGY CLI agent workflow template running agy, claude, or opencode non-interactively"
3
+
4
+ [dotfiles]
5
+ ".gitconfig" = { source = "inline", content = """
6
+ [user]
7
+ name = Agent
8
+ email = agent@localhost
9
+ [safe]
10
+ directory = *
11
+ """ }
12
+ ".ssh/id_ed25519" = { source = "generate" }
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "mission-control",
3
+ "resources": [
4
+ {
5
+ "name": "mission",
6
+ "path": "mission.usv",
7
+ "format": "csv",
8
+ "delimiter": "\u001f",
9
+ "schema": {
10
+ "fields": [
11
+ {
12
+ "name": "name",
13
+ "type": "string"
14
+ },
15
+ {
16
+ "name": "slug",
17
+ "type": "string"
18
+ },
19
+ {
20
+ "name": "dependencies",
21
+ "type": "string"
22
+ }
23
+ ]
24
+ }
25
+ }
26
+ ]
27
+ }
@@ -0,0 +1 @@
1
+ {"detail": {"branch": "issue/allow-dots-in-task-slugs-for-numeric-hierarchies", "path": ".gwt/allow-dots-in-task-slugs-for-numeric-hierarchies"}, "e": "worktree.created", "slug": "allow-dots-in-task-slugs-for-numeric-hierarchies", "t": "2026-06-10T17:58:38.341215+00:00", "user": ""}
@@ -0,0 +1,2 @@
1
+ {"detail": {"reason": "done"}, "e": "worktree.removed", "slug": "allow-dots", "t": "2026-06-11T16:12:42.585718+00:00", "user": ""}
2
+ {"detail": {"reason": "done"}, "e": "worktree.removed", "slug": "allow-dots", "t": "2026-06-11T16:13:07.351186+00:00", "user": ""}
@@ -0,0 +1,12 @@
1
+ Investigate better integration with Antigravity CLI of Claude CLIinvestigate-better-integration-with-antigravity-cli-of-claude-cli
2
+ Auto-clean .code_signatures.json after no-verify commitsauto-clean-code-signaturesjson-after-no-verify-commits
3
+ Remove dependency on GH CLI by adding APIremove-dependency-on-gh-cli-by-adding-api
4
+ Allow create task in other repoallow-create-task-in-other-repo
5
+ Add secondary documents to the task viewadd-secondary-documents-to-the-task-view
6
+ shard-completed-tasks-by-month-and-index-historyshard-completed-tasks-by-month-and-index-history
7
+ Create decompose feature to decompose a taskcreate-decompose-feature-to-decompose-a-task
8
+ Test Issuetest-issue
9
+ New Tasknew-tasktest-issue
10
+ Add Dependency model with required reason for dependency declarationsadd-dependency-model-with-required-reason-for-dependency-declarations
11
+ pyproject.toml (sketch)slug-identified-tasks-with-symlinked-state-folders
12
+ Test Interactive Tasktest-interactive-task## Description
@@ -0,0 +1,11 @@
1
+ ---
2
+ created_at: 2026-06-18T22:01:50.644632-07:00
3
+ ---
4
+
5
+ # Investigate better integration with Antigravity CLI of Claude CLI
6
+
7
+ Can we improve integration with agent CLIs?
8
+
9
+ agy has Gems and other tools integrations. Is there a tool model or interface that would give us even better integration with these CLIs, like maybe that would display status in the CLI interface or something like that?
10
+
11
+ Is there any way for us to encourage the tools to use task-agent as their default task manager? It is already working well, but should we be doing anything to make it even more integrated? Maybe by using the inter-agent protocol, or by using a locally running small version of Gemma to prioritize tasks and select the next task?
@@ -0,0 +1,78 @@
1
+ # Investigation: Enhancing Task Agent Integration with Agent CLIs
2
+
3
+ This report investigates improvements to the integration between **Task Agent** (`ta`) and developer agent CLIs such as **Antigravity CLI** (`agy`), **Claude Code** (`claude`), and **OpenCode** (`opencode`).
4
+
5
+ ---
6
+
7
+ ## 1. Overview of the Integration Architecture
8
+
9
+ Task Agent acts as a structured, prioritized task database (`mission.usv`). Developer CLIs interface with it using the **Model Context Protocol (MCP)**, granting LLMs tool-level access to query, update, and complete tasks.
10
+
11
+ ```mermaid
12
+ graph TD
13
+ subgraph CLIs ["Agent CLIs"]
14
+ agy["Antigravity CLI (agy)"]
15
+ claude["Claude Code"]
16
+ opencode["OpenCode"]
17
+ end
18
+
19
+ subgraph MCP ["Task Agent MCP Server"]
20
+ fastmcp["FastMCP Router"]
21
+ core["TaskAgent Core API"]
22
+ db[("mission.usv (Task DB)")]
23
+ end
24
+
25
+ subgraph AI ["AI Prioritizer (Proposed)"]
26
+ gemma["Local Gemma 2B/9B (Ollama)"]
27
+ end
28
+
29
+ CLIs -- "Model Context Protocol" --> fastmcp
30
+ fastmcp --> core
31
+ core --> db
32
+ gemma -- "Analyze & Prioritize" --> db
33
+ ```
34
+
35
+ ---
36
+
37
+ ## 2. Key Areas for Improvement & Proposals
38
+
39
+ ### 💡 Proposal A: Shell Prompt Integration (`ta-prompt`)
40
+ Currently, developers must manually run `ta active` or `ta list` to see what task is active.
41
+ * **Concept**: Implement a shell integration (similar to git prompt builders like Starship) that displays the currently active task slug and priority directly in the terminal prompt.
42
+ * **Implementation**: Add a lightweight command:
43
+ ```bash
44
+ ta prompt
45
+ # Outputs: [ta:create-agy-cli (p1)]
46
+ ```
47
+ This can be sourced in `.bashrc` / `.zshrc` to keep the active task always visible to the developer.
48
+
49
+ ### 🔌 Proposal B: Auto-configure Antigravity CLI (`agy`)
50
+ We already support auto-registering the task-agent MCP server with `claude` and `opencode` via `ta init-mcp`.
51
+ * **Concept**: Add support for registering with `agy`.
52
+ * **Implementation**: Extend `ta init-mcp` to support the `--agy` flag, which adds the task-agent MCP server configuration to `~/.gemini/antigravity-cli/mcp_config.json` automatically:
53
+ ```bash
54
+ ta init-mcp --agy
55
+ ```
56
+
57
+ ### 🧠 Proposal C: Local Gemma-based Task Prioritization
58
+ Instead of manual priority adjustments, we can utilize a small, locally-running LLM (like Gemma 2B or 9B via Ollama) to prioritize the queue.
59
+ * **Concept**: Run a local Gemma model to analyze the dependencies, description complexity, and codebase context to auto-sort tasks.
60
+ * **Implementation Flow**:
61
+ 1. Read all tasks from `mission.usv` (including titles, descriptions, and criteria).
62
+ 2. Extract file references and recent commit histories to build context.
63
+ 3. Call the local Gemma model (via `http://localhost:11434/api/generate`) with a structured prompt asking it to order the tasks by dependency and logical progression.
64
+ 4. Write back the optimized ordering to `mission.usv`.
65
+
66
+ ### 🤝 Proposal D: Inter-Agent Protocol (IAP) Coordination
67
+ For workspaces where multiple agents are running in parallel:
68
+ * **Concept**: Establish a protocol where agents notify each other about task state transitions.
69
+ * **Implementation**: Task Agent can write state transitions to a shared workspace channel (or lightweight SQLite lockfile) so that concurrent agents do not pick up the same active tasks or attempt conflicting merges.
70
+
71
+ ---
72
+
73
+ ## 3. Recommended Next Steps
74
+
75
+ > [!IMPORTANT]
76
+ > 1. **Extend `ta init-mcp`**: Implement the `agy` target to facilitate zero-configuration MCP setups.
77
+ > 2. **Build `ta prompt`**: Create a fast, sub-millisecond command suitable for shell prompts to display the active task.
78
+ > 3. **Draft Gemma script**: Write a prototype Python script under `scripts/prioritize_gemma.py` that interfaces with Ollama to sort USV tasks.
@@ -0,0 +1,10 @@
1
+ ---
2
+ created_at: 2026-04-05T12:44:39-07:00
3
+ ---
4
+
5
+ # Add a history function
6
+
7
+ A history command should show a list of the recent completed tasks, in reverse order, and alow view, but not edit.
8
+
9
+ ---
10
+ **Completed in commit:** `59e963c`
@@ -0,0 +1,16 @@
1
+ ---
2
+ created_at: 2026-04-06T11:06:56-07:00
3
+ ---
4
+
5
+ # Add an interactive new
6
+
7
+ Allow users to add a new item by opening a new task template for the body.
8
+
9
+ Have them enter the name at the CLI, and fill that into the new document, along with the date.
10
+
11
+ Then, but the cursor in the body part.
12
+
13
+ When they save and close, it should ingest the task, and return back to the terminal.
14
+
15
+ ---
16
+ **Completed in commit:** `2a13572`
@@ -0,0 +1,10 @@
1
+ ---
2
+ created_at: 2026-05-07T12:22:24-07:00
3
+ ---
4
+
5
+ # Add commit and push
6
+
7
+ Add a ta commit to commit and push all current changes in the tasks/
8
+
9
+ ---
10
+ **Completed in commit:** `<pending-commit-id>`
@@ -0,0 +1,10 @@
1
+ ---
2
+ created_at: 2026-05-15T09:34:12-07:00
3
+ ---
4
+
5
+ # Add configuration file support for GitHub plugin
6
+
7
+ Allow storing GitHub token and repo in .ta-config.json or worktree-config.json. Add validation for required fields.
8
+
9
+ ---
10
+ **Completed in commit:** `a825289`
@@ -0,0 +1,14 @@
1
+ ---
2
+ created_at: 2026-06-18T18:25:56-07:00
3
+ ---
4
+
5
+ # Add date created to `ta list` and `ta prior`
6
+
7
+ Add the date to the list. Put it between priorty and status. Make it the same color as "DRAFT".
8
+
9
+ ## Solution
10
+
11
+ Added Created date column to ta list and ta prior (cmd_triage) tables between Priority/Pos and Status, styled as dim (same as DRAFT).
12
+
13
+ ---
14
+ **Completed in commit:** `773b2b1`
@@ -0,0 +1,10 @@
1
+ ---
2
+ created_at: 2026-03-10T21:57:40-07:00
3
+ ---
4
+
5
+ # Add --json switch to output to JSON for integrations, such as NVim
6
+
7
+
8
+
9
+ ---
10
+ **Completed in commit:** `c086307`
@@ -0,0 +1,44 @@
1
+ ---
2
+ created_at: 2026-06-14T10:03:52-07:00
3
+ ---
4
+
5
+ # Add --post-setup hook to ta init-agent for per-repo secrets
6
+
7
+ Add a --post-setup <script> flag to ta init-agent that runs an arbitrary script or command after the agent user is fully created (useradd, sudoers, SSH key, template dotfiles). This enables injecting per-repo secrets (GPG keys, npm tokens, custom SSH configs) that aren't in the template.
8
+
9
+ Context:
10
+ Currently agent setup creates a Linux user, generates SSH keys, materializes template dotfiles, and configures sudoers. But there's no hook for post-creation customization. Teams need a way to inject repo-specific secrets that shouldn't live in the shared template.
11
+
12
+ Requirements:
13
+ 1. Add --post-setup <script> argument to ta init-agent subparser
14
+ 2. After agent.init_agent() succeeds, execute the script via subprocess
15
+ 3. The script receives the agent username as the first argument (or via AGENT_USER env var)
16
+ 4. The script is invoked as the agent user (sudo -u agent_user <script>) so it has access to the agent's home directory
17
+ 5. Report stdout/stderr from the script for transparency
18
+ 6. If the script exits non-zero, print a warning but don't crash the init
19
+ 7. Also add --post-setup to ta start for per-task agents (runs after init_per_task_agent)
20
+ 8. Document in docs/task-agents.md with examples
21
+
22
+ Examples of post-setup scripts:
23
+ - op read "op://team/gpg/private-key" | gpg --import
24
+ - echo "//npm.pkg.github.com/:_authToken=TOKEN" > ~/.npmrc
25
+ - curl -s https://internal-ca.example.com/ca.crt > ~/.local/share/ca-certificates/internal.crt
26
+
27
+ Implementation notes:
28
+ - For shared agents (ta init-agent): run from cmd_init_agent in cli.py
29
+ - For per-task agents (ta start --agent): run from cmd_start in cli.py after init_per_task_agent
30
+ - Use sudo -u <user> -E to preserve selected env vars if needed
31
+ - The script path can be absolute or relative to cwd
32
+
33
+ Completion Criteria:
34
+ - --post-setup arg on ta init-agent subparser
35
+ - Script executes as agent user after full setup
36
+ - Script receives AGENT_USER env var
37
+ - Non-zero exit warns but doesn't crash
38
+ - --post-setup also works with ta start --agent
39
+ - Unit tests mocking subprocess.run for post-setup success/failure
40
+ - Documentation with examples in docs/task-agents.md
41
+ - All existing tests pass
42
+
43
+ ---
44
+ **Completed in commit:** `<pending-commit-id>`
@@ -0,0 +1,20 @@
1
+ ---
2
+ created_at: 2026-04-05T11:07:46-07:00
3
+ ---
4
+
5
+ # Add search feature
6
+
7
+ The user should be able to search for a task
8
+
9
+ task-agent should search by slug.
10
+
11
+ It should match by the begining of the slug, so pattern match with a wildcard end.
12
+
13
+ If one task is found, task-agent should present that task in view mode and allow edit mode from the view.
14
+
15
+ If multiple match, present a navigable list and use `l` to select one for viewing, and `h` to go back to the list.
16
+
17
+ `q` to exit.
18
+
19
+ ---
20
+ **Completed in commit:** `2f481c0`
@@ -0,0 +1,16 @@
1
+ ---
2
+ created_at: 2026-03-22T13:51:44-07:00
3
+ ---
4
+
5
+ # Add ta mr list and ta merge commands
6
+
7
+ **Depends on:** implement-merge-request-queue
8
+
9
+ Implement 'ta mr list' to view pending completion notifications and 'ta merge <slug>' to finalize a task (performing the 'ta done' logic of archiving and auto-committing).
10
+
11
+ ## Solution
12
+
13
+ Implemented 'ta mr list' and 'ta merge <slug>' for reviewable autonomous workflows.
14
+
15
+ ---
16
+ **Completed in commit:** `9dc7634`
@@ -0,0 +1,14 @@
1
+ ---
2
+ created_at: 2026-03-20T20:27:26-07:00
3
+ ---
4
+
5
+ # add ta path command
6
+
7
+
8
+
9
+ ## Completion Criteria
10
+
11
+ Add 'ta path <slug>' command to return the absolute path of a task file.
12
+
13
+ ---
14
+ **Completed in commit:** `3fb0d77`
@@ -0,0 +1,10 @@
1
+ ---
2
+ created_at: 2026-03-12T17:27:53-07:00
3
+ ---
4
+
5
+ # Add Triage CLI sorting
6
+
7
+ Use j and k to move up and down the list, ctrl+k to move up, p to promote to pending
8
+
9
+ ---
10
+ **Completed in commit:** `fb05124`
@@ -0,0 +1,10 @@
1
+ ---
2
+ created_at: 2026-03-13T19:02:52-07:00
3
+ ---
4
+
5
+ # Add view and edit features to triage
6
+
7
+
8
+
9
+ ---
10
+ **Completed in commit:** `bc097ae`
@@ -0,0 +1,13 @@
1
+ ---
2
+ created_at: 2026-03-14T21:49:38-07:00
3
+ ---
4
+
5
+ # Agent reports MCP access issue
6
+
7
+ An agent is reporting this error:
8
+
9
+
10
+
11
+
12
+ ---
13
+ **Completed in commit:** `ed61f3b`
@@ -0,0 +1,224 @@
1
+ ---
2
+ created_at: 2026-06-14T10:03:52-07:00
3
+ ---
4
+
5
+ ### Task spec: agent-sandboxing-via-linux-accounts
6
+
7
+ **Replaces:** `integrate-gh-cli-alt-accounts`
8
+
9
+ ---
10
+
11
+ #### 1. Problem
12
+
13
+ Agents launched via `ta run` inherit the human's shell environment — `direnv`,
14
+ `mise`, and cached credentials loaded in the human's session. This means an
15
+ agent can accidentally deploy to PROD if PROD credentials happen to be loaded
16
+ or cached.
17
+
18
+ The current `GH_CONFIG_DIR` approach isolates GitHub CLI tokens only. It
19
+ doesn't address AWS, Azure, GCP, Kubernetes, or any other PROD credentials.
20
+ A proper solution must make the agent **PROD-incompetent by construction**.
21
+
22
+ ---
23
+
24
+ #### 2. Solution
25
+
26
+ Run agent processes as a dedicated Linux user. The agent user has its own home
27
+ directory with only UAT/non-PROD credentials configured. It physically lacks
28
+ the SSH keys, cloud profiles, and tokens needed to access PROD.
29
+
30
+ ```
31
+ +--------------------+ +----------------------------+
32
+ | Human (mark) | | Agent (agent-{template}) |
33
+ | | | |
34
+ | ~/.ssh/id_ed25519 | | ~/.ssh/agent_ed25519 |
35
+ | ~/.config/gh/human | | ~/.config/gh/agent |
36
+ | ~/.aws/prod | | ~/.aws/uat |
37
+ | PROD credentials | | UAT-only credentials |
38
+ +--------------------+ +----------------------------+
39
+ \ /
40
+ \ /
41
+ git push to bare remote /
42
+ \ /
43
+ \ /
44
+ +---------------------------+
45
+ | /srv/git/repo.git |
46
+ | (common bare remote) |
47
+ +---------------------------+
48
+ ```
49
+
50
+ **Key invariant:** The agent Linux user's home directory contains only
51
+ non-PROD credentials. There is no way for the agent to accidentally deploy to
52
+ PROD — it simply doesn't have the keys.
53
+
54
+ ---
55
+
56
+ #### 3. Phase 1 — Core isolation
57
+
58
+ **`ta init-agent <name>`** — New command that:
59
+
60
+ 1. Creates a Linux user (`sudo adduser --system agent-<name>`)
61
+ 2. Generates an SSH key for the agent user
62
+ 3. Configures `~agent-<name>/.gitconfig` with agent identity
63
+ 4. Sets up `~agent-<name>/.config/gh/` (optional, prompted)
64
+ 5. Installs a sudoers drop-in: `human ALL=(agent-<name>) NOPASSWD: /path/to/ta`
65
+ 6. Outputs a summary of what was created
66
+
67
+ **`ta run` changes:**
68
+
69
+ Worker is launched via `sudo -u agent-<name>` rather than directly.
70
+ Environment variables (`TA_SLUG`, `TA_FILE`, `TA_ROOT`) are passed explicitly
71
+ via `env` on the sudo command line. Working directory is set to the worktree
72
+ path via `--chdir`.
73
+
74
+ ```python
75
+ # Current
76
+ subprocess.run([str(worker)], env=env)
77
+
78
+ # New
79
+ subprocess.run([
80
+ "sudo", "-u", agent_user,
81
+ "--chdir", str(worktree_path),
82
+ "env", f"TA_SLUG={slug}", f"TA_FILE={file}", f"TA_ROOT={root}",
83
+ str(worker)
84
+ ])
85
+ ```
86
+
87
+ **`ta start` changes:**
88
+
89
+ - After creating the worktree at `.gwt/{slug}/`, sets group permissions:
90
+ - `chown -R :agent-<name> .gwt/{slug}/`
91
+ - `chmod -R g+rwX .gwt/{slug}/`
92
+ - If the agent user needs to create the worktree, uses
93
+ `sudo -u agent-<name> git worktree add`
94
+
95
+ **`~agent-<name>/.gitconfig`:**
96
+
97
+ ```ini
98
+ [user]
99
+ name = Agent Name
100
+ email = agent@domain.com
101
+ [safe]
102
+ directory = /home/mark/repo/.gwt/*
103
+ ```
104
+
105
+ The `safe.directory` entry prevents Git from refusing to operate in the
106
+ worktree (owned by human).
107
+
108
+ **Worktree filesystem layout:**
109
+
110
+ ```
111
+ .gwt/{slug}/ # owned by human
112
+ group: agent-<name> # agent group can read/write
113
+ permissions: 2775 # setgid bit so new files inherit group
114
+ ```
115
+
116
+ **`~agent-<name>/.local/bin/uv`:** On init, `uv` is symlinked into the agent
117
+ user's `~/.local/bin/` so the agent can run `uv`-based worker scripts without
118
+ requiring the human's PATH.
119
+
120
+ **`~agent-<name>/.profile`:** Created with a PATH entry that adds
121
+ `~/.local/bin`, so login shells (`bash -l`) resolve `uv` and future tooling.
122
+
123
+ **`ta run --agent` invocation:** Uses `bash -l -c` instead of `sh -c` so the
124
+ agent's `.profile` is sourced before running the worker:
125
+
126
+ ```python
127
+ subprocess.run([
128
+ "sudo", "-u", agent_user,
129
+ "bash", "-l", "-c",
130
+ "cd <worktree> && exec env TA_SLUG=... TA_FILE=... TA_ROOT=... <worker>"
131
+ ])
132
+ ```
133
+
134
+ ---
135
+
136
+ **Subtasks:**
137
+
138
+ - Phase 2 — Agent templates (`docs/tasks/draft/phase-2-agent-templates/`)
139
+ - **Depends on:** this task
140
+ - Template system for `ta init-agent --template <name>`
141
+ - Phase 3 — Per-task isolation (`docs/tasks/draft/phase-3-per-task-isolation/`)
142
+ - **Depends on:** this task, phase-2-agent-templates
143
+ - `ta start --agent <template>` creates a dedicated agent per task
144
+
145
+ ---
146
+
147
+ #### 6. Design decisions
148
+
149
+ | Decision | Choice | Rationale |
150
+ |---|---|---|
151
+ | User creation method | `sudo adduser --system` | Consistent, scriptable, no interactive prompts |
152
+ | Agent invocation | `sudo -u agent-<name> bash -l -c "cd <worktree> && exec env ... <worker>"` | Login shell sources profile for PATH; `exec env` passes task env vars explicitly |
153
+ | Worktree ownership | Human + group agent | Human can read/write, agent can read/write via group |
154
+ | Credential provisioning | `op://` at init time, static files at runtime | No 1Password dependency during agent execution |
155
+ | Template storage | `.ta/agents/<name>/` in project repo | Version-controlled, shareable across team |
156
+ | Tool discovery | Symlink `uv` into `~agent/.local/bin/` at init time | Agent finds tools without inheriting human PATH |
157
+
158
+ ---
159
+
160
+ #### 7. Open questions
161
+
162
+ 1. **Default agent.** Should `ta run` (without `--agent`) use a default agent
163
+ user? If so, how is it configured?
164
+ 2. **Cleanup.** Should there be a `ta destroy-agent <name>` that removes the
165
+ Linux user and cleans up?
166
+ 3. **Non-Linux.** macOS has no `adduser --system`. Should we skip, or
167
+ implement via `sysadminctl`?
168
+ 4. **Worktree creation.** Should `ta start` create the worktree as the human
169
+ or the agent? Human is simpler for the initial implementation.
170
+ 5. **Multiple agents.** Can a single worktree be used by multiple agent users
171
+ simultaneously? (Probably no — single agent per worktree.)
172
+
173
+ ---
174
+
175
+ #### 8. Files affected
176
+
177
+ | File | Change |
178
+ |---|---|
179
+ | `src/taskagent/agent.py` | New module — `init_agent()`, `destroy_agent()`, user management, worktree permissions, profile/tool provisioning |
180
+ | `src/taskagent/cli.py` | Add `cmd_init_agent()`, modify `cmd_run()` (sudo + bash -l -c) and `cmd_start()` (chgrp) |
181
+ | `src/taskagent/mcp.py` | `run_task`, `complete_task` tools need agent user context (minor) |
182
+ | `tests/test_agent.py` | Unit tests for agent module |
183
+ | `docs/tasks/active/agent-sandboxing-via-linux-accounts/README.md` | This spec |
184
+ | `tests/e2e/test_agent_sandboxing.sh` | End-to-end test script |
185
+
186
+ ---
187
+
188
+ #### 9. Completion Criteria
189
+
190
+ **Phase 1 — Core isolation:**
191
+
192
+ 1. `ta init-agent <name>` creates a Linux user with:
193
+ - SSH key in `~agent-<name>/.ssh/`
194
+ - Git config in `~agent-<name>/.gitconfig`
195
+ - `~agent-<name>/.profile` adding `~/.local/bin` to PATH
196
+ - `uv` symlinked into `~agent-<name>/.local/bin/uv`
197
+ - Sudoers drop-in for passwordless ta/worker execution
198
+ - Summary output of what was created
199
+ - Graceful error if sudo is unavailable
200
+
201
+ 2. `ta start --agent <name>` sets worktree permissions (group + ACL) so the
202
+ agent user can read and write the worktree.
203
+
204
+ 3. `ta run` for an active (or pending/draft) task executes the worker via
205
+ `sudo -u <agent>` with environment variables (`TA_SLUG`, `TA_FILE`,
206
+ `TA_ROOT`) passed explicitly on the command line, not inherited.
207
+
208
+ 4. All existing tests continue to pass.
209
+
210
+ 5. New unit tests cover:
211
+ - Sudo invocation arguments and working directory
212
+ - `adduser`/`useradd` invocation arguments
213
+ - Graceful failure when sudo is unavailable
214
+ - Graceful failure when agent user doesn't exist
215
+ - Worktree permission setup
216
+
217
+ 6. New e2e test at `tests/e2e/test_agent_sandboxing.sh` covers:
218
+ - Full lifecycle: `init-agent` → `ta new` → `ta start --agent` →
219
+ `ta run` → verify agent user context → `destroy-agent`
220
+ - E2e test runs in CI on Ubuntu (container or VM)
221
+ - E2e test must pass before the task is accepted
222
+
223
+ ---
224
+ **Completed in commit:** `<pending-commit-id>`
@@ -0,0 +1,14 @@
1
+ ---
2
+ created_at: 2026-06-19T11:10:33.219725-07:00
3
+ ---
4
+
5
+ # Agents report commands are hanging
6
+
7
+ I am getting reports like this:
8
+
9
+ > It looks like the tool use was rejected rather than hanging. This is similar to the earlier issue we had where task-agent's auto-commit failed because the working tree was already clean (we had committed manually).
10
+
11
+ How can we improve the reliability of the command that might involve git commits on repos that might have commit hooks?
12
+
13
+ ---
14
+ **Completed in commit:** `380e073`
@@ -0,0 +1,38 @@
1
+ ---
2
+ created_at: 2026-06-14T10:03:52-07:00
3
+ ---
4
+
5
+ # Allow dots in task slugs for numeric hierarchies
6
+
7
+ The `slugify` method in `manager.py` uses the regex `[^\w\s-]` which strips dots from task titles. This prevents agents from using numeric hierarchy notation like `1.1`, `1.2`, `2.1` etc. in task titles, which some agents natively produce when decomposing work.
8
+
9
+ **Problem:**
10
+ - `slugify()` at `manager.py:224` removes all non-word characters including `.`
11
+ - `slugify('1.1 Setup CI')` → `1-1-setup-ci` instead of `1.1-setup-ci`
12
+ - This breaks round-trip fidelity when an agent generates a numbered task breakdown and the slugs lose their structural hierarchy
13
+
14
+ **Solution:**
15
+ - Add `.` to the allowed character set in `slugify()`, e.g. `[^\w\s.-]`
16
+ - Audit all downstream consumers of slugs to ensure dots don't break:
17
+ - `find_issue_file()` — uses file globs and path joins; dots in directory names are valid on all OS
18
+ - `mission.usv` parser — uses USV (`\x1f`) delimiter, not dot-separated
19
+ - `move_to_active()` / worktree paths — dots in branch/worktree names are valid in git
20
+ - `complete_issue()` — stores in `completed/` directories; dots are valid
21
+ - `soft_delete_issue()` — stores in `deleted/`; dots are valid
22
+ - Add unit tests for slugify with dot-containing titles
23
+ - Add an integration test: create a task titled `1.1 Test Task`, verify slug is `1.1-test-task`, verify file operations succeed
24
+
25
+ **Risk:**
26
+ - Existing slugs won't change (they have no dots).
27
+ - `find_issue_file()` uses `glob(f\"{slug}.*\")` which could match multiple entries if other files contain the slug as a prefix with dot. But this is the same risk as any existing slug (e.g. `foo` matching `foo.md` vs `foo-bar.md`). No regression.
28
+
29
+ **Completion Criteria:**
30
+ - [ ] `slugify()` updated to preserve `.` characters
31
+ - [ ] All downstream slug consumers verified for dot-compatibility
32
+ - [ ] Existing test suite passes (no regressions from dot-allowing)
33
+ - [ ] New unit tests for dot-slug variants
34
+ - [ ] Manual test: `ta new '1.1 Test Task' && ta list` shows slug `1.1-test-task`
35
+ - [ ] Manual test: worktree creation with a dot-containing slug works
36
+
37
+ ---
38
+ **Completed in commit:** `<pending-commit-id>`