fix: add data source integrity rule to delegation contract #14

Merged
jerome merged 1 commits from feat/data-source-integrity-rule into master 2026-07-12 18:09:16 +00:00
Showing only changes of commit fdb22948d9 - Show all commits
+34
View File
@@ -66,6 +66,26 @@ Delegation is **mandatory** when any of these apply:
`curl`, `hermes tools list` — these are decision-making tools. The manager
reads them directly.
## Data Source Integrity (CRITICAL)
**Workers MUST use the data provided in their task context. They MUST NOT
fetch their own data from external sources unless explicitly told to.**
When a task says "Read file X and format it", the worker reads file X. It does
not query a separate API, run its own diagnostics, or pull data from a different
system. This is the #1 source of cross-worker inconsistency: one worker gathers
SSH data, another queries the Proxmox API, and the report merges two incompatible
datasets.
**Rule:** If a worker needs additional data beyond what's in its task description,
it asks the manager (via relay) — it doesn't go find it on its own.
**This is a hard rule, not a recommendation.** Violating it produces the exact
type of discrepancy the kanban pipeline exists to prevent: a review worker finds
"5 nodes present" in the raw data but "5/5 online" in the report — even though
one of those nodes was unreachable. The report lied because it used data the
raw data never provided.
## Worker Selection Matrix
| Worker | Model | Toolsets | Role | Use When |
@@ -100,6 +120,19 @@ dispatch sequentially.
Fire workers via `delegate_task`:
**Critical: Pass the data, not just the goal.** When dispatching a worker that
processes output from another worker, include the file path AND explicit
instructions to use ONLY that source. Example:
```
delegate_task(
goal="Format the cluster check into a clean report",
context="Source data is at /tmp/proxmox-check-raw.md. Format ONLY the data
in that file. Do NOT query the Proxmox API or any other data source. Use the
file as your sole source of truth."
)
```
**Parallel (independent lanes):**
```
delegate_task(
@@ -203,6 +236,7 @@ Only verified results reach Kwame. Format per channel:
- ❌ Skipping verification → raw worker output never reaches the user
- ❌ Delegating single tool calls → keep quick reads/writes at manager level
- ❌ Firing more than 3 workers in parallel → hard limit
-**Workers fetching their own data sources** → a writer worker that queries the Proxmox API when told to "format the raw file" is fabricating data. Use the input given, not external sources
## Emergency Exception