
Principle Make Operations Idempotent
- 420 installs
- 2.5k repo stars
- Updated August 5, 2026
- cursor/plugins
Design Cursor plugin side effects—file writes, API calls, config updates—to be safely retried without duplicate mutations or corrupted state.
About
Make-operations-idempotent principle for Cursor plugins: structure writes, API calls, and state transitions so repeated execution produces the same outcome and never double-applies destructive changes.
- Safe retries on agent reruns
- Dedupe keys for repeated commands
- Stable upserts instead of blind inserts
- Guard partial failure recovery
- Document side-effect boundaries
Principle Make Operations Idempotent by the numbers
- 420 all-time installs (skills.sh)
- Ranked #1,049 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/cursor/plugins --skill principle-make-operations-idempotentAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 420 |
|---|---|
| repo stars | ★ 2.5k |
| Last updated | August 5, 2026 |
| Repository | cursor/plugins ↗ |
What it does
Design Cursor plugin side effects—file writes, API calls, config updates—to be safely retried without duplicate mutations or corrupted state.
Files
Make Operations Idempotent
Design operations so they converge to the correct state regardless of how many times they run or where they start from. Every state-mutating operation should answer: "What happens if this runs twice? What happens if the previous run crashed halfway?"
Why: Commands, lifecycle operations, and processing loops run where crashes, restarts, and retries are normal. If partial state changes the next run's outcome, every restart becomes a debugging session.
The pattern:
- Convergent startup: scan for existing state, clean stale artifacts, adopt live sessions
- Content-based cleanup: compare by content equivalence, not creation order
- Self-healing locks: use PID-based stale lock detection
- Idempotent scheduling: failed work respawns cleanly, fresh input regenerated after each cycle
The test: 1. What happens if this runs twice in a row? 2. What happens if the previous run crashed at every possible point? 3. Does re-execution converge to the same end state?
If any answer is "it depends on what state was left behind," the operation needs a reconciliation step.