undeclared-writes
Unannotated tools leave the sandbox unchanged
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 undeclared-writes.
- pack
effects- weight
- advisory · not scored
- scope
- server (annotations vs what the sandbox observed during the harness's own benign calls)
- decided by
- fs-observer
- since
- 0.2-draft (methodology 0.3-draft)
- config keys
checks.undeclared-writes.enabledchecks.undeclared-writes.severitysandbox.enabledtools.overrides
Probes
controlan unannotated read-style tool is called with its control argument; the sandbox is compared before and after (it runs when no tool carries annotations, too)
Settings and thresholds
Every check also takes checks.undeclared-writes.enabled and checks.undeclared-writes.severity; they are described once in the configuration reference.
This check has no numeric threshold.
| Key | Default | Standard | Meaning |
|---|---|---|---|
tools.overrides | {} | locked | Per-tool classifier overrides: { tool: { class, params } }. An override always wins and is printed. |
How the verdict is established
- Scoring. advisory: reported with its verdict but not part of the score.
What to fix
Annotate tools that write (readOnlyHint: false) or stop them writing during a plain call; unannotated tools that leave files behind are listed. This check is advisory.
False positives
A tool that legitimately caches is listed. The result is advisory and unscored.
False negatives
Write-style tools are not called without an annotation (they are expected to write). Only listed, never graded.