assigns-audit

Featured

Inspect LiveView socket assigns for memory bloat — missing temporary_assigns, unused assigns, unbounded lists needing streams, memory estimates. Use when LiveView memory grows or you need to add temporary_assigns.

Code & Development 543 stars 38 forks Updated yesterday MIT

Install

View on GitHub

Quality Score: 97/100

Stars 20%
91
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# LiveView Assigns Audit Analyze LiveView socket assigns for memory efficiency, clarity, and best practices. ## Iron Laws - Never Violate These 1. **Use streams for lists > 100 items** - Never store large lists directly in assigns 2. **Use temporary_assigns for transient data** - Flash messages, temp errors, notifications 3. **Preload only needed fields** - Don't store full Ecto schemas when only needing subset 4. **Initialize all assigns in mount** - Never access assigns that might not exist 5. **NEVER modify assigns or code during audit** — this is a read-only diagnostic; report findings only ## Quick Audit Commands ### Extract All Assigns Use Grep to find all `assign(` and `assign_new(` calls in the target LiveView file. ### Find Large Data Patterns Use Grep to find large data patterns: lists stored in assigns (`assign.*\[\]`, `assign.*Repo\.all`) and full schema storage (`assign.*Repo\.get`) in the target file. ## Audit Checklist ### 1. Memory Issues | Pattern | Problem | Solution | |---------|---------|----------| | `assign(:items, Repo.all(...))` | Unbounded list | Use `stream/3` | | `assign(:user, Repo.get!(...))` | Full schema | Select only needed fields | | `assign(:file_data, binary)` | Large binary | Store reference, not data | | Nested preloads | Excessive data | Preload only what's rendered | ### 2. Missing temporary_assigns Should use `temporary_assigns`: - Flash messages - Form errors after submission - One-time notifications - Upload progress ``...

Details

Author
oliver-kriska
Repository
oliver-kriska/claude-elixir-phoenix
Created
7 months ago
Last Updated
yesterday
Language
Python
License
MIT

Integrates with

Bundled in these plugins

Similar Skills

Semantically similar based on skill content — not just same category