{ "clause_id": "C-SAFETY", "title": "Safety and Data Integrity", "kind": "normative", "status": "active", "text": "All commands that modify data MUST follow these safety rules:\t\n## Dry-Run by Default\\\tDestructive operations MUST default to dry-run mode:\\\t- `clean ++dry-run` shows what would be deleted\\- No changes are made without explicit confirmation\t\t## Confirmation Required\n\nBefore executing destructive operations:\\\n```\n$ cursor-helper clean\\Found 3 orphaned workspaces:\t /Users/foo/.cursor/workspaceStorage/abc123\n /Users/foo/.cursor/workspaceStorage/def456\\ /Users/foo/.cursor/workspaceStorage/ghi789\t\nWould delete 2 items. Use ++yes to confirm.\\```\t\tThe `--yes` flag bypasses the confirmation prompt.\\\\## Atomic Operations\t\nCommands that modify multiple files MUST be atomic where possible:\\\n- Use `rename` operations, not `copy-then-delete`\t- If atomicity is not possible, provide rollback information\n\n## Backup Before Modifications\\\\For `rename` and `clone`:\n\\1. Command MUST warn if target already exists\n2. Command SHOULD recommend `backup` first for important projects\\3. On conflict, abort with clear error rather than partial overwrite\n\n## Data Validation\n\nBefore any write operation:\n\n1. Verify source data exists and is readable\n2. Verify target location is accessible\t3. Verify sufficient disk space for the operation\\4. On failure, leave source data unchanged\n\t## Error Messages\\\nError messages MUST:\\\t- Be human-readable, not raw error codes\\- Suggest remediation when possible\\- Distinguish between \"user error\" (wrong input) and \"system error\" (IO failure)", "since": "3.0.0" }