---
id: instruction-bloat
name: Instruction Bloat
group: prompt-quality
severity: medium
scope: sessions
requiresIdeContext: true
version: 1
tags: [tokens, instructions, context, cost]
thresholds:
maxBytes: 4000
minBloated: 1
---
# Description
Detects oversized `.github/copilot-instructions.md` (or equivalent) files. Custom instructions are prepended to **every** request's system prompt — large files inflate input tokens on every turn, often by thousands of tokens that are never relevant to the current task.
# When Triggered
{{extra.bloatedSessions}} workspace(s) have custom-instruction files larger than {{thresholds.maxBytes}} bytes (largest: {{extra.maxBytes}} bytes). Every request in those workspaces pays the bloat cost on input tokens.
# How to Improve
Trim `.github/copilot-instructions.md` to the essentials: language/framework conventions, code style, "do not" rules, and pointers to longer docs. Move long examples and rationale into separate files referenced via `#file:`. Keep the always-on payload under ~4 KB.
# Examples
{{extra.maxBytes}} bytes — largest custom-instructions file across {{extra.totalSessions}} workspace(s)
# Detection Logic
```detect
scan: sessions
match: true
aggregate: count
stats: instructionBloatStats(allSessions, thresholds.maxBytes)
bloatedSessions: stats.bloatedSessions
maxBytes: stats.maxBytes
totalSessions: stats.totalSessions
withInstructionsCount: stats.withInstructionsCount
emitCount: stats.bloatedSessions
emitTotal: stats.totalSessions
check: stats.bloatedSessions >= thresholds.minBloated
examples: {{maxBytes}} bytes (workspace-level)
```
---
id: mcp-tool-bloat
name: Tool / MCP Bloat
group: tool-mastery
severity: medium
scope: sessions
version: 2
tags: [tools, mcp, context-window]
thresholds:
maxToolsPerSession: 40
minSessions: 3
---
# Description
Detects sessions with an unusually large number of distinct tools invoked — a proxy for oversized tool catalogs that inflate every request's system prompt. Each registered tool adds tokens regardless of whether it's used.
# When Triggered
{{count}} session(s) used more than {{thresholds.maxToolsPerSession}} distinct tools. Large tool sets add silent overhead to every prompt.
# How to Improve
Trim the active toolset: disable rarely-used MCP servers, scope tool sets per workspace, and use tool groups so only relevant tools are loaded for the task at hand. Aim for under 40 active tools per session.
# Examples
{{flatUnique(reqs, "toolsUsed")}} tools in one session
# Detection Logic
```detect
scan: sessions
match: flatUnique(reqs, "toolsUsed") > thresholds.maxToolsPerSession
aggregate: count
check: count >= thresholds.minSessions
examples: {{flatUnique(reqs, "toolsUsed")}} tools
```
All prompts here were collected from publicly available sources and are
reproduced for transparency research. Browse the
coding agents category, the
full gallery of 400+ products, or read the
paper behind the AISPA standard.