# Feedback discipline — upstream tickets that survive hostile review

_Load when filing findings upstream to `@adia-ai/*` maintainers. Templates: [`../assets/templates/`](../assets/templates/) (FEEDBACK · RESPONSE · OMISSIONS-DEFENSE)._

**Classify every raw finding into one of four buckets — only the first two get filed:**

| Bucket | Example | Action |
|---|---|---|
| Framework bug | crash, type-vs-runtime drift | file; P0 if reproducible, P1 if subtle |
| Framework gap | missing primitive / prop / event | file; P1–P3 by workaround cost |
| Consumer dogfooding miss | the primitive already exists; we didn't use it | NOT feedback — fix consumer-side |
| Third-party / out of scope | Vite cache, TS inference | NOT feedback — note as related observation |

The bucket check kills ~30% of raw findings; inventory everything first (15 raw items where half die beats 6 where 3 are weak), filter second.

- **Every filed item is evidence-bound** — file:line, version, or stack trace; a claim without an anchor is a guess. P0/P1 requires a paste-ready reproduction.
- **Exclusions are first-class.** Each ticket ends with "Items deliberately NOT included", one verification anchor per exclusion. To exclude as "already shipped," open the installed source and cite the path — can't verify in 2 minutes → include it (a duplicate filing is cheap). 15+ exclusions or 4+ rationale categories → promote to the OMISSIONS-DEFENSE companion (evidence tag + defense + confidence per item).
- **One root cause, one ticket.** N symptoms of one mechanism (e.g. "template re-runs only on direct signal reads") file as one ticket with N symptoms, never N tickets.
- **Mechanism claims are source-grounded** — any explanation of UIElement lifecycle / template-engine behavior greps the installed source and cites verbatim line numbers; mental-model inference flips orderings.
- **Sniff tests before sending:** stranger can reproduce · each exclusion defensible in 30s with a path · recipient can estimate cost from your table (honest "unknown" beats a guess) · grepped prior tickets for duplicates · no third-party/consumer items left in · you can answer "why did you ship this and not X?"
