{"id":"idempotent-redundancy","name":"idempotent-redundancy","summary":"冪等冗長性","body":"# Idempotent Redundancy\n\nWhen adding redundant paths (fallbacks, belt-and-suspenders), make them idempotent.\n\n## Pattern\n\nRedundancy without idempotency causes loops, churn, or data corruption.\n\n## DO\n- Use `_is_merge: true` for Braintrust updates\n- Check if value exists before writing (fallback only if missing)\n- Use atomic write/rename for file operations\n- Make reconciliation steps safe to run repeatedly\n\n## DON'T\n- Write unconditionally in fallback paths\n- Allow multiple writers to overwrite each other\n- Fire \"repair\" actions that can trigger more repairs\n\n## Source Sessions\n- a541f08a: \"Redundancy is good only if idempotent\"\n- 1c21e6c8: \"Belt-and-suspenders, but make it idempotent\"\n- 6a9f2d7a: \"Idempotent repair hooks\"","author":"@parcadei","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/parcadei/Continuous-Claude-v3/tree/main/.claude/skills/idempotent-redundancy","license":"MIT","category":"writing","lang":"en","tokens":194,"stars":0,"calls30d":2,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[],"requires":{"mcp":[],"tools":[]},"safety":{"flags":[],"scannedAt":"2026-08-22","hasScripts":false,"networkEndpoints":[]}}