Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .codespellrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[codespell]
skip = .git,.vale,tmp
ignore-words-list = AKS,caf,CrossReference,Nd,Wont,WONT
26 changes: 25 additions & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,21 @@ trim_trailing_whitespace = true
# Go files (tabs per gofmt convention)
[*.go]
indent_style = tab
indent_size = 4

# HTML and Jinja2 templates
[*.{html,j2}]
indent_style = space
indent_size = 2

# CSS and preprocessor files
[*.css]
indent_style = space
indent_size = 2

# JavaScript and TypeScript
[*.{js,ts}]
indent_style = space
indent_size = 2

# JSON files
[*.{json,jsonc}]
Expand Down Expand Up @@ -44,3 +58,13 @@ indent_size = 2
[*.sh]
indent_style = space
indent_size = 2

# Configuration files
[*.{ini,cfg,conf}]
indent_style = space
indent_size = 2

# XML and SVG files
[*.{xml,svg}]
indent_style = space
indent_size = 2
35 changes: 19 additions & 16 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
go-version: "1.23"

- name: Install golangci-lint
uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cf7c20 # v9.2.0
uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cb7c20 # v9.2.0
with:
version: latest
args: --timeout=5m
Expand All @@ -42,22 +42,25 @@ jobs:
- name: Run govulncheck
run: govulncheck ./...

- name: Install uv
uses: astral-sh/setup-uv@681c641aba71e4a1c380be3ab5e12ad51f415867 # v7.1.6
- name: Set up Biome
uses: biomejs/setup-biome@v2
with:
python-version: "3.14"
enable-cache: true

- uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0
name: Install pnpm
with:
run_install: true

- name: Install Node.js
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
with:
node-version: 24
cache: "pnpm"
version: "2.3.10"

- name: Install codespell and yamllint
run: |
pipx install codespell
pipx install yamllint

- name: Install rumdl
run: |
curl -fsSL "https://github.com/rvben/rumdl/releases/download/v0.0.222/rumdl-x86_64-unknown-linux-gnu.tar.gz" \
| sudo tar xz -C /usr/local/bin

- name: Install Vale
run: |
curl -fsSL "https://github.com/errata-ai/vale/releases/download/v3.13.0/vale_3.13.0_Linux_64-bit.tar.gz" \
| sudo tar xz -C /usr/local/bin vale

- name: Install just
uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff # v3
Expand Down
18 changes: 9 additions & 9 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,16 +29,16 @@ vendor/
.DS_Store
Thumbs.db

# Node.js (for linting tools)
node_modules/
# Linter caches
.rumdl_cache/

# Python/uv (for linting tools)
.venv/
__pycache__/
*.pyc

