Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add OpenLAIR/OpenSkill --skill evo-virtualhome-agent-planninggit clone --depth 1 https://github.com/OpenLAIR/OpenSkillWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/openlair/openskill/evo-virtualhome-agent-planning)<a href="https://agentmods.dev/skills/openlair/openskill/evo-virtualhome-agent-planning"><img src="https://agentmods.dev/badge/skills/openlair/openskill/evo-virtualhome-agent-planning/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/openlair/openskill/evo-virtualhome-agent-planning"><img src="https://agentmods.dev/badge/skills/openlair/openskill/evo-virtualhome-agent-planning.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00064 | $0.00627 |
| Opus 5 | $0.00032 | $0.00313 |
| Sonnet 5 | $0.00013 | $0.00125 |
| Haiku 4.5 | $0.00006 | $0.00063 |
Grade A, and why
evo-virtualhome-agent-planning scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
evo-virtualhome-agent-planning
Description
Solves PDDL airport ground traffic control planning problems from the IPC Airport domain. Uses unified-planning with pyperplan backend to automatically find valid plans, with multiple fallback strategies and robust error handling for large-scale instances (up to Munich Airport scale).
Key Domain Knowledge
- Airport domain models ground traffic: airplanes taxi between segments (taxiways, runways, parking)
- Actions: move, startup (pushing->moving), park (terminal), takeoff (terminal), pushback
- Dual-predicate pattern: occupied/not_occupied, blocked/not_blocked must be maintained
- Blocking is per-airplane (safety buffers)
- IPC-4 Airport domain is PSPACE-hard; largest instances encode full Munich Airport (MUC)
- STRIPS-compiled versions required for pyperplan (no ADL/negative preconditions support)
- For agile satisficing planning: GBFS + hFF is the optimal pyperplan configuration
- unified-planning PDDLReader forces all names to lower-case during parsing
- Plan format:
action_name(param1, param2, ...)- function-call style, one per line - Timeout of 600s is standard for IPC-style evaluation
Dependencies
- unified_planning >= 1.3.0
- up-pyperplan >= 1.1.0
- pyperplan >= 2.1
Usage
import sys
sys.path.insert(0, '/app/environment/skills/evo-virtualhome-agent-planning/scripts')
from solver import solve_all_from_json, solve_task
# Solve all tasks from problem.json
results = solve_all_from_json('/app/problem.json')
# Or solve a single task
solve_task('/app/airport/domain01.pddl', '/app/airport/task01.pddl', '/app/task01.txt')
Functions
parse_problem(domain_path, problem_path)- Parse PDDL files with error handlingsolve_problem(problem, timeout)- Solve using pyperplan with GBFS+hFF, fallback strategiessolve_with_pyperplan_direct(domain_path, problem_path, timeout)- Direct pyperplan fallbackformat_plan_action(action)- Convert action toaction_name(p1, p2, ...)formatplan_to_lines(plan)- Convert full plan to list of formatted stringswrite_plan(lines, output_path)- Write plan to file with directory creationsolve_task(domain, problem, output)- End-to-end single task with fallbackssolve_all_from_json(json_path, base_dir)- Solve all tasks from problem.json
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 52 lines · 64 tokens per session scan A 48ac52f39843
evo-virtualhome-agent-planning is a skill published in the GitHub repository OpenLAIR/OpenSkill (90 stars, last pushed 2d ago), licensed Apache-2.0. It adds 64 tokens to every session and 627 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-11.
Other skills, from other repositories
flux-analyzer
Analyse FBA flux distributions to extract biological insights. Covers gene essentiality, phenotypic phase planes, flux sampling, pathway-level aggregation, secretion product prediction, and production of publication- quality figures.
experimental-design
Best practices for designing reproducible ML experiments. Use when planning ablations, baselines, or controlled experiments.
prolong
Recover and use durable coding-session history from PRO-LONG's local append-only log. Use on long-running coding tasks, after context compaction or session resume, when reconstructing prior decisions or tool results, or before repeating work that may already have been attempted.
resolving-merge-conflicts
Use when a git merge or rebase reports conflicts and the operation is in progress.
security-review
Use when reviewing code for vulnerabilities, checking diffs for injection/XSS/auth/crypto issues. Invokes on code changes (.go/.py/.js/.ts/.java/.rs/.php/.rb), not docs-only diffs.
script-exec-blocked
Sandbox approval policy blocks executecode and python3 -c; use readfile/writefile + manual transforms instead of retrying both runners.