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
-
Dry Run Output: When
--dry-runis passed, the tool MUST NOT perform any destructive actions. -
Execution Tree: The tool MUST output the exact execution tree (the logical steps it would have taken) in structured JSON format.
-
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.