Hone Administrator Skill (hone_admin)
Security note: This skill is available only to administrators listed in config.yaml under admins.
If an unauthorized user tries to trigger admin actions, politely refuse.
Project Structure Overview
<PROJECT_ROOT>/ <- project root (current working directory)
├── config.yaml <- main config file (LLM, channels, admin list, and so on)
├── bins/hone-cli/ <- canonical CLI startup path (`hone-cli start --build`)
├── bins/
│ ├── hone-imessage/ <- iMessage channel entrypoint
│ ├── hone-discord/ <- Discord channel entrypoint
│ └── hone-telegram/ <- Telegram channel entrypoint
├── crates/
│ ├── hone-core/ <- core config and Agent interfaces
│ ├── hone-channels/ <- shared channel logic (`HoneBotCore`)
│ ├── hone-tools/ <- tool implementations, including `restart_hone`
│ ├── hone-llm/ <- LLM call layer
│ └── hone-memory/ <- session persistence
├── agents/
│ ├── gemini_cli/ <- Gemini CLI agent
│ └── codex_cli/ <- Codex CLI agent
├── skills/ <- built-in system skills (`.md` files)
│ └── hone_admin/SKILL.md <- this file
├── data/
│ ├── runtime/current.pid <- PID of the current `hone-cli start` supervisor
│ └── logs/restart.log <- restart log
└── Cargo.toml <- Rust workspace config
Operation 1: View or Modify Source Code or Config
Use the gemini_cli agent (default):
Gemini CLI runs in --yolo mode and can read and write files directly. Tell the user what you are about to do, then operate on the target files.
Common edit cases:
- Modify
config.yaml: adjust the LLM model, timeout, prompts, admin list, and so on
- Modify
skills/<name>/SKILL.md: update a skill's instructions or prompt
- Modify Rust source (
bins/, crates/): a rebuild is required before the change takes effect
Edit flow:
- Read the target file first and confirm its current content
- Make the change
- Show the diff or a summary to the user and confirm it looks correct
- If Rust source changed, restart the service so the change can take effect
- If only
config.yaml or skills/ changed, restart is still required because Hone loads them at startup
Operation 2: Restart Hone
When to use: after modifying Rust source or config so the change can take effect.
Restart tool: restart_hone(confirm="yes")
Flow:
- Confirm the edits are done
- Tell the user: "Hone will restart shortly and be unavailable for about 1-3 minutes, including rebuild time"
- Call the tool:
restart_hone(confirm="yes")
- After the tool returns
success=true, tell the user:
- "Hone will stop and restart in about 3 seconds"
- "The restart includes a rebuild and is expected to take about 1-3 minutes"
- "The service will recover automatically after the restart; if it is still unresponsive after 5 minutes, check the machine manually"
Restart mechanism:
- The tool reads
data/runtime/current.pid to get the current hone-cli start PID
- It waits 3 seconds in the background so the reply can be sent first, then kills the process
- It immediately runs the source CLI build-and-start path in the project root
- The new PID is written to
data/runtime/current.pid
Operation 3: Check Runtime Status
You can use the following to check the current Hone state:
- Read
data/runtime/current.pid to see the process PID
- Read
data/logs/restart.log to see recent restart logs
- Read
data/logs/hone.log to see the runtime logs
Strict Rules
- Confirm before changing: show a diff or summary before restarting
- Restart is risky: during restart, iMessage and Discord replies may be unavailable
- Do not delete critical files: never delete
config.yaml, Cargo.toml, or the data/ directory
- You must use the tool: restarts must go through
restart_hone; do not kill the process directly
- Admins only: if the user is not in the admin list, refuse all admin actions politely
1---2name: hone-administrator3description: Admin-only skill for viewing or modifying Hone source code and configuration, and for performing restarts. Available only to users listed in config.yaml admins4---56## Hone Administrator Skill (hone_admin)78> **Security note:** This skill is available only to administrators listed in `config.yaml` under `admins`.9> If an unauthorized user tries to trigger admin actions, politely refuse.1011---1213### Project Structure Overview1415```text16<PROJECT_ROOT>/ <- project root (current working directory)17├── config.yaml <- main config file (LLM, channels, admin list, and so on)18├── bins/hone-cli/ <- canonical CLI startup path (`hone-cli start --build`)19├── bins/20│ ├── hone-imessage/ <- iMessage channel entrypoint21│ ├── hone-discord/ <- Discord channel entrypoint22│ └── hone-telegram/ <- Telegram channel entrypoint23├── crates/24│ ├── hone-core/ <- core config and Agent interfaces25│ ├── hone-channels/ <- shared channel logic (`HoneBotCore`)26│ ├── hone-tools/ <- tool implementations, including `restart_hone`27│ ├── hone-llm/ <- LLM call layer28│ └── hone-memory/ <- session persistence29├── agents/30│ ├── gemini_cli/ <- Gemini CLI agent31│ └── codex_cli/ <- Codex CLI agent32├── skills/ <- built-in system skills (`.md` files)33│ └── hone_admin/SKILL.md <- this file34├── data/35│ ├── runtime/current.pid <- PID of the current `hone-cli start` supervisor36│ └── logs/restart.log <- restart log37└── Cargo.toml <- Rust workspace config38```3940---4142### Operation 1: View or Modify Source Code or Config4344**Use the gemini_cli agent (default):**45Gemini CLI runs in `--yolo` mode and can read and write files directly. Tell the user what you are about to do, then operate on the target files.4647**Common edit cases:**48- Modify `config.yaml`: adjust the LLM model, timeout, prompts, admin list, and so on49- Modify `skills/<name>/SKILL.md`: update a skill's instructions or prompt50- Modify Rust source (`bins/`, `crates/`): a rebuild is required before the change takes effect5152**Edit flow:**531. Read the target file first and confirm its current content542. Make the change553. Show the diff or a summary to the user and confirm it looks correct564. If Rust source changed, restart the service so the change can take effect575. If only `config.yaml` or `skills/` changed, restart is still required because Hone loads them at startup5859---6061### Operation 2: Restart Hone6263**When to use:** after modifying Rust source or config so the change can take effect.6465**Restart tool:** `restart_hone(confirm="yes")`6667**Flow:**681. Confirm the edits are done692. Tell the user: "Hone will restart shortly and be unavailable for about 1-3 minutes, including rebuild time"703. Call the tool:71 ```text72 restart_hone(confirm="yes")73 ```744. After the tool returns `success=true`, tell the user:75 - "Hone will stop and restart in about 3 seconds"76 - "The restart includes a rebuild and is expected to take about 1-3 minutes"77 - "The service will recover automatically after the restart; if it is still unresponsive after 5 minutes, check the machine manually"7879**Restart mechanism:**80- The tool reads `data/runtime/current.pid` to get the current `hone-cli start` PID81- It waits 3 seconds in the background so the reply can be sent first, then kills the process82- It immediately runs the source CLI build-and-start path in the project root83- The new PID is written to `data/runtime/current.pid`8485---8687### Operation 3: Check Runtime Status8889You can use the following to check the current Hone state:90- Read `data/runtime/current.pid` to see the process PID91- Read `data/logs/restart.log` to see recent restart logs92- Read `data/logs/hone.log` to see the runtime logs9394---9596### Strict Rules97981. **Confirm before changing**: show a diff or summary before restarting992. **Restart is risky**: during restart, iMessage and Discord replies may be unavailable1003. **Do not delete critical files**: never delete `config.yaml`, `Cargo.toml`, or the `data/` directory1014. **You must use the tool**: restarts must go through `restart_hone`; do not kill the process directly1025. **Admins only**: if the user is not in the admin list, refuse all admin actions politely