docs: a config change is a PR from a clone, not an edit in place
Seven places described an authoring flow that does not exist: the manager editing and committing a child's config in the bind-mounted config dir. mara, on the snapshot issue: "the pr workflow is the main one, anything else is legacy … the config dir in agent container is read only copy to see own config … changes need to go through local clone and via forge". Two of the seven are the request_init_config MCP tool description and its args struct, which are rendered into the system prompt of every agent holding the approvals tool group. A wrong tool description is not a stale comment; it is an instruction the whole hive reads as fact, which is why the claim kept being repeated back. The init tool creates the repo and seeds it. Nothing else. Tailoring the seeded template is not a separate mechanism - it is the ordinary config-change flow, a PR reviewed like any other. Prose only; the code already implements the PR flow (an approval's commit_ref is a PR number). Where a doc justified the parent's read-write mount on the child's config dir with the authoring model, the justification is removed rather than replaced: that mount is a defect tracked on its own issue, and it should not read as intentional while it waits.
This commit is contained in:
parent
ddc017f01b
commit
bed7ae6d5a
6 changed files with 65 additions and 47 deletions
|
|
@ -87,11 +87,11 @@ pub struct RemindArgs {
|
|||
#[derive(Debug, serde::Deserialize, schemars::JsonSchema)]
|
||||
pub struct RequestInitConfigArgs {
|
||||
/// New sub-agent name (≤9 chars). Queues an `InitConfig` approval; on
|
||||
/// approval hive-c0re seeds the proposed config repo at
|
||||
/// `/agents/<name>/config/agent.nix` with the default template. After
|
||||
/// the approval the manager edits + commits the config, then the operator
|
||||
/// spawns the agent; later config changes go through a PR on the child's
|
||||
/// `agent-configs/<name>` repo.
|
||||
/// approval hive-c0re creates the child's config repo and seeds it with a
|
||||
/// default `agent.nix`. Approving the follow-up `Spawn` creates the
|
||||
/// container. Config changes — including the child's first — are PRs on
|
||||
/// that repo, made from a clone, reviewed + approved by the operator;
|
||||
/// `/agents/<name>/config` is a read-only copy, not an editing surface.
|
||||
pub name: String,
|
||||
/// Optional description shown on the dashboard approval card.
|
||||
#[serde(default)]
|
||||
|
|
|
|||
|
|
@ -824,13 +824,16 @@ impl AgentServer {
|
|||
// hive-c0re performs a topology check server-side: only direct children
|
||||
// of the calling agent are accepted; all other names are rejected.
|
||||
#[tool(
|
||||
description = "Initialise a brand-new direct child agent's proposed config repo and \
|
||||
queue an `InitConfig` approval for the operator to review. Requires the `approvals` \
|
||||
tool group. `name` must be a direct child of this agent in the topology tree. \
|
||||
Fails if a config repo for that child already exists. On approval hive-c0re seeds \
|
||||
`/agents/<name>/config/agent.nix` with the default template; customise + commit it, \
|
||||
then the operator spawns the agent. Later config changes go through a PR on the \
|
||||
child's `agent-configs/<name>` repo, reviewed + approved by the operator."
|
||||
description = "Create a brand-new direct child agent's config repo and queue an \
|
||||
`InitConfig` approval for the operator to review. Requires the `approvals` tool \
|
||||
group. `name` must be a direct child of this agent in the topology tree. Fails if a \
|
||||
config repo for that child already exists. This tool **creates the repo** and \
|
||||
nothing else: on approval hive-c0re seeds it with a default `agent.nix`, and \
|
||||
approving the follow-up `Spawn` creates the container. \
|
||||
Every config change — the child's first one included — goes through a PR on its \
|
||||
config repo, made from a clone you take yourself, reviewed + approved by the \
|
||||
operator. `/agents/<name>/config` is a **read-only copy** for reading a config, \
|
||||
never an editing surface."
|
||||
)]
|
||||
async fn request_init_config(
|
||||
&self,
|
||||
|
|
|
|||
Loading…
Reference in a new issue