{"id":21300,"plugin_id":"plugins_6aadb63c78b88191a10493870d2f5f6d","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:16:52.858Z","digest":"fb5245a549562d48356855b8515ba5bf61acba1927622bb58bc2384cab7b5763","against":null,"payload":{"description":"Install or validate upstream MOOS-IvP: locate or clone moos-ivp/moos-ivp, follow the platform setup README, create env.sh, and verify the checkout for MOOS-IvP development.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":301},{"relative_path":"assets/moos-ivp-logo.png","size_in_bytes":1328624},{"relative_path":"scripts/validate_moos_ivp_install.sh","size_in_bytes":2864}],"name":"moos-ivp-installer","skill_md_contents":"---\nname: moos-ivp-installer\ndescription: \"Install or validate upstream MOOS-IvP: locate or clone moos-ivp/moos-ivp, follow the platform setup README, create env.sh, and verify the checkout for MOOS-IvP development.\"\n---\n\n# MOOS-IvP Installer\n\n## Overview\n\nUse this skill to get a working local checkout of upstream MOOS-IvP. Keep the\ninstall simple: clone or locate the checkout, follow the upstream setup README,\nthen add the small environment setup the other MOOS-IvP skills expect.\n\nAfter this skill succeeds, the machine should be ready for MOOS-IvP extension\nrepo, app, behavior, or mission work.\n\n## Defaults\n\n- Source repo: `https://github.com/moos-ivp/moos-ivp.git`\n- SSH form when requested: `git@github.com:moos-ivp/moos-ivp.git`\n- Default install path: `~/moos-ivp`\n- Environment file: `<moos-ivp-root>/env.sh`\n- Dependencies and build commands: follow the relevant upstream setup README\n- Persistent shell profile edits: ask first\n\n## Confirm Before Changes\n\nBefore cloning, installing packages, building, creating `env.sh`, or editing a\nshell profile:\n\n1. Do non-destructive discovery first: look for an existing checkout, resolve\n   the likely install path, and choose the platform setup README.\n2. Ask for any missing user choices: install location and whether to add\n   persistent shell integration.\n3. Summarize the resolved path, clone URL if cloning, branch or tag if\n   requested, selected README, and shell-profile choice in one concise\n   sentence.\n4. Proceed when the user has already given explicit approval, or after they\n   confirm the summary. Still ask before package-manager, `sudo`, or shell\n   profile edits unless that specific approval was already given.\n\n## Workflow\n\n1. Check whether the user already has a valid checkout.\n   - Try an explicit user path first.\n   - Then try `MOOS_IVP_ROOT`.\n   - Then try common paths such as `~/moos-ivp`, `~/src/moos-ivp`,\n     `~/repos/moos-ivp`, and `~/projects/moos-ivp`.\n   - Treat a checkout as valid when it has `ivp/src`, `build-moos.sh`,\n     `build-ivp.sh`, `scripts/GenMOOSApp_AppCasting`, and\n     `scripts/GenBehavior`.\n2. If no checkout exists, confirm the target path before cloning.\n3. Clone with the confirmed source URL:\n\n   ```bash\n   git clone https://github.com/moos-ivp/moos-ivp.git <target-root>\n   ```\n\n   If the user requests a branch or tag, include it in the clone or checkout\n   plan before building.\n\n4. Choose the relevant setup README from the checkout:\n   - macOS: `README-OS-X.txt`\n   - GNU/Linux: `README-GNULINUX.txt`\n   - Windows: `README-WINDOWS.txt`\n5. Read the selected README and follow its dependency and build instructions.\n   Ask before running package-manager or sudo commands.\n6. Create the checkout-local shell environment file.\n   - Write `<moos-ivp-root>/env.sh`.\n   - Resolve the absolute checkout path before writing the file.\n   - Write expanded absolute paths inside `env.sh`, not `~` or `$HOME`.\n   - Make repeated sourcing idempotent so `PATH` does not accumulate duplicate\n     entries.\n   - Keep the file source-compatible with common Bash and zsh startup files.\n   - Only set `MOOS_IVP_ROOT` and `PATH` for the core checkout. Do not set\n     `IVP_BEHAVIOR_DIRS` here; extension repos own their behavior library\n     paths.\n   - Use this shape:\n\n   ```bash\n   #!/usr/bin/env bash\n   # Source this file to use this MOOS-IvP checkout.\n   export MOOS_IVP_ROOT=\"<absolute-moos-ivp-root>\"\n   case \":$PATH:\" in *\":<absolute-moos-ivp-root>/bin:\"*) ;; *) PATH=\"$PATH:<absolute-moos-ivp-root>/bin\" ;; esac\n   case \":$PATH:\" in *\":<absolute-moos-ivp-root>/scripts:\"*) ;; *) PATH=\"$PATH:<absolute-moos-ivp-root>/scripts\" ;; esac\n   export PATH\n   ```\n\n7. If the user opted into persistent shell integration, update the selected\n   shell profile.\n   - Do not require the user to already know shell profile details. If the user\n     named a shell, suggest its usual profile, such as `~/.zshrc` for zsh or\n     `~/.bashrc` for Bash, and ask for confirmation. If the user did not name a\n     shell, ask which profile to update and offer common choices: `~/.zshrc`,\n     `~/.bashrc`, or no profile edit.\n   - Create the profile file if it does not exist.\n   - Preserve user content.\n   - Append the managed source block near the end of the profile so it runs\n     after earlier `PATH` setup. Do not insert it before later lines that reset\n     or export `PATH`.\n   - Use a clearly marked block:\n\n   ```bash\n   # >>> moos-ivp core >>>\n   [ -f \"<absolute-moos-ivp-root>/env.sh\" ] && . \"<absolute-moos-ivp-root>/env.sh\"\n   # <<< moos-ivp core <<<\n   ```\n\n   - If the user opted out, leave the profile unchanged and tell them they can\n     run `. <moos-ivp-root>/env.sh` in a shell session.\n\n   Creating `env.sh` is the normal local shell setup for this skill. Adding the\n   profile source block is the separate persistent terminal setup that requires\n   explicit user approval.\n\n8. Validate:\n\n   ```bash\n   <skill-dir>/scripts/validate_moos_ivp_install.sh <moos-ivp-root>\n   ```\n\n   Run this after the README build steps and `env.sh` creation. For earlier\n   discovery, use the structural checkout checks in step 1. Treat any\n   `fail - ...` line as the concise reason to report or fix.\n\n## Failure Handling\n\n- If dependencies are missing, report the README consulted and the missing\n  package or tool.\n- If build fails, report the first actionable compiler, linker, CMake, or\n  missing-library error.\n- If profile editing fails, leave the checkout intact and tell the user to\n  source `env.sh` manually.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}