Tool Noise Guard
Purpose
Reduce the forward propagation of tool-call bloat during tool-heavy work.
Compact forward, not backward. This skill cannot remove raw tool output that the
runtime already injected into context. It prevents that cost from multiplying by
re-quoting, re-summarizing, and re-fetching the same low-value metadata on later turns.
Never trade required evidence for token savings.
When to use
Optional passive guardrail. Once explicitly enabled for a tool-heavy task or session,
stay active until the user disables it or the task no longer uses tools.
Stay silent by default. Intervene behaviorally when one or more of these signals appear:
- successive tool results repeat the same wrapper, schema, or stable metadata
- a list/search response contains many fields but only a few affect the next decision
- the same resource is fetched or polled again without a concrete freshness reason
- a follow-up call can reuse an existing ID, cursor, path, or resource reference
- verbose tool envelopes are being copied into summaries, handoffs, or user-facing prose
Do not compact aggressively when exact raw payload shape is itself the evidence, when
results conflict, when an error is not yet understood, or when a mutation/audit step
requires exact confirmation.
Inputs
- Current task and next decision
- Recent tool calls and results
- Resource identifiers, paths, cursors, commit SHAs, line references, and timestamps
- Current mutation, verification, pagination, or freshness state
- Any exact fields required by the next tool call
Workflow
- Before repeating a tool call, ask: what new information can this call change?
- Reuse already-known resource anchors instead of rediscovering the same object.
- For repeated result shapes, classify fields into:
anchor — needed to identify, reopen, mutate, cite, paginate, or verify the resource
delta — changed since the previous relevant result
evidence — affects correctness, status, risk, or the next decision
noise — repeated wrapper or metadata with no current operational use
- Carry
anchor + delta + evidence forward. Do not restate noise.
- Prefer a targeted follow-up operation over rehydrating a full resource when both answer
the same question.
- If polling mutable state, poll only when a state transition can change the next action.
Do not immediately repeat an unchanged status call for reassurance.
- When several equivalent reads are needed, prefer a safe batch/list operation when the
tool supports one and batching does not widen scope or hide per-item failures.
- If compacting a result cluster, retain a minimal working digest rather than another
prose summary.
- Re-expand from the original tool/resource only when the next decision genuinely needs
a field that was not retained.
Minimal working digest
Use this shape internally or in a handoff only when it helps continuation:
TOOL STATE
Source/action: GitHub PR lookup
Anchors: PR #14, head=c1a874a, base=main
Delta: open/draft -> merged
Evidence: merged_at=2026-07-24T23:20:14Z
Next freshness condition: only re-fetch if merge state or head SHA matters again
Do not create a TOOL_STATE.md ledger merely to prove compaction happened.
Always preserve
Never compact away a field that is still needed for:
- a follow-up tool call: IDs, cursors, paths, refs, resource handles
- mutation safety: exact target, expected version/SHA, confirmation, failure reason
- verification: command/result, pass/fail state, counts, hashes, relevant timestamps
- debugging: first actionable error, traceback/mismatch details, failing input
- provenance: source, file/line reference, issue/PR/run number, commit SHA when relevant
- completeness: pagination state, omitted-result warning, partial-success state
- judgment: uncertainty, conflict, caveat, blocker, or changed value
- user intent: any field the user explicitly asked to see
Safe noise candidates
Compact these only when they are stable and not operationally relevant:
- repeated schema keys and unchanged wrapper fields
- connector/session IDs used only by the runtime
- request latency and transport bookkeeping
- duplicate avatar/profile/display URLs
- repeated null/default fields
- repeated labels or descriptions already captured once
- unchanged resource metadata that does not affect freshness or the next action
Similarity is not identity. If two values differ, do not collapse them until the
difference is classified as irrelevant to the current decision.
Outputs
Normally no user-visible output. The effect should be fewer redundant tool calls and
smaller carry-forward summaries.
When explicitly invoked for a status check, use at most:
TOOL NOISE: medium
COMPACT: repeated PR envelope -> PR number, head SHA, state, changed fields
SKIP: immediate unchanged-status re-fetch
PRESERVE: mutation target + CI status + error evidence
Stop conditions
- The next action can be taken without re-reading a verbose prior envelope.
- Required anchors, deltas, evidence, uncertainty, and pagination state remain available.
- No repeated tool call exists only for reassurance or metadata rediscovery.
- Any future re-fetch has a named freshness, mutation, verification, or missing-field reason.
Anti-patterns
- Claiming that compaction removed tokens already present in runtime context.
- Replacing exact verification evidence with "looks good" or "pass".
- Dropping IDs, cursors, SHAs, paths, or error details needed for the next operation.
- Collapsing similar-but-different results without checking the difference.
- Treating mutable data as permanently cached.
- Suppressing a necessary tool call merely to save tokens.
- Re-fetching the same full object because its compact digest feels too short.
- Creating a durable compaction artifact for routine tool traffic.
- Echoing runtime bookkeeping into user-facing updates when it has no decision value.
1---2name: tool-noise-guard3description: Passive guardrail that compacts repetitive tool-result envelopes, preserves decision-relevant anchors and deltas, and suppresses redundant re-fetches without pretending prior context disappeared.4---56# Tool Noise Guard78## Purpose910Reduce the forward propagation of tool-call bloat during tool-heavy work.1112**Compact forward, not backward.** This skill cannot remove raw tool output that the13runtime already injected into context. It prevents that cost from multiplying by14re-quoting, re-summarizing, and re-fetching the same low-value metadata on later turns.1516Never trade required evidence for token savings.1718## When to use1920Optional passive guardrail. Once explicitly enabled for a tool-heavy task or session,21stay active until the user disables it or the task no longer uses tools.2223Stay silent by default. Intervene behaviorally when one or more of these signals appear:2425- successive tool results repeat the same wrapper, schema, or stable metadata26- a list/search response contains many fields but only a few affect the next decision27- the same resource is fetched or polled again without a concrete freshness reason28- a follow-up call can reuse an existing ID, cursor, path, or resource reference29- verbose tool envelopes are being copied into summaries, handoffs, or user-facing prose3031Do not compact aggressively when exact raw payload shape is itself the evidence, when32results conflict, when an error is not yet understood, or when a mutation/audit step33requires exact confirmation.3435## Inputs3637- Current task and next decision38- Recent tool calls and results39- Resource identifiers, paths, cursors, commit SHAs, line references, and timestamps40- Current mutation, verification, pagination, or freshness state41- Any exact fields required by the next tool call4243## Workflow44451. Before repeating a tool call, ask: **what new information can this call change?**462. Reuse already-known resource anchors instead of rediscovering the same object.473. For repeated result shapes, classify fields into:48 - `anchor` — needed to identify, reopen, mutate, cite, paginate, or verify the resource49 - `delta` — changed since the previous relevant result50 - `evidence` — affects correctness, status, risk, or the next decision51 - `noise` — repeated wrapper or metadata with no current operational use524. Carry `anchor + delta + evidence` forward. Do not restate `noise`.535. Prefer a targeted follow-up operation over rehydrating a full resource when both answer54 the same question.556. If polling mutable state, poll only when a state transition can change the next action.56 Do not immediately repeat an unchanged status call for reassurance.577. When several equivalent reads are needed, prefer a safe batch/list operation when the58 tool supports one and batching does not widen scope or hide per-item failures.598. If compacting a result cluster, retain a minimal working digest rather than another60 prose summary.619. Re-expand from the original tool/resource only when the next decision genuinely needs62 a field that was not retained.6364### Minimal working digest6566Use this shape internally or in a handoff only when it helps continuation:6768```text69TOOL STATE70Source/action: GitHub PR lookup71Anchors: PR #14, head=c1a874a, base=main72Delta: open/draft -> merged73Evidence: merged_at=2026-07-24T23:20:14Z74Next freshness condition: only re-fetch if merge state or head SHA matters again75```7677Do not create a `TOOL_STATE.md` ledger merely to prove compaction happened.7879### Always preserve8081Never compact away a field that is still needed for:8283- a follow-up tool call: IDs, cursors, paths, refs, resource handles84- mutation safety: exact target, expected version/SHA, confirmation, failure reason85- verification: command/result, pass/fail state, counts, hashes, relevant timestamps86- debugging: first actionable error, traceback/mismatch details, failing input87- provenance: source, file/line reference, issue/PR/run number, commit SHA when relevant88- completeness: pagination state, omitted-result warning, partial-success state89- judgment: uncertainty, conflict, caveat, blocker, or changed value90- user intent: any field the user explicitly asked to see9192### Safe noise candidates9394Compact these only when they are stable and not operationally relevant:9596- repeated schema keys and unchanged wrapper fields97- connector/session IDs used only by the runtime98- request latency and transport bookkeeping99- duplicate avatar/profile/display URLs100- repeated null/default fields101- repeated labels or descriptions already captured once102- unchanged resource metadata that does not affect freshness or the next action103104Similarity is not identity. If two values differ, do not collapse them until the105difference is classified as irrelevant to the current decision.106107## Outputs108109Normally no user-visible output. The effect should be fewer redundant tool calls and110smaller carry-forward summaries.111112When explicitly invoked for a status check, use at most:113114```text115TOOL NOISE: medium116COMPACT: repeated PR envelope -> PR number, head SHA, state, changed fields117SKIP: immediate unchanged-status re-fetch118PRESERVE: mutation target + CI status + error evidence119```120121## Stop conditions122123- The next action can be taken without re-reading a verbose prior envelope.124- Required anchors, deltas, evidence, uncertainty, and pagination state remain available.125- No repeated tool call exists only for reassurance or metadata rediscovery.126- Any future re-fetch has a named freshness, mutation, verification, or missing-field reason.127128## Anti-patterns129130- Claiming that compaction removed tokens already present in runtime context.131- Replacing exact verification evidence with "looks good" or "pass".132- Dropping IDs, cursors, SHAs, paths, or error details needed for the next operation.133- Collapsing similar-but-different results without checking the difference.134- Treating mutable data as permanently cached.135- Suppressing a necessary tool call merely to save tokens.136- Re-fetching the same full object because its compact digest feels too short.137- Creating a durable compaction artifact for routine tool traffic.138- Echoing runtime bookkeeping into user-facing updates when it has no decision value.