From b7b8aae8e81a0624fb5756b9bbc3c5b724a0162d Mon Sep 17 00:00:00 2001 From: damocles Date: Sun, 30 Aug 2026 03:13:50 +0200 Subject: [PATCH 1/3] hive-c0re/hive-agent-mcp: fix 3 leftover ask/answer-removal doc comments --- hive-agent-mcp/src/mcp/mod.rs | 4 ++-- hive-c0re/src/coordinator.rs | 2 +- hive-c0re/src/stores/power.rs | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hive-agent-mcp/src/mcp/mod.rs b/hive-agent-mcp/src/mcp/mod.rs index a82c6cf6..193eec35 100644 --- a/hive-agent-mcp/src/mcp/mod.rs +++ b/hive-agent-mcp/src/mcp/mod.rs @@ -391,8 +391,8 @@ impl AgentServer { }; let kind_label = loose_end_kind_label(kind); // Reminders are harness-local — dial the in-agent socket - // directly instead of the broker; every other kind - // (question/approval) still lives in c0re. + // directly instead of the broker; the other kind (approval) + // still lives in c0re. if kind == hive_sh4re::inbox::CancelLooseEndKind::Reminder { return match dial_agent_socket(&hive_agent_sock::Request::CancelReminder { id }) .await diff --git a/hive-c0re/src/coordinator.rs b/hive-c0re/src/coordinator.rs index d6715768..83a7543e 100644 --- a/hive-c0re/src/coordinator.rs +++ b/hive-c0re/src/coordinator.rs @@ -173,7 +173,7 @@ pub struct Coordinator { /// Unified wire-facing event channel feeding the dashboard SSE /// stream. Carries broker messages (mirrored from `broker.subscribe` /// by the forwarder task in `main.rs`) and dashboard-only mutation - /// events (approval added/resolved, question added/answered, etc.). + /// events (approval added/resolved, etc.). /// Snapshot endpoints capture `event_seq` before reading state so /// the client can dedupe its buffered live traffic against the /// snapshot. diff --git a/hive-c0re/src/stores/power.rs b/hive-c0re/src/stores/power.rs index 055fd41b..e34beb3d 100644 --- a/hive-c0re/src/stores/power.rs +++ b/hive-c0re/src/stores/power.rs @@ -86,7 +86,7 @@ pub struct PowerStore { impl PowerStore { /// Open (a connection to) the shared coordinator DB and ensure the /// `agent_power` table exists. `db_path` is the same sqlite file - /// the broker / approvals / questions stores open. + /// the broker / approvals stores open. pub fn open(db_path: &Path) -> Result { let conn = crate::db::open(db_path, "agent_power")?; conn.execute_batch(SCHEMA) From 63c7c4ae2c952cabc9dcd8344b1e6f588e0b81ae Mon Sep 17 00:00:00 2001 From: damocles Date: Sun, 30 Aug 2026 03:26:09 +0200 Subject: [PATCH 2/3] hive-c0re: drop stale 'question' example from check_size doc --- .../base/skills/choosing-a-comms-channel/SKILL.md | 14 ++++++++++---- hive-c0re/src/agent_config/limits.rs | 4 ++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/claude-plugins/plugins/base/skills/choosing-a-comms-channel/SKILL.md b/claude-plugins/plugins/base/skills/choosing-a-comms-channel/SKILL.md index e0f512cb..6168c519 100644 --- a/claude-plugins/plugins/base/skills/choosing-a-comms-channel/SKILL.md +++ b/claude-plugins/plugins/base/skills/choosing-a-comms-channel/SKILL.md @@ -16,10 +16,16 @@ future reader won't think to look). dashboard-visible one-way message is fine. Don't reach for a conversational channel just to say something that needs no response. - **A specific decision you need recorded, that threads an answer back - to you** - use a mechanism built for exactly that (queues cleanly, - the answer comes back attached to the question). This matters for - anything you'll need to point back to later - a gated approval, a - go/no-go call. + to you** - there's no dedicated generic tool for this shape anymore + (a prior asker/answerer mechanism that did was removed). Use the + closest fit instead: if the decision is issue-shaped, it's really the + next bullet (post it where the context lives and it stays that + thread's own back-and-forth); otherwise use a real conversational + channel and write the outcome down somewhere a future reader will + actually find it - the channel itself won't do that bookkeeping for + you. This still matters for anything you'll need to point back to + later - a gated approval, a go/no-go call - it just takes one extra, + deliberate step now instead of a tool doing it automatically. - **An issue-shaped question or decision** - post it where the surrounding context already lives (the tracked item itself), not in a side channel. A future reader looking at that item should find the diff --git a/hive-c0re/src/agent_config/limits.rs b/hive-c0re/src/agent_config/limits.rs index ae2ad299..955d1074 100644 --- a/hive-c0re/src/agent_config/limits.rs +++ b/hive-c0re/src/agent_config/limits.rs @@ -26,8 +26,8 @@ pub const MESSAGE_MAX_BYTES: usize = 4096; /// `Response::Err`) on failure. /// /// `label` shows up in the error message verbatim — pass a short -/// noun like `"send"`, `"question"`, `"broadcast"` so the model can -/// tell which call got rejected. +/// noun like `"send"` or `"broadcast"` so the model can tell which +/// call got rejected. pub fn check_size(label: &str, body: &str) -> Result<(), String> { if body.len() > MESSAGE_MAX_BYTES { Err(format!( From aaac939cb2da83aa133386344146a5b707d4248d Mon Sep 17 00:00:00 2001 From: damocles Date: Sun, 30 Aug 2026 03:31:43 +0200 Subject: [PATCH 3/3] choosing-a-comms-channel: drop the history framing, state the guidance plainly --- .../skills/choosing-a-comms-channel/SKILL.md | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/claude-plugins/plugins/base/skills/choosing-a-comms-channel/SKILL.md b/claude-plugins/plugins/base/skills/choosing-a-comms-channel/SKILL.md index 6168c519..93441440 100644 --- a/claude-plugins/plugins/base/skills/choosing-a-comms-channel/SKILL.md +++ b/claude-plugins/plugins/base/skills/choosing-a-comms-channel/SKILL.md @@ -15,17 +15,12 @@ future reader won't think to look). - **Pure fire-and-forget notification, no reply expected** - a dashboard-visible one-way message is fine. Don't reach for a conversational channel just to say something that needs no response. -- **A specific decision you need recorded, that threads an answer back - to you** - there's no dedicated generic tool for this shape anymore - (a prior asker/answerer mechanism that did was removed). Use the - closest fit instead: if the decision is issue-shaped, it's really the - next bullet (post it where the context lives and it stays that - thread's own back-and-forth); otherwise use a real conversational - channel and write the outcome down somewhere a future reader will - actually find it - the channel itself won't do that bookkeeping for - you. This still matters for anything you'll need to point back to - later - a gated approval, a go/no-go call - it just takes one extra, - deliberate step now instead of a tool doing it automatically. +- **A specific decision you need recorded** (a gated approval, a + go/no-go call) - if it's issue-shaped, it's really the next bullet + (post it where the context lives and it stays that thread's own + back-and-forth); otherwise use a real conversational channel and + write the outcome down somewhere a future reader will actually find + it - no tool threads that bookkeeping back to you automatically. - **An issue-shaped question or decision** - post it where the surrounding context already lives (the tracked item itself), not in a side channel. A future reader looking at that item should find the