diff --git a/review/SKILL.md b/review/SKILL.md index 3a14a9d3..06e8eb11 100644 --- a/review/SKILL.md +++ b/review/SKILL.md @@ -188,7 +188,7 @@ Run `git diff origin/` to get the full diff. This includes both committed Apply the checklist against the diff in two passes: 1. **Pass 1 (CRITICAL):** SQL & Data Safety, Race Conditions & Concurrency, LLM Output Trust Boundary, Enum & Value Completeness -2. **Pass 2 (INFORMATIONAL):** Conditional Side Effects, Magic Numbers & String Coupling, Dead Code & Consistency, LLM Prompt Issues, Test Gaps, View/Frontend +2. **Pass 2 (INFORMATIONAL):** Conditional Side Effects, Magic Numbers & String Coupling, Dead Code & Consistency, LLM Prompt Issues, Test Gaps, View/Frontend, Performance & Bundle Impact **Enum & Value Completeness requires reading code OUTSIDE the diff.** When the diff introduces a new enum value, status, tier, or type constant, use Grep to find all files that reference sibling values, then Read those files to check if the new value is handled. This is the one category where within-diff review is insufficient. diff --git a/review/SKILL.md.tmpl b/review/SKILL.md.tmpl index c1d3fae6..2f21c37a 100644 --- a/review/SKILL.md.tmpl +++ b/review/SKILL.md.tmpl @@ -67,7 +67,7 @@ Run `git diff origin/` to get the full diff. This includes both committed Apply the checklist against the diff in two passes: 1. **Pass 1 (CRITICAL):** SQL & Data Safety, Race Conditions & Concurrency, LLM Output Trust Boundary, Enum & Value Completeness -2. **Pass 2 (INFORMATIONAL):** Conditional Side Effects, Magic Numbers & String Coupling, Dead Code & Consistency, LLM Prompt Issues, Test Gaps, View/Frontend +2. **Pass 2 (INFORMATIONAL):** Conditional Side Effects, Magic Numbers & String Coupling, Dead Code & Consistency, LLM Prompt Issues, Test Gaps, View/Frontend, Performance & Bundle Impact **Enum & Value Completeness requires reading code OUTSIDE the diff.** When the diff introduces a new enum value, status, tier, or type constant, use Grep to find all files that reference sibling values, then Read those files to check if the new value is handled. This is the one category where within-diff review is insufficient. diff --git a/review/checklist.md b/review/checklist.md index 282c9944..2ec6b3c7 100644 --- a/review/checklist.md +++ b/review/checklist.md @@ -108,6 +108,23 @@ To do this: use Grep to find all references to the sibling values (e.g., grep fo - O(n*m) lookups in views (`Array#find` in a loop instead of `index_by` hash) - Ruby-side `.select{}` filtering on DB results that could be a `WHERE` clause (unless intentionally avoiding leading-wildcard `LIKE`) +#### Performance & Bundle Impact +- New `dependencies` entries in package.json that are known-heavy: moment.js (→ date-fns, 330KB→22KB), lodash full (→ lodash-es or per-function imports), jquery, core-js full polyfill +- Significant lockfile growth (many new transitive dependencies from a single addition) +- Images added without `loading="lazy"` or explicit width/height attributes (causes layout shift / CLS) +- Large static assets committed to repo (>500KB per file) +- Synchronous `