7e97f5bff5
herdr refused to shell-encode a multi-line inline --append-system-prompt argument (invalid_agent_argument), which broke any Claude Code profile with a configured multi-line fleet.charters.<role>. Split delivery: the role charter now writes to a temp file and mounts via --append-system-prompt-file; the one-line REPLY_CHARTER keeps its inline --append-system-prompt delivery, since it must reach a member with no repo checkout. Also pass --agent <role> when a role's agent-definition file exists under the worker's cwd (.claude/agents/<role>.md for claude-code, .opencode/agent/<role>.md for opencode); absent either file, nothing extra is added and the member still spawns. The base's LaunchSpec now carries roleCharter/replyCharter/cwd alongside the existing composed charter field, so CharterReceipt keeps fingerprinting the same composed text it always did -- unchanged, since the digest covers the full logical charter content regardless of how it is delivered.