write-tests
$
npx mdskill add huggingface/OpenEnv/write-testsWrite failing tests that encode acceptance criteria.
SKILL.md
.github/skills/write-testsView on GitHub ↗
--- name: write-tests description: Write failing tests from requirements. Invoke for each todo before /implement. context: fork agent: tester --- # /write-tests Write failing tests that encode acceptance criteria. ## Usage ``` /write-tests /write-tests Add logout button to header ``` ## When to Use - After creating a todo that requires implementation - Before running `/implement` - When you have clear acceptance criteria ## When NOT to Use - Implementation already exists (tests would pass immediately) - You're exploring or prototyping (not TDD mode) - Just adding to existing test coverage ## What It Does 1. Analyzes the current todo/requirement 2. Reads existing tests to understand patterns 3. Writes test files that verify acceptance criteria 4. **Verifies tests FAIL** (proves they test something real) 5. Returns test file paths for `/implement` ## Output The tester agent will produce: ```markdown ## Tests Written ### Files Created/Modified - `tests/test_client.py` ### Tests Added | Test | Verifies | |------|----------| | `test_client_reset_returns_observation` | Reset returns valid observation | | `test_client_step_advances_state` | Step mutates state correctly | | `test_client_handles_invalid_action` | Error handling for bad input | ### Verification All tests FAIL as expected (no implementation yet). ### Next Step Run `/implement` to make these tests pass. ``` ## Rules 1. **Read existing tests first** to understand patterns and conventions 2. **Test behavior, not implementation** - write from user's perspective 3. **Integration tests first**, then unit tests if needed 4. **Each test verifies ONE thing** clearly 5. **Run tests to verify they fail** before returning ## Anti-patterns (NEVER do these) - Writing tests that pass without implementation - Testing implementation details instead of behavior - Writing overly complex test setups - Adding implementation code (that's `/implement`'s job) - Writing tests that duplicate existing coverage ## Completion Criteria Before returning, verify: 1. Tests compile/run successfully (pytest can collect them) 2. Tests FAIL (no implementation yet) 3. Test names clearly describe what they verify 4. Tests follow existing project patterns (see `tests/` for examples)
More from huggingface/OpenEnv
- alignment-reviewReview code changes for bugs and alignment with OpenEnv principles and RFCs. Use when reviewing PRs, checking code before commit, or when asked to review changes. Implements two-tier review model.
- deploy-hfDeploy an OpenEnv environment to Hugging Face Spaces. Use when asked to deploy, push to Hugging Face, or update a space.
- generate-openenv-envGenerate OpenEnv environments from a concrete use case (for example, "generate an env for the library textarena"). Use when asked to design or implement a new environment under envs/ by researching a target library/API, selecting matching OpenEnv examples, asking key implementation questions, and building models/client/server/openenv.yaml. Do not use for model training or evaluation tasks.
- hf-space-recoveryDiagnose and recover failing or stuck Hugging Face Space deployments for OpenEnv environments. Use when deploying envs from `envs/` to the Hub (`openenv` namespace with version suffixes), when Spaces are in `BUILDING`/`APP_STARTING`/`RUNTIME_ERROR`, or when release collections need to be reconciled after targeted redeploys.
- implementMake tests pass. Invoke after /write-tests produces failing tests.
- openenv-cliOpenEnv CLI (`openenv`) for scaffolding, validating, building, and pushing OpenEnv environments.
- pre-submit-prValidate changes before submitting a pull request. Run comprehensive checks including lint, tests, alignment review, and RFC analysis. Use before creating a PR, when asked if code is ready for review, or before pushing for PR.
- releaseRelease workflow for deploying OpenEnv environments to Hugging Face Spaces and keeping canonical references in sync.
- rfc-checkDetermine if proposed changes require an RFC. Use when planning significant changes, before starting major work, or when asked whether an RFC is needed.
- simplifyRefactor code after tests pass. The "Refactor" phase of Red-Green-Refactor.