Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
{
"name": "agent-team",
"description": "Orchestrates parallel work via Agent Teams with automated coordination, workspace tracking, and hook enforcement",
"version": "1.3.0",
"version": "1.4.0",
"source": {
"source": "url",
"url": "https://github.com/ducdmdev/agent-team-plugin.git"
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "agent-team",
"description": "Orchestrates parallel work via Agent Teams with automated coordination, workspace tracking, and hook enforcement",
"version": "1.3.0",
"version": "1.4.0",
"author": {
"name": "Duc Do"
}
Expand Down
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.4.0] - 2026-02-28

### Added
- Re-read workspace instruction in all spawn templates (prevents context drift)
- Team metrics section in final report template
- Custom roles reference in Phase 1 decomposition

### Changed
- `tasks.md` workspace template now groups tasks by status (In Progress / Blocked / Pending / Completed)
- TeammateIdle hook updated to parse grouped tasks.md format

## [1.3.0] - 2026-02-27

### Added
Expand Down
11 changes: 11 additions & 0 deletions docs/report-format.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,17 @@ This file is generated during Phase 5, step 6. It is the last file written befor
### Follow-up Items
{Bulleted list of anything that needs attention after the team disbanded}

### Team Metrics

| Metric | Value |
|--------|-------|
| Tasks | {completed}/{total} |
| Issues | {resolved}/{total} ({critical}C {high}H {medium}M {low}L) |
| Handoffs | {count} |
| Blocked events | {count} |
| Remediation cycles | {0 or 1} |
| Re-plans | {count, 0 if none} |

---

## Full Audit Trail
Expand Down
5 changes: 5 additions & 0 deletions docs/worker-roles.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ Communication protocol — send structured messages to the lead:

Rules:
- Read and analyze only. Do not modify any files.
- Before starting each new task, re-read workspace files (progress.md, tasks.md, issues.md) to ensure you have current state. This prevents context drift on long-running sessions.
- Report findings with specific file references (path:line).
- Read workspace files before asking the lead questions — the answer may already be there.
- When blocked, message the lead immediately with the BLOCKED format above.
Expand Down Expand Up @@ -119,6 +120,7 @@ Communication protocol — send structured messages to the lead:

Rules:
- ONLY modify files in your owned area. If you need changes elsewhere, message the lead.
- Before starting each new task, re-read workspace files (progress.md, tasks.md, issues.md) to ensure you have current state. This prevents context drift on long-running sessions.
- Send STARTING before beginning each task. Send COMPLETED after finishing (include files changed).
- Verify your work compiles/passes basic checks before marking tasks complete.
- Read workspace files before asking the lead questions — the answer may already be there.
Expand Down Expand Up @@ -159,6 +161,7 @@ In COMPLETED messages, include total counts: "N issues: X high, Y medium, Z low"

Rules:
- Read and analyze only. Do not modify files.
- Before starting each new task, re-read workspace files (progress.md, tasks.md, issues.md) to ensure you have current state. This prevents context drift on long-running sessions.
- Include specific file:line references and fix suggestions for every high-severity issue.
- Read workspace issues.md to avoid reporting known/duplicate issues.
- When you find a cross-cutting issue that affects another teammate's scope, use HANDOFF.
Expand Down Expand Up @@ -189,6 +192,7 @@ Communication protocol — send structured messages to the lead:

Rules:
- Actively try to break or disprove what other teammates produce.
- Before starting each new task, re-read workspace files (progress.md, tasks.md, issues.md) to ensure you have current state. This prevents context drift on long-running sessions.
- Back every critique with evidence: specific code, concrete scenarios, or references.
- Don't just criticize — propose alternatives when you find problems.
- Read workspace files to understand what decisions were already made and why.
Expand Down Expand Up @@ -225,6 +229,7 @@ In COMPLETED messages, include total counts: "N tests: X passed, Y failed, Z ski

Rules:
- Run existing test suites and write new tests as needed to verify implementation correctness.
- Before starting each new task, re-read workspace files (progress.md, tasks.md, issues.md) to ensure you have current state. This prevents context drift on long-running sessions.
- Do not modify implementation code. If you find a bug, report it via HANDOFF to the lead.
- Include reproduction steps for every failure.
- Read workspace files before asking the lead questions — the answer may already be there.
Expand Down
22 changes: 19 additions & 3 deletions docs/workspace-templates.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,25 @@ Cross-teammate information transfers.

**Last updated**: {timestamp}

| ID | Subject | Owner | Status | Blocked By | Notes |
|----|---------|-------|--------|-----------|-------|
| {id} | {subject} | {owner} | pending / in_progress / completed | {IDs or "—"} | {brief notes} |
## In Progress

| ID | Subject | Owner | Notes |
|----|---------|-------|-------|

## Blocked

| ID | Subject | Owner | Blocked By | Notes |
|----|---------|-------|-----------|-------|

## Pending

| ID | Subject | Owner | Blocked By | Notes |
|----|---------|-------|-----------|-------|

## Completed

| ID | Subject | Owner | Notes |
|----|---------|-------|-------|
````

## issues.md
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "agent-team-plugin",
"version": "1.3.0",
"version": "1.4.0",
"description": "Claude Code plugin for orchestrating parallel work via Agent Teams",
"license": "MIT",
"keywords": ["claude-code", "plugin", "agent-team", "orchestration", "parallel"],
Expand Down
9 changes: 7 additions & 2 deletions scripts/check-teammate-idle.sh
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,13 @@ if [ "$RETRY_COUNT" -ge "$MAX_RETRIES" ]; then
fi

# Count in-progress tasks owned by this teammate by parsing the markdown table.
# Match Owner column (col 4) and Status column (col 5) in pipe-delimited table.
IN_PROGRESS=$(awk -F'|' -v owner="$TEAMMATE" 'tolower($4) ~ tolower(owner) && tolower($5) ~ /in_progress/' "$TASKS_FILE" 2>/dev/null | wc -l | tr -d ' ')
# The grouped format uses section headers (## In Progress) as status indicators.
# Match Owner column (col 4) within the "## In Progress" section.
IN_PROGRESS=$(awk -F'|' -v owner="$TEAMMATE" '
/^## In Progress/ { in_progress=1; next }
/^## / { in_progress=0 }
in_progress && NF >= 4 && tolower($4) ~ tolower(owner)
' "$TASKS_FILE" 2>/dev/null | wc -l | tr -d ' ')

if [ "$IN_PROGRESS" -gt 0 ]; then
# Increment retry counter
Expand Down
1 change: 1 addition & 0 deletions skills/agent-team/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ Analyze the user's task: $ARGUMENTS
- **By layer**: data model vs API vs UI (best for full-stack features)
- Avoid splits that create heavy cross-dependencies — if two streams need constant handoffs, merge them
6. **Integration points** — for each pair of streams, identify where their outputs must connect (shared interfaces, API contracts, database schemas). These become explicit handoff points in Phase 2.
7. **Check for custom roles** — if `docs/custom-roles.md` exists in the project, read it. Use custom roles alongside built-in roles when they match the task requirements.

**Self-check**: "Do I have 2+ streams where each can make meaningful progress without waiting on the others? Are integration points identified?" If no, reconsider the split.

Expand Down
Loading