You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .claude/skills/code-review/SKILL.md
+38-43Lines changed: 38 additions & 43 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,38 +28,47 @@ If refactor/docs/tests-only: changelog entry not required — confirm with autho
28
28
29
29
### Mendix-specific
30
30
31
-
-**XML ↔ TSX alignment**: lowerCamelCase keys, TS props updated with XML changes, unique widget ID
32
-
-**Data API**: check `ActionValue.canExecute` before `execute()`, use `EditableValue.setValue()` for two-way binding, render loading/empty states until values are ready
31
+
`AGENTS.md` covers the core rules (canExecute, loading states, lowerCamelCase XML keys). Flag these additional review issues:
32
+
33
+
- XML changed but TS props not updated, or widget ID is not unique
34
+
-`EditableValue` read without checking `.status` — can render stale/undefined data
35
+
-`ActionValue.execute()` called without checking `.canExecute` first
33
36
34
37
### React
35
38
36
-
-**Hooks**: correct `useEffect`/`useMemo`/`useCallback` deps; no stale closures; guard async effects:
39
+
Flag these patterns — general React conventions are assumed known:
40
+
41
+
- Missing or wrong `useEffect`/`useMemo`/`useCallback` deps; stale closures
42
+
- Async effect sets state without a cleanup guard:
37
43
```ts
38
44
useEffect(() => {
39
45
let active =true;
40
-
(async () => {
41
-
const data =awaitload();
42
-
if (active) setData(data);
43
-
})();
46
+
fetchData().then(data=> {
47
+
if (active) setState(data);
48
+
});
44
49
return () => {
45
50
active=false;
46
51
};
47
-
}, [load]);
52
+
}, [fetchData]);
48
53
```
49
-
-**State**: functionalupdates (`setX(x => x + 1)`); nomirroringpropsinstatewithoutsynclogic; stable`key`sinlists (notarrayindex)
50
-
-**Props**: don't spread unknown props onto DOM nodes; prefer composition over prop drilling
0 commit comments