instructions-hygiene

Server instructions name only tools that exist

shipped

The sections below are generated from the CLI (methodology 0.3-draft, CLI 0.3.0); the same text is printed by sealmark explain instructions-hygiene.

pack
core
weight
advisory · not scoredcandidate
scope
server (what its instructions say)
decided by
static
since
0.3-draft (methodology 0.3-draft)
config keys
checks.instructions-hygiene.denychecks.instructions-hygiene.enabledchecks.instructions-hygiene.severity

Probes

  • unknown-tool a snake_case word, or a word in backticks, in the initialize instructions that is not a tool, parameter, prompt or resource the server declares (a leftover from another server's prompt)
  • deny a regex from checks.instructions-hygiene.deny matches the instructions (default: none, so this clause is not run)

Settings and thresholds

Every check also takes checks.instructions-hygiene.enabled and checks.instructions-hygiene.severity; they are described once in the configuration reference.

This check has no numeric threshold.

KeyDefaultStandardMeaning
checks.instructions-hygiene.deny[]not lockedRegular expressions the server's instructions must not match (a leftover prompt, a product name). Appends across layers.

How the verdict is established

  • Scoring. advisory: reported with its verdict but not part of the score.

What to fix

Keep the server's instructions in step with its tools: remove names of tools the server does not offer and any text left over from another product or prompt (what checks.instructions-hygiene.deny matches). This check is advisory.

False positives

Instructions that mention a snake_case term that is not a tool (a column name, a setting) read as an unknown tool; the check is advisory and never moves a letter.

False negatives

Only names that look like tools are found: a tool named with one plain word is recognised in prose only inside backticks.