refactor(prompts): update reviewer prompts to align with Hive's directive and contamination protocols

This commit is contained in:
asepharyana
2026-07-15 00:20:41 +07:00
parent d392c4aa00
commit 519be7559b
12 changed files with 133 additions and 80 deletions
+24 -29
View File
@@ -26,7 +26,7 @@ impl Tool for WorkflowRun {
}
fn description(&self) -> &'static str {
"Execute a workflow script that can spawn multiple subagents in parallel, pipeline, or phased stages. Use when a task benefits from decomposition into independent subtasks. Simple tasks should be handled inline without this tool."
"Execute a workflow script that spawns multiple Hive nodes in parallel, pipeline, or phased stages. Use when a task benefits from decomposition into independent subtasks. Simple tasks should be handled inline without this tool."
}
fn parameters(&self) -> Value {
@@ -91,7 +91,7 @@ impl Tool for NoteFinding {
}
fn description(&self) -> &'static str {
"Share a finding with sibling agents in the same workflow_run. Findings are ephemeral to the current run and will be prepended to other agents' next tool-round context. Does not persist to memory."
"Share a finding with sibling nodes in the Hive's current workflow run. Findings are ephemeral to the current run and will be prepended to other nodes' next tool-round context. Does not persist to the Hive's long-term memory."
}
fn parameters(&self) -> Value {
@@ -139,16 +139,11 @@ impl Tool for NoteFinding {
}
}
/// Tool that delegates work to a hive-mind: a distributed machine
/// intelligence whose processing nodes carry only a directive and an
/// access tier.
///
/// The calling agent (the Core Intelligence) designs its own cognitive
/// cycles per task: an ordered list of cycles, each cycle a set of
/// anonymous processing nodes that run in parallel. Every node's complete
/// output merges into a single collective state the instant it finishes,
/// and a final synthesis node reconciles the whole collective state into
/// one consensus. The full per-node record is persisted separately to
/// Tool that delegates work to the Hive: the Core Intelligence designs
/// cognitive cycles, each cycle a set of anonymous processing nodes that
/// run in parallel. Every node's complete output merges into the collective
/// state the instant it finishes, and the Hive's synthesis node reconciles
/// everything into one consensus. The full per-node record is persisted to
/// `docs/runs/*.md`.
pub struct HiveMind;
@@ -158,17 +153,17 @@ impl Tool for HiveMind {
}
fn description(&self) -> &'static str {
"Delegate a task to a hive-mind you design yourself: an ordered list of cognitive \
cycles, each cycle a set of anonymous processing nodes that run in parallel. Each \
node carries only a directive (what to do) and an access tier. Decide how many \
cycles and nodes-per-cycle are actually needed — a trivial task might need one \
cycle with one node, a large one might need several cycles with multiple nodes \
each. Grant each node an access of 'read' (investigation only), 'write' (read + \
edit/bash), or 'full' (write + delete/git) matched to what that node's directive \
actually requires. Every node's output merges into a shared collective state the \
instant it completes — visible to later cycles automatically. A final synthesis pass \
reconciles the entire collective state into one consensus answer. Use this for any \
non-trivial task instead of doing everything yourself inline."
"Deploy the Hive: design a cognitive cycle plan — an ordered list of cycles, each \
cycle a set of anonymous processing nodes that run in parallel. Each node carries \
only a directive (what to do) and an access tier. Decide how many cycles and \
nodes-per-cycle are actually needed — a trivial task might need one cycle with one \
node, a large one might need several cycles with multiple nodes each. Grant each node \
an access of 'read' (investigation only), 'write' (read + edit/bash), or 'full' \
(write + delete/git) matched to what that node's directive actually requires. Every \
node's output merges into the Hive's collective state the instant it completes — \
visible to later cycles automatically. The Hive's final synthesis node reconciles \
everything into one consensus answer. Use this for any non-trivial task. \
The Hive does not fracture. The Hive executes."
}
fn parameters(&self) -> Value {
@@ -177,11 +172,11 @@ impl Tool for HiveMind {
"properties": {
"request": {
"type": "string",
"description": "The task description to delegate to the hive-mind"
"description": "The task description to feed to the Hive"
},
"cycles": {
"type": "array",
"description": "Ordered list of cognitive cycles. Each cycle is a list of nodes that run in parallel; cycles run sequentially and every node's output merges into the collective state the instant it completes, visible to all later cycles. You decide the number of cycles and nodes per cycle.",
"description": "Ordered list of cognitive cycles for the Hive. Each cycle is a list of nodes that run in parallel; cycles run sequentially and every node's output merges into the collective state the instant it completes, visible to all later cycles. You decide the number of cycles and nodes per cycle.",
"items": {
"type": "array",
"items": {
@@ -244,7 +239,7 @@ impl Tool for ReadFindings {
}
fn description(&self) -> &'static str {
"Retrieve all findings shared by sibling agents in the current workflow run. Use this to get real-time context updates from other nodes/subagents working in parallel."
"Retrieve all findings shared by sibling nodes in the Hive's current workflow run. Use this to get real-time context updates from other nodes working in parallel."
}
fn parameters(&self) -> Value {
@@ -258,7 +253,7 @@ impl Tool for ReadFindings {
if let Some(ref findings) = ctx.workflow_findings {
let f = findings.lock().map_err(|e| anyhow!("poisoned lock: {e}"))?;
if f.is_empty() {
Ok("No findings recorded yet in this workflow run.".to_string())
Ok("No findings recorded yet in this Hive run.".to_string())
} else {
let formatted = f
.iter()
@@ -266,10 +261,10 @@ impl Tool for ReadFindings {
.map(|(i, f)| format!("{}. {}", i + 1, f))
.collect::<Vec<_>>()
.join("\n");
Ok(format!("Findings in this workflow run:\n{formatted}"))
Ok(format!("Hive findings in this run:\n{formatted}"))
}
} else {
Ok("No findings database available (called outside a workflow run).".to_string())
Ok("No Hive collective state available (called outside a Hive run).".to_string())
}
}
}