taste-lint 0.3.0 → 0.4.0

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.
Files changed (48) hide show
  1. package/data/corpus/copywriting.jsonl +4 -4
  2. package/data/rule-drafts/interaction/interaction-layout-shift.yaml +3 -3
  3. package/data/rules/copywriting/copywriting-antithesis-contrast.yaml +43 -0
  4. package/data/rules/copywriting/copywriting-antithesis-frame.yaml +4 -2
  5. package/data/rules/copywriting/copywriting-artificial-balance.yaml +4 -1
  6. package/data/rules/copywriting/copywriting-boilerplate-offer.yaml +1 -1
  7. package/data/rules/copywriting/copywriting-canned-phrasing.yaml +1 -1
  8. package/data/rules/copywriting/copywriting-claim-without-evidence.yaml +10 -1
  9. package/data/rules/copywriting/copywriting-copula-avoidance.yaml +1 -1
  10. package/data/rules/copywriting/copywriting-dead-link.yaml +28 -0
  11. package/data/rules/copywriting/copywriting-em-dash-in-ui.yaml +23 -0
  12. package/data/rules/copywriting/copywriting-excessive-hedging.yaml +1 -1
  13. package/data/rules/copywriting/copywriting-external-arrow-internal-link.yaml +26 -0
  14. package/data/rules/copywriting/copywriting-fabricated-specificity.yaml +6 -3
  15. package/data/rules/copywriting/copywriting-generic-framing.yaml +12 -6
  16. package/data/rules/copywriting/copywriting-generic-language.yaml +12 -4
  17. package/data/rules/copywriting/copywriting-generic-validation.yaml +1 -1
  18. package/data/rules/copywriting/copywriting-machine-prose.yaml +4 -1
  19. package/data/rules/copywriting/copywriting-mechanism-over-outcome.yaml +4 -1
  20. package/data/rules/copywriting/copywriting-meta-commentary.yaml +1 -1
  21. package/data/rules/copywriting/copywriting-missing-reasoning-link.yaml +4 -1
  22. package/data/rules/copywriting/copywriting-over-explanation.yaml +4 -1
  23. package/data/rules/copywriting/copywriting-participle-tail.yaml +1 -1
  24. package/data/rules/copywriting/copywriting-prompt-restatement.yaml +5 -2
  25. package/data/rules/copywriting/copywriting-punctuation-tics.yaml +4 -1
  26. package/data/rules/copywriting/copywriting-reader-first.yaml +4 -1
  27. package/data/rules/copywriting/copywriting-repetitive-transitions.yaml +1 -1
  28. package/data/rules/copywriting/copywriting-semantic-links.yaml +2 -2
  29. package/data/rules/copywriting/copywriting-slogan-headings.yaml +27 -0
  30. package/data/rules/copywriting/copywriting-structural-symmetry.yaml +4 -1
  31. package/data/rules/copywriting/copywriting-tee-up.yaml +4 -2
  32. package/data/rules/copywriting/copywriting-unexplained-action.yaml +5 -2
  33. package/data/rules/copywriting/copywriting-unnatural-polish.yaml +8 -5
  34. package/data/rules/copywriting/copywriting-unverifiable-proof.yaml +1 -1
  35. package/data/rules/copywriting/copywriting-vague-error.yaml +2 -0
  36. package/data/rules/craft/craft-atmosphere-gradient.yaml +1 -1
  37. package/data/rules/craft/craft-decoration-no-role.yaml +2 -1
  38. package/data/rules/craft/craft-decorative-ordinals.yaml +26 -0
  39. package/data/rules/craft/craft-faux-product-chrome.yaml +4 -1
  40. package/data/rules/schema/rule.schema.json +7 -1
  41. package/dist/cli.js +565 -97
  42. package/dist/cli.js.map +1 -1
  43. package/dist/index.d.ts +34 -18
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +275 -17
  46. package/dist/index.js.map +1 -1
  47. package/package.json +2 -2
  48. package/data/rules/copywriting/copywriting-idea-repetition.yaml +0 -34
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taste-lint",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Taste linter: copy and typography rules from agent-skills answered by TypeSafe Jev probabilities, with mechanical checks, calibration and a scorecard",
5
5
  "keywords": [
6
6
  "copywriting",
@@ -58,7 +58,7 @@
58
58
  "mdast-util-to-string": "^4.0.0",
59
59
  "micromark-extension-gfm": "^3.0.0",
60
60
  "micromark-extension-mdxjs": "^3.0.0",
61
- "oxc-parser": "^0.150.0",
61
+ "oxc-parser": "^0.151.0",
62
62
  "parse5": "^8.0.1",
63
63
  "yaml": "^2.9.1"
64
64
  },
@@ -1,34 +0,0 @@
1
- # One of the 21 AI-writing checks Every ran with Jev (Mike Taylor, "Jev judged
2
- # everything I've written in 0.7 seconds", 15 Sep 2026). The question is the
3
- # published wording; the second sentence says what to ignore.
4
- id: copywriting-idea-repetition
5
- title: Repeats the same idea without adding new evidence
6
- categoryId: machine-prose
7
- source:
8
- repo: every.to
9
- path: https://typesafe-parallel-judgment-lab.every-4573.chatgpt.site/downloads/typesafe-lab-source.zip (scripts/run-ai-checker.mjs)
10
- line: 1
11
- ruleId: idea_repetition
12
- unit: [paragraph]
13
- question:
14
- context: [docType, section]
15
- instructions: >-
16
- Does TEXT repeat an idea within SECTION without adding new evidence? Judge TEXT only, using SECTION to distinguish repetition from a useful summary. Ignore a deliberate one-sentence summary at the end of a long section, and a repeated term that is the subject of the passage.
17
- criteria:
18
- true:
19
- what: Restatement with nothing new.
20
- examples:
21
- - "Speed matters to users. Users care deeply about how fast the product feels. Performance is a priority because people value speed."
22
- - "The tool saves time. It is a real time-saver that helps teams reclaim hours."
23
- false:
24
- what: Each sentence carries its own fact, example or consequence.
25
- examples:
26
- - "Speed matters to users: a 400ms dropdown loses a click one time in five in our logs. The fix cut it to 180ms."
27
- - "The tool saves time. Last quarter the team closed 30 percent more tickets with the same headcount."
28
- thresholds: { review: 0.4, act: 0.75 }
29
- severity: minor
30
- fix:
31
- hint: >-
32
- Cut the restatement or replace it with the evidence it was standing in for.
33
- status: review-only
34
- handWritten: [question, fix, thresholds]