diff --git a/.roo/rules-code/use-safeWriteJson.md b/.roo/rules-code/use-safeWriteJson.md new file mode 100644 index 0000000000..21e42553da --- /dev/null +++ b/.roo/rules-code/use-safeWriteJson.md @@ -0,0 +1,6 @@ +# JSON File Writing Must Be Atomic + +- You MUST use `safeWriteJson(filePath: string, data: any): Promise` from `src/utils/safeWriteJson.ts` instead of `JSON.stringify` with file-write operations +- `safeWriteJson` will create parent directories if necessary, so do not call `mkdir` prior to `safeWriteJson` +- `safeWriteJson` prevents data corruption via atomic writes with locking and streams the write to minimize memory footprint +- Test files are exempt from this rule