diff --git a/CLAUDE.md b/CLAUDE.md
index 87107c6..4fa1e83 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -369,3 +369,30 @@ The create form lives in `resources/views/components/purchase/request-modal.blad
- **Never** link to `route('purchase.requests.create')` for creating new requests — the component replaces that flow entirely.
- The component is self-contained: it owns the trigger button, the Alpine.js open/close state, the full MPR form (POSTing to `purchase.requests.store`), dynamic item rows, and validation-error auto-reopen logic.
- The `/purchase/requests/create` page and route remain as a fallback but should not be referenced in new UI.
+
+### 11. Data entry pages — AJAX only, no page refreshes
+All settings and management pages where users create, edit, or delete records MUST use `fetch()` AJAX. No `
+
+ {{-- Dev credentials hint --}}
+ @if(app()->isLocal())
+