feat: agents stop committing task files — coordinator owns task status on main

Agents no longer commit task files (tasks/*.md) to their feature branches.
This eliminates the highest-frequency merge conflict category (parallel
agents committing metadata to the same file set). The coordinator updates
task status on main after merging source code changes.

Implementation specialist changes:
- Removed 'Update Task' workflow step (status/summary updates)
- Completion summary now included in worktree notify message
- Simplified Safe Exit (no task file commit step)
- Added 'do not commit task files' instruction to commit step

Coordinator changes:
- Added Task File Handling section with coordinator ownership model
- Updated spawn prompt template to include task file convention
- Added post-merge task status update step
This commit is contained in:
2026-05-11 11:37:32 +00:00
parent 30ef54b337
commit 1d2a3c2133
2 changed files with 30 additions and 50 deletions

View File

@@ -113,39 +113,20 @@ git diff --stat
Check each acceptance criterion in the task file.
### 5. Update Task
Edit the task file:
```yaml
---
status: completed # or blocked, failed
---
```
Fill summary:
```markdown
## Summary
Implemented <brief description>.
- Created: <files>
- Modified: <files>
- Tests: <count>, all passing
```
### 6. Commit and Notify
### 5. Commit and Notify
```bash
# Stage and commit from worktree
git add .
# Stage only source code — NOT task files
git add src/ test/ docs/ # or specific files as appropriate
git commit -m "feat(<task-id>): <description>"
git push origin $(git branch --show-current)
```
**Do NOT commit task files** (`tasks/*.md`). Task files are coordination state managed by the coordinator on main. Committing them in your feature branch causes merge conflicts when multiple tasks run in parallel. Include your completion summary in the notify message instead.
```text
# Notify coordinator of completion
worktree({action: "notify", args: {message: "Task completed: <task-id>", level: "info"}})
worktree({action: "notify", args: {message: "Task completed: <task-id>. <brief summary of what was done, files changed, test count>", level: "info"}})
```
**Critical**: Push immediately so coordinator sees progress.
@@ -168,27 +149,11 @@ When task becomes untendable:
### Process
1. **Stop** - don't force through
2. **Update task**:
```yaml
status: blocked
```
3. **Document in Notes**:
```markdown
## Notes
Blocked: <clear explanation>
```
4. **Commit the task file** (so coordinator sees status):
```bash
git add tasks/<task-id>.md
git commit -m "blocked(<task-id>): <reason>"
git push origin $(git branch --show-current)
```
5. **Notify coordinator**:
2. **Notify coordinator**:
```text
worktree({action: "notify", args: {message: "Blocked on <task-id>: <reason>", level: "blocking"}})
```
6. **Exit** - coordinator handles escalation
3. **Exit** - coordinator handles escalation
### Wrong Directory Recovery