implement

$npx mdskill add huggingface/OpenEnv/implement

Make failing tests pass with minimal code.

SKILL.md
.github/skills/implementView on GitHub ↗
---
name: implement
description: Make tests pass. Invoke after /write-tests produces failing tests.
context: fork
agent: implementer
---

# /implement

Make failing tests pass with minimal code.

## Usage

```
/implement
```

The implementer will automatically find failing tests from the most recent `/write-tests` run.

## When to Use

- After `/write-tests` has created failing tests
- When you have specific tests that need implementation
- Never before tests exist

## When NOT to Use

- No failing tests exist (run `/write-tests` first)
- You want to add features not covered by tests
- You want to refactor (use `/simplify` instead)

## What It Does

1. Finds the failing tests from `/write-tests`
2. Reads tests to understand requirements
3. Writes the **minimum code** to make tests pass
4. Runs tests after each change
5. Stops when ALL tests pass

## Output

The implementer agent will produce:

```markdown
## Implementation Complete

### Tests Passed
- `test_client_reset_returns_observation` ✓
- `test_client_step_advances_state` ✓
- `test_client_handles_invalid_action` ✓

### Changes Made
| File | Change |
|------|--------|
| `src/openenv/core/client.py` | Added `reset()` method |
| `src/openenv/core/client.py` | Added `step()` method |
| `src/openenv/core/client.py` | Added input validation |

### Verification
```
PYTHONPATH=src:envs uv run pytest tests/test_client.py -v
   All 3 tests passed
```

### Next Steps
- Mark todo as complete
- Consider `/simplify` if change was large
- Move to next pending todo
```

## Rules

1. **Read the failing tests first** to understand exactly what's needed
2. **Write the MINIMUM code** needed to pass tests
3. **Run tests after each change** to verify progress
4. **Do NOT add extra features** not covered by tests
5. **Do NOT refactor** existing code (that's `/simplify`'s job)
6. **Stop when all tests pass**

## Anti-patterns (NEVER do these)

- Adding features not covered by tests
- Refactoring existing code
- Writing additional tests (that's `/write-tests`'s job)
- Over-engineering solutions
- Adding comments or documentation beyond what's necessary
- "Improving" code that already works

## Completion Criteria

Before returning, verify:
1. ALL tests pass
2. No new test failures introduced
3. Implementation is minimal and focused

## Philosophy

The implementer is a "code machine" - it takes test specifications and produces the minimal code to satisfy them. This keeps implementations focused and prevents scope creep.

Think of it as TDD's second phase: Red → **Green** → Refactor. You are "Green" - make tests pass, nothing more.
More from huggingface/OpenEnv