Skip to content

Commit 93136a2

Browse files
committed
specs(lint): Enable strict spell checking and Mermeid validation
1 parent 6fe38f0 commit 93136a2

File tree

6 files changed

+352
-23
lines changed

6 files changed

+352
-23
lines changed

.vale.ini

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
# Minimal Vale configuration for repository Markdown
22
MinAlertLevel = warning
33

4+
StylesPath = .vale
5+
Vocab = AgentsWorkflow
6+
47
[*.md]
58
BasedOnStyles = Vale
6-
# Disable strict spelling until a project vocabulary is curated
7-
# TODO: Enable this for full linting
8-
Vale.Spelling = NO
9+
Vale.Spelling = YES
10+
Vale.Terms = NO
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
ACKs
2+
APFS
3+
ALPN
4+
Agents‑Workflow
5+
Automations
6+
Autodetect
7+
AWS
8+
AWSs
9+
AZ
10+
acks
11+
agentic
12+
argv
13+
asciinema
14+
bazel
15+
bytestreams
16+
btrfs
17+
Btrfs
18+
bubblewrap
19+
bwrap
20+
bursty
21+
cachix
22+
ccache
23+
Colima
24+
Config
25+
configs
26+
Configurable
27+
configurability
28+
cntlm
29+
creds
30+
devenv
31+
Dev
32+
Devcontainer
33+
Devcontainers
34+
devshell
35+
direnv
36+
Docson
37+
docson
38+
emacs
39+
env
40+
exfiltration
41+
GOPATH
42+
gdbus
43+
gsettings
44+
glpat
45+
Headful
46+
headful
47+
Headscale
48+
hostnames
49+
Ilib
50+
IPs
51+
IPBT
52+
ipbt
53+
journaling
54+
keymap
55+
kexts
56+
lockfiles
57+
lowerdir
58+
mkcp
59+
Mutagen
60+
namespace
61+
netbird
62+
netrc
63+
NILFS
64+
NILFS2
65+
NTLM
66+
nvim
67+
OPENROUTER
68+
OpenHands
69+
openhands
70+
osascript
71+
parseable
72+
pasteable
73+
pipx
74+
postexec
75+
precmd
76+
preconfigured
77+
preexec
78+
privkey
79+
proxytunnel
80+
pwsh
81+
Rakefile
82+
reflink
83+
reflinks
84+
reinitializing
85+
repo
86+
repos
87+
resizable
88+
scriptable
89+
scrollback
90+
sccache
91+
seccomp
92+
spack
93+
stderr
94+
Subcommand
95+
Subcommands
96+
Subvolume
97+
subvolumes
98+
tailscale
99+
tailscaled
100+
tailnet
101+
Taplo
102+
taplo
103+
tini
104+
tmpfs
105+
triager
106+
ttyrec
107+
Unsandboxed
108+
upperdir
109+
Userspace
110+
venv
111+
websocat
112+
webui
113+
wcifs
114+
WMCTRL
115+
wmctrl
116+
Xvfb
117+
Xwayland
118+
zellij
119+
zram
120+
ZDOTDIR
Lines changed: 208 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,208 @@
1+
ACKs
2+
APFS
3+
ALPN
4+
Agents‑Workflow
5+
Automations
6+
Autodetect
7+
AWS
8+
AWSs
9+
AZ
10+
acks
11+
agentic
12+
argv
13+
asciinema
14+
bazel
15+
bytestreams
16+
btrfs
17+
Btrfs
18+
bubblewrap
19+
bwrap
20+
bursty
21+
cachix
22+
ccache
23+
Colima
24+
Config
25+
configs
26+
Configurable
27+
configurability
28+
cntlm
29+
creds
30+
devenv
31+
Dev
32+
Devcontainer
33+
Devcontainers
34+
devshell
35+
direnv
36+
Docson
37+
docson
38+
emacs
39+
env
40+
exfiltration
41+
GOPATH
42+
gdbus
43+
gsettings
44+
glpat
45+
Headful
46+
headful
47+
Headscale
48+
hostnames
49+
Ilib
50+
IPs
51+
IPBT
52+
ipbt
53+
journaling
54+
keymap
55+
kexts
56+
lockfiles
57+
lowerdir
58+
mkcp
59+
Mutagen
60+
namespace
61+
netbird
62+
netrc
63+
NILFS
64+
NILFS2
65+
NTLM
66+
nvim
67+
OPENROUTER
68+
OpenHands
69+
openhands
70+
osascript
71+
parseable
72+
pasteable
73+
pipx
74+
postexec
75+
precmd
76+
preconfigured
77+
preexec
78+
privkey
79+
proxytunnel
80+
pwsh
81+
Rakefile
82+
reflink
83+
reflinks
84+
reinitializing
85+
repo
86+
repos
87+
resizable
88+
scriptable
89+
scrollback
90+
sccache
91+
seccomp
92+
spack
93+
stderr
94+
Subcommand
95+
Subcommands
96+
Subvolume
97+
subvolumes
98+
tailscale
99+
tailscaled
100+
tailnet
101+
Taplo
102+
taplo
103+
tini
104+
tmpfs
105+
triager
106+
ttyrec
107+
Unsandboxed
108+
upperdir
109+
Userspace
110+
venv
111+
websocat
112+
webui
113+
wcifs
114+
WMCTRL
115+
wmctrl
116+
Xvfb
117+
Xwayland
118+
zellij
119+
zram
120+
ZDOTDIR
121+
ack
122+
Ack
123+
ACK
124+
Captcha
125+
captcha
126+
cgroup
127+
deduplication
128+
Devcontainers
129+
devcontainer
130+
Devcontainer
131+
fsSnapshot
132+
FSKit
133+
Idempotency
134+
liveness
135+
nano
136+
params
137+
prefilled
138+
prepopulated
139+
readonly
140+
Runtimes
141+
runtimes
142+
snapshotRef
143+
snapshotting
144+
startedAt
145+
stdin
146+
Textarea
147+
textarea
148+
tmux
149+
tooltip
150+
TUIs
151+
virtualized
152+
Vite
153+
VM
154+
VMs
155+
ACLs
156+
ACL
157+
Allowlist
158+
allowlists
159+
auditable
160+
backoff
161+
boolean
162+
booleans
163+
dataplane
164+
debounce
165+
enums
166+
misconfigured
167+
Namespaced
168+
onboarding
169+
Reflowing
170+
sudo
171+
teardown
172+
Teardown
173+
toolchains
174+
UIs
175+
UI
176+
validator
177+
validators
178+
virtualenv
179+
zsh
180+
args
181+
Gradle
182+
Toolchain
183+
Misconfiguration
184+
firejail
185+
Firejail
186+
affordances
187+
auditability
188+
CLIs
189+
Docker's
190+
Idempotence
191+
lockfile
192+
Lockfile
193+
multiline
194+
nsjail
195+
performant
196+
prepends
197+
reachability
198+
run_everywhere
199+
rsync
200+
SDKs
201+
sharding
202+
stdout
203+
Untrusted
204+
unreferenced
205+
untrusted
206+
viewport
207+
ZFS's
208+
xfs

