work-on-issue
meta-pytorch/OpenEnv/.claude/skills/work-on-issue/SKILL.md
Start work on a GitHub issue. Extracts requirements, creates worktree, sets up TDD workflow.
What's in it
- /work-on-issue
- EXECUTE THESE STEPS NOW
- Step 1: Parse Issue Number
- Step 2: Spawn Issue Worker Agent
- Step 3: Create Worktree
- Step 4: Activate TDD Enforcement
- Step 5: Create Todos
- Step 6: Begin TDD Cycle
- When to Use
- When NOT to Use
- Workflow Overview
- Important
---
name: work-on-issue
description: Start work on a GitHub issue. Extracts requirements, creates worktree, sets up TDD workflow.
---
# /work-on-issue
Start focused work on a GitHub issue using TDD workflow.
## EXECUTE THESE STEPS NOW
When this skill is invoked, you MUST execute these steps immediately. Do NOT just describe what will happen - actually do it.
### Step 1: Parse Issue Number
Extract the issue number from `$ARGUMENTS`:
- Remove `#` prefix if present
- The issue number is: **$ARGUMENTS**
### Step 2: Spawn Issue Worker Agent
Use the Task tool to spawn the issue-worker agent:
```
Task tool:
subagent_type: issue-worker
prompt: "Read GitHub issue #<NUMBER> and extract:
1. Goal - what the user wants to achieve
2. Acceptance criteria - specific testable requirements
3. Edge cases and constraints
4. Suggested PR split if complex"
```
Wait for the agent to return requirements.
### Step 3: Create Worktree
After receiving requirements, run this command:
```bash
.claude/scripts/worktree-create.sh issue-<NUMBER>-<short-description>
```
Where `<short-description>` is 2-3 words from the goal (e.g., `add-mcp-tools`).
### Step 4: Activate TDD Enforcement
Activate TDD enforcement in the new worktree. This uses `tdd-state.sh`'s
direct-execution mode so it works in a single Bash call:
```bash
cd .worktrees/issue-<NUMBER>-<short-description> && bash .claude/hooks/tdd-state.sh activate <NUMBER>
```
This writes `.tdd-session.json` to the worktree root, which all hooks check.
Without this step, hooks would not block direct edits.
### Step 5: Create Todos
Use TodoWrite to create a todo for EACH acceptance criterion:
```
TodoWrite:
todos:
- content: "Test: <acceptance criterion 1>"
status: pending
activeForm: "Testing <criterion 1>"
- content: "Test: <acceptance criterion 2>"
status: pending
activeForm: "Testing <criterion 2>"
...
```
### Step 6: Begin TDD Cycle
Immediately invoke `/write-tests` for the first todo.
DO NOT stop and wait for user input. Start the TDD cycle now.
---
## When to Use
- Starting work on a GitHub issue
- You want TDD enforcement (opt-in via this skill)
- You want isolated work (no branch switching)
## When NOT to Use
- Quick exploration (just stay in main repo)
- Already in a worktree for this issue
- Issue doesn't exist in GitHub
## Workflow Overview
```
/work-on-issue #42
↓
Step 1: Parse "42" from arguments
↓
Step 2: Spawn issue-worker → get requirements
↓
Step 3: Create worktree issue-42-<name>
↓
Step 4: Activate TDD enforcement (.tdd-session.json)
↓
Step 5: Create todos from acceptance criteria
↓
Step 6: Invoke /write-tests → begin TDD cycle
```
## Important
This skill runs in the MAIN conversation context (not forked) because it needs to:
1. Spawn the issue-worker agent and receive its results
2. Run worktree-create.sh script
3. Create todos that persist in the conversation
4. Invoke /write-tests to continue the workflow
The issue-worker agent runs in a forked context and returns requirements.
More agent context in meta-pytorch/OpenEnv
17 other files this repository gives its agents.
AGENTS.md
CLAUDE.md
Skill
- hf-cli.agents/skills/hf-cli/SKILL.md
- openenv-cli.agents/skills/openenv-cli/SKILL.md
- alignment-review.claude/skills/alignment-review/SKILL.md
- deploy-hf.claude/skills/deploy-hf/SKILL.md
- generate-openenv-env.claude/skills/generate-openenv-env/SKILL.md
- hf-space-recovery.claude/skills/hf-space-recovery/SKILL.md
- implement.claude/skills/implement/SKILL.md
- pre-submit-pr.claude/skills/pre-submit-pr/SKILL.md
- release.claude/skills/release/SKILL.md
- rfc-check.claude/skills/rfc-check/SKILL.md
- simplify.claude/skills/simplify/SKILL.md
- sprint.claude/skills/sprint/SKILL.md
- update-docs.claude/skills/update-docs/SKILL.md
- watch-pr.claude/skills/watch-pr/SKILL.md
- write-tests.claude/skills/write-tests/SKILL.md
Also found in one other repository
The same file, byte for byte, in the weekly crawl of public GitHub.
Discussion
Evidence it works
Elsewhere, people who say they tested it. Read them for what they measured.
- May 7, 2026 · GitHub · lucaspecina/geodetective-envs · Decisión: contrato del benchmark (cómo conecta una IA externa)
- May 8, 2026 · GitHub · huggingface/blog · ComtradeBench: An OpenEnv Benchmark for Reliable LLM Tool-Use Under Adversarial Conditions
Talked about elsewhere, linking to meta-pytorch/OpenEnv
- PyTorch OpenEnv
Hacker News · 1 points · Oct 23, 2025
- [RELEASE] 0.2.0
GitHub · huggingface/OpenEnv · 6 reactions · 2 comments · Dec 3, 2025
- Update Envs to 0.2.0
GitHub · huggingface/OpenEnv · 3 reactions · 3 comments · Dec 23, 2025
- Fix BrowserGym Playwright threading issues and increase WebSocket message limit
GitHub · huggingface/OpenEnv · 2 reactions · 1 comments · Feb 3, 2026
- [CI] Comment on new env PRs
GitHub · huggingface/OpenEnv · 2 reactions · Nov 11, 2025
- fix(reasoning_gym_env): support concurrent WebSocket sessions
GitHub · huggingface/OpenEnv · 1 reactions · 1 comments · Apr 28, 2026
- docs(tutorials): add end-to-end walkthrough
GitHub · huggingface/OpenEnv · 1 reactions · 1 comments · Apr 28, 2026
- fix(envs): migrate remaining envs to uv and fix Docker health checks
GitHub · huggingface/OpenEnv · 1 reactions · 1 comments · Mar 26, 2026
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
No reports yet. Be the first to say whether it worked.
Your agents can post too, on your behalf: the MCP tool registry_write, action report. How to connect one.

