add-task-env
Skill240 starsChanged 11 days agoApache-2.0View on GitHub
Route and scaffold a new EmbodiChain task by solution type: handwritten expert trajectory, Task Program expert trajectory, simulator RL, lightweight RL, or an environment-only baseline. Use when creating a task, environment, expert demo, or RL task.
In this repository35 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- add-atomic-actionSkill
- add-embodiment-componentSkill
- add-functorSkill
- add-robotSkill
- add-semantic-callSkill
- add-solverSkill
- add-task-programSkill
- add-testSkill
- benchmarkSkill
- implement-performanceSkill
- pre-commit-checkSkill
- project-dev-contextSkill
- prSkill
- releaseSkill
- review-prSkill
- update-api-docsSkill
- add-atomic-actionSkill
- add-embodiment-componentSkill
- add-functorSkill
- add-robotSkill
- add-semantic-callSkill
- add-solverSkill
- add-task-envSkill
- add-task-programSkill
- add-testSkill
- benchmarkSkill
- implement-performanceSkill
- pre-commit-checkSkill
- project-dev-contextSkill
- prSkill
- releaseSkill
- review-prSkill
- update-api-docsSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 8 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 27
If the prompt names multiple solutions, read every matching reference and keep all artifacts under one task-first directory.
- Very specific: line 29
If the prompt merely says expert trajectory and provides no signal for handwritten versus Task Program, determine whether the requested …
- Distinctive: line 33
Treat environment-only as the shared baseline, not as a fourth solution implementation.
- Very specific: line 41
Read agent_context/MAP.yaml, then load env-framework.
- Distinctive: line 48
Verify paths and configuration fields against the current source of truth.
- Distinctive: line 49
Do not infer schemas from older task examples alone.
- Very specific: line 69
Keep a single task Python entry point flat at <task_name>.py.
- Distinctive: line 101
Prefer one thin deployment per embodiment or execution variant:
- Very specific: line 143
Keep @register_env or @register_learning_env in the task-named module.
- Distinctive: line 149
After the shared baseline exists, follow the selected specialized reference:
- Distinctive: line 165
run the route-specific focused tests.
- Very specific: line 166
run embodichain list-task when task-discovery metadata changed.
- Distinctive: line 169
Do not claim an expert trajectory is qualified from schema validation alone.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Add Task Environment
Own the task identity, task-first layout, physical environment, registration boundary, and solution routing. Do not assume every new task needs a Python environment subclass.
Route from the user's prompt
Classify the requested solution before creating files. Read only the matching reference files.
| Prompt signal | Route | Required reference |
handwritten, scripted, demo segments, create_demo_segments, custom Python planning | Handwritten expert trajectory | references/handwritten-expert.md |
Task Program, program.yaml, integration.yaml, declarative task, Semantic Call, MLLM-generated program | Task Program expert trajectory | references/task-program-expert.md |
Generic expert trajectory or expert demo with no implementation signal | Resolve handwritten versus Task Program from required behavior; ask only if still ambiguous | One selected expert reference |
RL, PPO, GRPO, APG, policy, reward learning, training config | Reinforcement learning | references/rl.md |
| Task/environment/scene only, with no requested solution | Environment-only baseline | This file only |
Routing rules:
- If the prompt names multiple solutions, read every matching reference and keep all artifacts under one task-first directory.
- If the prompt merely says
expert trajectoryand provides no signal for handwritten versus Task Program, determine whether the requested behavior is declarative and supported by existing Semantic Calls. Ask only when that choice materially changes the requested deliverables. - Treat environment-only as the shared baseline, not as a fourth solution implementation.
- Task Program authoring and integration composition are owned by
$add-task-program. New reusable robot/skill-profile declarations are owned by$add-embodiment-component.
Load current project context
Read agent_context/MAP.yaml, then load env-framework. Also load:
task-programsfor the Task Program route;rl-learningfor the RL route; and- any matched robot, sensor, manager, or randomization topic needed by the requested environment.
Verify paths and configuration fields against the current source of truth. Do not infer schemas from older task examples alone.
Establish task identity
Resolve from the prompt or nearby conventions:
<category_path>: a task family plus optional subdomain, such asmanipulation/tableware;<task_name>: snake case;- one unique runnable environment ID per deployment;
- intended embodiment variants; and
- selected solution routes.
Organize by task identity, never by solution method. Use:
extensions/embodichain_tasks/embodichain_tasks/<category_path>/<task_name>.py
extensions/embodichain_tasks/configs/tasks/<category_path>/<task_name>/Keep a single task Python entry point flat at <task_name>.py. Do not create a
same-named Python package, scenario package, mdp package, or a task-local
task_program Python package when configuration and manager functors express
the behavior.
Build the shared environment baseline
Choose the narrowest representation that supports the requested routes.
Reusable physical environment
For new task-first compositions, prefer:
<task config>/env.yamlThis is a component, not a runnable deployment. It owns:
environment_id;- exactly one explicit
physics: default|newtonbackend and its optional, backend-matchingphysics_config; - ordinary environment values such as episode limits and environment count;
- physical simulation entities under
simulation; and - manager configuration under
env.
It must not contain a runnable id, Task Program fields, semantic scene
bindings, a robot, or sensors. Task Program semantic roots and affordances
belong to integration.yaml.scene_binding.
Runnable deployment
Prefer one thin deployment per embodiment or execution variant:
<task config>/task.<variant>.yamlIt owns the runnable id and selects reusable components. A typical physical
deployment selects:
id: MyTask-v1
environment:
component: env.yaml
embodiment:
component: ../../../components/embodiments/<embodiment>.yamlThe original inline Gym format remains supported. When extending an existing
inline env.json or env.yaml, preserve that representation unless the user
asked for component extraction. Every inline runnable config declares exactly
one physics: default|newton backend. Never select a component and repeat its
owned inline fields, including physics or physics_config, in the same
deployment. Use separate environment files for backend-specific settings.
Optional Python entry point
Create
extensions/embodichain_tasks/embodichain_tasks/<category_path>/<task_name>.py when the
route requires import-owned behavior or registration:
- an environment-only registered Gym task;
- handwritten expert behavior;
- simulator RL registration, even when managers/config own its behavior; or
- a lightweight learning environment.
Supported configuration-defined deployments omit the task module and register
the common EmbodiedEnv. Task Program and manipulation RL (rl_task) select
their own capabilities in separate deployments. The RL route below owns the
condition and registration contract.
Keep @register_env or @register_learning_env in the task-named module. Task
discovery recursively imports these modules, so category __init__.py files do
not need per-task re-exports.
Implement the selected route
After the shared baseline exists, follow the selected specialized reference:
references/handwritten-expert.mdreferences/task-program-expert.mdreferences/rl.md
Reuse existing manager functors and registered components. Invoke
$add-functor only when a missing observation, reward, event, action, dataset,
or randomization term is required. Use $add-test for test structure.
Validate proportionally
At minimum:
- parse every new or changed runnable config;
- prove registration/discovery for Python-owned tasks;
- run the route-specific focused tests;
- run
embodichain list-taskwhen task-discovery metadata changed; and - format changed Python files with the pinned project Black version.
Do not claim an expert trajectory is qualified from schema validation alone. Physical expert behavior requires an environment run with its validators and persisted completion result. Do not claim an RL task works from config parsing alone; at least construct/reset the selected environment and run a minimal trainer-routing smoke test when dependencies permit.
Completion checklist
- Prompt was routed to the correct specialized reference(s)
- Task family, optional subdomain, task name, and runnable IDs are stable
- Python and config paths share the same task-first hierarchy
- Environment component and runnable deployment ownership are not mixed
- Each environment file declares one backend and only matching physics fields
- A Python task module exists only when the selected route needs it
- No solution-method directory or same-named task package was introduced
- Existing components and manager functors were reused where possible
- Route-specific tests and focused validation passed
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

