SIGN IN SIGN UP

fix: audit the coverage tool, and gate the promise that says it is audited

Three defects from the element 9 rollout, all found by measurement rather than
by reading the diff.

1. The INSTRUCTIONS of these connectors state that EVERY tool call appends to
   the audit log. The coverage tool shipped without one, which made that
   sentence false. It now writes an entry like every other tool, and a new test
   proves the line actually lands on disk - a promise without a gate does not
   hold.

2. The drift test now asserts the STRONG direction: every REGISTERED tool must
   be named in INSTRUCTIONS. Only boutique-mcp checked this, and it is the
   assertion that caught a tool shipped without routing the model to it. A tool
   the instructions never mention is discoverable but not routed, so a
   capability ships without the behaviour change it was meant to deliver.

3. Layout unified across the fleet: the Coverage models live in coverage.py,
   not in models.py, so every connector in the fleet has the same shape.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
M
mazurwieslaw2022-cmd committed
ac8ff822231dce0ff431ab07ce9b0fb851d6498e
Parent: 2056962