Skip to content
Merged
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
2 changes: 1 addition & 1 deletion .claude/skills/holistic-linting/PROJECT-CONFIG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ This project uses **Oxlint + Oxfmt, via Vite+ (`vp`)** exclusively for linting a
| Config File | Tools |
| -------------------- | ------------------------------------------------------------------------------- |
| `vite.config.ts` | Oxlint (lint) + Oxfmt (format), via `vp` — `fmt`/`lint`/`check`/`staged` blocks |
| `.markdownlint.json` | markdownlint |
| `.rumdl.toml` | rumdl |
| `.husky/` | Husky git hooks |

## Running Formatters and Linters
Expand Down
3 changes: 2 additions & 1 deletion .claude/skills/holistic-linting/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,7 @@ Linter detection is handled automatically by scanning project configuration file
| `vite.config.ts` | Oxlint (lint, type-aware) + Oxfmt (format) via Vite+'s `vp` CLI — `fmt`/`lint`/`check`/`staged` blocks |
| `tsconfig.json` | TypeScript compiler |
| `package.json`, `.prettierrc*` | Prettier |
| `.rumdl.toml` | rumdl |
| `.markdownlint.json/.yaml` | markdownlint |
| `.shellcheckrc` | ShellCheck (shell scripts) |

Expand Down Expand Up @@ -950,7 +951,7 @@ Sub-agent resolution:
## Troubleshooting

**Problem**: "I don't know which linters this project uses"
**Solution**: Linters are detected automatically by scanning config files (vite.config.ts, tsconfig.json, package.json, etc.). Check the Linter Detection section for supported tools. This project uses Oxlint (via Vite+'s `vp` CLI) for TypeScript and markdownlint for markdown.
**Solution**: Linters are detected automatically by scanning config files (vite.config.ts, tsconfig.json, package.json, etc.). Check the Linter Detection section for supported tools. This project uses Oxlint (via Vite+'s `vp` CLI) for TypeScript and rumdl for Markdown.

**Problem**: "Linting errors but I don't understand the rule"
**Solution**: Look up the rule at https://oxc.rs/docs/guide/usage/linter/rules.html for Oxlint rules, or https://typescript.tv/errors/ for TypeScript errors.
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/push_code_linting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ jobs:
- name: Run Oxlint
run: vp lint --format github --type-aware --type-check ./src/ ./__tests__/

- uses: xt0rted/markdownlint-problem-matcher@v3.0.0
- run: npm run lint:markdown
- name: Run rumdl
run: npm run lint:markdown
env:
RUMDL_OUTPUT_FORMAT: github
continue-on-error: true
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -112,3 +112,4 @@ typings/
.tern-port
.yarn/cache
.vitest/
.rumdl_cache/
108 changes: 0 additions & 108 deletions .markdownlint.json

This file was deleted.

3 changes: 0 additions & 3 deletions .markdownlintignore

This file was deleted.

29 changes: 29 additions & 0 deletions .rumdl.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
[global]
enable = [
"MD001", "MD011", "MD018", "MD022", "MD025", "MD026", "MD028", "MD030",
"MD033", "MD036", "MD037", "MD038", "MD039", "MD040", "MD042", "MD045",
"MD046", "MD048",
]
include = ["**/*.md"]
exclude = [
"**/node_modules/**",
"**/CHANGELOG.md",
"tests/integration/fixtures/markdown/**",
"**/.*",
"**/.*/**",
]
respect-gitignore = false

[MD026]
punctuation = ".,;:!。,;:!?"

[MD033]
allowed-elements = [
"a", "img", "br", "sup", "h1", "p", "details", "summary", "code", "div", "b",
]

[MD046]
style = "fenced"

[MD048]
style = "backtick"
8 changes: 4 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ every change made here:

- CLI + GitHub Action. Syncs README.md from action.yml (title, description, inputs, outputs, usage, badges).
- TypeScript, Node `>=24.19.0 <30.0.0` (`package.json` `engines`).
- Build: `vp pack` (tsdown, via Vite+). Test: `vp test` (Vitest, via Vite+). Lint/format: Oxlint + Oxfmt via Vite+'s `vp` CLI, plus markdownlint.
- Build: `vp pack` (tsdown, via Vite+). Test: `vp test` (Vitest, via Vite+). Lint/format: Oxlint + Oxfmt via Vite+'s `vp` CLI, plus rumdl.
- `semantic-release` and publishing sit outside Vite+ deliberately — leave them there.
- Volta pins the dev version — check `.node-version`.

Expand All @@ -53,7 +53,7 @@ npm run test # vp test (Vitest), __tests__/**/*.test.ts
npm run coverage # vp test --coverage -> ./out/
npm run format # vp fmt --write ./src ./__tests__
npm run check # vp check ./src/ ./__tests__/ - CI's actual gate, no side effects
npm run lint:markdown # markdownlint
npm run lint:markdown # rumdl
npm run generate-docs # regenerate README.md from action.yml
```

Expand Down Expand Up @@ -129,8 +129,7 @@ current step list.
- On `push` only, also invokes `deploy.yml`.
- **`push_code_linting.yml`** ("Code Linting Annotation")
- Same bootstrap order as `test.yml`: `npm install` then `voidzero-dev/setup-vp`.
- `vp lint --format github` and a markdownlint problem-matcher post inline PR
annotations natively — no reviewdog involved.
- `vp lint --format github` and `RUMDL_OUTPUT_FORMAT=github npm run lint:markdown` post inline PR annotations natively.
- **`deploy.yml`** ("NPM Release Workflow")
- Not push-triggered directly: `workflow_call` (from `test.yml`) + `repository_dispatch`.
- Runs `npm ci` → engine/signature checks → bootstraps `vp` → build → commit dist/ → `semantic-release`.
Expand All @@ -155,6 +154,7 @@ is repo housekeeping (stale bot, assignment, tag cleanup, version updater).
| `action.yml` | Action metadata — all inputs/outputs |
| `.ghadocs.json` | generate-docs config |
| `vite.config.ts` | Oxlint/Oxfmt rules, pre-commit staged-file config, `pack` (tsdown build), `test` (Vitest) — via Vite+'s `vp` CLI |
| `.rumdl.toml` | Markdown lint rules and file exclusions |
| `package.json` | Deps, scripts, engines, volta |

## Pitfalls
Expand Down
Loading
Loading