taste-lint 0.0.8 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/data/benchmarks/product/README.md +21 -0
- package/data/benchmarks/product/course.jsonl +10 -0
- package/data/benchmarks/product/exceptions.jsonl +20 -0
- package/data/benchmarks/product/regressions.jsonl +4 -0
- package/data/benchmarks/product/task-context.jsonl +18 -0
- package/data/corpus/copywriting.jsonl +44 -44
- package/data/corpus/semantic-style.jsonl +8 -0
- package/data/corpus/typography.jsonl +12 -12
- package/data/rules/copywriting/copywriting-bare-confirm-label.yaml +37 -16
- package/data/rules/copywriting/copywriting-empty-state-no-action.yaml +40 -39
- package/data/rules/copywriting/copywriting-vague-error.yaml +5 -4
- package/data/rules/interaction/interaction-no-error-state.yaml +20 -8
- package/dist/cli.js +225 -40
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +272 -106
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -36,12 +36,14 @@ Use your package manager in place of npm. Pass `--agent` to init for agent instr
|
|
|
36
36
|
|
|
37
37
|
## What it checks
|
|
38
38
|
|
|
39
|
-
- **Product interfaces:**
|
|
39
|
+
- **Product interfaces:** error recovery, empty states, confirmation labels, unsupported claims, and broad CSS transitions.
|
|
40
40
|
- **Writing:** Markdown, MDX, and READMEs with `--profile writing`.
|
|
41
41
|
- **Agent instructions:** AGENTS.md and skills with `--profile instructions`.
|
|
42
42
|
|
|
43
43
|
Rules come from [Agent Skills](https://github.com/mblode/agent-skills) and [Taste Training](https://blode.co/taste-training). Local checks handle measurable rules. Jev judges meaning and returns probabilities. Uncalibrated AI rules stay advisory. Active findings can fail a run.
|
|
44
44
|
|
|
45
|
+
The default scan focuses on six checks and shows five prioritized groups. Use `--only <rule-id>` for a specific check or `--profile all` for the full catalog. Source checks do not replace reviewing the running interface.
|
|
46
|
+
|
|
45
47
|
## Docs
|
|
46
48
|
|
|
47
49
|
[taste-lint.blode.md](https://taste-lint.blode.md)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Product evidence benchmark
|
|
2
|
+
|
|
3
|
+
52 variants in 26 paired families. Each family has a weak example and an acceptable counterpart. This small diagnostic set tests discrimination, not population accuracy or full visual taste.
|
|
4
|
+
|
|
5
|
+
- `course.jsonl`: ten variants from five explicitly mapped Taste Training judgments. Labels come from the course's correct answer, for one relevant rule per exercise. Source paths and exercise IDs are preserved. Run `npm run build && node scripts/seed-product-benchmark.mjs` to regenerate from the sibling checkout. Both variants of a source file stay in one split.
|
|
6
|
+
- `exceptions.jsonl`: twenty synthetic variants, individually AI-labeled in Codex before Jev predictions. Cases cover adjacent recovery, no-action-needed states, harmless acknowledgment, credential security, unrelated catches and non-UI utilities. The session did not expose an exact model identifier; provenance records that limitation instead of inventing one.
|
|
7
|
+
- `task-context.jsonl`: eighteen development variants covering nested recovery, editable search, optional choices, disabled menu placeholders, explanatory prose, task toolbars and mutually exclusive conditional branches. Labels preceded predictions; the conditional-branch case subsequently drove a code fix, so this set is regression evidence.
|
|
8
|
+
- `regressions.jsonl`: four development variants added after inspecting project scan output. Status badges and best-effort background integrations are not error explanations or user-facing async regions. These are regressions, not independent validation.
|
|
9
|
+
|
|
10
|
+
The rubric hash in each AI-labeled row identifies its labeling criterion. No human labels are claimed. Course examples had already been inspected during development; their holdout designation prevents split mixing but does not make them unseen research evidence. After the first evaluation, the exception set is also a fixed regression set. Do not tune repeatedly on these cases and claim new holdout accuracy.
|
|
11
|
+
|
|
12
|
+
```sh
|
|
13
|
+
taste-lint eval coverage --corpus data/benchmarks/product
|
|
14
|
+
taste-lint eval --check --corpus data/benchmarks/product --only copywriting-vague-error,copywriting-empty-state-no-action,copywriting-bare-confirm-label,copywriting-claim-without-evidence,interaction-no-error-state
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Use a configured Vercel AI Gateway key for uncached evaluation. A family passes only if every weak variant reaches the review threshold and every acceptable variant stays below it. A skipped, missing or failed answer makes the family unresolved. Act-threshold metrics remain separate. The deterministic transition-all check is covered by code tests, not this semantic benchmark.
|
|
18
|
+
|
|
19
|
+
No rule is promoted by this benchmark. Promotion still requires independent, complete, sufficiently large and balanced evidence. Source examples cannot validate motion feel, rendered hierarchy or recovery behavior in a running browser.
|
|
20
|
+
|
|
21
|
+
`--check` exits 1 on any disagreement at the review threshold and 2 when selected rules have missing, skipped or failed evaluations. It rejects `--dry-run`. Use `--only` to select the benchmarked rules. This is a regression gate, not the calibration or promotion gate.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{"categoryId":"evidence-over-claims","context":{"docType":"ui","element":"p","role":"body","section":"{\"regionSource\":\"<p className=\\\"text-sm\\\">\\n “A powerful, intuitive, modern platform for data-driven teams.”\\n </p>\",\"target\":{\"opening\":\"<p className=\\\"text-sm\\\">\",\"text\":\"“A powerful, intuitive, modern platform for data-driven teams.”\"}}"},"id":"product-adjective-stack-a","kind":"jsx-text","labelSource":"manifest","labels":{"copywriting-claim-without-evidence":true},"source":{"id":"adjective-stack","option":"a","path":"apps/web/content/judgements/make-words-earn-their-place.tsx","repo":"mblode/taste-training"},"split":"dev","text":"“A powerful, intuitive, modern platform for data-driven teams.”"}
|
|
2
|
+
{"categoryId":"evidence-over-claims","context":{"docType":"ui","element":"p","role":"body","section":"{\"regionSource\":\"<p className=\\\"text-sm\\\">\\n “Every teammate’s edits, merged in order, on one shared folder.”\\n </p>\",\"target\":{\"opening\":\"<p className=\\\"text-sm\\\">\",\"text\":\"“Every teammate’s edits, merged in order, on one shared folder.”\"}}"},"id":"product-adjective-stack-b","kind":"jsx-text","labelSource":"manifest","labels":{"copywriting-claim-without-evidence":false},"source":{"id":"adjective-stack","option":"b","path":"apps/web/content/judgements/make-words-earn-their-place.tsx","repo":"mblode/taste-training"},"split":"dev","text":"“Every teammate’s edits, merged in order, on one shared folder.”"}
|
|
3
|
+
{"categoryId":"evidence-over-claims","context":{"docType":"ui","element":"p","role":"body","section":"{\"regionSource\":\"<p className=\\\"text-sm\\\">\\n “Enterprise-grade security, built for teams that take compliance\\n seriously.”\\n </p>\",\"target\":{\"opening\":\"<p className=\\\"text-sm\\\">\",\"text\":\"“Enterprise-grade security, built for teams that take compliance seriously.”\"}}"},"id":"product-evidence-adjective-exception-a","kind":"jsx-text","labelSource":"manifest","labels":{"copywriting-claim-without-evidence":true},"source":{"id":"evidence-adjective-exception","option":"a","path":"apps/web/content/judgements/make-words-earn-their-place.tsx","repo":"mblode/taste-training"},"split":"dev","text":"“Enterprise-grade security, built for teams that take compliance seriously.”"}
|
|
4
|
+
{"categoryId":"evidence-over-claims","context":{"docType":"ui","element":"p","role":"body","section":"{\"regionSource\":\"<p className=\\\"text-sm\\\">\\n “End-to-end encrypted, so Northwind cannot read your files and nor can\\n the company hosting them.”\\n </p>\",\"target\":{\"opening\":\"<p className=\\\"text-sm\\\">\",\"text\":\"“End-to-end encrypted, so Northwind cannot read your files and nor can the company hosting them.”\"}}"},"id":"product-evidence-adjective-exception-b","kind":"jsx-text","labelSource":"manifest","labels":{"copywriting-claim-without-evidence":false},"source":{"id":"evidence-adjective-exception","option":"b","path":"apps/web/content/judgements/make-words-earn-their-place.tsx","repo":"mblode/taste-training"},"split":"dev","text":"“End-to-end encrypted, so Northwind cannot read your files and nor can the company hosting them.”"}
|
|
5
|
+
{"categoryId":"actionable-microcopy","context":{"docType":"ui","element":"p","role":"body","section":"{\"regionSource\":\"<div className=\\\"flex flex-col gap-3 text-sm\\\">\\n <p className=\\\"font-medium\\\">Something went wrong.</p>\\n <button\\n type=\\\"button\\\"\\n className=\\\"self-start rounded-lg bg-foreground px-4 py-2 font-medium text-background\\\"\\n >\\n OK\\n </button>\\n </div>\",\"target\":{\"opening\":\"<p className=\\\"font-medium\\\">\",\"text\":\"Something went wrong.\"}}"},"id":"product-microcopy-failed-save-a","kind":"jsx-text","labelSource":"manifest","labels":{"copywriting-vague-error":true},"source":{"id":"microcopy-failed-save","option":"a","path":"apps/web/content/judgements/make-words-earn-their-place.tsx","repo":"mblode/taste-training"},"split":"dev","text":"Something went wrong."}
|
|
6
|
+
{"categoryId":"actionable-microcopy","context":{"docType":"ui","element":"p","role":"body","section":"{\"regionSource\":\"<div className=\\\"flex flex-col gap-3 text-sm\\\">\\n <p className=\\\"font-medium\\\">Couldn’t save your changes</p>\\n <p className=\\\"text-muted-foreground\\\">\\n You’re offline. We kept your edits on this device.\\n </p>\\n <button\\n type=\\\"button\\\"\\n className=\\\"self-start rounded-lg bg-foreground px-4 py-2 font-medium text-background\\\"\\n >\\n Try again\\n </button>\\n </div>\",\"target\":{\"opening\":\"<p className=\\\"font-medium\\\">\",\"text\":\"Couldn’t save your changes\"}}"},"id":"product-microcopy-failed-save-b","kind":"jsx-text","labelSource":"manifest","labels":{"copywriting-vague-error":false},"source":{"id":"microcopy-failed-save","option":"b","path":"apps/web/content/judgements/make-words-earn-their-place.tsx","repo":"mblode/taste-training"},"split":"dev","text":"Couldn’t save your changes"}
|
|
7
|
+
{"categoryId":"actionable-microcopy","context":{"docType":"ui","element":"p","role":"body","section":"{\"regionSource\":\"<div className=\\\"flex h-32 w-full max-w-[220px] items-center justify-center rounded-lg border border-border bg-background\\\">\\n <p className=\\\"text-sm text-muted-foreground\\\">No data</p>\\n </div>\",\"target\":{\"opening\":\"<p className=\\\"text-sm text-muted-foreground\\\">\",\"text\":\"No data\"}}"},"id":"product-states-empty-first-action-a","kind":"jsx-text","labelSource":"manifest","labels":{"copywriting-empty-state-no-action":true},"source":{"id":"states-empty-first-action","option":"a","path":"apps/web/content/judgements/decide-what-it-does.tsx","repo":"mblode/taste-training"},"split":"holdout","text":"No data"}
|
|
8
|
+
{"categoryId":"actionable-microcopy","context":{"docType":"ui","element":"p","role":"body","section":"{\"regionSource\":\"<div className=\\\"flex h-32 w-full max-w-[220px] flex-col items-center justify-center gap-2 rounded-lg border border-border bg-background p-4 text-center\\\">\\n <p className=\\\"text-sm font-medium\\\">No invoices yet</p>\\n <p className=\\\"text-xs text-muted-foreground\\\">\\n Create your first one to start tracking payments.\\n </p>\\n <button\\n className=\\\"rounded-md bg-foreground px-3 py-1.5 text-xs font-medium text-background\\\"\\n type=\\\"button\\\"\\n >\\n New invoice\\n </button>\\n </div>\",\"target\":{\"opening\":\"<p className=\\\"text-sm font-medium\\\">\",\"text\":\"No invoices yet\"}}"},"id":"product-states-empty-first-action-b","kind":"jsx-text","labelSource":"manifest","labels":{"copywriting-empty-state-no-action":false},"source":{"id":"states-empty-first-action","option":"b","path":"apps/web/content/judgements/decide-what-it-does.tsx","repo":"mblode/taste-training"},"split":"holdout","text":"No invoices yet"}
|
|
9
|
+
{"categoryId":"actionable-microcopy","context":{"docType":"ui","element":"div","role":"body","section":"{\"regionSource\":\"<div className=\\\"space-y-3 text-sm\\\">\\n <div className=\\\"rounded-md border border-danger-border bg-danger-subtle px-3 py-2 text-xs text-danger\\\">\\n Invalid input.\\n </div>\\n <div className=\\\"space-y-1\\\">\\n <p className=\\\"text-xs font-medium\\\">Email</p>\\n <div className=\\\"h-9 rounded-md border border-border bg-background\\\" />\\n </div>\\n <div className=\\\"space-y-1\\\">\\n <p className=\\\"text-xs font-medium\\\">Password</p>\\n <div className=\\\"h-9 rounded-md border border-border bg-background\\\" />\\n </div>\\n </div>\",\"target\":{\"opening\":\"<div className=\\\"rounded-md border border-danger-border bg-danger-subtle px-3 py-2 text-xs text-danger\\\">\",\"text\":\"Invalid input.\"}}"},"id":"product-forms-error-recovery-a","kind":"jsx-text","labelSource":"manifest","labels":{"copywriting-vague-error":true},"source":{"id":"forms-error-recovery","option":"a","path":"apps/web/content/judgements/make-every-interaction-feel-considered.tsx","repo":"mblode/taste-training"},"split":"holdout","text":"Invalid input."}
|
|
10
|
+
{"categoryId":"actionable-microcopy","context":{"docType":"ui","element":"p","role":"body","section":"{\"regionSource\":\"<div className=\\\"space-y-3 text-sm\\\">\\n <div className=\\\"space-y-1\\\">\\n <p className=\\\"text-xs font-medium\\\">Email</p>\\n <div className=\\\"flex h-9 items-center rounded-md border border-danger bg-background px-3 text-sm\\\">\\n jane@northwind,io\\n </div>\\n <p className=\\\"text-xs text-danger\\\">\\n Check the email: it has a comma where the dot should be.\\n </p>\\n </div>\\n <div className=\\\"space-y-1\\\">\\n <p className=\\\"text-xs font-medium\\\">Password</p>\\n <div className=\\\"flex h-9 items-center rounded-md border border-border bg-background px-3 text-sm\\\">\\n ••••••••••\\n </div>\\n </div>\\n </div>\",\"target\":{\"opening\":\"<p className=\\\"text-xs font-medium\\\">\",\"text\":\"Email\"}}"},"id":"product-forms-error-recovery-b","kind":"jsx-text","labelSource":"manifest","labels":{"copywriting-vague-error":false},"source":{"id":"forms-error-recovery","option":"b","path":"apps/web/content/judgements/make-every-interaction-feel-considered.tsx","repo":"mblode/taste-training"},"split":"holdout","text":"Email"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{"id":"exception-empty-adjacent-action-weak","kind":"jsx-text","text":"No invoices yet","context":{"docType":"ui","element":"p","role":"body","section":"{\"nearby\":[],\"parent\":{\"opening\":\"<section>\"},\"target\":{\"opening\":\"<p>\",\"text\":\"No invoices yet\",\"candidates\":[]}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"empty-adjacent-action","option":"weak"},"split":"holdout"}
|
|
2
|
+
{"id":"exception-empty-adjacent-action-acceptable","kind":"jsx-text","text":"No invoices yet","context":{"docType":"ui","element":"p","role":"body","section":"{\"nearby\":[{\"opening\":\"<button>\",\"text\":\"New invoice\"}],\"parent\":{\"opening\":\"<section>\"},\"target\":{\"opening\":\"<p>\",\"text\":\"No invoices yet\",\"candidates\":[]}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"empty-adjacent-action","option":"acceptable"},"split":"holdout"}
|
|
3
|
+
{"id":"exception-empty-completed-queue-weak","kind":"jsx-text","text":"No results","context":{"docType":"ui","element":"p","role":"body","section":"{\"nearby\":[],\"parent\":{\"opening\":\"<section aria-label=\\\"Search results\\\">\"},\"target\":{\"opening\":\"<p>\",\"text\":\"No results\",\"candidates\":[]}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"empty-completed-queue","option":"weak"},"split":"holdout"}
|
|
4
|
+
{"id":"exception-empty-completed-queue-acceptable","kind":"jsx-text","text":"No alerts. You are all caught up.","context":{"docType":"ui","element":"p","role":"body","section":"{\"nearby\":[],\"parent\":{\"opening\":\"<section aria-label=\\\"Alerts\\\">\"},\"target\":{\"opening\":\"<p>\",\"text\":\"No alerts. You are all caught up.\",\"candidates\":[]}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"empty-completed-queue","option":"acceptable"},"split":"holdout"}
|
|
5
|
+
{"id":"exception-empty-filter-action-weak","kind":"jsx-text","text":"No matches","context":{"docType":"ui","element":"p","role":"body","section":"{\"nearby\":[],\"parent\":{\"opening\":\"<section>\"},\"target\":{\"opening\":\"<p>\",\"text\":\"No matches\",\"candidates\":[]}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"empty-filter-action","option":"weak"},"split":"holdout"}
|
|
6
|
+
{"id":"exception-empty-filter-action-acceptable","kind":"jsx-text","text":"No matches","context":{"docType":"ui","element":"p","role":"body","section":"{\"nearby\":[{\"opening\":\"<button>\",\"text\":\"Clear filters\"}],\"parent\":{\"opening\":\"<section>\"},\"target\":{\"opening\":\"<p>\",\"text\":\"No matches\",\"candidates\":[]}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"empty-filter-action","option":"acceptable"},"split":"holdout"}
|
|
7
|
+
{"id":"exception-confirm-consequence-weak","kind":"jsx-text","text":"Confirm","context":{"docType":"ui","element":"button","role":"button","section":"{\"nearby\":[{\"opening\":\"<p>\",\"text\":\"Delete this project permanently?\"}],\"parent\":{\"opening\":\"<section role=\\\"dialog\\\">\"},\"target\":{\"opening\":\"<button>\",\"text\":\"Confirm\",\"candidates\":[]}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-bare-confirm-label":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"confirm-consequence","option":"weak"},"split":"holdout"}
|
|
8
|
+
{"id":"exception-confirm-consequence-acceptable","kind":"jsx-text","text":"OK","context":{"docType":"ui","element":"button","role":"button","section":"{\"nearby\":[{\"opening\":\"<p>\",\"text\":\"Settings saved.\"}],\"parent\":{\"opening\":\"<section role=\\\"dialog\\\">\"},\"target\":{\"opening\":\"<button>\",\"text\":\"OK\",\"candidates\":[]}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-bare-confirm-label":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"confirm-consequence","option":"acceptable"},"split":"holdout"}
|
|
9
|
+
{"id":"exception-confirm-payment-weak","kind":"jsx-text","text":"Yes","context":{"docType":"ui","element":"button","role":"button","section":"{\"nearby\":[{\"opening\":\"<p>\",\"text\":\"Pay $500 now?\"}],\"parent\":{\"opening\":\"<section role=\\\"dialog\\\">\"},\"target\":{\"opening\":\"<button>\",\"text\":\"Yes\",\"candidates\":[]}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-bare-confirm-label":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"confirm-payment","option":"weak"},"split":"holdout"}
|
|
10
|
+
{"id":"exception-confirm-payment-acceptable","kind":"jsx-text","text":"OK","context":{"docType":"ui","element":"button","role":"button","section":"{\"nearby\":[{\"opening\":\"<p>\",\"text\":\"Your report is ready.\"}],\"parent\":{\"opening\":\"<section role=\\\"dialog\\\">\"},\"target\":{\"opening\":\"<button>\",\"text\":\"OK\",\"candidates\":[]}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-bare-confirm-label":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"confirm-payment","option":"acceptable"},"split":"holdout"}
|
|
11
|
+
{"id":"exception-error-adjacent-recovery-weak","kind":"jsx-text","text":"Something went wrong","context":{"docType":"ui","element":"p","role":"body","section":"{\"nearby\":[{\"opening\":\"<button>\",\"text\":\"OK\"}],\"parent\":{\"opening\":\"<section role=\\\"alert\\\">\"},\"target\":{\"opening\":\"<p>\",\"text\":\"Something went wrong\",\"candidates\":[]}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-vague-error":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"error-adjacent-recovery","option":"weak"},"split":"holdout"}
|
|
12
|
+
{"id":"exception-error-adjacent-recovery-acceptable","kind":"jsx-text","text":"Something went wrong","context":{"docType":"ui","element":"p","role":"body","section":"{\"nearby\":[{\"opening\":\"<p>\",\"text\":\"The upload stopped. Your file is saved locally.\"},{\"opening\":\"<button>\",\"text\":\"Retry upload\"}],\"parent\":{\"opening\":\"<section role=\\\"alert\\\">\"},\"target\":{\"opening\":\"<p>\",\"text\":\"Something went wrong\",\"candidates\":[]}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-vague-error":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"error-adjacent-recovery","option":"acceptable"},"split":"holdout"}
|
|
13
|
+
{"id":"exception-error-security-exception-weak","kind":"jsx-text","text":"Invalid","context":{"docType":"ui","element":"p","role":"body","section":"{\"nearby\":[],\"parent\":{\"opening\":\"<section role=\\\"alert\\\">\"},\"target\":{\"opening\":\"<p>\",\"text\":\"Invalid\",\"candidates\":[]}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-vague-error":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"error-security-exception","option":"weak"},"split":"holdout"}
|
|
14
|
+
{"id":"exception-error-security-exception-acceptable","kind":"jsx-text","text":"Invalid email or password.","context":{"docType":"ui","element":"p","role":"body","section":"{\"nearby\":[],\"parent\":{\"opening\":\"<section role=\\\"alert\\\">\"},\"target\":{\"opening\":\"<p>\",\"text\":\"Invalid email or password.\",\"candidates\":[]}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-vague-error":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"error-security-exception","option":"acceptable"},"split":"holdout"}
|
|
15
|
+
{"id":"exception-query-local-recovery-weak","kind":"source","text":"export function Invoices(){const {data,isLoading}=useQuery({queryKey:[\"invoices\"],queryFn:loadInvoices});if(isLoading)return <p>Loading</p>;return <ul>{data?.map(i=><li key={i.id}>{i.name}</li>)}</ul>}","context":{"docType":"ui","role":"unknown"},"categoryId":"state-coverage","labels":{"interaction-no-error-state":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"query-local-recovery","option":"weak"},"split":"holdout"}
|
|
16
|
+
{"id":"exception-query-local-recovery-acceptable","kind":"source","text":"export function Invoices(){const {data,isLoading,isError,refetch}=useQuery({queryKey:[\"invoices\"],queryFn:loadInvoices});if(isError)return <section role=\"alert\"><p>Could not load invoices.</p><button onClick={()=>refetch()}>Retry</button></section>;if(isLoading)return <p>Loading</p>;return <ul>{data?.map(i=><li key={i.id}>{i.name}</li>)}</ul>}","context":{"docType":"ui","role":"unknown"},"categoryId":"state-coverage","labels":{"interaction-no-error-state":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"query-local-recovery","option":"acceptable"},"split":"holdout"}
|
|
17
|
+
{"id":"exception-query-unrelated-catch-weak","kind":"source","text":"function log(){try{saveLog()}catch{console.warn(\"log failed\")}} export function Invoices(){const {data}=useQuery({queryKey:[\"invoices\"],queryFn:loadInvoices});return <ul>{data?.map(i=><li key={i.id}>{i.name}</li>)}</ul>}","context":{"docType":"ui","role":"unknown"},"categoryId":"state-coverage","labels":{"interaction-no-error-state":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"query-unrelated-catch","option":"weak"},"split":"holdout"}
|
|
18
|
+
{"id":"exception-query-unrelated-catch-acceptable","kind":"source","text":"export async function loadInvoices(){const response=await fetch(\"/api/invoices\");if(!response.ok)throw new Error(\"Could not load invoices\");return response.json()}","context":{"docType":"ui","role":"unknown"},"categoryId":"state-coverage","labels":{"interaction-no-error-state":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"query-unrelated-catch","option":"acceptable"},"split":"holdout"}
|
|
19
|
+
{"id":"exception-query-no-retry-weak","kind":"source","text":"export function Invoices(){const {data,isError}=useQuery({queryKey:[\"invoices\"],queryFn:loadInvoices});if(isError)return <p>Could not load invoices.</p>;return <p>{data?.length}</p>}","context":{"docType":"ui","role":"unknown"},"categoryId":"state-coverage","labels":{"interaction-no-error-state":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"query-no-retry","option":"weak"},"split":"holdout"}
|
|
20
|
+
{"id":"exception-query-no-retry-acceptable","kind":"source","text":"export function Invoices(){const {data,isError,refetch}=useQuery({queryKey:[\"invoices\"],queryFn:loadInvoices});if(isError)return <section><p>Could not load invoices.</p><button onClick={()=>refetch()}>Retry</button></section>;return <p>{data?.length}</p>}","context":{"docType":"ui","role":"unknown"},"categoryId":"state-coverage","labels":{"interaction-no-error-state":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"a64e5d16fb1fdee3e0c6db24c723e793d564af6069f7bc8ae6108030de98d6d5","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/exceptions.jsonl","id":"query-no-retry","option":"acceptable"},"split":"holdout"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
{"id":"regression-status-badge-weak","kind":"jsx-text","text":"Failed","context":{"docType":"ui","element":"p","role":"body","section":"{\"nearby\":[],\"parent\":{\"opening\":\"<section role=\\\"alert\\\">\"},\"target\":{\"opening\":\"<p>\",\"text\":\"Failed\",\"candidates\":[]}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-vague-error":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"04bd8537dd9c7fe2ed8a18a94cfd00e49bae7d8d4399b5f19f790111196118ab","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/regressions.jsonl","id":"status-badge","option":"weak"},"split":"dev"}
|
|
2
|
+
{"id":"regression-status-badge-acceptable","kind":"jsx-text","text":"Failed","context":{"docType":"ui","element":"Badge","role":"unknown","section":"{\"nearby\":[],\"target\":{\"opening\":\"<Badge variant=\\\"destructive\\\">\",\"text\":\"Failed\",\"candidates\":[]}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-vague-error":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"04bd8537dd9c7fe2ed8a18a94cfd00e49bae7d8d4399b5f19f790111196118ab","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/regressions.jsonl","id":"status-badge","option":"acceptable"},"split":"dev"}
|
|
3
|
+
{"id":"regression-background-discovery-weak","kind":"source","text":"export function Page(){const {data}=useQuery({queryKey:[\"invoices\"],queryFn:loadInvoices});return <p>{data?.length}</p>}","context":{"docType":"ui","role":"unknown"},"categoryId":"state-coverage","labels":{"interaction-no-error-state":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"04bd8537dd9c7fe2ed8a18a94cfd00e49bae7d8d4399b5f19f790111196118ab","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/regressions.jsonl","id":"background-discovery","option":"weak"},"split":"dev"}
|
|
4
|
+
{"id":"regression-background-discovery-acceptable","kind":"source","text":"export function Discovery(){useEffect(()=>{fetch(\"/mcp\").then(registerTools).catch(()=>{/* Best-effort discovery; no user task depends on this. */})},[]);return null;}","context":{"docType":"ui","role":"unknown"},"categoryId":"state-coverage","labels":{"interaction-no-error-state":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"04bd8537dd9c7fe2ed8a18a94cfd00e49bae7d8d4399b5f19f790111196118ab","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/regressions.jsonl","id":"background-discovery","option":"acceptable"},"split":"dev"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{"id":"task-empty-toolbar-recovery-weak","kind":"jsx-text","text":"No teams assigned","context":{"docType":"ui","element":"EmptyTitle","role":"unknown","section":"{\"regionSource\":\"<section><Empty><EmptyHeader><EmptyTitle>No teams assigned</EmptyTitle></EmptyHeader></Empty></section>\",\"target\":{\"opening\":\"<EmptyTitle>\",\"text\":\"No teams assigned\"}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"c3635ecd3ac9009de84eb3ba630a228947f3c82cd778984f56b8f038dc02e6d7","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/task-context.jsonl","id":"empty-toolbar-recovery","option":"weak"},"split":"dev"}
|
|
2
|
+
{"id":"task-empty-toolbar-recovery-acceptable","kind":"jsx-text","text":"Add team","context":{"docType":"ui","element":"Button","role":"button","section":"{\"regionSource\":\"<section><header><Button>Add team</Button></header><Empty><EmptyHeader><EmptyTitle>No teams assigned</EmptyTitle></EmptyHeader></Empty></section>\",\"target\":{\"opening\":\"<Button>\",\"text\":\"Add team\"}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"c3635ecd3ac9009de84eb3ba630a228947f3c82cd778984f56b8f038dc02e6d7","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/task-context.jsonl","id":"empty-toolbar-recovery","option":"acceptable"},"split":"dev"}
|
|
3
|
+
{"id":"task-prose-next-step-weak","kind":"jsx-text","text":"Nothing delivered yet.","context":{"docType":"ui","element":"EmptyDescription","role":"unknown","section":"{\"regionSource\":\"<Empty><EmptyHeader><EmptyDescription>Nothing delivered yet.</EmptyDescription></EmptyHeader></Empty>\",\"target\":{\"opening\":\"<EmptyDescription>\",\"text\":\"Nothing delivered yet.\"}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"c3635ecd3ac9009de84eb3ba630a228947f3c82cd778984f56b8f038dc02e6d7","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/task-context.jsonl","id":"prose-next-step","option":"weak"},"split":"dev"}
|
|
4
|
+
{"id":"task-prose-next-step-acceptable","kind":"jsx-text","text":"Nothing delivered yet. Send a test to check the endpoint.","context":{"docType":"ui","element":"EmptyDescription","role":"unknown","section":"{\"regionSource\":\"<Empty><EmptyHeader><EmptyDescription>Nothing delivered yet. Send a test to check the endpoint.</EmptyDescription></EmptyHeader></Empty>\",\"target\":{\"opening\":\"<EmptyDescription>\",\"text\":\"Nothing delivered yet. Send a test to check the endpoint.\"}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"c3635ecd3ac9009de84eb3ba630a228947f3c82cd778984f56b8f038dc02e6d7","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/task-context.jsonl","id":"prose-next-step","option":"acceptable"},"split":"dev"}
|
|
5
|
+
{"id":"task-nested-empty-recovery-weak","kind":"jsx-text","text":"No tasks match these filters","context":{"docType":"ui","element":"EmptyTitle","role":"unknown","section":"{\"regionSource\":\"<Empty><EmptyHeader><EmptyTitle>No tasks match these filters</EmptyTitle></EmptyHeader></Empty>\",\"target\":{\"opening\":\"<EmptyTitle>\",\"text\":\"No tasks match these filters\"}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"c3635ecd3ac9009de84eb3ba630a228947f3c82cd778984f56b8f038dc02e6d7","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/task-context.jsonl","id":"nested-empty-recovery","option":"weak"},"split":"dev"}
|
|
6
|
+
{"id":"task-nested-empty-recovery-acceptable","kind":"jsx-text","text":"No tasks match these filters","context":{"docType":"ui","element":"EmptyTitle","role":"unknown","section":"{\"regionSource\":\"<Empty><EmptyHeader><EmptyTitle>No tasks match these filters</EmptyTitle></EmptyHeader><div><Button onClick={clearFilters}>Clear filters</Button></div></Empty>\",\"target\":{\"opening\":\"<EmptyTitle>\",\"text\":\"No tasks match these filters\"}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"c3635ecd3ac9009de84eb3ba630a228947f3c82cd778984f56b8f038dc02e6d7","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/task-context.jsonl","id":"nested-empty-recovery","option":"acceptable"},"split":"dev"}
|
|
7
|
+
{"id":"task-search-picker-weak","kind":"jsx-text","text":"No members found","context":{"docType":"ui","element":"p","role":"body","section":"{\"regionSource\":\"<PopoverContent><p>No members found</p></PopoverContent>\",\"target\":{\"opening\":\"<p>\",\"text\":\"No members found\"}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"c3635ecd3ac9009de84eb3ba630a228947f3c82cd778984f56b8f038dc02e6d7","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/task-context.jsonl","id":"search-picker","option":"weak"},"split":"dev"}
|
|
8
|
+
{"id":"task-search-picker-acceptable","kind":"jsx-text","text":"No members found","context":{"docType":"ui","element":"p","role":"body","section":"{\"regionSource\":\"<PopoverContent><div><input aria-label=\\\"Search members\\\" onChange={search}/></div><div><p>No members found</p></div></PopoverContent>\",\"target\":{\"opening\":\"<p>\",\"text\":\"No members found\"}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"c3635ecd3ac9009de84eb3ba630a228947f3c82cd778984f56b8f038dc02e6d7","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/task-context.jsonl","id":"search-picker","option":"acceptable"},"split":"dev"}
|
|
9
|
+
{"id":"task-optional-project-weak","kind":"jsx-text","text":"No projects yet","context":{"docType":"ui","element":"p","role":"body","section":"{\"regionSource\":\"<section aria-label=\\\"Create your first project\\\"><p>No projects yet</p></section>\",\"target\":{\"opening\":\"<p>\",\"text\":\"No projects yet\"}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"c3635ecd3ac9009de84eb3ba630a228947f3c82cd778984f56b8f038dc02e6d7","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/task-context.jsonl","id":"optional-project","option":"weak"},"split":"dev"}
|
|
10
|
+
{"id":"task-optional-project-acceptable","kind":"jsx-text","text":"No project","context":{"docType":"ui","element":"SelectItem","role":"unknown","section":"{\"regionSource\":\"<SelectContent><SelectItem value=\\\"none\\\">No project</SelectItem><SelectItem value=\\\"work\\\">Work</SelectItem></SelectContent>\",\"target\":{\"opening\":\"<SelectItem value=\\\"none\\\">\",\"text\":\"No project\"}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"c3635ecd3ac9009de84eb3ba630a228947f3c82cd778984f56b8f038dc02e6d7","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/task-context.jsonl","id":"optional-project","option":"acceptable"},"split":"dev"}
|
|
11
|
+
{"id":"task-disabled-menu-placeholder-weak","kind":"jsx-text","text":"No labels yet","context":{"docType":"ui","element":"p","role":"body","section":"{\"regionSource\":\"<section aria-label=\\\"Manage labels\\\"><p>No labels yet</p></section>\",\"target\":{\"opening\":\"<p>\",\"text\":\"No labels yet\"}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"c3635ecd3ac9009de84eb3ba630a228947f3c82cd778984f56b8f038dc02e6d7","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/task-context.jsonl","id":"disabled-menu-placeholder","option":"weak"},"split":"dev"}
|
|
12
|
+
{"id":"task-disabled-menu-placeholder-acceptable","kind":"jsx-text","text":"No labels yet","context":{"docType":"ui","element":"ContextMenuItem","role":"unknown","section":"{\"regionSource\":\"<ContextMenuSubContent><ContextMenuItem disabled>No labels yet</ContextMenuItem></ContextMenuSubContent>\",\"target\":{\"opening\":\"<ContextMenuItem disabled>\",\"text\":\"No labels yet\"}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"c3635ecd3ac9009de84eb3ba630a228947f3c82cd778984f56b8f038dc02e6d7","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/task-context.jsonl","id":"disabled-menu-placeholder","option":"acceptable"},"split":"dev"}
|
|
13
|
+
{"id":"task-read-only-explanation-weak","kind":"jsx-text","text":"No results found","context":{"docType":"ui","element":"p","role":"body","section":"{\"regionSource\":\"<section aria-label=\\\"Search results\\\"><p>No results found</p></section>\",\"target\":{\"opening\":\"<p>\",\"text\":\"No results found\"}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"c3635ecd3ac9009de84eb3ba630a228947f3c82cd778984f56b8f038dc02e6d7","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/task-context.jsonl","id":"read-only-explanation","option":"weak"},"split":"dev"}
|
|
14
|
+
{"id":"task-read-only-explanation-acceptable","kind":"jsx-text","text":"Read-only. Nothing here can be edited.","context":{"docType":"ui","element":"p","role":"body","section":"{\"regionSource\":\"<section><p>Read-only. Nothing here can be edited.</p></section>\",\"target\":{\"opening\":\"<p>\",\"text\":\"Read-only. Nothing here can be edited.\"}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"c3635ecd3ac9009de84eb3ba630a228947f3c82cd778984f56b8f038dc02e6d7","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/task-context.jsonl","id":"read-only-explanation","option":"acceptable"},"split":"dev"}
|
|
15
|
+
{"id":"task-nested-auth-recovery-weak","kind":"jsx-text","text":"Sorry, something went wrong.","context":{"docType":"ui","element":"CardTitle","role":"heading","section":"{\"regionSource\":\"<Card><CardHeader><CardTitle>Sorry, something went wrong.</CardTitle></CardHeader><CardContent/></Card>\",\"target\":{\"opening\":\"<CardTitle>\",\"text\":\"Sorry, something went wrong.\"}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-vague-error":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"c3635ecd3ac9009de84eb3ba630a228947f3c82cd778984f56b8f038dc02e6d7","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/task-context.jsonl","id":"nested-auth-recovery","option":"weak"},"split":"dev"}
|
|
16
|
+
{"id":"task-nested-auth-recovery-acceptable","kind":"jsx-text","text":"Sorry, something went wrong.","context":{"docType":"ui","element":"CardTitle","role":"heading","section":"{\"regionSource\":\"<Card><CardHeader><CardTitle>Sorry, something went wrong.</CardTitle></CardHeader><CardContent><div><Button render={<Link href=\\\"/sign-in\\\"/>}>Back to sign in</Button></div></CardContent></Card>\",\"target\":{\"opening\":\"<CardTitle>\",\"text\":\"Sorry, something went wrong.\"}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-vague-error":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"c3635ecd3ac9009de84eb3ba630a228947f3c82cd778984f56b8f038dc02e6d7","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/task-context.jsonl","id":"nested-auth-recovery","option":"acceptable"},"split":"dev"}
|
|
17
|
+
{"id":"task-alternative-branch-recovery-weak","kind":"jsx-text","text":"No items","context":{"docType":"ui","element":"p","role":"body","section":"{\"regionSource\":\"<section>{items.length===0?<p>No items</p>:null /* mutually exclusive branch omitted */}</section>\",\"target\":{\"opening\":\"<p>\",\"text\":\"No items\"}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":true},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"c3635ecd3ac9009de84eb3ba630a228947f3c82cd778984f56b8f038dc02e6d7","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/task-context.jsonl","id":"alternative-branch-recovery","option":"weak"},"split":"dev"}
|
|
18
|
+
{"id":"task-alternative-branch-recovery-acceptable","kind":"jsx-text","text":"No items","context":{"docType":"ui","element":"p","role":"body","section":"{\"regionSource\":\"<section>{items.length===0?<div><p>No items</p><button onClick={create}>Create item</button></div>:null /* mutually exclusive branch omitted */}</section>\",\"target\":{\"opening\":\"<p>\",\"text\":\"No items\"}}"},"categoryId":"actionable-microcopy","labels":{"copywriting-empty-state-no-action":false},"labelSource":"ai","labelModel":"codex-session (model identifier unavailable)","labelPromptHash":"c3635ecd3ac9009de84eb3ba630a228947f3c82cd778984f56b8f038dc02e6d7","source":{"repo":"mblode/taste-lint","path":"data/benchmarks/product/task-context.jsonl","id":"alternative-branch-recovery","option":"acceptable"},"split":"dev"}
|