<< All versions
Skill v1.0.0
currentLLM-judged scan90/100pangular-inspector/devtools/pangular-forms
──Details
PublishedOctober 22, 2026 at 01:46 AM
Content Hashsha256:1ec67543612485f3...
Git SHA6e004ca0d0d9
──Files
Files (1 file, 3.1 KB)
SKILL.md3.1 KBactive
SKILL.md · 43 lines · 3.1 KB
version: "1.0.0" name: pangular-forms description: Find out why an Angular form (Signal Forms, reactive or template-driven) is invalid, won't submit or sends the wrong payload, using the Pangular Inspector forms tools, then fix it and prove the fix with a form diff.
Debug Angular forms with Pangular Inspector
The forms tools read Signal Forms, reactive forms and template-driven forms on the live page. Two arguments come up everywhere: form, a form id such as Checkout.form@ab12 or part of its label, and path, a dotted field path such as address.city or items.0.qty.
Find the form
pangular_inspect-formswithout arguments lists each form with its status and error count.- Copy the form id. The part after
@is the page, so form tools need nopageargument.
Answer the question
| Question | Tool | |
|---|---|---|
| Why is the form invalid? | explain-invalid-forms (call this first) | |
| Why does this one field show, or not show, an error? | explain-field with path or a CSS selector | |
| Why does submit do nothing? | explain-submit | |
| What does the form send to the server? | inspect-form-payload (value against getRawValue()) | |
| Is the custom control bound right? | explain-custom-control | |
| Setup errors (NG01xxx) and accessibility gaps? | lint-forms | |
| What changed, and who changed it? | list-form-changes (origins: user, code, devtools, binding, agent) |
Large forms are cut to keep answers small. Each cut says what was left out; pass path to read one group at a time, or onlyInvalid: true to inspect-forms.
Fix and verify
- Call
list-form-changesfor the form and keep the marker it returns. - Fix the code, or reproduce the user's steps with
fill-form(types through the inputs like a user) orrun-form-action(set-value,touch-all,revalidate,submit).submit,reset,restoreandfill-formwithsubmitneedconfirm: true; ask the user before you submit. wait-forwithcondition: "form"anduntil: "settled"(orvalid,submitted) waits for async validators.explain-form-changeswithafterset to the marker lists every field whose value or status ended up different. That is your proof.export-formwithformat: "fixture"turns the state into a test fixture with the expected status.
Notes
- Secret-looking values stay masked, and action tools don't write secret fields unless the project unmasks them.
- A native
<select>only takes the value of one of its options; the answer sayshas no option with the value ...otherwise. - A Signal Form that sets
experimentalWebMcpToolalso shows its WebMCP tool state ininspect-forms.