

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
12345# Studio Error Handling Review Rules67All comments are **advisory**.89## Architecture1011Errors flow: `handleError()` → throws typed subclass → React Query catches → `ErrorMatcher` reads `errorType` → renders troubleshooting. The component does an O(1) lookup — it never does regex matching.1213## When to Flag1415- PR passes `error.message` instead of the full `error` object to `ErrorMatcher` — the class type is lost16- PR puts regex patterns in `error-mappings.tsx` — they belong in `data/error-patterns.ts`17- PR uses `Object.assign` to stamp `errorType` on an error — should throw a proper subclass instead18- PR passes a raw URL string for support links — should use `supportFormParams={{ projectRef }}`19- PR puts the page title inside the error mapping — it belongs on the `<ErrorMatcher>` caller20- PR adds callback props (`onDebugWithAI`, `onRestartProject`) to troubleshooting components — use hooks inside them instead2122## Correct Usage2324```tsx25{isError && (26 <ErrorMatcher27 title="Failed to load tables"28 error={error}29 supportFormParams={{ projectRef }}30 />31)}32```3334## Key Files3536| File | Purpose |37|------|---------|38| `data/error-patterns.ts` | `{ pattern, ErrorClass }` array — regex lives here |39| `types/api-errors.ts` | Error classes, `KnownErrorType` union |40| `ErrorMatcher.tsx` | Reads `errorType`, looks up mapping, renders |41| `error-mappings.tsx` | `Record<KnownErrorType, { id, Troubleshooting }>` |4243Canonical standard: `.claude/skills/studio-error-handling/SKILL.md`44
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| supabase/supabaseapps/studio/CLAUDE.md · 108k | CLAUDE.md | testlint-formatstyletesting-strategy+1 | 81/100 | 14 days ago | |
| supabase/supabase.github/instructions/studio-composition-patterns.instructions.md · 108k | Copilot instructions | stylegitapiui+1 | 61/100 | 14 days ago | |
| supabase/supabase.github/instructions/studio-copy.instructions.md · 108k | Copilot instructions | uiagent-behaviourdocs | 25/100 | 14 days ago | |
| supabase/supabase.github/instructions/studio-shadcn-components.instructions.md · 108k | Copilot instructions | gituido-not | 55/100 | 14 days ago | |
| supabase/supabase.github/instructions/studio-shortcuts.instructions.md · 108k | Copilot instructions | stylegitdo-not | 61/100 | 14 days ago | |
| supabase/supabase.github/instructions/studio-telemetry.instructions.md · 108k | Copilot instructions | stylegitdo-notdocs | 65/100 | 14 days ago | |
| supabase/supabase.github/instructions/studio-testing.instructions.md · 108k | Copilot instructions | testtypestesting-strategygit+1 | 55/100 | 14 days ago | |
| supabase/supabase.claude/CLAUDE.md · 108k | CLAUDE.md | testlint-formatstylearch+1 | 97/100 | 14 days ago | |
| supabase/supabase.github/instructions/studio-e2e-tests.instructions.md · 108k | Copilot instructions | teststyletesting-strategygit+2 | 60/100 | 14 days ago | |
| supabase/supabase.claude/skills/vercel-composition-patterns/AGENTS.md · 108k | AGENTS.md | styleapiuido-not | 45/100 | 14 days ago | |
| supabase/supabase.github/copilot-instructions.md · 108k | Copilot instructions | lint-formatstylegitagent-behaviour | 56/100 | 14 days ago |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| chihebnabil/lovable-boilerplate.github/instructions/global.instructions.md · 65 | Copilot instructions | buildlint-formatstylearch+4 | 100/100 | 14 days ago | |
| louislam/uptime-kuma.github/copilot-instructions.md · 90k | Copilot instructions | setupbuildtestlint-format+9 | 100/100 | 14 days ago | |
| HerringtonDarkholme/megarepo.github/copilot-instructions.md · 17 | Copilot instructions | setupbuildtestlint-format+7 | 100/100 | 14 days ago | |
| bagisto/bagisto.github/copilot-instructions.md · 28k | Copilot instructions | setupbuildteststyle+5 | 97/100 | 14 days ago | |
| JCodesMore/ai-website-cloner-template.github/copilot-instructions.md · 32k | Copilot instructions | buildlint-formatstylearch+3 | 97/100 | 7 days ago | |
| nerolis-lab/nerolis-lab.github/copilot-instructions.md · 32 | Copilot instructions | setupbuildtestlint-format+11 | 96/100 | 14 days ago | |
| darkmatter/nixmac.github/copilot-instructions.md · 25 | Copilot instructions | setupbuildtestlint-format+8 | 96/100 | 14 days ago | |
| thangaram611/second-brain.github/copilot-instructions.md · 0 | Copilot instructions | setupteststylearch+4 | 96/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/supabase-supabase-github-instructions-studio-error-handling-instructions)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.