Justfile

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,18 +89,14 @@ lint-specs:
8989
just md-spell
9090
# Prose/style linting via Vale (requires .vale.ini in repo)
9191
if command -v vale >/dev/null 2>&1; then
92-
vale specs || exit 1
92+
# Enforce Vale on public specs only
93+
vale specs/Public
9394
else
9495
if [ -n "${IN_NIX_SHELL:-}" ]; then
9596
echo "vale is missing inside Nix dev shell; add pkgs.vale to flake.nix." >&2
9697
exit 127
9798
fi
9899
echo "vale not found; skipping outside Nix shell." >&2
99100
fi
100-
# Mermaid syntax validation (set MERMAID_STRICT=1 to enforce)
101-
# TODO: mermaid checks should be enabled by default
102-
if [ -n "${MERMAID_STRICT:-}" ]; then
103-
just md-mermaid-check
104-
else
105-
echo "Skipping Mermaid validation (set MERMAID_STRICT=1 to enforce)." >&2
106-
fi
101+
# Mermaid syntax validation (enabled by default)
102+
just md-mermaid-check

flake.nix

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@
123123
] ++ pkgs.lib.optionals isDarwin [
124124
# macOS-only VM manager
125125
pkgs.lima # Linux virtual machines on macOS
126+
# Provide a reproducible Chrome for Puppeteer on macOS (unfree)
127+
pkgs.google-chrome
126128
];
127129

128130
shellHook = ''
@@ -147,14 +149,15 @@
147149
fi
148150
}
149151
echo "Tip: run: docson -d ./specs/schemas # then open http://localhost:3000"
150-
# Ensure mermaid-cli (mmdc) uses system Chrome/Chromium when present
151-
if command -v chromium >/dev/null 2>&1; then
152-
export PUPPETEER_EXECUTABLE_PATH="$(command -v chromium)"
153-
elif command -v google-chrome >/dev/null 2>&1; then
154-
export PUPPETEER_EXECUTABLE_PATH="$(command -v google-chrome)"
155-
elif command -v google-chrome-stable >/dev/null 2>&1; then
156-
export PUPPETEER_EXECUTABLE_PATH="$(command -v google-chrome-stable)"
157-
fi
152+
# Use the Nix-provided browser path (fully reproducible)
153+
''
154+
+ (if isLinux then ''
155+
export PUPPETEER_EXECUTABLE_PATH="${pkgs.chromium}/bin/chromium"
156+
'' else "")
157+
+ (if isDarwin then ''
158+
export PUPPETEER_EXECUTABLE_PATH="${pkgs.google-chrome}/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
159+
'' else "")
160+
+ ''
158161
export PUPPETEER_PRODUCT=chrome
159162
'';
160163
};

0 commit comments

Comments
 (0)