From 04986e2fc5c8863672c2a84e644777505878318b Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Sun, 9 Nov 2025 07:37:25 -0500 Subject: Add enhanced dependency types to task manager Implement four dependency types based on beads patterns: - Blocks: Hard dependency, blocks ready work queue (default) - DiscoveredFrom: Work discovered during implementation (doesn't block) - ParentChild: Epic/task relationships (blocks ready work) - Related: Soft relationships (doesn't block) Key changes: - New Dependency data type with depId and depType fields - New DependencyType enum with four relationship types - Updated CLI with --dep-type and --discovered-from flags - Enhanced getReadyTasks to respect only blocking dependency types - Added comprehensive tests for all dependency behaviors - Updated AGENTS.md with usage examples and patterns The discovered-from pattern is especially important for AI agents to maintain context of work found during implementation while keeping it immediately available in the ready work queue. Amp-Thread-ID: https://ampcode.com/threads/T-178b273a-3ac7-416c-a964-db89bac3c8f7 Co-authored-by: Amp --- .tasks/tasks.jsonl | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to '.tasks') diff --git a/.tasks/tasks.jsonl b/.tasks/tasks.jsonl index a58fee2..ff2a394 100644 --- a/.tasks/tasks.jsonl +++ b/.tasks/tasks.jsonl @@ -1,2 +1,12 @@ -{"taskCreatedAt":"2025-11-09T12:17:09.286039287Z","taskDependencies":[],"taskId":"t-MhfzLf","taskNamespace":null,"taskParent":null,"taskStatus":"Done","taskTitle":"Authentication System","taskType":"Epic","taskUpdatedAt":"2025-11-09T12:17:29.632200648Z"} -{"taskCreatedAt":"2025-11-09T12:17:14.313519244Z","taskDependencies":[],"taskId":"t-MhAFDD","taskNamespace":null,"taskParent":"t-MhfzLf","taskStatus":"Done","taskTitle":"Design auth API","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:17:29.659843447Z"} +{"taskCreatedAt":"2025-11-09T12:28:48.574806406Z","taskDependencies":[],"taskId":"t-N2zIIk","taskNamespace":null,"taskParent":null,"taskStatus":"Open","taskTitle":"Test task","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:28:48.574806406Z"} +{"taskCreatedAt":"2025-11-09T12:28:48.591902984Z","taskDependencies":[],"taskId":"t-N2zNa5","taskNamespace":null,"taskParent":null,"taskStatus":"Open","taskTitle":"First task","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:28:48.591902984Z"} +{"taskCreatedAt":"2025-11-09T12:28:48.592205598Z","taskDependencies":[{"depId":"t-N2zNa5","depType":"Blocks"}],"taskId":"t-N2zNeY","taskNamespace":null,"taskParent":null,"taskStatus":"Open","taskTitle":"Blocked task","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:28:48.592205598Z"} +{"taskCreatedAt":"2025-11-09T12:28:48.593123597Z","taskDependencies":[],"taskId":"t-N2zNtM","taskNamespace":null,"taskParent":null,"taskStatus":"Open","taskTitle":"Original task","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:28:48.593123597Z"} +{"taskCreatedAt":"2025-11-09T12:28:48.59342775Z","taskDependencies":[{"depId":"t-N2zNtM","depType":"DiscoveredFrom"}],"taskId":"t-N2zNyG","taskNamespace":null,"taskParent":null,"taskStatus":"Open","taskTitle":"Discovered work","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:28:48.59342775Z"} +{"taskCreatedAt":"2025-11-09T12:28:48.594193628Z","taskDependencies":[],"taskId":"t-N2zNL2","taskNamespace":null,"taskParent":null,"taskStatus":"Open","taskTitle":"Task A","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:28:48.594193628Z"} +{"taskCreatedAt":"2025-11-09T12:28:48.594472081Z","taskDependencies":[{"depId":"t-N2zNL2","depType":"Related"}],"taskId":"t-N2zNPx","taskNamespace":null,"taskParent":null,"taskStatus":"Open","taskTitle":"Task B","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:28:48.594472081Z"} +{"taskCreatedAt":"2025-11-09T12:30:08.108951426Z","taskDependencies":[],"taskId":"t-N7Xrb7","taskNamespace":null,"taskParent":null,"taskStatus":"Open","taskTitle":"Test task A","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:30:08.108951426Z"} +{"taskCreatedAt":"2025-11-09T12:30:08.2734999Z","taskDependencies":[{"depId":"t-MTdiPS","depType":"Blocks"}],"taskId":"t-N7Y7Z8","taskNamespace":null,"taskParent":null,"taskStatus":"Open","taskTitle":"Test task B with blocking dep","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:30:08.2734999Z"} +{"taskCreatedAt":"2025-11-09T12:30:08.459060403Z","taskDependencies":[{"depId":"t-MTdiPS","depType":"DiscoveredFrom"}],"taskId":"t-N7YUg2","taskNamespace":null,"taskParent":null,"taskStatus":"Open","taskTitle":"Discovered work","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:30:08.459060403Z"} +{"taskCreatedAt":"2025-11-09T12:30:45.984751589Z","taskDependencies":[],"taskId":"t-Nawmp8","taskNamespace":null,"taskParent":null,"taskStatus":"Done","taskTitle":"Blocking task example","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:30:54.668780601Z"} +{"taskCreatedAt":"2025-11-09T12:30:49.990290546Z","taskDependencies":[{"depId":"t-Nawmp8","depType":"Blocks"}],"taskId":"t-NaNaqA","taskNamespace":null,"taskParent":null,"taskStatus":"Open","taskTitle":"Dependent task","taskType":"WorkTask","taskUpdatedAt":"2025-11-09T12:30:49.990290546Z"} -- cgit v1.2.3