You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+22Lines changed: 22 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,28 @@ All notable changes to this project will be documented in this file.
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
8
+
## [2.6.0] - 2026-03-20
9
+
10
+
### Added
11
+
-**`task-graph.json` workspace file** — centralized DAG with task dependencies, critical path, and convergence points. Created in Phase 3, maintained by lead, read by 3 new hook scripts
12
+
-**`compute-critical-path.sh` hook** (TaskCompleted) — recomputes and displays remaining critical path after each task completion, warns about blocked critical tasks
13
+
-**`detect-resume.sh` hook** (SessionStart) — detects resumable workspaces with smart staleness validation via git timestamps (valid/stale/missing output files)
14
+
-**`check-integration-point.sh` hook** (TaskCompleted) — detects when convergence points (diamond dependencies) become fully unblocked, nudges lead to verify interface compatibility
15
+
-**Critical Path Awareness** in Phase 4 — lead prioritizes critical-path blockers over non-critical work
16
+
-**Resume from Existing Workspace** coordination pattern — valid/stale/remaining protocol with archive option
17
+
-**Integration Checkpoint Response** coordination pattern — lead response protocol for convergence nudges
18
+
-**CP column** in `tasks.md` — ★ marks critical path tasks, convergence notes in the Notes column
19
+
20
+
### Changed
21
+
- Phase 1b gains convergence point marking (step 6 after integration points)
Copy file name to clipboardExpand all lines: docs/coordination-advanced.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -187,6 +187,11 @@ Proactive time-based escalation to prevent tasks from exceeding the user's time
187
187
What's your progress? Use PROGRESS or COMPLETED format.
188
188
If blocked, use BLOCKED so I can log and route it.
189
189
```
190
+
191
+
When checking stalled tasks, prioritize **critical-path tasks** (marked with `critical_path: true` in `task-graph.json`). A stalled critical-path task directly delays total completion. A stalled non-critical task has slack before it affects the timeline. Adjust escalation urgency accordingly:
192
+
- Critical-path task stalled → skip Nudge, go directly to **Warn**
-[Issue Triage After Context Recovery](#issue-triage-after-context-recovery) — post-compaction review
22
+
-[Resume from Existing Workspace](#resume-from-existing-workspace) — recovering from a previous team session
22
23
-[Direct Handoff](#direct-handoff) — authorized peer-to-peer messaging with audit trail
24
+
-[Integration Checkpoint Response](#integration-checkpoint-response) — handling convergence point nudges
23
25
-[Advanced Patterns](coordination-advanced.md) — re-plan, adversarial review, checkpoint/rollback, deadline escalation, and more
24
26
25
27
## Communication Protocol
@@ -35,10 +37,13 @@ When receiving structured messages:
35
37
| Prefix | Lead Action |
36
38
|--------|--------------|
37
39
| STARTING | Update `tasks.md` status to `in_progress`, add note |
38
-
| COMPLETED | Update `tasks.md` status to `completed`, add file list and notes. Check: does this unblock other tasks? If yes, message the dependent teammate |
40
+
| COMPLETED | Update `tasks.md` status to `completed`, add file list and notes. Update `task-graph.json`: set node status to `completed`, record `completed_at` and `output_files`. **Self-check**: read `task-graph.json` back to verify valid JSON. Check: does this unblock other tasks? If yes, message the dependent teammate. The `compute-critical-path.sh` hook will output the updated critical path.|
39
41
| BLOCKED | Add row to `issues.md` immediately. Acknowledge the teammate. Route to resolution |
40
42
| HANDOFF | Extract key details, forward to dependent teammate with actionable context. Log in `progress.md` Handoffs |
41
43
| QUESTION | Check if answer is in workspace files. If yes, answer with file reference. If no, investigate |
44
+
| PROGRESS | Note milestone in `tasks.md` Notes column. If percent indicates near-completion, no action needed. If stalled, trigger Deadline Escalation |
45
+
| CHECKPOINT | If `ready_for` lists task IDs, forward checkpoint details to dependent teammate. Log in `progress.md` Handoffs |
46
+
| (hook: integration checkpoint) | Read the nudge from `check-integration-point.sh`. Before unblocking the convergence task, verify interface compatibility between upstream outputs. If compatible, message the convergence task owner to proceed. If unclear, log in `issues.md` as medium severity. Log checkpoint in `progress.md` Decision Log. |
42
47
43
48
### Shared Workspace as Bulletin Board
44
49
@@ -161,6 +166,29 @@ Recovery actions for common Phase 3 failures.
161
166
| Teammate fails to spawn | Check the error. Common causes: tool not available, permission denied. Retry once. If still failing, log to `issues.md`, continue with remaining teammates, reassign orphaned tasks |
162
167
| Context compaction during Phase 3 | On recovery, read workspace files. If they exist but tasks/teammates are incomplete, resume from where you left off. If workspace doesn't exist yet, restart Phase 3 |
163
168
169
+
## Resume from Existing Workspace
170
+
171
+
When starting a new team session and the `detect-resume.sh` hook reports a resumable workspace:
172
+
173
+
### Valid Completed Tasks
174
+
Tasks whose output files are unchanged since `completed_at`. Skip these entirely — do not re-create or re-assign. Their results carry forward.
175
+
176
+
### Stale Completed Tasks
177
+
Tasks whose output files were modified after `completed_at` (someone edited the files outside the team). These must be re-run:
178
+
- Reset status to `pending` in `task-graph.json`
179
+
- Create new TaskCreate entries for them
180
+
- Assign to appropriate teammates
181
+
- Log in `progress.md` Decision Log: "Resumed — task #N marked stale (output modified after completion)"
182
+
183
+
### Remaining Tasks
184
+
Tasks that were never completed. Create and assign normally.
185
+
186
+
### Archive Protocol
187
+
If the user chooses "start fresh" instead of resuming:
188
+
- Rename `.agent-team/{team-name}/` to `.agent-team/{team-name}-archived/`
189
+
- Proceed with normal Phase 3
190
+
- The archived workspace is preserved for reference
191
+
164
192
## File Conflict Resolution
165
193
166
194
When two teammates report working on the same file:
@@ -311,6 +339,16 @@ For pre-approved information transfers between specific teammates, bypassing the
311
339
312
340
The audit trail MUST be maintained. Direct handoffs save time but must still be logged via the lead's workspace updates.
313
341
342
+
## Integration Checkpoint Response
343
+
344
+
When `check-integration-point.sh` fires an integration nudge after two converging streams complete:
345
+
346
+
1.**Read the nudge** — identify which convergence point was unblocked and which upstream tasks produced the converging outputs
347
+
2.**Quick compatibility check** — read the `output_files` from both upstream tasks in `task-graph.json`. Do they define compatible interfaces? (e.g., if task #1 exports `TokenResult` and task #2 imports `TokenResult`, do the types match?)
348
+
3.**If compatible** — message the convergence task owner: "Upstream tasks #X and #Y both completed. Interfaces verified compatible. Proceed with task #Z."
349
+
4.**If unclear or incompatible** — message both upstream owners and the convergence owner: "Integration issue at #Z: outputs from #X and #Y may conflict at [interface]. Verify before proceeding." Log in `issues.md` as **medium** severity.
350
+
5.**Log** — record the checkpoint in `progress.md` Decision Log: "Integration checkpoint: #Z unblocked by #X + #Y, compatibility [verified|flagged]"
0 commit comments