diff --git a/docs/turn-loop.md b/docs/turn-loop.md index 3ad1ab2a..3a6192ef 100644 --- a/docs/turn-loop.md +++ b/docs/turn-loop.md @@ -177,11 +177,15 @@ socket at `/run/hive/` once at startup: `hive-ag3nt/prompts/system.md` by `hive_ag3nt::prompt::render`: HTML-comment markers (`...`, same for `role:manager`) gate the role-specific blocks (closes - #519); everything else is shared. Then `{label}` and - `{operator_pronouns}` get substituted in the assembled output. - Pronouns come from `HIVE_OPERATOR_PRONOUNS` env (set by the meta - flake from `services.hyperhive.c0re.operatorPronouns`, default - `she/her`). Passed via `--system-prompt-file`. + #519); everything else is shared. Five placeholders are then + substituted: `{label}` (short agent name), `{qualified_label}` + (hive-qualified `name@domain` form), `{operator_pronouns}`, + `{hive_identity}` (e.g. `` on hive `pr1ma` ``; empty when + `hyperhive.hiveName` is unset), and `{swarm_identity}` (same + shape for the swarm). Pronouns come from `HIVE_OPERATOR_PRONOUNS` + env (set by the meta flake from + `services.hyperhive.c0re.operatorPronouns`, default `she/her`). + Passed via `--system-prompt-file`. The shared per-turn plumbing lives in `hive_ag3nt::turn::{write_mcp_config, write_settings, write_system_prompt, run_turn, drive_turn, @@ -243,7 +247,9 @@ it as a stdio child via `--mcp-config`. The hyperhive socket name is - `set_status(text)` — set a free-text status string visible on the operator dashboard. Persisted to `{state_dir}/hyperhive-status`; survives harness restarts. Pass - an empty string to clear. + an empty string to clear. Validated: must be a single line and + ≤ 200 Unicode characters; the server rejects multi-line or + over-length text with a clear error. - `get_agent_meta(name?)` — fetch identity + status metadata for an agent: `{ name, role, hyperhive_rev, running, status_text, status_set_at }`. Pass `name` to query a peer (e.g. check