Review Chatto frontend implementation quality, including Svelte reactivity and lifecycle, component boundaries, design-system reuse, and unnecessary complexity. Use for every review that includes apps/frontend, including self-review, branch or PR review, and frontend architecture review.
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Review the requested scope, including uncommitted changes when applicable. Read frontend instructions and trace changed behavior through its callers. Apply these rules before declaring the review complete. Passing tests or the Svelte analyser do not replace this review.
Focus on frontend implementation quality: Svelte patterns, component boundaries, design-system consistency, shared UI reuse, and simplicity. Check behavior where these choices affect it. Leave broader application, API, and persistence correctness to the general code review. A change being in a Svelte file does not make every correctness concern part of this review.
$effect.$derived for computed
state. Do not use $effect to copy state, calculate values, or initiate a
business operation that belongs in an event handler.$effect calls. Require a concrete need to synchronize with
an external system and evidence that existing handlers cannot own the work.
Check dependencies, repeated execution, and cleanup.untrack. Do not use it to hide dependencies, stop a feedback
loop, or make an effect run only once. Fix the data flow. An intentional
snapshot must explain why later changes must not affect its consumer.
A hook or component that calls an owner's callback from its own effect can
call it inside untrack, with a comment. The callback's reads belong to
the owner, not to the effect. Prefer an effect that calls no callbacks.onMount,
onDestroy, and effect cleanup are for resources whose lifetime belongs to
the component. Do not use them to mark data read, save changes, or trigger
requests merely because a component appears or disappears. Prefer existing
owners for subscriptions and timers; use Svelte window/document handlers
for browser events.$effect, untrack, or onMount. The actual trigger and
owner must be correct. Genuine DOM/library setup and cleanup are valid
lifecycle work; explain why the chosen lifetime is required.For each finding, give the file and line, the rule, the concrete consequence,
and the simpler existing integration point when one exists. Review each new or
changed $effect, untrack, and lifecycle hook explicitly; report unjustified
uses as findings. Do not demand changes to unrelated existing uses.
Check findings against the user's requirements and accepted design decisions. Separate defects from optional simplifications. If you notice a broader correctness issue, report it separately as an incidental finding with evidence and any uncertainty; do not expand this review into a general correctness audit.
Report findings in severity order, followed by checks run and remaining gaps. If there are no findings, state the reviewed scope. For review-only requests, do not edit files. This skill does not require or authorize subagents.
chattocorp/chatto
bf769cf
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.