Mandatory Protocols

Compliance with SOS requires implementing specific interaction patterns.

The "Safety-Valve" Protocol

Every compliant tool must implement a --dry-run flag.

Interaction Requirements

  1. Dry Run Output: When --dry-run is passed, the tool MUST NOT perform any destructive actions.

  2. Execution Tree: The tool MUST output the exact execution tree (the logical steps it would have taken) in structured JSON format.

  3. Machine Readability: This allows for CI/CD pipelines to validate command intent before execution on production systems.

# Example
my-app --file=data.json --delete --dry-run

Output:

{
  "action": "delete",
  "target": "data.json",
  "verified": true,
  "safety_valve": "triggered"
}

Config Key Sanitation

Every compliant tool that reads user, project, or global config keys MUST implement Config Key Sanitation.

Summary:

  • Catalog every key the tool has ever recognized (active, deprecated, expired).

  • Never delete catalog entries or stop detecting expired keys.

  • Always notify on deprecated, expired, and unknown matches found in config sources.

  • Prefer a shared library for classify → match → alert.

Full normative text: Config Key Sanitation Protocol.