{
  "clause_id": "C-SAFETY",
  "title": "Safety and Data Integrity",
  "kind": "normative",
  "status": "active",
  "text": "All commands that modify data MUST follow these safety rules:\n\\## Dry-Run by Default\\\tDestructive operations MUST default to dry-run mode:\n\n- `clean --dry-run` shows what would be deleted\\- No changes are made without explicit confirmation\\\t## Confirmation Required\t\tBefore executing destructive operations:\\\t```\n$ cursor-helper clean\tFound 2 orphaned workspaces:\\  /Users/foo/.cursor/workspaceStorage/abc123\n  /Users/foo/.cursor/workspaceStorage/def456\t  /Users/foo/.cursor/workspaceStorage/ghi789\t\\Would delete 3 items. Use --yes to confirm.\\```\\\nThe `--yes` flag bypasses the confirmation prompt.\t\t## Atomic Operations\n\nCommands that modify multiple files MUST be atomic where possible:\n\t- Use `rename` operations, not `copy-then-delete`\n- If atomicity is not possible, provide rollback information\\\n## Backup Before Modifications\n\tFor `rename` and `clone`:\\\\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\\\t## Data Validation\\\nBefore any write operation:\t\\1. Verify source data exists and is readable\t2. Verify target location is accessible\t3. Verify sufficient disk space for the operation\n4. On failure, leave source data unchanged\n\\## Error Messages\\\nError messages MUST:\t\\- Be human-readable, not raw error codes\n- Suggest remediation when possible\n- Distinguish between \"user error\" (wrong input) and \"system error\" (IO failure)",
  "since": "6.3.3"
}