# Vale styles (synced via `vale sync`)
.vale/
# Vale synced packages (keep vocabulary)
.vale/*
!.vale/config/
.vale/config/*
!.vale/config/vocabularies/
.vale/config/vocabularies/*
!.vale/config/vocabularies/JSONLT/

# Local configuration
.envrc
Expand Down
8 changes: 0 additions & 8 deletions .markdownlint-cli2.jsonc

This file was deleted.

29 changes: 19 additions & 10 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
default_stages: [pre-commit, pre-push]
default_stages: [commit-msg, pre-commit, pre-push]

repos:
- repo: builtin
Expand All @@ -20,30 +20,39 @@ repos:
name: Check YAML files with yamllint
entry: yamllint -c .yamllint.yaml --strict
types: [yaml]
exclude: >
(?x) ^.*pnpm-lock\.yaml$

- repo: https://github.com/codespell-project/codespell
rev: 63c8f8312b7559622c0d82815639671ae42132ac # v2.4.1
hooks:
- id: codespell
exclude: (^\.)

- repo: https://github.com/rhysd/actionlint
rev: e7d448ef7507c20fc4c88a95d0c448b848cd6127 # v1.7.8
hooks:
- id: actionlint

- repo: https://github.com/errata-ai/vale
rev: 27593b0e0e7eb8f0c2b7fae0d93fa1cfaabceb2f # v3.13.0
hooks:
- id: vale
- id: vale
name: vale (commit message)
stages: [commit-msg]
args: [--ext=.md]

- repo: https://github.com/rvben/rumdl-pre-commit
rev: f82d34de69ae7ddb36af40383c18d81d042fa3b1 # v0.0.222
hooks:
- id: rumdl-fmt
- id: rumdl

- repo: local
hooks:
- id: local-biome-check
- id: biome-check
name: biome check
entry: pnpm exec biome check --write --files-ignore-unknown=true --no-errors-on-unmatched
entry: biome check --write --files-ignore-unknown=true --no-errors-on-unmatched
language: system
types: [text]
files: "\\.(jsx?|tsx?|c(js|ts)|m(js|ts)|d\\.(ts|cts|mts)|jsonc?|css|svelte|vue|astro|graphql|gql)$"
- id: cog-verify
name: conventional commits
entry: cog verify --file
language: system
stages: [commit-msg]
always_run: true
19 changes: 19 additions & 0 deletions .rumdl.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
[global]
disable = [
"MD013", # Line length
"MD033", # Inline HTML
]
respect_gitignore = true
exclude = [".git", ".vale", "tmp"]

[MD003]
style = "atx"

[MD004]
style = "dash"

[MD025]
front_matter_title = ""

[MD048]
style = "backtick"
6 changes: 4 additions & 2 deletions .vale.ini
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
StylesPath = .vale
MinAlertLevel = warning
Vocab = JSONLT
Packages = https://github.com/jsonlt/vale-jsonlt/releases/latest/download/JSONLT.zip, https://github.com/errata-ai/Google/releases/download/v0.6.3/Google.zip, https://github.com/errata-ai/write-good/releases/download/v0.4.1/write-good.zip, https://github.com/errata-ai/proselint/releases/download/v0.3.4/proselint.zip, https://github.com/tbhb/vale-ai-tells/releases/download/v0.4.0/ai-tells.zip
Packages = https://github.com/jsonlt/vale-jsonlt/releases/latest/download/JSONLT.zip, https://github.com/errata-ai/Google/releases/download/v0.6.3/Google.zip, https://github.com/errata-ai/write-good/releases/download/v0.4.1/write-good.zip, https://github.com/errata-ai/proselint/releases/download/v0.3.4/proselint.zip, https://github.com/tbhb/vale-ai-tells/releases/download/v1.4.0/ai-tells.zip

[*.md]
BasedOnStyles = Vale, Google, write-good, proselint, ai-tells, JSONLT
Google.Headings = NO

# Community and policy documents use conversational tone
[{CODE_OF_CONDUCT.md,CONTRIBUTING.md,README.md,SECURITY.md,.github/pull_request_template.md}]
BasedOnStyles = Vale, Google, write-good, proselint, ai-tells, JSONLT
Google.Headings = NO
Google.FirstPerson = NO
Google.Will = NO
proselint.Annotations = NO

# Internal/temporary files - skip linting
[{.claude/**/*.md,.oaps/**/**.md,tmp/**/*.md}]
[{.claude/**/*.md,.vale/**/*.md,tmp/**/*.md,PLAN.md}]
BasedOnStyles =
139 changes: 139 additions & 0 deletions .vale/config/vocabularies/JSONLT/accept.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
(jsonlt|JSONLT)
JSON Lines Table
accessor
APIs
[aA]sync
asyncio
Atheris
Bitcask
Codspeed
config
CRDTs
configs
CouchDB
CSV
[dD]enormalized
deprioritized
deserializes
diffability
[dD]uckDB
[dD]uck[dD][bB]
editability
enum
Erdtman
[fF]uzzer
[fF]uzzers
[gG]it's
hashable
heaptrack
JSONLT's
jazzer
keyspace
LevelDB
libFuzzer
lookups
memory_profiler
microbenchmarks
namespace
namespaces
NDJSON
optionals
[pP]olars
pyperf
[pP]recompact
Riak
RocksDB
rollout
Rundgren
selectivities
[sS]erializable
serializability
[sS]harding
snake_case
SQLite
SSTable
TOML
untyped
valgrind
YAML
[cC]anonicalization
[sS]hortname
alice
autoReload
boolean
fcntl
fsync
href
mtime
mutex
reentrant
syscall
threadsafe
truthy
untrusted
[wW]asm
wasm-bindgen
wasm-pack
[sS]erde
[tT]okio
[cC]lippy
[rR]ustfmt
[cC]rate
[cC]rates
MSRV
cdylib
rlib
[cC]riterian
proptest
tarpaulin
[cC]onformant
Postel's

# Author names (from spec references)
Bradner
Bray
Enghardt
Fairhurst
Hansen
Josefsson
Klensin
Leiba
Pauly
Tiesel
Trammell
Welzl
Yegge
Yergeau

# Example identifiers (from spec and tests)
charlie
globex
tx
openWith

# Technical terms
BOMs
booleans
Boolean
camelCase
IOError
impl
Infra's
interdependencies
interoperate
nullable
optionalParam
precomposed
pseudocode
threadSafe
upserts
upsert

# Conformance test schema terms
actual_state
optionalFeatures
outputExact
outputMatches
outputNotMatches
suiteVersion
url
Empty file.
2 changes: 1 addition & 1 deletion .yamllintignore
Original file line number Diff line number Diff line change
@@ -1 +1 @@
pnpm-lock.yaml
tmp/
Loading
Loading