code-patterns
npx skills add https://github.com/congdon1207/agents.md --skill code-patterns
Agent 安装分布
Skill 文档
Code Patterns
Best practices distilled from implementation lessons. These patterns prevent common bugs in file I/O, data persistence, and validation.
Core Principle
LEARN FROM MISTAKES – DON’T REPEAT THEM
Each pattern here was extracted from a real bug or issue. Apply these patterns proactively to prevent the same mistakes.
When to Use
Always use for: File-based state, shared resources, data persistence, validation layers, concurrent access
Especially when: Multiple processes/hooks access same file, persisting JSON data, creating factory functions, implementing save/load logic
The Patterns
1. File Locking (references/file-io.md)
Advisory file locking for shared state access.
Problem: Multiple processes writing to same file causes data corruption or race conditions.
Solution: Use .lock file pattern with timeout and stale lock detection.
Load when: Implementing file-based state accessed by multiple hooks/processes
2. Atomic Writes (references/data-persistence.md)
Safe file persistence that survives crashes.
Problem: writeFileSync() mid-write crash corrupts file.
Solution: Write to .tmp, rename to final path (atomic on POSIX), handle Windows with backup pattern.
Load when: Persisting any JSON/data file that must survive unexpected termination
3. Schema Validation (references/data-validation.md)
Validate before every persist operation.
Problem: Factory functions create invalid data that persists and causes downstream issues.
Solution: Validate at creation AND before every write. Never trust “it was validated earlier.”
Load when: Creating factory functions, implementing create/update operations, building data pipelines
Quick Reference
Shared file access â file-io.md (add locking)
JSON persistence â data-persistence.md (atomic writes)
Factory function â data-validation.md (validate output)
Prevention Checklist
Before implementing file I/O:
- Will multiple processes access this file?
- What happens if write crashes mid-operation?
- Is data validated before every write?
- Are stale locks handled (dead process detection)?
Origin
These patterns were extracted from ACE (Agentic Context Engineering) implementation review:
- Race condition in concurrent delta writes â file-io.md
- File corruption risk on crash â data-persistence.md
- Invalid deltas persisting â data-validation.md