Episode 2 — React Frontend Architecture NextJS / 2.9 — Custom Hooks and Reusable Logic

2.9.d — Maintainability: naming, structure, and testing hooks

<< 2.9 Overview


Learning outcomes

  1. Name hooks so grep and onboarding win.
  2. Choose object vs tuple return APIs deliberately.
  3. Test hooks with renderHook and MSW where appropriate.

Naming

  • useUserSession not useStuff
  • Prefer verb+noun for actions: useSignOut, useUploadAvatar

Return shape

Objects scale better as fields grow:

return { data, error, refetch };

Tuples (return [x, setX]) are fine for tiny hooks (useToggle) but document order.


Testing

Use @testing-library/react renderHook (or React test utils per version) to assert state transitions without mounting full pages for every branch.



Appendix — Scenario bank (basic → advanced)

Flashcard: symptom → cause → fix → interview phrase.

CH3-001 — Maintainability #1

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 13 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-002 — Maintainability #2

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 26 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-003 — Maintainability #3

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 39 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-004 — Maintainability #4

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 52 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-005 — Maintainability #5

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 65 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-006 — Maintainability #6

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 78 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-007 — Maintainability #7

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 91 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-008 — Maintainability #8

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 104 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-009 — Maintainability #9

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 117 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-010 — Maintainability #10

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 130 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-011 — Maintainability #11

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 143 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-012 — Maintainability #12

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 156 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-013 — Maintainability #13

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 169 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-014 — Maintainability #14

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 182 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-015 — Maintainability #15

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 195 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-016 — Maintainability #16

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 8 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-017 — Maintainability #17

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 21 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-018 — Maintainability #18

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 34 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-019 — Maintainability #19

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 47 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-020 — Maintainability #20

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 60 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-021 — Maintainability #21

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 73 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-022 — Maintainability #22

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 86 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-023 — Maintainability #23

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 99 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-024 — Maintainability #24

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 112 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-025 — Maintainability #25

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 125 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-026 — Maintainability #26

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 138 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-027 — Maintainability #27

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 151 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-028 — Maintainability #28

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 164 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-029 — Maintainability #29

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 177 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-030 — Maintainability #30

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 190 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-031 — Maintainability #31

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 3 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-032 — Maintainability #32

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 16 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-033 — Maintainability #33

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 29 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-034 — Maintainability #34

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 42 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-035 — Maintainability #35

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 55 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-036 — Maintainability #36

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 68 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-037 — Maintainability #37

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 81 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-038 — Maintainability #38

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 94 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-039 — Maintainability #39

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 107 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-040 — Maintainability #40

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 120 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-041 — Maintainability #41

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 133 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-042 — Maintainability #42

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 146 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-043 — Maintainability #43

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 159 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-044 — Maintainability #44

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 172 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-045 — Maintainability #45

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 185 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-046 — Maintainability #46

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 198 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-047 — Maintainability #47

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 11 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-048 — Maintainability #48

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 24 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-049 — Maintainability #49

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 37 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-050 — Maintainability #50

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 50 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-051 — Maintainability #51

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 63 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-052 — Maintainability #52

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 76 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-053 — Maintainability #53

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 89 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-054 — Maintainability #54

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 102 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-055 — Maintainability #55

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 115 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-056 — Maintainability #56

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 128 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-057 — Maintainability #57

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 141 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-058 — Maintainability #58

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 154 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-059 — Maintainability #59

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 167 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-060 — Maintainability #60

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 180 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-061 — Maintainability #61

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 193 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-062 — Maintainability #62

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 6 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-063 — Maintainability #63

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 19 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-064 — Maintainability #64

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 32 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-065 — Maintainability #65

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 45 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-066 — Maintainability #66

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 58 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-067 — Maintainability #67

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 71 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-068 — Maintainability #68

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 84 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-069 — Maintainability #69

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 97 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-070 — Maintainability #70

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 110 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-071 — Maintainability #71

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 123 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-072 — Maintainability #72

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 136 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-073 — Maintainability #73

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 149 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-074 — Maintainability #74

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 162 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-075 — Maintainability #75

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 175 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-076 — Maintainability #76

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 188 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-077 — Maintainability #77

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 1 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-078 — Maintainability #78

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 14 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-079 — Maintainability #79

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 27 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-080 — Maintainability #80

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 40 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-081 — Maintainability #81

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 53 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-082 — Maintainability #82

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 66 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-083 — Maintainability #83

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 79 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-084 — Maintainability #84

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 92 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-085 — Maintainability #85

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 105 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-086 — Maintainability #86

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 118 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-087 — Maintainability #87

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 131 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-088 — Maintainability #88

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 144 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-089 — Maintainability #89

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 157 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-090 — Maintainability #90

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 170 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-091 — Maintainability #91

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 183 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-092 — Maintainability #92

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 196 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-093 — Maintainability #93

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 9 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-094 — Maintainability #94

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 22 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-095 — Maintainability #95

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 35 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-096 — Maintainability #96

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 48 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-097 — Maintainability #97

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 61 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-098 — Maintainability #98

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 74 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-099 — Maintainability #99

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 87 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-100 — Maintainability #100

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 100 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-101 — Maintainability #101

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 113 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-102 — Maintainability #102

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 126 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-103 — Maintainability #103

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 139 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-104 — Maintainability #104

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 152 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-105 — Maintainability #105

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 165 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-106 — Maintainability #106

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 178 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-107 — Maintainability #107

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 191 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-108 — Maintainability #108

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 4 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-109 — Maintainability #109

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 17 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-110 — Maintainability #110

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 30 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-111 — Maintainability #111

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 43 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-112 — Maintainability #112

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 56 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-113 — Maintainability #113

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 69 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-114 — Maintainability #114

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 82 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-115 — Maintainability #115

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 95 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-116 — Maintainability #116

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 108 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-117 — Maintainability #117

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 121 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-118 — Maintainability #118

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 134 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-119 — Maintainability #119

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 147 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-120 — Maintainability #120

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 160 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-121 — Maintainability #121

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 173 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-122 — Maintainability #122

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 186 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-123 — Maintainability #123

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 199 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-124 — Maintainability #124

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 12 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-125 — Maintainability #125

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 25 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-126 — Maintainability #126

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 38 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-127 — Maintainability #127

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 51 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-128 — Maintainability #128

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 64 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-129 — Maintainability #129

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 77 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-130 — Maintainability #130

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 90 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-131 — Maintainability #131

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 103 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-132 — Maintainability #132

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 116 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-133 — Maintainability #133

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 129 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-134 — Maintainability #134

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 142 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-135 — Maintainability #135

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 155 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-136 — Maintainability #136

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 168 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-137 — Maintainability #137

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 181 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-138 — Maintainability #138

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 194 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-139 — Maintainability #139

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 7 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-140 — Maintainability #140

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 20 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-141 — Maintainability #141

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 33 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-142 — Maintainability #142

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 46 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-143 — Maintainability #143

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 59 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-144 — Maintainability #144

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 72 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-145 — Maintainability #145

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 85 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-146 — Maintainability #146

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 98 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-147 — Maintainability #147

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 111 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-148 — Maintainability #148

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 124 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-149 — Maintainability #149

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 137 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-150 — Maintainability #150

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 150 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-151 — Maintainability #151

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 163 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-152 — Maintainability #152

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 176 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-153 — Maintainability #153

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 189 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-154 — Maintainability #154

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 2 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-155 — Maintainability #155

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 15 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-156 — Maintainability #156

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 28 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-157 — Maintainability #157

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 41 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-158 — Maintainability #158

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 54 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-159 — Maintainability #159

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 67 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-160 — Maintainability #160

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 80 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-161 — Maintainability #161

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 93 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-162 — Maintainability #162

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 106 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Cross-feature imports creating cycles.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-163 — Maintainability #163

  • Level: Beginner
  • Symptom: duplicate useEffect blocks across 119 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Inconsistent error handling across hooks.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-164 — Maintainability #164

  • Level: Beginner+
  • Symptom: duplicate useEffect blocks across 132 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Barrel exports re-export everything slowing IDE.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-165 — Maintainability #165

  • Level: Intermediate
  • Symptom: duplicate useEffect blocks across 145 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Testing only snapshots of giant components instead of hook contracts.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-166 — Maintainability #166

  • Level: Intermediate+
  • Symptom: duplicate useEffect blocks across 158 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Dead hooks never deleted after feature removal.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-167 — Maintainability #167

  • Level: Advanced
  • Symptom: duplicate useEffect blocks across 171 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: Hook undocumented; return tuple order memorized wrongly.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

CH3-168 — Maintainability #168

  • Level: Advanced+
  • Symptom: duplicate useEffect blocks across 184 screens or flaky tests after hook refactor.
  • Maintainability smell: hook name does not match behavior; grep fails.
  • Root cause class: hooks/ folder becomes junk drawer without prefixes or domains.
  • Primary remediation: Prefix useDomainAction; group by feature subfolders when scale demands.
  • Verify: RTL hook test + one story + bundle diff if heavy.
  • Interview one-liner: Maintainability is grep + tests + naming: hooks should read like a table of contents for behavior.

<< 2.9 Overview