Machines panel: launch a cloud-skilled coding agent or copy its prompt
Adds a sparkles menu to the Machines panel control bar with four entries: Claude Code, Codex, OpenCode, and Copy Cloud Prompt.
The agent entries open a local terminal pane running that agent with a kickoff prompt. Copy Cloud Prompt puts the same prompt on the clipboard for any other terminal. Both first write the bundled skill file Resources/cloud-agent-skill.md to ~/.config/cmux/skills/cmux-cloud.md, regenerated on every use so it always matches the running app, and the prompt tells the agent to read that file before doing cloud work. A file reference works for all three agents with no network dependency; launch forms are claude "<prompt>", codex "<prompt>", opencode --prompt "<prompt>".
CloudAgentSkillLauncher is the single shared action path. Launch goes through TerminalController.surfaceNewTerminal (the same primitive as surface.new_terminal), and two socket methods expose it: vm.cloud_agent_open ({"agent":"claude|codex|opencode"}) and vm.cloud_prompt (returns prompt + skill_path). The menu, the socket, and any future palette or CLI verb all share one path, and the flow is preflightable via cmux rpc.
Preflight on a tagged build (cldsk): vm.cloud_prompt returned the prompt and regenerated the skill file; vm.cloud_agent_open opened a pane where Claude Code read the skill, ran cmux vm ls against the dev backend, and reported the plan meter correctly. The menu button renders in the panel (AX: AXMenuButton "Open Cloud Agent").
Strings are localized (en + ja, machines.agent.*). The kickoff prompt and skill markdown are deliberately not localized: they are agent input, not UI copy. The skill text is adapted from manaflow-ai/cmux-skills#9 and states that live cmux vm --help output is authoritative, which bounds drift between the bundled copy and the CLI.
Tests: CloudAgentSkillLauncherTests covers the bundled resource presence, prompt content, per-agent argv shapes, and skill-file install/regeneration under an injected home.