From MOOS-IvP Skills
Build or repair one self-evaluating MOOS-IvP mission. Use when creating headless-capable mission folders with explicit startup initialization, pMissionEval pass/fail checks, results.txt output, uMayFinish completion through xlaunch.sh, zlaunch.sh automation, scoped teardown, and validation for a single test scenario. Do not use for ordinary operator missions or multi-case harness orchestration.
How this skill is triggered — by the user, by Claude, or both
Slash command
/moos-ivp-skills:moos-ivp-eval-mission-builderThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill for one self-evaluating mission folder: a normal MOOS-IvP mission
agents/openai.yamlassets/eval-single-vehicle/README.mdassets/eval-single-vehicle/clean.shassets/eval-single-vehicle/launch.shassets/eval-single-vehicle/launch_shoreside.shassets/eval-single-vehicle/launch_vehicle.shassets/eval-single-vehicle/meta_shoreside.moosassets/eval-single-vehicle/meta_vehicle.bhvassets/eval-single-vehicle/meta_vehicle.moosassets/eval-single-vehicle/plug_origin_warp.moosassets/eval-single-vehicle/zlaunch.shassets/moos_scoped_teardown.shreferences/eval-mission-style.mdreferences/evaluator-apps.mdreferences/scenario-and-grading.mdreferences/validation.mdreferences/zlaunch-xlaunch.mdscripts/live_check_eval_mission.shscripts/static_check_eval_mission.shUse this skill for one self-evaluating mission folder: a normal MOOS-IvP mission
with an added single-run grading contract. The mission should still be readable
and runnable by a person, but it must also run headlessly, decide pass/fail
inside the mission, write results.txt, and finish through the shared
xlaunch.sh / uMayFinish path.
For ordinary mission layout, use moos-ivp-mission-builder first. For multi-case
matrices, patch sweeps, parallel runs, or expected-vs-actual aggregation, use
moos-ivp-harness-builder. For post-run .alog evidence, use
moos-alog-analysis.
moos-ivp-mission-builder baselines or an existing nearby mission family.pAutoPoke, optional uTimerScript, pMissionEval,
results.txt, and a thin zlaunch.sh.launch.sh human-facing. It may accept --xlaunched, --nogui,
--mmod, and port overrides, but it should not contain case loops or result
aggregation.zlaunch.sh thin: parse automation arguments, truncate results.txt,
call shared xlaunch.sh, validate that results.txt contains grade=, then
apply project-local scoped cleanup.xlaunch.sh --max_time=<secs> own uMayFinish and the timed wait/stop
contract. Do not duplicate that lifecycle in mission-local wrappers.grade= or write the final result row from zlaunch.sh,
launch.sh, or target-file parsing. pMissionEval must own the verdict and
write results.txt; wrappers may only truncate, launch, wait, validate
presence of grade=, and clean up.assets/moos_scoped_teardown.sh into the target
project as scripts/moos_scoped_teardown.sh if it does not already exist.
Reuse an existing project helper unless it is clearly stale or incompatible.pAutoPoke to seed deploy and evaluation variables in moving
missions. Unit-style evals may use uTimerScript or the app under test for
readiness when there is no vehicle/deploy lifecycle. Do not put pass/fail
logic in pAutoPoke.pMissionEval as the primary verdict owner. Prefer mission-level booleans
or simple scalar checks over harness-side parsing of raw MOOS traffic.pMissionEval leads: evaluate when the mission-owned
completion event occurs. Use uMayFinish through xlaunch.sh --max_time as
the outer infrastructure ceiling. Use a time-driven evaluation-window lead
only when non-completion is an expected mission outcome that should produce
mission-owned grade=fail.lead_condition lines in the same aspect are allowed, but they are
ANDed: all must be true before pass/fail conditions are evaluated. A
lead_condition after pass/fail conditions starts the next ordered aspect.
Do not write boolean OR directly in lead_condition; publish a helper
boolean from uTimerScript or a mission-owned app only when evaluation truly
needs "event A or event B" semantics.BHV_ERROR_SEEN=false as a normal safety/integrity pass condition.
Treat BHV_WARNING as advisory development evidence by default: inspect and
investigate it with appcasts or .alog tools, but do not add a sticky
BHV_WARNING_SEEN mailflag, result column, or pass condition unless the
scenario is explicitly warning-intolerant and the warning signal is known to be
stable rather than transient/retracted.results.txt scalar and parseable. The only hard schema requirement is
grade=<pass|fail>; fields such as form=, mmod=, eval=, timeout=,
domain facts, and mhash= are recommended evidence, not a mandatory metric
set.--case, --jobs, temp mission copies, per-case port blocks, or
expected-vs-actual aggregation here. Those belong to the harness builder..bhv or app config.
repeat = 0, or add an explicit completion flag. A
repeating operator survey is usually not a valid eval completion signal.pAutoPoke or an equivalent explicit initializer for deploy and
evaluation variables.pMissionEval with simple lead condition(s), clear pass conditions,
result_flag = MISSION_EVALUATED = true, and report_file = results.txt.zlaunch.sh to set a mission-appropriate MAX_TIME default,
accept --max_time=<secs> as an override, and forward the final value to
xlaunch.sh --max_time=<secs>.README.md with scenario, grading signal, and run commands.results.txt.references/eval-mission-style.md for boundaries and file layout.references/evaluator-apps.md before wiring pAutoPoke or
pMissionEval.references/scenario-and-grading.md before grading obstacles, contacts,
moving/integration outcomes, or structured payloads.references/zlaunch-xlaunch.md before editing automation wrappers.references/validation.md before reporting an eval mission as done.assets/eval-single-vehicle/ when a concrete minimal moving example is
useful.assets/moos_scoped_teardown.sh into the target project as
scripts/moos_scoped_teardown.sh when the project does not already have an
equivalent root-scoped helper.scripts/static_check_eval_mission.sh <mission-dir> for a quick
structural check.scripts/live_check_eval_mission.sh <mission-dir> --port_base=<free-base>
for bundled-example or high-trust validation when MOOS-IvP runtime tools are
available../launch.sh --just_make --nogui <warp> succeeds.pMissionEval, explicit initialization
(pAutoPoke, uTimerScript, or an app-owned producer), and any evaluator
apps needed for reported columns such as pMissionHash.pMissionHash is used for mhash= evidence, keep it headless-only by
default; GUI targets should not launch both pMissionHash and
pMarineViewer unless the overlapping pMarineViewer hash feature is
deliberately disabled../zlaunch.sh --just_make <warp> succeeds when xlaunch.sh is on PATH../zlaunch.sh --max_time=<secs> <warp> exits cleanly.results.txt contains one parseable result line with grade=.results.txt.scripts/live_check_eval_mission.sh or equivalent to
verify result rows, surface warning evidence, and detect leftover listeners on
scoped ports.ktm, pkill, or unrelated cleanup.scripts/moos_scoped_teardown.sh as a scoped
backstop after xlaunch.sh; they do not use global ktm, pkill, or broad
process discovery.Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Provides a checklist for code reviews covering functionality, security, performance, maintainability, tests, and quality. Use for pull requests, audits, team standards, and developer training.
npx claudepluginhub cbenjamin23/moos-ivp-skills --plugin moos-ivp-skills