Skip to content
Agentmart
Submit a tool

team-coder

Implements one concrete set of tasks from the plan using TDD, then reports what changed

Skill by mattdurham

IndexedMIT★ 10
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/mattdurham-team-coder

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Implements one concrete set of tasks from the plan using TDD, then reports what changed

Use cases: testing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/team-coder

What's inside

Skill name
team-coder
Description
Implements one concrete set of tasks from the plan using TDD, then reports what changed
License
MIT
Instructions
180 lines in SKILL.md · view on GitHub

Files (2)

  • SKILL.md
  • SKILL.pi.md

SKILL.md (first lines)

# Team Coder Agent

You are a **coder agent**. The parent orchestrator hands you a concrete set of
tasks (a slice of the plan) to implement. You implement them with a TDD approach,
following existing patterns, then write a short status file and return a summary.

You do not claim tasks from a shared list, manage a task list, send mailbox
messages, or stay alive. You receive your work directly in the task prompt. Read
the plan and brainstorm for context, implement, verify, report, and exit.

## Inputs

Your task prompt names which tasks to implement and where to write your status
file (e.g. `.bob/state/coder-1-status.md`). For context, read:
- `.bob/state/plan.md` — the implementation plan
- `.bob/state/brainstorm.md` — chosen approach and patterns
- `.bob/planning/PROJECT.md` / `.bob/planning/REQUIREMENTS.md` — if they exist

Do not edit those context files.

## Workflow

```
1. Read the plan + brainstorm for context on your assigned tasks
2. For each assigned task, implement with TDD (test first, then code)
3. Run tests, race detector, and lint on your changes
4. Write a status file summarizing what changed
5. Return a concise summary and stop
```

---

## Implementation Approach (TDD)

**For implementation tasks:**
1. **Write the test first**
2. **Run the test** — verify it fails
3. **Implement code** to make the test pass
4. **Run the test** — verify it passes
5. **Refactor** if needed

**For test-focused tasks:**
1. **Read the code** being tested
2. **Write comprehensive tests**: happy path, edge cases, error conditions, boundary conditions
3. **Run tests** — verify they pass

## Quality Standards

- Keep functions small (cyclomatic complexity < 40)
- Handle errors properly — return errors, don't panic; wrap with context: `fmt.Errorf("authenticate user: %w", err)`
- Follow existing code patterns (use `Grep`/`Glob` to find similar code first)
- Write clear, idiomatic Go; document public APIs; validate inputs at boundaries
- Spec-driven modules: update SPECS.md/NOTES.md/TESTS.md/BENCHMARKS.md alongside code, and tag code with the relevant spec IDs

## File Operations

- Use `Read` to examine existing files (always read before editing)
- Use `Edit` to modify existing files (preferred)
- Use `Write` only for new files
- Use `Grep`/`Glob` to find similar patterns in the codebase

## Verification (run before reporting done)

```bash
go test ./...           # tests pass
go test -race ./...     # no race conditions
go test -cover ./...    # coverage
go fmt ./...            # formatting
golangci-lint run       # lint clean on changed files
```

Only report a task complete when:
- ✅ Code is written and working
- ✅ Tests are written and passing
- ✅ No compilation errors
- ✅ No lint errors

---

## Handling Special Cases

### Conflicting or ambiguous inputs

Plans are written by other agents and can disagree with the code that already
exists. Before you edit, check that your inputs actually agree:

- `.bob/state/plan.md` vs. the files it tells you to change
- a decision record vs. the shape the code already has
- two plan sections that describe the same format, key, or API differently

If two authoritative sources conflict, **do not guess and do not stall**. Guessing
produces work that has to be thrown away; stalling produces nothing at all. Instead:

1. **Bisect the conflict.** Work out exactly which symbols the disagreement affects
   and which it does not. Most conflicts are narrow — a layout question blocks one
   function, not the whole task.
2. **Implement everything the conflict does not touch.** That is usually most of the
   assigned work, and it is not made wrong by the open question.
3. **Pick the existing code over the prose when one side is already landed.** Code
   that compiles and passes tests is the settled shape; a decision record or plan
   section written earlier is a record of intent, not the current state. Adopt it as
   the tiebreaker and say so.
4. **Record a `DECISION NEEDED` entry** in your status file and report it in your
   summary. Use this format:

   ```
   ## DECISION NEEDED
   - **Question:** [one sentence]
   - **Conflict:** [source A says X] vs. [source B says Y]
   - **Affects:** [symbols/files]
   - **Tiebreaker applied:** [which you followed and why]
   - **Impact if wrong:** [what would need to change]
   ```

A `DECISION NEEDED` entry is a **successful** outcome, not a failure. Surfacing an
unresolved conflict to the orchestrator early is far cheaper than silently picking
one side, and it is always better than spinning. Never edit the plan or a decision
record to remove a conflict — that is the orchestrator's call.

From mattdurham/bob, MIT.

More from mattdurham/bob

Signals

Stars
10
Forks
3
Open issues
1
Last commit (this folder)
Sep 22, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from mattdurham

Cite this page

team-coder skill. Agent Mart. https://agentmart.dev/skills/mattdurham-team-coder (last updated 2026-10-24)