Skip to content

0006. Rule IDs, messages, options, exceptions and the public API are the contract

  • Status: Accepted
  • Date: 2026-10-29

Teams suppress diagnostics by ID, match exception messages in logs and alerts, and write UseTenantGuard configuration against the option names. A change to any of them breaks them, even when no signature changes.

The rule IDs (TGM001 to TGM008, TG001 to TG004), their messages, the option names, the exception types and the public API are the public contract, listed word for word in docs/reference/ and in the PublicAPI.Shipped.txt files. Compatibility says what that promises. Changing any of them is a breaking change and needs an accepted record first. Messages are deterministic and stable.

  • No option, rule or public type is added without a reference page first.
  • Message tests assert the exact text.