fn state_machine_help() -> &'static str {
"fix the state definition in the active states.yaml. Inspect the machine \
rhei resolved with: rhei states"
}
fn settings_help() -> &'static str {
"settings merge from ~/.config/rhei/settings.json then .agents/rhei/settings.json. \
Check both with: rhei diag"
}
fn plan_authoring_help() -> &'static str {
"check the plan's task metadata (**State:**, **Prior:**, **Assignee:**), then re-run: \
rhei validate <plan>"
}
fn snapshot_help() -> &'static str {
"inspect the snapshot store with: rhei snapshot list"
}
fn template_manifest_help() -> &'static str {
"fix template.yaml in the template directory, then re-check the bundle with: \
rhei instantiate <template> --dry-run"
}
fn worktree_ref_help() -> &'static str {
"a task worktree reference is written by the state that created the worktree. Delete the \
stale file under runtime/worktree-refs/ and re-run that state."
}
fn internal_error_help() -> &'static str {
"this is a bug in rhei, not a problem with your input. Please report it with \
the command you ran and this message."
}
fn temp_write_help() -> &'static str {
"rhei writes plan edits through a temp file in the same directory. Check that \
directory is writable and has free space."
}
fn cwd_help() -> &'static str {
"re-run from a directory that still exists."
}
fn task_id_help() -> &'static str {
"list the task ids in this plan with: rhei list <plan>"
}
fn task_moved_help() -> &'static str {
"someone moved the task since you looked. Re-read its current state with: \
rhei list <plan>"
}
fn unknown_state_help() -> &'static str {
"pick a state the machine declares. List them with: rhei states"
}
fn artifact_path_help() -> &'static str {
"artifact paths are workspace-relative. Remove the leading '/' or the '..' \
segments from this artifact's `path` in the state machine."
}
fn runtime_dir_help() -> &'static str {
"rhei records results and transitions under runtime/. Check that the workspace \
directory is writable."
}
fn runtime_results_help() -> &'static str {
"rhei records results under runtime/results/. Check that directory is writable."
}
fn transition_log_help() -> &'static str {
"rhei appends to runtime/state-transitions.log. Check that directory is writable."
}
fn program_log_help() -> &'static str {
"program output is logged under runtime/logs/. Check that directory is writable."
}
fn program_state_failed_help() -> &'static str {
"the program state failed. Its log is under runtime/logs/; fix the cause, then re-run."
}
fn agent_log_help() -> &'static str {
"agent output is logged under runtime/logs/. Check that directory is writable."
}
fn agent_command_help() -> &'static str {
"check the agent's command and flags in settings.json: rhei diag"
}
fn run_report_help() -> &'static str {
"inspect the run with the report it printed, fix the cause, and re-run: rhei run <plan>"
}
fn nothing_claimable_help() -> &'static str {
"every remaining task is blocked, gated, or assigned. See what is left with: \
rhei list <plan>"
}
fn callback_command_help() -> &'static str {
"the callback command is declared in the state machine. Fix the command or the \
state it redirects to, then retry the transition."
}
fn poll_operand_help() -> &'static str {
"pollAttempts and pollMaxAttempts exist only inside a state that declares \
`poll:`. Use a different operand, or make the state a poll state."
}
fn open_descendants_operand_help() -> &'static str {
"openDescendants counts the transitioning task's non-terminal descendants, \
so it is only defined where the task tree is in hand. Inspect the plan \
with: rhei list <plan> --non-terminal"
}
fn states_declaration_help() -> &'static str {
"the plan's `**States:**` declaration must match the name inside the states \
file. Rename one of them, or point --state-machine at the matching file."
}
fn missing_state_machine_help() -> &'static str {
"rename the `**States:**` declaration to one of the names above, point \
--state-machine at the file that declares it, or run `/rhei-state-machine-writer` to \
author the machine that is missing."
}
fn empty_rhei_help(id: &str) -> String {
if id == workspace::BASIN_RHEI_ID {
return format!(
"rhei '{id}' holds no tickets: the basin takes its tickets from the non-hidden \
`*.md` files directly inside `basin/`. Capture one with \
`rhei new \"<title>\" --under basin`"
);
}
format!(
"rhei '{id}' holds no tickets: a workspace rhei takes its tickets from non-hidden \
`tasks/**/*.md` files, a single-file rhei from its `## Tasks` section"
)
}
fn duration_format_help() -> &'static str {
"durations are a number plus a unit: 7d, 4h, 30m, 10s."
}
fn git_worktree_help() -> &'static str {
"rhei needs a readable git worktree here. Check `git status` runs in this directory."
}
fn watch_help() -> &'static str {
"--watch needs an OS file-watch handle. Re-run without --watch, or raise the \
inotify limits."
}
fn viz_path_help() -> &'static str {
"check the path and re-run: rhei viz <plan-or-directory>"
}
fn dashboard_required_help() -> &'static str {
"the dashboard must be running to receive an intervention: rhei run <plan> --dashboard"
}
fn snapshot_reference_help() -> &'static str {
"a reference is <task>:<name>[:<state>][@<visit>][:<target>][/g<N>]. Copy one \
from: rhei snapshot list"
}
fn snapshot_corrupt_help() -> &'static str {
"this cached snapshot is corrupt. Delete its generation directory and re-record \
it: rhei snapshot gc --orphaned"
}
fn snapshot_redactor_help() -> &'static str {
"the redactor is the command in `snapshot.redact` in settings.json. Check it \
exists, reads stdin, and writes stdout."
}
fn session_capture_resume_help() -> &'static str {
"this agent profile cannot capture or resume a native session. Configure \
`agents.<id>.session` in settings.json, or continue with an agent that supports it."
}
fn session_capture_help() -> &'static str {
"this agent profile cannot capture a native session. Configure \
`agents.<id>.session` in settings.json, or drop snapshot emission for this state."
}
fn snapshot_inherit_help() -> &'static str {
"the override does not satisfy the state's snapshot.inherit contract. Pick a \
snapshot that does — list them with: rhei snapshot list — or relax \
snapshot.inherit in the state machine."
}
fn snapshot_resume_help() -> &'static str {
"that snapshot cannot be resumed by this agent. Pick another with: rhei snapshot \
list, or run the state without --from-snapshot."
}
fn snapshot_candidates_help() -> &'static str {
"the candidates above are the snapshot.inherit invocations this run offers. Pass \
one of them, or drop --from-snapshot."
}
fn snapshot_key_help() -> &'static str {
"snapshots are keyed by agent, provider, and model. Use a full \
<agent>:<provider>:<model> selector for this state."
}
fn snapshot_target_help() -> &'static str {
"a snapshot records the target it ran under. Re-create the snapshot, or pass an \
explicit target."
}
fn snapshot_ambiguous_help() -> &'static str {
"more than one cached generation matches. Narrow it with snapshot.inherit.select \
in the state machine, or prune with: rhei snapshot gc"
}
fn embedded_extraction_help() -> &'static str {
"built-in skills and templates are unpacked into a temp directory. Check that \
$TMPDIR exists, is writable, and has free space."
}
fn init_conflict_help() -> &'static str {
"inspect what is already here with: rhei list, then re-run init with the flag \
named above."
}
fn ticket_id_required_help() -> &'static str {
"ticket ids are the bold `Task <id>` values in the plan. List them with: rhei list <plan>"
}
fn rhei_scope_help() -> &'static str {
"drop --rhei to search the whole project, or name the rhei that owns the ticket. \
List the rheis with: rhei list"
}
fn local_install_help() -> &'static str {
"--local writes into the current project. Run it inside a git repository or a \
Panta project, or install for your user with --user."
}