# Angular Clinic > Review and modernize one Angular component against Angular's own guidance. Paste the component's TypeScript (and its > template when it is a separate file), pick the Angular version, and get a free scan with every legacy API and real > defect, the fix and the official schematic. A metered run writes the review or rewrites the component; the page then > re-scans the rewrite and checks the public API survived. Built on the SkillSafe skill @angular/angular-developer > (angular/angular, skills/dev-skills/angular-developer, MIT). Not affiliated with Google or the Angular team. https://angular-clinic.skillsafe.ai/ ## What is free - The scan, in the browser, comments ignored, inline or external template: *ngIf / *ngFor / ngSwitch to @if / @for / @switch; a @for without track (an error) or tracking $index; empty component tags not self-closed; an event bound to an arrow function (never invoked); component methods called from the template instead of computed signals; ngClass / ngStyle. - TypeScript: @Input / @Output / EventEmitter to input() / output(); constructor-parameter injection to inject(); @ViewChild / @ContentChild to signal queries; @HostBinding / @HostListener to the host property; NgModule-declared components and redundant standalone: true; ChangeDetectionStrategy.Default and manual change detection; an effect() that writes a signal (use computed or linkedSignal); ngOnChanges; subscribe() with no teardown; toPromise(); HttpClientModule; untyped reactive forms, reactive forms on v22, a Signal Forms model with null; bypassSecurityTrust and nativeElement.innerHTML writes; window / document / localStorage without an SSR guard; any. - Every rule is gated by the Angular version (16 to 22): an API the version lacks reads "upgrade first". The applicable official schematics are listed in Angular's order (control-flow, signal-input-migration, signal-queries-migration, output-migration, inject, self-closing-tag, standalone). - A status per API area (control flow, inputs, outputs, injection, queries, host bindings, standalone, change detection): modern, legacy, mixed or not used; a ship / refactor / rework prescan verdict. - Findings CSV, the scan as Markdown, and the schematic commands to copy. ## The metered lanes Two tasks on gpt-terra, metered per run, routed by `task`. Input string fields: `task` (review or modernize), `code`, `template`, `version`, `facts` (the page's scan) and the optional `focus`. - `review` replies with `verdict` (ship, refactor, rework), `summary`, `findings` (rule, severity, title, where, why, fix), `prescan` (agree or disagree with each scan error and warning), `strengths`, `order` (migration steps with their schematic) and `caveats`. The page requires every scan error and warning to be answered by rule id, refuses a ship verdict over an undisputed error, flags a schematic that does not exist or needs a newer version, and flags any claim that the code was built or tested. - `modernize` replies with `summary`, `files` (complete rewritten .ts and, for an external template, .html), `changes`, `kept`, `schematics`, `tests` and `caveats`. The page re-scans the rewritten files: patterns still present and not listed as kept, new problems introduced, and a selector, class, input or output that disappeared are all named. It shows the diff and offers a .patch. ## Links - API tutorial: https://angular-clinic.skillsafe.ai/api.html - Source skill: https://skillsafe.ai/skill/@angular/angular-developer - Upstream: https://github.com/angular/angular/tree/main/skills/dev-skills/angular-developer