idempotent-redundancy
Ensures that redundant system fallbacks are safe to run repeatedly.
Install
mkdir -p .claude/skills/idempotent-redundancy && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/6288" && unzip -o skill.zip -d .claude/skills/idempotent-redundancy && rm skill.zipInstalls to .claude/skills/idempotent-redundancy
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Idempotent RedundancyKey capabilities
- →Ensures atomic file operations in repair hooks
- →Enforces pre-write check patterns for redundancy
- →Standardizes fallback logic to prevent data overwrites
- →Validates merge states during reconciliation
How it works
Applies a set of logic verification rules that require checking for existence before state mutation.
Inputs & outputs
When to use idempotent-redundancy
- →Add idempotent fallback logic
- →Fix redundant path data corruption
- →Create safe repair hooks
About this skill
Idempotent Redundancy
When adding redundant paths (fallbacks, belt-and-suspenders), make them idempotent.
Pattern
Redundancy without idempotency causes loops, churn, or data corruption.
DO
- Use
_is_merge: truefor Braintrust updates - Check if value exists before writing (fallback only if missing)
- Use atomic write/rename for file operations
- Make reconciliation steps safe to run repeatedly
DON'T
- Write unconditionally in fallback paths
- Allow multiple writers to overwrite each other
- Fire "repair" actions that can trigger more repairs
Source Sessions
- a541f08a: "Redundancy is good only if idempotent"
- 1c21e6c8: "Belt-and-suspenders, but make it idempotent"
- 6a9f2d7a: "Idempotent repair hooks"
When not to use it
- →Simple, non-redundant system logic
- →When performance requirements strictly forbid state checking
Limitations
- →Adds overhead to simple write operations
- →Requires careful design to avoid recursive logic loops
How it compares
Treats every repair or redundant operation as a function that can be executed repeatedly without side effects.
Compared to similar skills
idempotent-redundancy side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| idempotent-redundancy (this skill) | 1 | 7mo | No flags | Advanced |
| python-error-handling | 1 | 2mo | No flags | Intermediate |
| debugging-streamlit | 7 | 5mo | Review | Intermediate |
| effect-patterns-error-handling | 1 | 7mo | No flags | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by parcadei
View all by parcadei →You might also like
python-error-handling
wshobson
Python error handling patterns including input validation, exception hierarchies, and partial failure handling. Use when implementing validation logic, designing exception strategies, handling batch processing failures, or building robust APIs.
debugging-streamlit
streamlit
Debug Streamlit frontend and backend changes using make debug with hot-reload. Use when testing code changes, investigating bugs, checking UI behavior, or needing screenshots of the running app.
effect-patterns-error-handling
PaulJPhilp
Effect-TS patterns for Error Handling. Use when working with error handling in Effect-TS applications.
effect-patterns-scheduling
PaulJPhilp
Effect-TS patterns for Scheduling. Use when working with scheduling in Effect-TS applications.
guidewire-local-dev-loop
jeremylongshore
Configure local Guidewire development workflow with Guidewire Studio, Gosu debugging, and hot reload capabilities. Use when setting up development environment, configuring IDE, or optimizing dev workflow. Trigger with phrases like "guidewire local dev", "guidewire studio setup", "gosu development", "guidewire debugging", "configure guidewire ide".
nextjs-server-side-error-debugging
blader
Debug getServerSideProps and getStaticProps errors in Next.js. Use when: (1) Page shows generic error but browser console is empty, (2) API routes return 500 with no details, (3) Server-side code fails silently, (4) Error only occurs on refresh not client navigation. Check terminal/server logs instead of browser for actual error messages.