From fa7734da98dd501a5e89a81107e9a362c5f4cd33 Mon Sep 17 00:00:00 2001 From: Mike Odnis Date: Sun, 21 Jun 2026 21:16:41 -0400 Subject: [PATCH] feat(standards): canonical C#, SQL, Markdown configs (complete the set) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes the config gap left in #31: - dotnet/Directory.Build.props — Nullable, .NET analyzers, code-style-in-build, warnings-as-errors in CI (auto-imported by MSBuild) - sql/.sqlfluff — SQLFluff, Postgres dialect, lower-case keywords/idents - .markdownlint.jsonc — markdownlint tuned for our HTML-hero READMEs config/ now covers every language in docs/standards. Updated the config index + retired the 'not yet templated' note. Co-Authored-By: Claude Opus 4.8 (1M context) --- config/.markdownlint.jsonc | 10 ++++++++++ config/README.md | 13 +++++++++---- config/dotnet/Directory.Build.props | 22 ++++++++++++++++++++++ config/sql/.sqlfluff | 16 ++++++++++++++++ 4 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 config/.markdownlint.jsonc create mode 100644 config/dotnet/Directory.Build.props create mode 100644 config/sql/.sqlfluff diff --git a/config/.markdownlint.jsonc b/config/.markdownlint.jsonc new file mode 100644 index 0000000..c2fd5de --- /dev/null +++ b/config/.markdownlint.jsonc @@ -0,0 +1,10 @@ +// Canonical ResQ markdownlint config — copy to a repo root as .markdownlint.jsonc. +// Encodes docs/standards/02-languages.md (Markdown). +{ + "default": true, + "MD013": false, // line length — prose wraps; not a lint error + "MD033": false, // inline HTML — our READMEs use centered
/ heroes + "MD041": false, // first line need not be a heading (template opens with an HTML comment/banner) + "MD024": { "siblings_only": true }, // duplicate headings ok across sections + "MD029": { "style": "ordered" } +} diff --git a/config/README.md b/config/README.md index ca7767d..c5098e0 100644 --- a/config/README.md +++ b/config/README.md @@ -16,6 +16,9 @@ settings — repos adopt them so "what does conformant look like" has one answer | [Ruff config](#python-ruff) (below) | Ruff (lint + format) | copy into `ruff.toml` / `pyproject.toml` | | [`rust/deny.toml`](./rust/deny.toml) | cargo-deny | copy to repo root | | [`yamllint.yml`](./yamllint.yml) | yamllint | copy as `.yamllint.yml` | +| [`dotnet/Directory.Build.props`](./dotnet/Directory.Build.props) | MSBuild / Roslyn analyzers | drop at repo root (auto-imported) | +| [`sql/.sqlfluff`](./sql/.sqlfluff) | SQLFluff | copy to repo root | +| [`.markdownlint.jsonc`](./.markdownlint.jsonc) | markdownlint | copy to repo root | See [`docs/standards/02-languages.md`](../docs/standards/02-languages.md) for the per-language rules these encode, and the [standards index](../docs/standards/) @@ -46,8 +49,10 @@ quote-style = "double" indent-style = "space" ``` -## Not yet templated +## Adding a config -C# (`.editorconfig` analyzer rules), SQL (`.sqlfluff`), and Markdown -(`.markdownlint.jsonc`) are documented in the standards but not yet shipped as -canonical files here — add them when the first repo of that kind needs one. +The set now covers every language in the standards (TS, Python, C#, Rust, +Shell-via-`.editorconfig`, SQL, YAML, Markdown). When a tool needs a canonical +config, add the file here, document the rules it encodes in +[`docs/standards/02-languages.md`](../docs/standards/02-languages.md), and list +it in the table above. diff --git a/config/dotnet/Directory.Build.props b/config/dotnet/Directory.Build.props new file mode 100644 index 0000000..aa19073 --- /dev/null +++ b/config/dotnet/Directory.Build.props @@ -0,0 +1,22 @@ + + + + enable + enable + latest + + + true + latest-recommended + true + + + true + true + + diff --git a/config/sql/.sqlfluff b/config/sql/.sqlfluff new file mode 100644 index 0000000..78f044e --- /dev/null +++ b/config/sql/.sqlfluff @@ -0,0 +1,16 @@ +# Canonical ResQ SQLFluff config — copy to a repo root as .sqlfluff. +# Encodes docs/standards/02-languages.md (SQL). Dialect = Postgres (Supabase). +[sqlfluff] +dialect = postgres +templater = jinja +max_line_length = 100 + +[sqlfluff:indentation] +indent_unit = space +tab_space_size = 2 + +[sqlfluff:rules:capitalisation.keywords] +capitalisation_policy = lower + +[sqlfluff:rules:capitalisation.identifiers] +extended_capitalisation_policy = lower