Linting Prose in CI
Description and use
Linting tool descriptions in CI uncovered contract errors that caused build failures. Adding usage cues and aligning descriptions fixed the issue, resulting in a successful build.
Problem
Wording changes in tool contracts can break agent behavior; they need to be treated like code changes and validated in CI.
Outcome
The linter caught contract issues that caused CI failures; fixing wording restored CI success and improved agent telemetry.
Workflow
- Push commit with linter and contract changes
- GitHub Action runs contract linter
- Linter reports errors for missing provenance, usage cues, token budget, and drift
- Fix commit adds missing clauses and aligns descriptions
- GitHub Action runs linter again
- Linter passes with zero errors and alias warnings
- CI build succeeds
Evidence
The linter parses the contract straight out of the McpToolTrigger and McpToolProperty attributes, the authoritative copy, the same source the deployed description hash is computed from.
The fix commit added when-to-call clauses to two tools ... and aligned the three Bicep descriptions with the C#. The build went green, and the budget rule priced the edit: the contract grew from 277 to 302 tokens, 25 tokens for two sentences of disambiguation, well under budget.
- Record date: 2026-10-01T07:08:10.746Z