taste-lint 0.0.11 → 0.2.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.
- package/README.md +22 -15
- package/data/config.schema.json +0 -44
- package/data/rules/schema/rule.schema.json +0 -3
- package/data/rules/typography/typography-straight-quotes.yaml +0 -1
- package/dist/cli.js +422 -1337
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +46 -110
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +211 -877
- package/dist/index.js.map +1 -1
- package/package.json +10 -30
- package/data/rules/copywriting/copywriting-announced-honesty.yaml +0 -43
- package/data/rules/copywriting/copywriting-changed-supplied-facts.yaml +0 -31
- package/data/rules/copywriting/copywriting-drafting-instruction-echo.yaml +0 -31
- package/data/rules/copywriting/copywriting-profile-register-mismatch.yaml +0 -31
- package/data/rules/copywriting/copywriting-unraised-objection.yaml +0 -43
- package/data/rules/copywriting/copywriting-vague-personal-request.yaml +0 -43
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
|
-
# Taste Lint
|
|
3
|
+
# [Taste Lint](https://blode.co/taste-lint)
|
|
4
4
|
|
|
5
5
|
**Catch AI slop before you ship.**
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Design review on every commit, from the [Taste Training](https://blode.co/taste-training) and [Agent Skills](https://github.com/mblode/agent-skills) rules.
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
10
|
<a href="https://www.npmjs.com/package/taste-lint"><img alt="npm version" src="https://img.shields.io/npm/v/taste-lint?style=flat&colorA=000000&colorB=000000" /></a>
|
|
@@ -19,36 +19,43 @@ Scan your project with [Jev by TypeSafe AI](https://docs.typesafe.ai/introductio
|
|
|
19
19
|
npx taste-lint@latest init
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
Node 24.11+. Init adds a `taste` script that runs `taste-lint lint --profile product`.
|
|
23
23
|
|
|
24
24
|
## Quickstart
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
```bash
|
|
27
|
+
npm run taste -- --dry-run
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
No key, no account. The mechanical checks run and fail the build on what they find.
|
|
31
|
+
|
|
32
|
+
To add the Jev review notes, get a [Vercel AI Gateway key](https://vercel.com/docs/ai-gateway/authentication-and-byok/api-keys):
|
|
27
33
|
|
|
28
34
|
```bash
|
|
29
35
|
export AI_GATEWAY_API_KEY="your-vercel-ai-gateway-key"
|
|
30
36
|
npm run taste
|
|
31
37
|
```
|
|
32
38
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
Use your package manager in place of npm. Pass `--agent` to init for agent instructions, or `--dry-run` to preview setup.
|
|
39
|
+
Checks bill your key and cache between runs. `--dry-run` previews the cost first.
|
|
36
40
|
|
|
37
41
|
## What it checks
|
|
38
42
|
|
|
39
|
-
- **
|
|
40
|
-
- **
|
|
41
|
-
- **
|
|
43
|
+
- **Motion:** `transition-all`, ease-in, linear easing, transitions over 300ms, entrances from scale zero.
|
|
44
|
+
- **Copy:** “click here” links, “successfully” toasts, emoji in UI, Latinisms, nominalisations, anthropomorphism, sentences over 25 words.
|
|
45
|
+
- **Typography:** straight quotes, three-dot ellipses, hyphens for dashes, `x` for ×, missing space before a unit, light weights on small body text, uppercase without tracking.
|
|
46
|
+
- **Under review:** vague errors, empty states with no action, bare “Confirm” labels, claims with nothing to check, missing error states. These go to [Jev by TypeSafe AI](https://docs.typesafe.ai/introduction), which answers with a probability.
|
|
42
47
|
|
|
43
|
-
|
|
48
|
+
22 checks block. 122 more report and never fail a run. They are pattern ports nobody has yet watched on a real codebase, and Jev questions no labelled corpus has yet promoted. See [usage](https://blode.co/taste-lint/docs/usage) for how promotion works.
|
|
44
49
|
|
|
45
|
-
|
|
50
|
+
Profiles scope a run: `product` (tsx, jsx, css), `writing` (md, mdx, README), `instructions` (AGENTS.md, skills, plans), `all`.
|
|
46
51
|
|
|
47
52
|
## Docs
|
|
48
53
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
54
|
+
<p>
|
|
55
|
+
<a href="https://blode.co/taste-lint/docs">
|
|
56
|
+
<img alt="Read the docs" src="https://raw.githubusercontent.com/mblode/taste-lint/main/.github/assets/documentation.svg" width="200" height="48" />
|
|
57
|
+
</a>
|
|
58
|
+
</p>
|
|
52
59
|
|
|
53
60
|
## License
|
|
54
61
|
|
package/data/config.schema.json
CHANGED
|
@@ -54,9 +54,6 @@
|
|
|
54
54
|
"readme",
|
|
55
55
|
"skill",
|
|
56
56
|
"plan",
|
|
57
|
-
"personal",
|
|
58
|
-
"pr",
|
|
59
|
-
"slides",
|
|
60
57
|
"unknown"
|
|
61
58
|
]
|
|
62
59
|
}
|
|
@@ -75,47 +72,6 @@
|
|
|
75
72
|
}
|
|
76
73
|
}
|
|
77
74
|
}
|
|
78
|
-
},
|
|
79
|
-
"architecture": {
|
|
80
|
-
"type": "object",
|
|
81
|
-
"additionalProperties": false,
|
|
82
|
-
"properties": {
|
|
83
|
-
"boundaries": {
|
|
84
|
-
"type": "array",
|
|
85
|
-
"items": {
|
|
86
|
-
"type": "object",
|
|
87
|
-
"additionalProperties": false,
|
|
88
|
-
"required": ["from", "disallow", "reason"],
|
|
89
|
-
"properties": {
|
|
90
|
-
"from": {
|
|
91
|
-
"type": "string",
|
|
92
|
-
"minLength": 1
|
|
93
|
-
},
|
|
94
|
-
"disallow": {
|
|
95
|
-
"type": "string",
|
|
96
|
-
"minLength": 1
|
|
97
|
-
},
|
|
98
|
-
"reason": {
|
|
99
|
-
"type": "string",
|
|
100
|
-
"minLength": 1
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
"deprecatedImports": {
|
|
106
|
-
"type": "object",
|
|
107
|
-
"additionalProperties": {
|
|
108
|
-
"type": "string",
|
|
109
|
-
"minLength": 1
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
"generated": {
|
|
113
|
-
"type": "array",
|
|
114
|
-
"items": {
|
|
115
|
-
"type": "string"
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
75
|
}
|
|
120
76
|
},
|
|
121
77
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|