Vale, customized for Qdrant

This commit is contained in:
mjang
2024-02-05 12:53:31 -08:00
parent be2991e7e5
commit 40a343f76d
88 changed files with 4847 additions and 0 deletions
+6
View File
@@ -0,0 +1,6 @@
StylesPath = styles
[*.md]
BasedOnStyles = Readability, Qdrant, write-good, Google
IgnoredScopes = code, strong, tt
+82
View File
@@ -0,0 +1,82 @@
# English grammar linter (Vale)
This repository includes `beta` rules based on the [Vale grammar linter](https://vale.sh). While the [installation instructions](https://vale.sh/docs/vale-cli/installation/#package-managers) cover Mac and Windows, I've installed Vale on Ubuntu Linux. Vale includes
installation binaries in one of their [Git repositories](https://github.com/errata-ai/vale/releases).
You can integrate [Vale as a plugin](https://vale.sh/docs/integrations/guide/) with
several different IDEs. This README illustrates integration between Vale and VSCode.
Vale pulls rules from YAML files in the `styles/` subdirectory. They include grammar rules in the following subdirectories:
- Modified rules from GitLab in the `styles/Qdrant/` subdirectory
- [Google Developer Style Guide](https://github.com/errata-ai/Google) rules, customized for Vale, in the `styles/Google` subdirectory
- Rules associated with the [write-good](https://github.com/btford/write-good) grammar linter
These rules are a "Work in Progress"; we may overrule/modify them as we use them to review Qdrant content. For example, if you find a common word / acronym that we use, you're
welcome to add it (with a PR) to our `styles/cobalt/spelling-exceptions.txt` file.
For more information, see the [Vale documentation](https://vale.sh/).
## Vale configuration
The Vale configuration file is .vale.ini. In this file, we see:
- The `StylesPath` points to rules in the `styles/` subdirectory.
- The `BasedOnStyles` parameter specifies style subdirectories.
- The `IgnoredScopes` tells Vale to ignore content such as code samples, as described in [Vale Documentation](https://vale.sh/docs/topics/config/#ignoredscopes).
Tip: If you want Vale to ignore code, surround it with code sample marks such as:
- `Vale_ignores_this`
```
Vale also ignores this
```
## Use Vale in your IDE
You can set up Vale with several different IDEs. For more information, see the
[Integrations](https://vale.sh/docs/integrations/guide/) section of the Vale documentation.
For example, you can set up a Vale plugin with the VSCode IDE, per
https://github.com/chrischinchilla/vale-vscode.
If you have problems with Vale in VSCode, you may need to:
- Restart VSCode
- Disable / re-enable the Vale plugin
- Save changes to the Markdown file that you're analyzing
If you're successful, you'll see linting messages similar to what's shown in the following screenshot:
<p align="center">
<img src="static/VSCodeDemo.png">
</p>
## Use Vale at the command line
To review your content against the given style guide rules, first navigate to
the `qdrant-landing/` directory for this repository. Then run the following
command:
```
vale /path/to/your/filename.md
```
As long as you're in the `qdrant-landing/` directory, you can use Vale at the command line to lint Markdown files in any local directory.
## Potential future options
- Include Vale in CI/CD jobs
- Set up a GitHub action
- Apply vale to articles and blog posts
- Guess: we need different rules. Default rules for documentation suggest:
- Use "second person"
- Avoid future tense
- Don't use exclamation points
- Avoid words like "easy" and "simple"
These rules generally do not apply to articles or blogs.
Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

+9
View File
@@ -0,0 +1,9 @@
extends: existence
message: "Use 'AM' or 'PM' (preceded by a space)."
link: 'https://developers.google.com/style/word-list'
level: error
nonword: true
tokens:
- '\d{1,2}[AP]M'
- '\d{1,2} ?[ap]m'
- '\d{1,2} ?[aApP]\.[mM]\.'
+64
View File
@@ -0,0 +1,64 @@
extends: conditional
message: "Spell out '%s', if it's unfamiliar to the audience."
link: 'https://developers.google.com/style/abbreviations'
level: suggestion
ignorecase: false
# Ensures that the existence of 'first' implies the existence of 'second'.
first: '\b([A-Z]{3,5})\b'
second: '(?:\b[A-Z][a-z]+ )+\(([A-Z]{3,5})\)'
# ... with the exception of these:
exceptions:
- API
- ASP
- CLI
- CPU
- CSS
- CSV
- DEBUG
- DOM
- DPI
- FAQ
- GCC
- GDB
- GET
- GPU
- GTK
- GUI
- HTML
- HTTP
- HTTPS
- IDE
- JAR
- JSON
- JSX
- LESS
- LLDB
- NET
- NOTE
- NVDA
- OSS
- PATH
- PDF
- PHP
- POST
- RAM
- REPL
- RSA
- SCM
- SCSS
- SDK
- SQL
- SSH
- SSL
- SVG
- TBD
- TCP
- TODO
- URI
- URL
- USB
- UTF
- XML
- XSS
- YAML
- ZIP
+8
View File
@@ -0,0 +1,8 @@
extends: existence
message: "'%s' should be in lowercase."
link: 'https://developers.google.com/style/colons'
nonword: true
level: warning
scope: sentence
tokens:
- ':\s[A-Z]'
@@ -0,0 +1,30 @@
extends: substitution
message: "Use '%s' instead of '%s'."
link: 'https://developers.google.com/style/contractions'
level: suggestion
ignorecase: true
action:
name: replace
swap:
are not: aren't
cannot: can't
could not: couldn't
did not: didn't
do not: don't
does not: doesn't
has not: hasn't
have not: haven't
how is: how's
is not: isn't
it is: it's
should not: shouldn't
that is: that's
they are: they're
was not: wasn't
we are: we're
we have: we've
were not: weren't
what is: what's
when is: when's
where is: where's
will not: won't
@@ -0,0 +1,9 @@
extends: existence
message: "Use 'July 31, 2016' format, not '%s'."
link: 'https://developers.google.com/style/dates-times'
ignorecase: true
level: error
nonword: true
tokens:
- '\d{1,2}(?:\.|/)\d{1,2}(?:\.|/)\d{4}'
- '\d{1,2} (?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)|May|Jun(?:e)|Jul(?:y)|Aug(?:ust)|Sep(?:tember)?|Oct(?:ober)|Nov(?:ember)?|Dec(?:ember)?) \d{4}'
@@ -0,0 +1,9 @@
extends: existence
message: "In general, don't use an ellipsis."
link: 'https://developers.google.com/style/ellipses'
nonword: true
level: warning
action:
name: remove
tokens:
- '\.\.\.'
+12
View File
@@ -0,0 +1,12 @@
extends: existence
message: "Don't put a space before or after a dash."
link: 'https://developers.google.com/style/dashes'
nonword: true
level: error
action:
name: edit
params:
- remove
- ' '
tokens:
- '\s[—–]\s'
+13
View File
@@ -0,0 +1,13 @@
extends: existence
message: "Use an em dash ('—') instead of '–'."
link: 'https://developers.google.com/style/dashes'
nonword: true
level: error
action:
name: edit
params:
- replace
- '-'
- '—'
tokens:
- '–'
@@ -0,0 +1,9 @@
extends: existence
message: "Minimize the use of exclamation points in text."
link: 'https://developers.google.com/style/exclamation-points'
nonword: true
level: suggestion
action:
name: remove
tokens:
- '\w+!(?:\s|$)'
@@ -0,0 +1,13 @@
extends: existence
message: "Avoid first-person pronouns such as '%s'."
link: 'https://developers.google.com/style/pronouns#personal-pronouns'
ignorecase: true
level: warning
nonword: true
tokens:
- (?:^|\s)I\s
- (?:^|\s)I,\s
- \bI'm\b
- \bme\b
- \bmy\b
- \bmine\b
+9
View File
@@ -0,0 +1,9 @@
extends: existence
message: "Don't use '%s' as a gender-neutral pronoun."
link: 'https://developers.google.com/style/pronouns#gender-neutral-pronouns'
level: error
ignorecase: true
tokens:
- he/she
- s/he
- \(s\)he
@@ -0,0 +1,47 @@
extends: substitution
message: "Consider using '%s' instead of '%s'."
link: 'https://developers.google.com/style/inclusive-documentation'
ignorecase: true
level: error
action:
name: replace
swap:
(?:alumna|alumnus): graduate
(?:alumnae|alumni): graduates
air(?:m[ae]n|wom[ae]n): pilot(s)
anchor(?:m[ae]n|wom[ae]n): anchor(s)
authoress: author
camera(?:m[ae]n|wom[ae]n): camera operator(s)
chair(?:m[ae]n|wom[ae]n): chair(s)
congress(?:m[ae]n|wom[ae]n): member(s) of congress
door(?:m[ae]|wom[ae]n): concierge(s)
draft(?:m[ae]n|wom[ae]n): drafter(s)
fire(?:m[ae]n|wom[ae]n): firefighter(s)
fisher(?:m[ae]n|wom[ae]n): fisher(s)
fresh(?:m[ae]n|wom[ae]n): first-year student(s)
garbage(?:m[ae]n|wom[ae]n): waste collector(s)
lady lawyer: lawyer
ladylike: courteous
landlord: building manager
mail(?:m[ae]n|wom[ae]n): mail carriers
man and wife: husband and wife
man enough: strong enough
mankind: human kind
manmade: manufactured
manpower: personnel
men and girls: men and women
middle(?:m[ae]n|wom[ae]n): intermediary
news(?:m[ae]n|wom[ae]n): journalist(s)
ombuds(?:man|woman): ombuds
oneupmanship: upstaging
poetess: poet
police(?:m[ae]n|wom[ae]n): police officer(s)
repair(?:m[ae]n|wom[ae]n): technician(s)
sales(?:m[ae]n|wom[ae]n): salesperson or sales people
service(?:m[ae]n|wom[ae]n): soldier(s)
steward(?:ess)?: flight attendant
tribes(?:m[ae]n|wom[ae]n): tribe member(s)
waitress: waiter
woman doctor: doctor
woman scientist[s]?: scientist(s)
work(?:m[ae]n|wom[ae]n): worker(s)
@@ -0,0 +1,13 @@
extends: existence
message: "Don't put a period at the end of a heading."
link: 'https://developers.google.com/style/capitalization#capitalization-in-titles-and-headings'
nonword: true
level: warning
scope: heading
action:
name: edit
params:
- remove
- '.'
tokens:
- '[a-z0-9][.]\s*$'
+44
View File
@@ -0,0 +1,44 @@
extends: capitalization
message: "'%s' should use sentence-style capitalization."
link: "https://developers.google.com/style/capitalization#capitalization-in-titles-and-headings"
level: warning
scope: heading
match: $sentence
indicators:
- ":"
exceptions:
- API
- Azure
- Autogen
- Cheshire Cat
- CLI
- Cosmos
- Docker
- Emmet
- gRPC
- HNSW
- Hugging Face
- I
- IDs
- JAR
- JDK
- Kubernetes
- LangChain
- Linux
- macOS
- Marketplace
- MindsDB
- MongoDB
- OpenAI
- Qdrant
- Qdrant Cloud
- REPL
- SDK
- Spark
- Studio
- txtai
- TypeScript
- URLs
- Visual
- VS
- Windows
+11
View File
@@ -0,0 +1,11 @@
extends: substitution
message: "Use '%s' instead of '%s'."
link: 'https://developers.google.com/style/abbreviations'
ignorecase: true
level: error
nonword: true
action:
name: replace
swap:
'\b(?:eg|e\.g\.)(?=[\s,;])': for example
'\b(?:ie|i\.e\.)(?=[\s,;])': that is
@@ -0,0 +1,14 @@
extends: existence
message: "'%s' doesn't need a hyphen."
link: 'https://developers.google.com/style/hyphens'
level: error
ignorecase: false
nonword: true
action:
name: edit
params:
- replace
- '-'
- ' '
tokens:
- '\s[^\s-]+ly-'
@@ -0,0 +1,12 @@
extends: existence
message: "Don't use plurals in parentheses such as in '%s'."
link: 'https://developers.google.com/style/plurals-parentheses'
level: error
nonword: true
action:
name: edit
params:
- remove
- '(s)'
tokens:
- '\b\w+\(s\)'
+7
View File
@@ -0,0 +1,7 @@
extends: existence
message: "Spell out all ordinal numbers ('%s') in text."
link: 'https://developers.google.com/style/numbers'
level: error
nonword: true
tokens:
- \d+(?:st|nd|rd|th)
@@ -0,0 +1,7 @@
extends: existence
message: "Use the Oxford comma in '%s'."
link: 'https://developers.google.com/style/commas'
scope: sentence
level: warning
tokens:
- '(?:[^,]+,){1,}\s\w+\s(?:and|or)'
+7
View File
@@ -0,0 +1,7 @@
extends: existence
message: "Use parentheses judiciously."
link: 'https://developers.google.com/style/parentheses'
nonword: true
level: suggestion
tokens:
- '\(.+\)'
+185
View File
@@ -0,0 +1,185 @@
extends: existence
link: 'https://developers.google.com/style/voice'
message: "In general, use active voice instead of passive voice ('%s')."
ignorecase: true
level: suggestion
raw:
- \b(am|are|were|being|is|been|was|be)\b\s*
tokens:
- '[\w]+ed'
- awoken
- beat
- become
- been
- begun
- bent
- beset
- bet
- bid
- bidden
- bitten
- bled
- blown
- born
- bought
- bound
- bred
- broadcast
- broken
- brought
- built
- burnt
- burst
- cast
- caught
- chosen
- clung
- come
- cost
- crept
- cut
- dealt
- dived
- done
- drawn
- dreamt
- driven
- drunk
- dug
- eaten
- fallen
- fed
- felt
- fit
- fled
- flown
- flung
- forbidden
- foregone
- forgiven
- forgotten
- forsaken
- fought
- found
- frozen
- given
- gone
- gotten
- ground
- grown
- heard
- held
- hidden
- hit
- hung
- hurt
- is
- kept
- knelt
- knit
- known
- laid
- lain
- leapt
- learnt
- led
- left
- lent
- let
- lighted
- lost
- made
- meant
- met
- misspelt
- mistaken
- mown
- overcome
- overdone
- overtaken
- overthrown
- paid
- pled
- proven
- put
- quit
- read
- rid
- ridden
- risen
- run
- rung
- said
- sat
- sawn
- seen
- sent
- set
- sewn
- shaken
- shaven
- shed
- shod
- shone
- shorn
- shot
- shown
- shrunk
- shut
- slain
- slept
- slid
- slit
- slung
- smitten
- sold
- sought
- sown
- sped
- spent
- spilt
- spit
- split
- spoken
- spread
- sprung
- spun
- stolen
- stood
- stridden
- striven
- struck
- strung
- stuck
- stung
- stunk
- sung
- sunk
- swept
- swollen
- sworn
- swum
- swung
- taken
- taught
- thought
- thrived
- thrown
- thrust
- told
- torn
- trodden
- understood
- upheld
- upset
- wed
- wept
- withheld
- withstood
- woken
- won
- worn
- wound
- woven
- written
- wrung
+7
View File
@@ -0,0 +1,7 @@
extends: existence
message: "Don't use periods with acronyms or initialisms such as '%s'."
link: 'https://developers.google.com/style/abbreviations'
level: error
nonword: true
tokens:
- '\b(?:[A-Z]\.){3,}'
+7
View File
@@ -0,0 +1,7 @@
extends: existence
message: "Commas and periods go inside quotation marks."
link: 'https://developers.google.com/style/quotation-marks'
level: error
nonword: true
tokens:
- '"[^"]+"[.,?]'
+9
View File
@@ -0,0 +1,9 @@
Based on https://github.com/errata-ai/Google, last updated October 16, 2023.
Exceptions, based on "standard" language used by Qdrant:
- Deleted ["We.yml"](https://github.com/errata-ai/Google/blob/master/Google/We.yml)
- Set ["Exclamation.yml"](https://github.com/errata-ai/Google/blob/master/Google/Exclamation.yml) to suggestion level, revised message.
- Removed reference to GCP as "preferred" cloud from WordList.yml
- Removed preference for "Command-line tool" over "CLI" from WordList.yml
- Updated Acronyms.yml
+7
View File
@@ -0,0 +1,7 @@
extends: existence
message: "Don't add words such as 'from' or 'between' to describe a range of numbers."
link: 'https://developers.google.com/style/hyphens'
nonword: true
level: warning
tokens:
- '(?:from|between)\s\d+\s?-\s?\d+'
@@ -0,0 +1,8 @@
extends: existence
message: "Use semicolons judiciously."
link: 'https://developers.google.com/style/semicolons'
nonword: true
scope: sentence
level: suggestion
tokens:
- ';'
+11
View File
@@ -0,0 +1,11 @@
extends: existence
message: "Don't use internet slang abbreviations such as '%s'."
link: 'https://developers.google.com/style/abbreviations'
ignorecase: true
level: error
tokens:
- 'tl;dr'
- ymmv
- rtfm
- imo
- fwiw
+10
View File
@@ -0,0 +1,10 @@
extends: existence
message: "'%s' should have one space."
link: 'https://developers.google.com/style/sentence-spacing'
level: error
nonword: true
action:
name: remove
tokens:
- '[a-z][.?!] {2,}[A-Z]'
- '[a-z][.?!][A-Z]'
+11
View File
@@ -0,0 +1,11 @@
extends: existence
message: "In general, use American spelling instead of '%s'."
link: 'https://developers.google.com/style/spelling'
ignorecase: true
level: warning
tokens:
- '(?:\w+)nised?'
- 'colour'
- 'labour'
- 'centre'
- '(?:\w+)logue'
+8
View File
@@ -0,0 +1,8 @@
extends: existence
message: "Put a nonbreaking space between the number and the unit in '%s'."
link: "https://developers.google.com/style/units-of-measure"
nonword: true
level: error
tokens:
- \b\d+(?:B|kB|MB|GB|TB)
- \b\d+(?:ns|ms|s|min|h|d)
+7
View File
@@ -0,0 +1,7 @@
extends: existence
message: "Avoid using '%s'."
link: 'https://developers.google.com/style/tense'
ignorecase: true
level: suggestion
tokens:
- will
+77
View File
@@ -0,0 +1,77 @@
extends: substitution
message: "Use '%s' instead of '%s'."
link: "https://developers.google.com/style/word-list"
level: warning
ignorecase: false
action:
name: replace
swap:
"(?:API Console|dev|developer) key": API key
"(?:cell ?phone|smart ?phone)": phone|mobile phone
"(?:dev|developer|APIs) console": API console
"(?:e-mail|Email|E-mail)": email
"(?:file ?path|path ?name)": path
"(?:kill|terminate|abort)": stop|exit|cancel|end
"(?:OAuth ?2|Oauth)": OAuth 2.0
"(?:ok|Okay)": OK|okay
"(?:WiFi|wifi)": Wi-Fi
'[\.]+apk': APK
'3\-D': 3D
'Google (?:I\-O|IO)': Google I/O
"tap (?:&|and) hold": touch & hold
"un(?:check|select)": clear
above: preceding
account name: username
action bar: app bar
admin: administrator
Ajax: AJAX
a\.k\.a|aka: or|also known as
Android device: Android-powered device
android: Android
API explorer: APIs Explorer
approx\.: approximately
authN: authentication
authZ: authorization
autoupdate: automatically update
cellular data: mobile data
cellular network: mobile network
chapter: documents|pages|sections
check box: checkbox
check: select
click on: click|click in
Container Engine: Kubernetes Engine
content type: media type
curated roles: predefined roles
data are: data is
Developers Console: Google API Console|API Console
disabled?: turn off|off
ephemeral IP address: ephemeral external IP address
fewer data: less data
file name: filename
firewalls: firewall rules
Google account: Google Account
Google accounts: Google Accounts
Googling: search with Google
grayed-out: unavailable
HTTPs: HTTPS
in order to: to
ingest: import|load
k8s: Kubernetes
long press: touch & hold
network IP address: internal IP address
omnibox: address bar
open-source: open source
overview screen: recents screen
regex: regular expression
SHA1: SHA-1|HAS-SHA1
sign into: sign in to
sign-?on: single sign-on
static IP address: static external IP address
stylesheet: style sheet
synch: sync
tablename: table name
tablet: device
touch: tap
url: URL
vs\.: versus
World Wide Web: web
+4
View File
@@ -0,0 +1,4 @@
{
"feed": "https://github.com/errata-ai/Google/releases.atom",
"vale_version": ">=1.0.0"
}
+222
View File
@@ -0,0 +1,222 @@
---
# Warning: cobalt.Acronyms
#
# Checks for unexpanded acronyms.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: conditional
message: '"%s" has no definition.'
link: https://about.gitlab.com/handbook/marketing/growth-marketing/content/editorial-team/#acronyms
level: warning
ignorecase: false
# Ensures that the existence of 'first' implies the existence of 'second'.
first: '\b([A-Z]{3,5})\b'
second: '(?:\b[A-Z][a-z]+ )+\(([A-Z]{3,5})\)'
# ... with the exception of these:
exceptions:
- AJAX
- ANSI
- API
- APM
- ARM
- ARN
- ASCII
- AWS
- BSD
- CAS
- CDN
- CDN
- CHD
- CIDR
- CIS
- CLI
- CNA
- CNAME
- CORE
- CPU
- CRIME
- CSRF
- CSM
- CSS
- CSV
- CVE
- CVS
- DAG
- DAST
- DHCP
- DLT
- DMZ
- DNS
- DOI
- DOM
- DSA
- DSL
- DVCS
- ECDSA
- ECS
- EFS
- EKS
- ELB
- EOL
- EXIF
- FAQ
- FIFO
- FIPS
- FOSS
- FQDN
- FREE
- FTP
- GCP
- GDK
- GDPR
- GET
- GID
- GIF
- GKE
- GNU
- GPG
- GPL
- GPT
- GPU
- GUI
- HAML
- HDD
- HEAD
- HIPAA
- HLL
- HNSW
- HTML
- HTTP
- HTTPS
- IAM
- IANA
- IBM
- ICMP
- IDE
- IEC
- IID
- IMAP
- IOPS
- IRC
- ISO
- JAR
- JDK
- JPEG
- JPG
- JSON
- JVM
- JWT
- LAN
- LDAP
- LDAPS
- LESS
- LFS
- LLM
- LRU
- LTM
- LTS
- MIME
- MIT
- MITRE
- MVC
- NAT
- NET
- NDA
- NFS
- NGINX
- NIST
- NLP
- NOTE
- NPM
- NTP
- ONLY
- OSS
- OTP
- OWASP
- PAT
- PCI-DSS
- PDF
- PEM
- PEP
- PGP
- PID
- PKCS
- PHP
- PNG
- POSIX
- POST
- PUT
- RAID
- RAG
- RAM
- RBAC
- RDMS
- RDP
- RDS
- REST
- RFC
- RHEL
- RPC
- RPM
- RPS
- RSA
- RSS
- RVM
- SAAS
- SAML
- SAN
- SANS
- SAST
- SATA
- SCIM
- SCP
- SCSS
- SDK
- SELF
- SEO
- SFTP
- SHA
- SLA
- SMS
- SMTP
- SOC
- SOX
- SPDX
- SPF
- SQL
- SSD
- SSG
- SSH
- SSL
- SSO
- SVG
- SVN
- TCP
- TIFF
- TIP
- TLD
- TLS
- TODO
- TOML
- TTL
- UID
- UDP
- UID
- UNIX
- URI
- URL
- USB
- UTC
- UTF
- UUID
- VCS
- VPC
- VPN
- WHOIS
- WIP
- WSL
- XML
- XSS
- YAML
- ZAP
- ZIP
+13
View File
@@ -0,0 +1,13 @@
---
# Warning: gitlab.Admin
#
# Checks for "admin" and recommends using the full word instead. "Admin Area" is OK.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: substitution
message: 'Verify this use of the word "admin". Can it be updated to "administration", "administrator", "administer", or "Admin Area"?'
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html
level: suggestion
ignorecase: false
swap:
'[Aa]dmin ?\w*': '(?:Admin( Area| Mode)?|[Aa]dminist(ration|rator|rators|er|rative))'
@@ -0,0 +1,14 @@
---
# Error: gitlab.BadgeCapitalization
#
# Verifies that badges are not mixed case, which won't render properly.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: existence
message: 'Badge "%s" must be capitalized.'
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#product-tier-badges
level: error
scope: raw
raw:
- '(?!\*\*\((FREE|PREMIUM|ULTIMATE)( (SELF|SAAS))?\)\*\*)'
- '(?i)\*\*\((free|premium|ultimate)( (self|saas))?\)\*\*'
+113
View File
@@ -0,0 +1,113 @@
---
# Error: gitlab.British
#
# Checks that US spelling is used instead of British spelling.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: substitution
message: 'Use the US spelling "%s" instead of the British "%s", except for verified formal names.'
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#language
level: warning
ignorecase: true
swap:
aeon: eon
aeroplane: airplane
ageing: aging
aluminium: aluminum
anaemia: anemia
anaesthesia: anesthesia
analyse: analyze
annexe: annex
apologise: apologize
behaviour: behavior
busses: buses
calibre: caliber
categorise: categorize
categorised: categorized
categorises: categorizes
categorising: categorizing
centre: center
cheque: check
civilisation: civilization
civilise: civilize
colour: color
cosy: cozy
cypher: cipher
dependant: dependent
defence: defense
distil: distill
draught: draft
encyclopaedia: encyclopedia
enquiry: inquiry
enrol: enroll
enrolment: enrollment
enthral: enthrall
# equalled: equaled // Under discussion
# equalling: equaling // Under discussion
favourite: favorite
fibre: fiber
fillet: filet
flavour: flavor
furore: furor
fulfil: fulfill
gaol: jail
grey: gray
humour: humor
honour: honor
initialled: initialed
initialling: initialing
instil: instill
jewellery: jewelry
labelling: labeling
labelled: labeled
labour: labor
libellous: libelous
licence: license
likeable: likable
liveable: livable
lustre: luster
manoeuvre: maneuver
marvellous: marvelous
matt: matte
meagre: meager
metre: meter
modelling: modeling
moustache: mustache
neighbour: neighbor
normalise: normalize
offence: offense
organise: organize
orientated: oriented
paralyse: paralyze
plough: plow
pretence: pretense
programme: program
pyjamas: pajamas
rateable: ratable
realise: realize
recognise: recognize
reconnoitre: reconnoiter
rumour: rumor
sabre: saber
saleable: salable
saltpetre: saltpeter
sceptic: skeptic
sepulchre: sepulcher
signalling: signaling
sizeable: sizable
skilful: skillful
sombre: somber
smoulder: smolder
speciality: specialty
spectre: specter
splendour: splendor
standardise: standardize
standardised: standardized
sulphur: sulfur
theatre: theater
travelled: traveled
traveller: traveler
travelling: traveling
unshakeable: unshakable
wilful: willful
yoghurt: yogurt
@@ -0,0 +1,24 @@
---
# Checks the capitalization of terms specific to Cobalt.
extends: substitution
message: 'Use "%s" instead of "%s".'
level: warning
ignorecase: false
swap:
agile pentest: Agile Pentest
Agile pentest: Agile Pentest
agile Pentest: Agile Pentest
comprehensive pentest: Comprehensive Pentest
Comprehensive pentest: Comprehensive Pentest
comprehensive Pentest: Comprehensive Pentest
Cobalt App: Cobalt app
cobalt app: Cobalt app
cobalt App: Cobalt app
draft state: Draft state
in review state: In Review state
planned state: Planned state
live state: Live state
paused state: Paused state
remediation state: Remediation state
closed state: Closed state
cancelled state: Cancelled state
@@ -0,0 +1,29 @@
extends: substitution
message: "Feel free to use '%s' instead of '%s'."
link: 'https://developers.google.com/style/contractions'
level: suggestion
ignorecase: true
action:
name: replace
swap:
are not: aren't
cannot: can't
could not: couldn't
did not: didn't
do not: don't
does not: doesn't
has not: hasn't
have not: haven't
how is: how's
is not: isn't
it is: it's
should not: shouldn't
that is: that's
they are: they're
was not: wasn't
we are: we're
were not: weren't
what is: what's
when is: when's
where is: where's
will not: won't
@@ -0,0 +1,13 @@
---
# Suggestion: gitlab.CurrentStatus
#
# Checks for words that indicate a product or feature may change in the future.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: existence
message: 'Avoid words like "%s" that promise future changes, because documentation is about the current state of the product.'
level: suggestion
ignorecase: true
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#usage-list
tokens:
- currently
@@ -0,0 +1,14 @@
---
# Warning: gitlab.DefaultBranch
#
# Do not refer to the default branch as the "master" branch, if possible.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: existence
message: 'Use "default branch" or `main` instead of `master`, when possible.'
level: warning
ignorecase: true
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html
scope: raw
raw:
- '\`master\`'
+31
View File
@@ -0,0 +1,31 @@
extends: existence
message: "Try to avoid using '%s'."
ignorecase: true
level: suggestion
tokens:
- am
- are
- aren't
- be
- been
- being
- he's
- here's
- here's
- how's
- i'm
- is
- isn't
- it's
- she's
- that's
- there's
- they're
- was
- wasn't
- we're
- were
- weren't
- what's
- where's
- who's
@@ -0,0 +1,14 @@
---
# Suggestion: gitlab.ElementDescriptors
#
# Suggests the correct way to describe elements in a form.
#
# For a list of all options, see https://errata-ai.github.io/vale/styles/
extends: substitution
message: 'When describing elements, %s "%s".'
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#language
level: suggestion
ignorecase: true
swap:
button: 'if possible, rewrite to not use'
area: 'use "section" instead of'
@@ -0,0 +1,16 @@
---
# Warning: gitlab.FirstPerson
#
# Checks for use of first person pronouns.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: existence
message: '"%s" is a first-person pronoun. Use second- or third-person pronouns (like we, you, us, one) instead.'
level: warning
ignorecase: true
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#usage-list
tokens:
- '\bI[ ,;:?!"]|\bI\x27.{1,2}'
- me
- myself
- mine
@@ -0,0 +1,14 @@
---
# Suggestion: gitlab.InclusionAbleism
#
# Suggests alternatives for words that foster ableism.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: substitution
message: 'Use inclusive language. Consider "%s" instead of "%s".'
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#inclusive-language
level: suggestion
ignorecase: true
swap:
sanity (?:check|test): check for completeness
dummy: placeholder, sample, fake
@@ -0,0 +1,18 @@
---
# Warning: gitlab.InclusionCultural
#
# Suggests alternatives for words that are culturally inappropriate.
# Disabled blacklist/whitelist due to feedback from pentesters, e.g., the
# main conference is still "blackhat"
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: substitution
message: 'Use inclusive language. Consider "%s" instead of "%s".'
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#inclusive-language
level: warning
ignorecase: true
swap:
# blacklist(?:ed|ing|s)?: denylist
# whitelist(?:ed|ing|s)?: allowlist
master: primary, main
slave: secondary
@@ -0,0 +1,18 @@
---
# Suggestion: gitlab.InclusionGender
#
# Suggests alternatives for words that are gender-specific.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: substitution
message: 'Use inclusive language. Consider "%s" instead of "%s".'
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#inclusive-language
level: suggestion
ignorecase: true
swap:
mankind: humanity, people
manpower: Cobalt team members
he: they
his: their
she: they
hers: their
@@ -0,0 +1,13 @@
---
# Error: gitlab.InternalLinkExtension
#
# Checks that internal links have .md extenstion and not .html extension.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: existence
message: 'Link "%s" must use the .md file extension.'
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#links-to-internal-documentation
level: error
scope: raw
raw:
- '\[.+\]\([\w\/\.-]+\.html[^)]*\)'
+3
View File
@@ -0,0 +1,3 @@
The files in this directory were created by [GitLab](https://about.gitlab.com/), licensed under [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/). We modified the contents of the files for Cobalt styles.
For the current versions of these files, see https://gitlab.com/gitlab-org/gitlab/-/tree/master/doc/.vale/gitlab.
@@ -0,0 +1,17 @@
---
# Warning: gitlab.LatinTerms
#
# Checks for use of Latin terms.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: substitution
message: 'Use "%s" instead of "%s", but consider rewriting the sentence.'
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#usage-list
level: warning
nonword: true
ignorecase: true
swap:
e\.g\.: for example
e\. g\.: for example
i\.e\.: that is
i\. e\.: that is
@@ -0,0 +1,14 @@
---
# Warning: qdrant.MeaningfulLinkWords
#
# Checks for the presence of semantically unhelpful words in link text.
#
extends: existence
message: 'Improve SEO and accessibility by rewriting "%s" in the link text.'
level: warning
scope: raw
ignorecase: true
link: https://developers.google.com/style/link-text
tokens:
- \[here]
- \[this page]
@@ -0,0 +1,13 @@
---
# Error: gitlab.MergeConflictMarkers
#
# Checks for the presence of merge conflict markers.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: existence
message: 'Merge conflict marker "%s" found.'
link: https://docs.gitlab.com/ee/development/code_review.html#merging-a-merge-request
level: error
scope: raw
raw:
- '\n<<<<<<< .+\n|\n=======\n|\n>>>>>>> .+\n'
@@ -0,0 +1,13 @@
---
# Warning: qdrant.NonStandardQuotes
#
# Use only standard single and double quotes, not left or right quotes.
#
extends: existence
message: 'Use standard single quotes or double quotes only. Do not use left or right quotes.'
level: warning
ignorecase: true
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#punctuation
scope: raw
raw:
- '[‘’“”]'
@@ -0,0 +1,12 @@
---
# Warning: Qdrant.OxfordComma
#
# Checks for the lack of an Oxford comma. In some cases, will catch overly complex sentence structures with lots of commas.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: existence
message: 'Use a comma before the last "and" or "or" in a list of three or more items.'
link: https://developers.google.com/style/commas#serial-commas
level: warning
raw:
- '(?:[\w-_` ]+,){2,}(?:[\w-_` ]+) (and |or )'
@@ -0,0 +1,12 @@
---
# Warning: qdrant.Possessive
#
# The word Qdrant should not be used in the possessive form.
#
extends: existence
message: "Rewrite '%s' to not use 's."
level: error
ignorecase: true
link: https://developers.google.com/style/possessives#product,-feature,-and-company-names
tokens:
- Qdrant's
+7
View File
@@ -0,0 +1,7 @@
extends: existence
message: "Commas and periods go inside quotation marks, unless it's a literal string."
link: 'https://developers.google.com/style/quotation-marks'
level: warning
nonword: true
tokens:
- '"[^"]+"[.,?]'
@@ -0,0 +1,13 @@
---
# Error: gitlab.ReferenceLinks
#
# Checks for reference-style links that should be converted to inline links.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: existence
message: 'Link "%s" must be inline.'
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#basic-link-criteria
level: error
scope: raw
raw:
- '\n\[[^\]]*\]: .*'
@@ -0,0 +1,13 @@
---
# Error: gitlab.RelativeLinksDoubleSlashes
#
# Checks for the presence of double slashes in relative URLs.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: existence
message: 'Relative links must not include a double slash.'
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#links-to-internal-documentation
level: error
scope: raw
raw:
- '\.//'
@@ -0,0 +1,13 @@
---
# Warning: gitlab.SentenceLength
#
# Counts words in a sentence and alerts if a sentence exceeds 25 words.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: occurrence
message: 'Shorter sentences improve readability (max 28 words).'
scope: sentence
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#language
level: warning
max: 28
token: \b(\w+)\b
@@ -0,0 +1,18 @@
---
# Suggestion: gitlab.Simplicity
#
# Checks for words implying ease of use, to avoid cognitive dissonance for frustrated users.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: existence
message: 'Avoid words like "%s" that imply ease of use, because the user may find this action hard.'
level: suggestion
ignorecase: true
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#usage-list
tokens:
- easy
- easily
- handy
- simple
- simply
- useful
+16
View File
@@ -0,0 +1,16 @@
---
# Warning: gitlab.Spelling
#
# Checks for possible spelling mistakes in content, not code. Results from links using angle brackets (<https://example.com>) should be corrected.
#
# If a word is flagged as a spelling mistake incorrectly, such as a product name,
# you can submit an MR to update `spelling-exceptions.txt` with the missing word.
# Commands, like `git clone` must use backticks, and must not be added to the
# exceptions.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: spelling
message: 'Spelling check: "%s"?'
level: warning
ignore:
- Qdrant/spelling-exceptions.txt
@@ -0,0 +1,27 @@
---
# Suggestion: gitlab.SubstitutionSuggestions
#
# Suggests better options for frequently misused terms that are often - but not always - incorrect.
# SubstitutionWarning.yml and Substitutions.yml also exist.
#
# For a list of all options, see https://errata-ai.github.io/vale/styles/
extends: substitution
message: 'Consider %s instead of "%s".'
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#language
level: suggestion
ignorecase: true
swap:
active user: '"billable user"'
active users: '"billable users"'
docs: '"documentation"'
e-mail: '"email"'
GFM: '"GitLab Flavored Markdown"'
it is recommended: '"we recommend"'
OAuth2: '"OAuth 2.0"'
once that: '"after that"'
once the: '"after the"'
once you: '"after you"'
since: '"because" or "after"'
sub-group: '"subgroup"'
sub-groups: '"subgroups"'
within: '"in"'
@@ -0,0 +1,24 @@
---
# Warning: gitlab.SubstitutionWarning
#
# Checks for misused terms or common shorthand that should never be used at GitLab, but can't be flagged as errors.
# Substitutions.yml and SubstitionSuggestions.yml also exist.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: substitution
message: 'If possible, use "%s" instead of "%s".'
link: https://about.gitlab.com/handbook/communication/#top-misused-terms
level: warning
ignorecase: true
swap:
code base: codebase
distro: distribution
file name: filename
filesystem: file system
info: information
repo: repository
timezone: time zone
utilize: use
administrator access: the Administrator role
administrator permission: the Administrator role
administrator permissions: the Administrator role
@@ -0,0 +1,49 @@
---
# Error: gitlab.Substitutions
#
# Checks for misused terms that should never be used at GitLab.
# SubstitutionWarning.yml and SubstitionSuggestions.yml also exist.
#
# For a list of all options, see https://docs.errata.ai/vale/styles
extends: substitution
message: 'Use "%s" instead of "%s".'
link: https://about.gitlab.com/handbook/communication/#top-misused-terms
level: error
ignorecase: true
swap:
codequality: code quality
Customer [Pp]ortal: Customers Portal
frontmatter: front matter
GitLabber: GitLab team member
GitLabbers: GitLab team members
GitLab-shell: GitLab Shell
gitlab omnibus: Omnibus GitLab
param: parameter
params: parameters
pg: PostgreSQL
'postgres$': PostgreSQL
raketask: Rake task
raketasks: Rake tasks
rspec: RSpec
self hosted: self-managed
self-hosted: self-managed
styleguide: style guide
to login: to log in
can login: can log in
to log-in: to log in
can log-in: can log in
to signin: to sign in
can signin: can sign in
to sign-in: to sign in
can sign-in: can sign in
x509: X.509
yaml: YAML
developer access: the Developer role
developer permission: the Developer role
developer permissions: the Developer role
maintainer access: the Maintainer role
maintainer permission: the Maintainer role
maintainer permissions: the Maintainer role
owner access: the Owner role
owner permission: the Owner role
owner permissions: the Owner role
+14
View File
@@ -0,0 +1,14 @@
---
# Warning: gitlab.ToDo
#
# You should not use "To Do", unless it refers to the UI element.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: substitution
message: 'Use "to-do item" in most cases, or "Add a to do" if referring to the UI button.'
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#feature-names
level: warning
ignorecase: false
swap:
'[Tt]o [Dd]o [Ii]tems?': to-do item
'\w* [Aa] [Tt]o [Dd]o': Add a to do
@@ -0,0 +1,22 @@
---
# Warning: qdrant.UnclearAntecedent
#
# Checks for words that need a noun for clarity.
#
# For a list of all options, see https://docs.errata.ai/vale/styles
extends: existence
message: "'%s' is not precise. Try rewriting with a specific subject and verb."
link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html#this-these-that-those
level: warning
ignorecase: false
tokens:
- 'That is'
- 'That was'
- 'These are'
- 'These were'
- 'There are'
- 'There were'
- 'This is'
- 'This was'
- 'Those are'
- 'Those were'
@@ -0,0 +1,23 @@
---
# Error: gitlab.VersionText
#
# Checks that version text is formatted correctly.
#
# Specifically looks for either of the following that is immediately followed on the next line
# by content, which will break rendering:
#
# - `> Introduced` (version text without a link)
# - `> [Introduced` (version text with a link)
#
# Because it excludes the prefix `> - `, it doesn't look for multi-line version text, for which
# content immediately on the next line is ok. However, this will often highlight where multi-line
# version text is attempted without `-` characters.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: existence
message: 'This introduced-in line is not formatted correctly.'
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#version-text-in-the-version-history
level: error
scope: raw
raw:
- '> \[?Introduced.+\n[^\n]'
+13
View File
@@ -0,0 +1,13 @@
---
# Suggestion: gitlab.Wordy
#
# Suggests shorter versions of wordy phrases.
#
# For a list of all options, see https://docs.errata.ai/vale/styles
extends: substitution
message: 'Be concise: "%s" is less wordy than "%s".'
link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html
level: suggestion
ignorecase: true
swap:
in order to: to
@@ -0,0 +1,936 @@
accessor
accessors
Airbyte
Akismet
Alertmanager
Algolia
Alibaba
Aliyun
allowlist
allowlisted
allowlisting
allowlists
anonymization
anonymized
Ansible
Anthos
Apdex
API
APIs
apk
Apparmor
approvers
Aquatone
architected
architecting
archtype
archiver
Arel
arity
Artifactory
arXiv
ArXiv
Asana
Asciidoctor
Assembla
async
Atlassian
auditability
Auth0
Authentiq
Authy
autocomplete
autocompleted
autocompletes
autocompleting
autogenerated
autoloaded
autoloader
autoloading
autoscale
autoscaled
autoscaler
autoscales
autoscaling
awardable
awardables
Ayoa
Axios
Azure
B-tree
backfilling
backport
backported
backporting
backports
backtrace
backtraced
backtraces
backtracing
badging
Bamboo
Bazel
Bhyve
Bitbucket
blockquote
blockquoted
blockquotes
blockquoting
boolean
booleans
Bootsnap
browsable
bugfix
bugfixed
bugfixes
bugfixing
Bugzilla
Buildkite
buildpack
buildpacks
bundler
bundlers
burndown
burnup
burstable
cacheable
Caddy
callstack
callstacks
Camo
canonicalized
captcha
CentOS
Certbot
changeset
changesets
chai
ChaosKube
chatbot
chatbots
ChatOps
checkpointing
checksummed
checksumming
Citrix
Citus
clonable
Cloudwatch
Cobalt
Cobertura
codepath
Codepen
Cognito
colocated
colocating
compilable
composable
Conda
Config
Consul
Contentful
Corosync
Coursier
CPU
CPUs
cron
cronjob
cronjobs
crons
crontab
crontabs
crosslinked
crosslinking
crosslinks
Crossplane
CrowdIn
CSV
csv
Cyber
cybersecurity
Dangerfile
Databricks
Datadog
dataframe
datasource
datasources
datetime
Debian
Decompressor
decryptable
deduplicate
deduplicated
deduplicates
deduplicating
deduplication
deliverables
denormalize
denormalized
denormalizes
denormalizing
denylist
denylisting
denylists
deployer
deployers
deprovision
deprovisioned
deprovisioning
deprovisions
dequarantine
dequarantined
dequarantining
deserialization
deserialize
deserializers
deserializes
DevOps
Dhall
Dirble
disambiguates
discoverability
dismissable
Disqus
Divio
Dnscan
doc
docx
Dockerfile
Dockerfiles
Dockerize
Dockerized
Dockerizing
Docsy
dogfood
dogfooding
dogfoods
DOI
dotenv
downvoted
downvotes
Dpl
Dreamweaver
DSPy
Ecto
Elasticsearch
enablement
enqueued
enqueues
enum
enums
ETag
Excon
exfiltration
expirable
Facebook
failover
failovers
failsafe
Falco
falsy
fastlane
Fastzip
favicon
favorited
Figma
Filebeat
Fio
firewalled
firewalling
fixup
Flawfinder
Flowdock
Fluentd
Flycheck
Forgerock
formatters
Fugit
fuzzer
Gantt
Gemfile
Gemnasium
Gemojione
Geo.Rocks
Getter
Getters
gettext
gif
Git
Gitaly
Gitea
GitHub
GitLab
gitlabsos
Gitleaks
Gitpod
Gitter
globals
Gmail
Godep
Goldmark
Gollum
Google
goroutine
goroutines
Gosec
Gradle
Grafana
Grafonnet
gravatar
gz
Gzip
Haml
hardcode
hardcoded
hardcodes
Haswell
heatmap
heatmaps
Helm
Helmfile
Heroku
Herokuish
Hexo
HipChat
hostname
hostnames
hotfix
hotfixed
hotfixes
hotfixing
HSNW
htmltest
http
https
Hugging Face
idempotence
idmapper
Iglu
Immer
inclusivity
Ingress
initializer
initializers
innersource
innersourcing
interdependencies
interdependency
interruptible
io
ipa
irker
issuables
Istio
ISP
ISPs
Jaeger
jasmine-jquery
Javafuzz
JavaScript
Jenkins
Jenkinsfile
Jina
jina
Jira
jpg
jpeg
jq
jQuery
jsdom
Jsonnet
JupyterHub
Kaminari
kanban
kanbans
kaniko
Karma
Kerberos
Keycloak
keyset
keyspace
keytab
keytabs
Kibana
Kinesis
Klar
Knative
Kramdown
Kroki
Kubecost
kubectl
Kubernetes
Kubeflow
Kubesec
Kustomize
Langchain
Laravel
ldapsearch
Lefthook
Leiningen
libFuzzer
Libravatar
liveness
LLM
LLs
LLMs
Lodash
Lograge
logrotate
Logrus
Logstash
lookahead
lookaheads
lookbehind
lookbehinds
lookups
loopback
Lucene
Maildir
Mailgun
Mailroom
Makefile
Makefiles
Markdown
markdownlint
Masscan
matcher
matchers
Matomo
Mattermost
mbox
memmap
memoization
memoize
memoized
memoizing
Memorystore
mergeability
mergeable
Metasploit
Microsoft
middleware
middlewares
migratus
Minikube
MinIO
misconfiguration
misconfigurations
misconfigure
misconfigured
misconfigures
misconfiguring
mitigations
mitmproxy
mixin
mixins
MLOps
mockup
mockups
ModSecurity
Monokai
monorepo
monorepos
mov
multiline
multimodal
multitenancy
mutex
nameserver
nameservers
namespace
namespaced
namespaces
namespacing
namespacings
Nanoc
negatable
Netlify
Nikto
Nmap
NodeJS
nodejs
Nokogiri
noteable
noteables
npm
nullability
nullable
Nurtch
nyc
OAuth
Octokit
offboarded
offboarding
offboards
Okta
OmniAuth
onboarding
OpenID
OpenShift
Opsgenie
Overcommit
Packagist
pageinfo
parallelization
parallelizations
passwordless
pastebins
Patroni
pdf
pentest
pentester
pentests
pentesters
pentesting
performant
PgBouncer
pgLoader
Phabricator
phaser
phasers
Pinecone
phpenv
pipenv
Pipfile
Pipfiles
Piwik
plaintext
png
Poedit
polyfill
polyfills
pooler
postfixed
postgres.ai
PostgreSQL
precompile
precompiled
preconfigure
preconfigured
preconfigures
prefill
prefilled
prefilling
prefills
preload
preloading
preloads
prepend
prepended
prepending
prepends
prepopulated
preprint
preprints
Prettifier
Pritaly
Priyanka
profiler
Prometheus
ProseMirror
protobuf
protobufs
proxied
proxies
proxyable
proxying
pseudocode
pseudonymized
pseudonymizer
Puma
pytest
Python
Pythonic
qdrant
Qdrant
Qdrant's
Qualys
queryable
Quicktime
Rackspace
Raspbian
rar
rbenv
rbtrace
Rdoc
reachability
Realplayer
reauthenticate
reauthenticated
reauthenticates
reauthenticating
rebalancing
rebar
rebase
rebased
rebases
rebasing
reCAPTCHA
Redcarpet
redirection
redirections
Redis
Redmine
refactorings
referer
referers
reflog
reflogs
refspec
refspecs
reindex
reindexed
reindexes
reindexing
reinitialize
reinitializing
relicensing
remediations
replicables
repmgr
repmgrd
repo
repurposing
requeue
requeued
requeues
Restlet
resync
resynced
resyncing
resyncs
retarget
retargeted
retargeting
retargets
reusability
reverified
reverifies
reverify
roadmap
roadmaps
rollout
rollouts
rsync
rsynced
rsyncing
rsyncs
Rubinius
Rubix
Rubocop
Rubular
ruleset
rulesets
runbook
runbooks
runit
runtime
runtimes
Sagemaker
Salesforce
sandboxing
sanitization
sbt
scalers
scatterplot
scatterplots
Schemastore
scrollable
SDK
SDKs
Semgrep
Sendmail
Sentry
serializer
serializers
serializing
serverless
severities
sharded
sharding
shfmt
Shibboleth
Shodan
Shopify
Sidekiq
Silverlight
Sisense
Sitespeed
skippable
Slack
Slackbot
Slony
smartcard
smartcards
snapshotting
Sobelow
Solargraph
Solarized
Sourcegraph
sparkline
sparklines
spidering
Splunk
SpotBugs
sqlmap
SSD
SSDs
Stackdriver
Stackprof
starrer
starrers
storable
storages
strace
strikethrough
strikethroughs
stunnel
stylelint
subchart
subcharts
subfolder
subfolders
subgraph
subgraphs
subgroup
subgroups
subkey
subkeys
sublicense
sublicensed
sublicenses
sublicensing
subnet
subnets
subnetting
subpath
subproject
subprojects
subqueried
subqueries
subquery
subquerying
substring
substrings
subtask
subtasks
subtest
subtests
subtree
subtrees
sudo
supercookie
supercookies
supertype
supertypes
swappiness
swimlane
swimlanes
syncable
Sysbench
syscall
syscalls
syslog
tanuki
tcpdump
templated
Thanos
Thoughtbot
throughputs
Tiller
timebox
timeboxed
timeboxes
timeboxing
timecop
tiptap
Tizen
toc
todos
tokenizer
Tokenizers
tokenizing
tolerations
toolchain
toolchains
toolkit
toolkits
toolset
tooltip
tooltips
transactionally
transpile
transpiled
transpiles
transpiling
Trello
triaged
triages
triaging
Trivy
truthy
Truststore
Twilio
Twitter
txt
txtai
TypeScript
Ubuntu
unapplied
unapprove
unapproved
unapproving
unarchive
unarchived
unarchives
unarchiving
unary
unassign
unassigning
unassigns
unban
uncheck
unchecked
unchecking
unchecks
uncomment
uncommented
uncommenting
uncordon
unencode
unencoded
unencoder
unencodes
unencrypted
unfollow
unfollowed
unfollows
Unicorn
unindexed
unlink
unlinking
unlinks
unmappable
unmapped
unmergeable
unmerged
unmerges
unmerging
unmocked
unoptimize
unoptimized
unoptimizes
unoptimizing
unpatched
unprioritized
unprotect
unprotected
unprotecting
unprotects
unprovision
unprovisioned
unprovisions
unpublish
unpublished
unpublishes
unpublishing
unpushed
unreferenced
unregister
unregistered
unregisters
unreplicated
unresolve
unresolved
unresolving
unreviewed
unsanitized
unschedule
unscoped
unshare
unshared
unshares
unstage
unstaged
unstages
unstaging
unstar
unstars
unstarted
unstash
unstashed
unstashing
unsynced
unsynchronized
untarred
untracked
untrusted
unverified
unverifies
unverify
unverifying
uploader
uploaders
upsert
Upsert
upstreams
upvote
upvoted
upvotes
URIs
UUID
UUIDs
Vagrantfile
validator
validators
vectorstore
vendored
versionless
viewport
viewports
vim
vimrc
virtualized
virtualizing
VPN
VPNs
Vue
Vuex
Vulnerability
vulnerability
vulnerabilities
walkthrough
walkthroughs
WebdriverIO
Webex
webpack
webserver
Webservice
websocket
websockets
whitepaper
whitepapers
whois
wireframe
wireframed
wireframes
wireframing
Wireshark
Wolt
Wordpress
worktree
worktrees
Worldline
www
Xcode
Xeon
xls
xlsx
YouTrack
ytt
Yubico
Zeitwerk
Zendesk
ZenTao
zsh
Zstandard
@@ -0,0 +1,8 @@
extends: metric
message: "Make your content readable. Set a Flesch–Kincaid grade level (%s) below 10. To lower the score, use shorter sentences and more common words."
link: https://en.wikipedia.org/wiki/Flesch%E2%80%93Kincaid_readability_tests
formula: |
(0.39 * (words / sentences)) + (11.8 * (syllables / words)) - 15.59
condition: "> 1"
@@ -0,0 +1,4 @@
{
"feed": "https://github.com/errata-ai/Readability/releases.atom",
"vale_version": ">=2.13.0"
}
+16
View File
@@ -0,0 +1,16 @@
---
# Warning: qdrant.Spelling
#
# Checks for possible spelling mistakes in content, not code. Results from links using angle brackets (<https://example.com>) should be corrected.
#
# If a word is flagged as a spelling mistake incorrectly, such as a product name,
# you can submit an MR to update `spelling-exceptions.txt` with the missing word.
# Commands, like `git clone` must use backticks, and must not be added to the
# exceptions.
#
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
extends: spelling
message: 'Spelling check: "%s"?'
level: warning
ignore:
- Qdrant/spelling-exceptions.txt
@@ -0,0 +1 @@
This directory includes content designed for Vale Server. Do not delete.
@@ -0,0 +1,5 @@
Qdrant
Retrieval-augmented generation
retrieval-augmented generation
pageinfo
Geo.Rocks
@@ -0,0 +1,832 @@
accessor
accessors
Akismet
Alertmanager
Algolia
Alibaba
Aliyun
allowlist
allowlisted
allowlisting
allowlists
anonymization
anonymized
Ansible
Anthos
Apdex
Apparmor
approvers
architected
architecting
archiver
Arel
arity
Artifactory
Asana
Asciidoctor
Assembla
Atlassian
auditability
Auth0
Authentiq
Authy
autocomplete
autocompleted
autocompletes
autocompleting
autogenerated
autoloaded
autoloader
autoloading
autoscale
autoscaled
autoscaler
autoscales
autoscaling
awardable
awardables
Ayoa
Axios
Azure
B-tree
backfilling
backport
backported
backporting
backports
backtrace
backtraced
backtraces
backtracing
badging
Bamboo
Bazel
Bhyve
Bitbucket
blockquote
blockquoted
blockquotes
blockquoting
boolean
booleans
Bootsnap
browsable
bugfix
bugfixed
bugfixes
bugfixing
Bugzilla
Buildkite
buildpack
buildpacks
bundler
bundlers
burndown
burnup
burstable
cacheable
Caddy
callstack
callstacks
Camo
canonicalized
captcha
CentOS
Certbot
changeset
changesets
chai
ChaosKube
chatbot
chatbots
ChatOps
checksummed
checksumming
Citrix
Citus
clonable
Cloudwatch
Cobertura
Codepen
Cognito
colocated
colocating
compilable
composable
Conda
Consul
Contentful
Corosync
Coursier
cron
cronjob
cronjobs
crons
crontab
crontabs
crosslinked
crosslinking
crosslinks
Crossplane
CrowdIn
CSV
cybersecurity
Dangerfile
Datadog
datasource
datasources
datetime
Debian
Decompressor
decryptable
deduplicate
deduplicated
deduplicates
deduplicating
deduplication
deliverables
denormalize
denormalized
denormalizes
denormalizing
denylist
denylisting
denylists
deployer
deployers
deprovision
deprovisioned
deprovisioning
deprovisions
dequarantine
dequarantined
dequarantining
deserialization
deserialize
deserializers
deserializes
DevOps
Dhall
disambiguates
discoverability
dismissable
Disqus
Divio
Dockerfile
Dockerfiles
Dockerize
Dockerized
Dockerizing
dogfood
dogfooding
dogfoods
dotenv
downvoted
downvotes
Dpl
Dreamweaver
Ecto
Elasticsearch
enablement
enqueued
enqueues
enum
enums
ETag
Excon
exfiltration
expirable
Facebook
failover
failovers
failsafe
Falco
falsy
fastlane
Fastzip
favicon
favorited
Figma
Filebeat
Fio
firewalled
firewalling
fixup
Flawfinder
Flowdock
Fluentd
Flycheck
Forgerock
formatters
Fugit
fuzzer
Gantt
Gemfile
Gemnasium
Gemojione
Getter
Getters
gettext
Git
Gitaly
Gitea
GitHub
GitLab
gitlabsos
Gitleaks
Gitpod
Gitter
globals
Gmail
Godep
Gollum
Google
goroutine
goroutines
Gosec
Gradle
Grafana
Grafonnet
gravatar
Gzip
Haml
hardcode
hardcoded
hardcodes
Haswell
heatmap
heatmaps
Helm
Helmfile
Heroku
Herokuish
Hexo
HipChat
hostname
hostnames
hotfix
hotfixed
hotfixes
hotfixing
http
https
idempotence
idmapper
Iglu
Immer
inclusivity
Ingress
initializer
initializers
innersource
innersourcing
interdependencies
interdependency
interruptible
irker
issuables
Istio
Jaeger
jasmine-jquery
Javafuzz
JavaScript
Jenkins
Jenkinsfile
Jira
jq
jQuery
jsdom
Jsonnet
JupyterHub
Kaminari
kanban
kanbans
kaniko
Karma
Kerberos
Keycloak
keyset
keyspace
keytab
keytabs
Kibana
Kinesis
Klar
Knative
Kramdown
Kroki
Kubecost
kubectl
Kubernetes
Kubesec
Kustomize
Laravel
ldapsearch
Lefthook
Leiningen
libFuzzer
Libravatar
liveness
Lodash
Lograge
logrotate
Logrus
Logstash
lookahead
lookaheads
lookbehind
lookbehinds
lookups
loopback
Lucene
Maildir
Mailgun
Mailroom
Makefile
Makefiles
Markdown
markdownlint
matcher
matchers
Matomo
Mattermost
mbox
memoization
memoize
memoized
memoizing
Memorystore
mergeability
mergeable
Microsoft
middleware
middlewares
migratus
Minikube
MinIO
misconfiguration
misconfigurations
misconfigure
misconfigured
misconfigures
misconfiguring
mitigations
mitmproxy
mixin
mixins
mockup
mockups
ModSecurity
Monokai
monorepo
monorepos
multiline
mutex
nameserver
nameservers
namespace
namespaced
namespaces
namespacing
namespacings
Nanoc
negatable
Netlify
Nokogiri
noteable
noteables
npm
nullability
nullable
Nurtch
nyc
OAuth
Octokit
offboarded
offboarding
offboards
Okta
OmniAuth
onboarding
OpenID
OpenShift
Opsgenie
Overcommit
Packagist
parallelization
parallelizations
passwordless
Patroni
performant
PgBouncer
pgLoader
Phabricator
phaser
phasers
phpenv
pipenv
Pipfile
Pipfiles
Piwik
plaintext
Poedit
polyfill
polyfills
pooler
postfixed
postgres.ai
PostgreSQL
precompile
precompiled
preconfigure
preconfigured
preconfigures
prefill
prefilled
prefilling
prefills
preload
preloading
preloads
prepend
prepended
prepending
prepends
prepopulated
Prettifier
Pritaly
Priyanka
profiler
Prometheus
ProseMirror
protobuf
protobufs
proxied
proxies
proxyable
proxying
pseudocode
pseudonymized
pseudonymizer
Puma
pytest
Python
Qualys
queryable
Quicktime
Rackspace
Raspbian
rbenv
rbtrace
Rdoc
reachability
Realplayer
reauthenticate
reauthenticated
reauthenticates
reauthenticating
rebalancing
rebar
rebase
rebased
rebases
rebasing
reCAPTCHA
Redcarpet
redirection
redirections
Redis
Redmine
refactorings
referer
referers
reflog
reflogs
refspec
refspecs
reindex
reindexed
reindexes
reindexing
reinitialize
reinitializing
relicensing
remediations
replicables
repmgr
repmgrd
repurposing
requeue
requeued
requeues
Restlet
resync
resynced
resyncing
resyncs
retarget
retargeted
retargeting
retargets
reusability
reverified
reverifies
reverify
roadmap
roadmaps
rollout
rollouts
rsync
rsynced
rsyncing
rsyncs
Rubinius
Rubix
Rubocop
Rubular
ruleset
rulesets
runbook
runbooks
runit
runtime
runtimes
Salesforce
sandboxing
sanitization
sbt
scalers
scatterplot
scatterplots
Schemastore
scrollable
Semgrep
Sendmail
Sentry
serializer
serializers
serializing
serverless
severities
sharded
sharding
shfmt
Shibboleth
Shopify
Sidekiq
Silverlight
Sisense
Sitespeed
skippable
Slack
Slackbot
Slony
smartcard
smartcards
snapshotting
Sobelow
Solargraph
Solarized
Sourcegraph
sparkline
sparklines
spidering
Splunk
SpotBugs
Stackdriver
Stackprof
starrer
starrers
storable
storages
strace
strikethrough
strikethroughs
stunnel
stylelint
subchart
subcharts
subfolder
subfolders
subgraph
subgraphs
subgroup
subgroups
subkey
subkeys
sublicense
sublicensed
sublicenses
sublicensing
subnet
subnets
subnetting
subpath
subproject
subprojects
subqueried
subqueries
subquery
subquerying
substring
substrings
subtask
subtasks
subtest
subtests
subtree
subtrees
sudo
supercookie
supercookies
supertype
supertypes
swappiness
swimlane
swimlanes
syncable
Sysbench
syscall
syscalls
syslog
tanuki
tcpdump
templated
Thanos
Thoughtbot
throughputs
Tiller
timebox
timeboxed
timeboxes
timeboxing
timecop
tiptap
todos
tokenizer
Tokenizers
tokenizing
tolerations
toolchain
toolchains
toolkit
toolkits
tooltip
tooltips
transactionally
transpile
transpiled
transpiles
transpiling
Trello
triaged
triages
triaging
Trivy
truthy
Truststore
Twilio
Twitter
TypeScript
Ubuntu
unapplied
unapprove
unapproved
unapproving
unarchive
unarchived
unarchives
unarchiving
unary
unassign
unassigning
unassigns
unban
uncheck
unchecked
unchecking
unchecks
uncomment
uncommented
uncommenting
uncordon
unencode
unencoded
unencoder
unencodes
unencrypted
unfollow
unfollowed
unfollows
Unicorn
unindexed
unlink
unlinking
unlinks
unmappable
unmapped
unmergeable
unmerged
unmerges
unmerging
unmocked
unoptimize
unoptimized
unoptimizes
unoptimizing
unpatched
unprioritized
unprotect
unprotected
unprotecting
unprotects
unprovision
unprovisioned
unprovisions
unpublish
unpublished
unpublishes
unpublishing
unpushed
unreferenced
unregister
unregistered
unregisters
unreplicated
unresolve
unresolved
unresolving
unreviewed
unsanitized
unschedule
unscoped
unshare
unshared
unshares
unstage
unstaged
unstages
unstaging
unstar
unstars
unstarted
unstash
unstashed
unstashing
unsynced
unsynchronized
untarred
untracked
untrusted
unverified
unverifies
unverify
unverifying
uploader
uploaders
upstreams
upvote
upvoted
upvotes
URIs
Vagrantfile
validator
validators
vendored
versionless
viewport
viewports
virtualized
virtualizing
Vue
Vuex
walkthrough
walkthroughs
WebdriverIO
Webex
webpack
webserver
Webservice
websocket
websockets
whitepaper
whitepapers
wireframe
wireframed
wireframes
wireframing
Wireshark
Wordpress
worktree
worktrees
Worldline
Xcode
Xeon
YouTrack
ytt
Yubico
Zeitwerk
Zendesk
ZenTao
zsh
Zstandard
@@ -0,0 +1,702 @@
extends: existence
message: "Try to avoid using clichés like '%s'."
ignorecase: true
level: warning
tokens:
- a chip off the old block
- a clean slate
- a dark and stormy night
- a far cry
- a fine kettle of fish
- a loose cannon
- a penny saved is a penny earned
- a tough row to hoe
- a word to the wise
- ace in the hole
- acid test
- add insult to injury
- against all odds
- air your dirty laundry
- all fun and games
- all in a day's work
- all talk, no action
- all thumbs
- all your eggs in one basket
- all's fair in love and war
- all's well that ends well
- almighty dollar
- American as apple pie
- an axe to grind
- another day, another dollar
- armed to the teeth
- as luck would have it
- as old as time
- as the crow flies
- at loose ends
- at my wits end
- avoid like the plague
- babe in the woods
- back against the wall
- back in the saddle
- back to square one
- back to the drawing board
- bad to the bone
- badge of honor
- bald faced liar
- ballpark figure
- banging your head against a brick wall
- baptism by fire
- barking up the wrong tree
- bat out of hell
- be all and end all
- beat a dead horse
- beat around the bush
- been there, done that
- beggars can't be choosers
- behind the eight ball
- bend over backwards
- benefit of the doubt
- bent out of shape
- best thing since sliced bread
- bet your bottom dollar
- better half
- better late than never
- better mousetrap
- better safe than sorry
- between a rock and a hard place
- beyond the pale
- bide your time
- big as life
- big cheese
- big fish in a small pond
- big man on campus
- bigger they are the harder they fall
- bird in the hand
- bird's eye view
- birds and the bees
- birds of a feather flock together
- bit the hand that feeds you
- bite the bullet
- bite the dust
- bitten off more than he can chew
- black as coal
- black as pitch
- black as the ace of spades
- blast from the past
- bleeding heart
- blessing in disguise
- blind ambition
- blind as a bat
- blind leading the blind
- blood is thicker than water
- blood sweat and tears
- blow off steam
- blow your own horn
- blushing bride
- boils down to
- bolt from the blue
- bone to pick
- bored stiff
- bored to tears
- bottomless pit
- boys will be boys
- bright and early
- brings home the bacon
- broad across the beam
- broken record
- brought back to reality
- bull by the horns
- bull in a china shop
- burn the midnight oil
- burning question
- burning the candle at both ends
- burst your bubble
- bury the hatchet
- busy as a bee
- by hook or by crook
- call a spade a spade
- called onto the carpet
- calm before the storm
- can of worms
- can't cut the mustard
- can't hold a candle to
- case of mistaken identity
- cat got your tongue
- cat's meow
- caught in the crossfire
- caught red-handed
- checkered past
- chomping at the bit
- cleanliness is next to godliness
- clear as a bell
- clear as mud
- close to the vest
- cock and bull story
- cold shoulder
- come hell or high water
- cool as a cucumber
- cool, calm, and collected
- cost a king's ransom
- count your blessings
- crack of dawn
- crash course
- creature comforts
- cross that bridge when you come to it
- crushing blow
- cry like a baby
- cry me a river
- cry over spilt milk
- crystal clear
- curiosity killed the cat
- cut and dried
- cut through the red tape
- cut to the chase
- cute as a bugs ear
- cute as a button
- cute as a puppy
- cuts to the quick
- dark before the dawn
- day in, day out
- dead as a doornail
- devil is in the details
- dime a dozen
- divide and conquer
- dog and pony show
- dog days
- dog eat dog
- dog tired
- don't burn your bridges
- don't count your chickens
- don't look a gift horse in the mouth
- don't rock the boat
- don't step on anyone's toes
- don't take any wooden nickels
- down and out
- down at the heels
- down in the dumps
- down the hatch
- down to earth
- draw the line
- dressed to kill
- dressed to the nines
- drives me up the wall
- dull as dishwater
- dyed in the wool
- eagle eye
- ear to the ground
- early bird catches the worm
- easier said than done
- easy as pie
- eat your heart out
- eat your words
- eleventh hour
- even the playing field
- every dog has its day
- every fiber of my being
- everything but the kitchen sink
- eye for an eye
- face the music
- facts of life
- fair weather friend
- fall by the wayside
- fan the flames
- feast or famine
- feather your nest
- feathered friends
- few and far between
- fifteen minutes of fame
- filthy vermin
- fine kettle of fish
- fish out of water
- fishing for a compliment
- fit as a fiddle
- fit the bill
- fit to be tied
- flash in the pan
- flat as a pancake
- flip your lid
- flog a dead horse
- fly by night
- fly the coop
- follow your heart
- for all intents and purposes
- for the birds
- for what it's worth
- force of nature
- force to be reckoned with
- forgive and forget
- fox in the henhouse
- free and easy
- free as a bird
- fresh as a daisy
- full steam ahead
- fun in the sun
- garbage in, garbage out
- gentle as a lamb
- get a kick out of
- get a leg up
- get down and dirty
- get the lead out
- get to the bottom of
- get your feet wet
- gets my goat
- gilding the lily
- give and take
- go against the grain
- go at it tooth and nail
- go for broke
- go him one better
- go the extra mile
- go with the flow
- goes without saying
- good as gold
- good deed for the day
- good things come to those who wait
- good time was had by all
- good times were had by all
- greased lightning
- greek to me
- green thumb
- green-eyed monster
- grist for the mill
- growing like a weed
- hair of the dog
- hand to mouth
- happy as a clam
- happy as a lark
- hasn't a clue
- have a nice day
- have high hopes
- have the last laugh
- haven't got a row to hoe
- head honcho
- head over heels
- hear a pin drop
- heard it through the grapevine
- heart's content
- heavy as lead
- hem and haw
- high and dry
- high and mighty
- high as a kite
- hit paydirt
- hold your head up high
- hold your horses
- hold your own
- hold your tongue
- honest as the day is long
- horns of a dilemma
- horse of a different color
- hot under the collar
- hour of need
- I beg to differ
- icing on the cake
- if the shoe fits
- if the shoe were on the other foot
- in a jam
- in a jiffy
- in a nutshell
- in a pig's eye
- in a pinch
- in a word
- in hot water
- in the gutter
- in the nick of time
- in the thick of it
- in your dreams
- it ain't over till the fat lady sings
- it goes without saying
- it takes all kinds
- it takes one to know one
- it's a small world
- it's only a matter of time
- ivory tower
- Jack of all trades
- jockey for position
- jog your memory
- joined at the hip
- judge a book by its cover
- jump down your throat
- jump in with both feet
- jump on the bandwagon
- jump the gun
- jump to conclusions
- just a hop, skip, and a jump
- just the ticket
- justice is blind
- keep a stiff upper lip
- keep an eye on
- keep it simple, stupid
- keep the home fires burning
- keep up with the Joneses
- keep your chin up
- keep your fingers crossed
- kick the bucket
- kick up your heels
- kick your feet up
- kid in a candy store
- kill two birds with one stone
- kiss of death
- knock it out of the park
- knock on wood
- knock your socks off
- know him from Adam
- know the ropes
- know the score
- knuckle down
- knuckle sandwich
- knuckle under
- labor of love
- ladder of success
- land on your feet
- lap of luxury
- last but not least
- last hurrah
- last-ditch effort
- law of the jungle
- law of the land
- lay down the law
- leaps and bounds
- let sleeping dogs lie
- let the cat out of the bag
- let the good times roll
- let your hair down
- let's talk turkey
- letter perfect
- lick your wounds
- lies like a rug
- life's a bitch
- life's a grind
- light at the end of the tunnel
- lighter than a feather
- lighter than air
- like clockwork
- like father like son
- like taking candy from a baby
- like there's no tomorrow
- lion's share
- live and learn
- live and let live
- long and short of it
- long lost love
- look before you leap
- look down your nose
- look what the cat dragged in
- looking a gift horse in the mouth
- looks like death warmed over
- loose cannon
- lose your head
- lose your temper
- loud as a horn
- lounge lizard
- loved and lost
- low man on the totem pole
- luck of the draw
- luck of the Irish
- make hay while the sun shines
- make money hand over fist
- make my day
- make the best of a bad situation
- make the best of it
- make your blood boil
- man of few words
- man's best friend
- mark my words
- meaningful dialogue
- missed the boat on that one
- moment in the sun
- moment of glory
- moment of truth
- money to burn
- more power to you
- more than one way to skin a cat
- movers and shakers
- moving experience
- naked as a jaybird
- naked truth
- neat as a pin
- needle in a haystack
- needless to say
- neither here nor there
- never look back
- never say never
- nip and tuck
- nip it in the bud
- no guts, no glory
- no love lost
- no pain, no gain
- no skin off my back
- no stone unturned
- no time like the present
- no use crying over spilled milk
- nose to the grindstone
- not a hope in hell
- not a minute's peace
- not in my backyard
- not playing with a full deck
- not the end of the world
- not written in stone
- nothing to sneeze at
- nothing ventured nothing gained
- now we're cooking
- off the top of my head
- off the wagon
- off the wall
- old hat
- older and wiser
- older than dirt
- older than Methuselah
- on a roll
- on cloud nine
- on pins and needles
- on the bandwagon
- on the money
- on the nose
- on the rocks
- on the spot
- on the tip of my tongue
- on the wagon
- on thin ice
- once bitten, twice shy
- one bad apple doesn't spoil the bushel
- one born every minute
- one brick short
- one foot in the grave
- one in a million
- one red cent
- only game in town
- open a can of worms
- open and shut case
- open the flood gates
- opportunity doesn't knock twice
- out of pocket
- out of sight, out of mind
- out of the frying pan into the fire
- out of the woods
- out on a limb
- over a barrel
- over the hump
- pain and suffering
- pain in the
- panic button
- par for the course
- part and parcel
- party pooper
- pass the buck
- patience is a virtue
- pay through the nose
- penny pincher
- perfect storm
- pig in a poke
- pile it on
- pillar of the community
- pin your hopes on
- pitter patter of little feet
- plain as day
- plain as the nose on your face
- play by the rules
- play your cards right
- playing the field
- playing with fire
- pleased as punch
- plenty of fish in the sea
- point with pride
- poor as a church mouse
- pot calling the kettle black
- pretty as a picture
- pull a fast one
- pull your punches
- pulling your leg
- pure as the driven snow
- put it in a nutshell
- put one over on you
- put the cart before the horse
- put the pedal to the metal
- put your best foot forward
- put your foot down
- quick as a bunny
- quick as a lick
- quick as a wink
- quick as lightning
- quiet as a dormouse
- rags to riches
- raining buckets
- raining cats and dogs
- rank and file
- rat race
- reap what you sow
- red as a beet
- red herring
- reinvent the wheel
- rich and famous
- rings a bell
- ripe old age
- ripped me off
- rise and shine
- road to hell is paved with good intentions
- rob Peter to pay Paul
- roll over in the grave
- rub the wrong way
- ruled the roost
- running in circles
- sad but true
- sadder but wiser
- salt of the earth
- scared stiff
- scared to death
- sealed with a kiss
- second to none
- see eye to eye
- seen the light
- seize the day
- set the record straight
- set the world on fire
- set your teeth on edge
- sharp as a tack
- shoot for the moon
- shoot the breeze
- shot in the dark
- shoulder to the wheel
- sick as a dog
- sigh of relief
- signed, sealed, and delivered
- sink or swim
- six of one, half a dozen of another
- skating on thin ice
- slept like a log
- slinging mud
- slippery as an eel
- slow as molasses
- smart as a whip
- smooth as a baby's bottom
- sneaking suspicion
- snug as a bug in a rug
- sow wild oats
- spare the rod, spoil the child
- speak of the devil
- spilled the beans
- spinning your wheels
- spitting image of
- spoke with relish
- spread like wildfire
- spring to life
- squeaky wheel gets the grease
- stands out like a sore thumb
- start from scratch
- stick in the mud
- still waters run deep
- stitch in time
- stop and smell the roses
- straight as an arrow
- straw that broke the camel's back
- strong as an ox
- stubborn as a mule
- stuff that dreams are made of
- stuffed shirt
- sweating blood
- sweating bullets
- take a load off
- take one for the team
- take the bait
- take the bull by the horns
- take the plunge
- takes one to know one
- takes two to tango
- the more the merrier
- the real deal
- the real McCoy
- the red carpet treatment
- the same old story
- there is no accounting for taste
- thick as a brick
- thick as thieves
- thin as a rail
- think outside of the box
- third time's the charm
- this day and age
- this hurts me worse than it hurts you
- this point in time
- three sheets to the wind
- through thick and thin
- throw in the towel
- tie one on
- tighter than a drum
- time and time again
- time is of the essence
- tip of the iceberg
- tired but happy
- to coin a phrase
- to each his own
- to make a long story short
- to the best of my knowledge
- toe the line
- tongue in cheek
- too good to be true
- too hot to handle
- too numerous to mention
- touch with a ten foot pole
- tough as nails
- trial and error
- trials and tribulations
- tried and true
- trip down memory lane
- twist of fate
- two cents worth
- two peas in a pod
- ugly as sin
- under the counter
- under the gun
- under the same roof
- under the weather
- until the cows come home
- unvarnished truth
- up the creek
- uphill battle
- upper crust
- upset the applecart
- vain attempt
- vain effort
- vanquish the enemy
- vested interest
- waiting for the other shoe to drop
- wakeup call
- warm welcome
- watch your p's and q's
- watch your tongue
- watching the clock
- water under the bridge
- weather the storm
- weed them out
- week of Sundays
- went belly up
- wet behind the ears
- what goes around comes around
- what you see is what you get
- when it rains, it pours
- when push comes to shove
- when the cat's away
- when the going gets tough, the tough get going
- white as a sheet
- whole ball of wax
- whole hog
- whole nine yards
- wild goose chase
- will wonders never cease?
- wisdom of the ages
- wise as an owl
- wolf at the door
- words fail me
- work like a dog
- world weary
- worst nightmare
- worth its weight in gold
- wrong side of the bed
- yanking your chain
- yappy as a dog
- years young
- you are what you eat
- you can run but you can't hide
- you only live once
- you're the boss
- young and foolish
- young and vibrant
@@ -0,0 +1,11 @@
extends: repetition
message: "'%s' is repeated!"
level: warning
alpha: true
action:
name: edit
params:
- truncate
- " "
tokens:
- '[^\s]+'
@@ -0,0 +1,183 @@
extends: existence
message: "'%s' may be passive voice. Use active voice if you can. Exception: definitions"
ignorecase: true
level: suggestion
raw:
- \b(am|are|were|being|is|been|was|be)\b\s*
tokens:
- '[\w]+ed'
- awoken
- beat
- become
- been
- begun
- bent
- beset
- bet
- bid
- bidden
- bitten
- bled
- blown
- born
- bought
- bound
- bred
- broadcast
- broken
- brought
- built
- burnt
- burst
- cast
- caught
- chosen
- clung
- come
- cost
- crept
- cut
- dealt
- dived
- done
- drawn
- dreamt
- driven
- drunk
- dug
- eaten
- fallen
- fed
- felt
- fit
- fled
- flown
- flung
- forbidden
- foregone
- forgiven
- forgotten
- forsaken
- fought
- found
- frozen
- given
- gone
- gotten
- ground
- grown
- heard
- held
- hidden
- hit
- hung
- hurt
- kept
- knelt
- knit
- known
- laid
- lain
- leapt
- learnt
- led
- left
- lent
- let
- lighted
- lost
- made
- meant
- met
- misspelt
- mistaken
- mown
- overcome
- overdone
- overtaken
- overthrown
- paid
- pled
- proven
- put
- quit
- read
- rid
- ridden
- risen
- run
- rung
- said
- sat
- sawn
- seen
- sent
- set
- sewn
- shaken
- shaven
- shed
- shod
- shone
- shorn
- shot
- shown
- shrunk
- shut
- slain
- slept
- slid
- slit
- slung
- smitten
- sold
- sought
- sown
- sped
- spent
- spilt
- spit
- split
- spoken
- spread
- sprung
- spun
- stolen
- stood
- stridden
- striven
- struck
- strung
- stuck
- stung
- stunk
- sung
- sunk
- swept
- swollen
- sworn
- swum
- swung
- taken
- taught
- thought
- thrived
- thrown
- thrust
- told
- torn
- trodden
- understood
- upheld
- upset
- wed
- wept
- withheld
- withstood
- woken
- won
- worn
- wound
- woven
- written
- wrung
@@ -0,0 +1,27 @@
Based on [write-good](https://github.com/btford/write-good).
> Naive linter for English prose for developers who can't write good and wanna learn to do other stuff good too.
```
The MIT License (MIT)
Copyright (c) 2014 Brian Ford
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
+5
View File
@@ -0,0 +1,5 @@
extends: existence
message: "Don't start a sentence with '%s'."
level: error
raw:
- '(?:[;-]\s)so[\s,]|\bSo[\s,]'
@@ -0,0 +1,216 @@
extends: existence
message: "'%s' is too wordy."
ignorecase: true
level: suggestion
tokens:
- a number of
- abundance
- accede to
- accelerate
- accentuate
- accompany
- accomplish
- accorded
- accrue
- acquiesce
- acquire
- adjacent to
- adjustment
- admissible
- advantageous
- adversely impact
- advise
- aforementioned
- aggregate
- aircraft
- all of
- all things considered
- alleviate
- allocate
- along the lines of
- already existing
- alternatively
- amazing
- ameliorate
- anticipate
- apparent
- appreciable
- as a matter of fact
- as a means of
- as far as I'm concerned
- as of yet
- as to
- as yet
- ascertain
- assistance
- at the present time
- at this time
- attain
- attributable to
- authorize
- because of the fact that
- belated
- benefit from
- bestow
- by means of
- by virtue of
- by virtue of the fact that
- cease
- close proximity
- commence
- comply with
- concerning
- consequently
- consolidate
- constitutes
- demonstrate
- depart
- designate
- discontinue
- due to the fact that
- each and every
- economical
- eliminate
- elucidate
- employ
- endeavor
- enumerate
- equitable
- equivalent
- evaluate
- evidenced
- exclusively
- expedite
- expend
- expiration
- facilitate
- factual evidence
- feasible
- finalize
- first and foremost
- for all intents and purposes
- for the most part
- for the purpose of
- forfeit
- formulate
- have a tendency to
- honest truth
- if and when
- impacted
- implement
- in a manner of speaking
- in a timely manner
- in a very real sense
- in accordance with
- in addition
- in all likelihood
- in an effort to
- in between
- in excess of
- in lieu of
- in light of the fact that
- in many cases
- in my opinion
- in order to
- in regard to
- in some instances
- in terms of
- in the case of
- in the event that
- in the final analysis
- in the nature of
- in the near future
- in the process of
- inception
- incumbent upon
- indicate
- indication
- initiate
- irregardless
- is applicable to
- is authorized to
- is responsible for
- it is
- it is essential
- it seems that
- it was
- magnitude
- maximum
- minimize
- minimum
- modify
- monitor
- multiple
- necessitate
- nevertheless
- not certain
- not many
- not often
- not unless
- not unlike
- notwithstanding
- null and void
- numerous
- objective
- obligate
- obtain
- on the contrary
- on the other hand
- one particular
- optimum
- overall
- owing to the fact that
- participate
- particulars
- pass away
- pertaining to
- point in time
- portion
- possess
- preclude
- previously
- prior to
- prioritize
- procure
- proficiency
- provided that
- purchase
- put simply
- readily apparent
- refer back
- regarding
- relocate
- remainder
- remuneration
- requirement
- reside
- residence
- retain
- satisfy
- shall
- should you wish
- similar to
- solicit
- span across
- strategize
- subsequent
- substantial
- successfully complete
- sufficient
- terminate
- the month of
- the point I am trying to make
- therefore
- time period
- took advantage of
- transmit
- transpire
- until such time as
- utilization
- utilize
- various different
- what I mean to say is
- whether or not
- with respect to
- with the exception of
- witnessed
+209
View File
@@ -0,0 +1,209 @@
extends: existence
message: "'%s' is not precise. Consider deleting it."
ignorecase: true
level: warning
tokens:
- absolutely
- accidentally
- additionally
- allegedly
- alternatively
- angrily
- anxiously
- approximately
- awkwardly
- badly
- barely
- beautifully
- blindly
- boldly
- bravely
- brightly
- briskly
- bristly
- bubbly
- busily
- calmly
- carefully
- carelessly
- cautiously
- cheerfully
- clearly
- closely
- coldly
- completely
- congratulations
- consequently
- correctly
- courageously
- crinkly
- cruelly
- crumbly
- cuddly
- currently
- daily
- daringly
- deadly
- definitely
- deliberately
- doubtfully
- dumbly
- eagerly
- early
- easily
- elegantly
- enormously
- enthusiastically
- equally
- especially
- eventually
- exactly
- exceedingly
- exclusively
- extremely
- fairly
- faithfully
- fatally
- fiercely
- finally
- fondly
- few
- foolishly
- fortunately
- frankly
- frantically
- generously
- gently
- giggly
- gladly
- gracefully
- greedily
- happily
- hardly
- hastily
- healthily
- heartily
- helpfully
- honestly
- hourly
- hungrily
- hurriedly
- immediately
- impatiently
- inadequately
- ingeniously
- innocently
- inquisitively
- interestingly
- irritably
- jiggly
- joyously
- justly
- kindly
- largely
- lately
- lazily
- likely
- literally
- lonely
- loosely
- loudly
- loudly
- luckily
- madly
- many
- mentally
- mildly
- monthly
- mortally
- mostly
- mysteriously
- neatly
- nervously
- nightly
- noisily
- normally
- obediently
- occasionally
- openly
- painfully
- particularly
- patiently
- perfectly
- politely
- poorly
- powerfully
- presumably
- previously
- promptly
- punctually
- quarterly
- quickly
- quietly
- rapidly
- rarely
- really
- recently
- recklessly
- regularly
- relax
- remarkably
- relatively
- reluctantly
- repeatedly
- rightfully
- roughly
- rudely
- sadly
- safely
- selfishly
- sensibly
- seriously
- sharply
- shortly
- shyly
- significantly
- silently
- simply
- sleepily
- slowly
- smartly
- smelly
- smoothly
- softly
- solemnly
- sparkly
- speedily
- stealthily
- sternly
- stupidly
- substantially
- successfully
- suddenly
- surprisingly
- suspiciously
- swiftly
- tenderly
- tensely
- thoughtfully
- tightly
- timely
- truthfully
- unexpectedly
- unfortunately
- usually
- very
- victoriously
- violently
- vivaciously
- warmly
- waverly
- weakly
- wearily
- weekly
- wildly
- wisely
- worldly
- wrinkly
- yearly
- yesterday
@@ -0,0 +1,4 @@
{
"feed": "https://github.com/errata-ai/write-good/releases.atom",
"vale_version": ">=1.0.0"
}