docs: retroactive contributors/style guide (#10) #32

Merged
timothy merged 1 commits from foundations/10-contributors-guide into main 2026-06-27 11:52:04 +02:00
Owner

Refs #10. Adds docs/contributing.md — a descriptive guide to the patterns already in the codebase (not a redesign), so future changes extend the established architecture instead of reinventing it. CLAUDE.md points to it so it loads as project guidance.

Sections (each example-driven, with file references)

  1. Architecture & layering (the dependency-direction table, now enforced by #12)
  2. CQRS handler conventions (action-named record IRequest<T>; validation in handlers)
  3. Functional style — LanguageExt (Option/Either/Validation, using static …Prelude)
  4. Blazor / MudBlazor (thin pages → MediatR; CTS lifecycle; MudForm + Blazored validation; dialogs)
  5. Data access / EF Core + dual-provider migrations (enforced by #13)
  6. FFmpeg pipeline (step-based composition, runtime capability detection, version-gating — feeds #9)
  7. Naming / formatting / analyzers (.editorconfig, TWAE/NoWarn, the #15 promotion model)
  8. Testing (NUnit + Shouldly + NSubstitute — not xUnit; golden #11 / arch #12 tests; TZ=UTC)
  9. Build / CI (CPM #14, the pipeline, → docs/ci-cd.md)
  10. Deviation policy (the guiding principle: match the style; diverge only with a stated reason)

Notes

  • Built with a parallel read-only survey across the four areas not touched this session (CQRS, LanguageExt, Blazor, FFmpeg); the rest is from the foundations work just landed. All file references verified to exist.
  • Corrects the issue's "xUnit" → the project uses NUnit.
  • Docs-only; the last of the foundations batch (#14, #8, #15-incr1, #12, #11, #13, #16 already merged).
Refs #10. Adds `docs/contributing.md` — a **descriptive** guide to the patterns already in the codebase (not a redesign), so future changes extend the established architecture instead of reinventing it. `CLAUDE.md` points to it so it loads as project guidance. ## Sections (each example-driven, with file references) 1. Architecture & layering (the dependency-direction table, now enforced by #12) 2. CQRS handler conventions (action-named `record` `IRequest<T>`; validation in handlers) 3. Functional style — LanguageExt (`Option`/`Either`/`Validation`, `using static …Prelude`) 4. Blazor / MudBlazor (thin pages → MediatR; CTS lifecycle; MudForm + Blazored validation; dialogs) 5. Data access / EF Core + **dual-provider migrations** (enforced by #13) 6. FFmpeg pipeline (step-based composition, runtime capability detection, version-gating — feeds #9) 7. Naming / formatting / analyzers (`.editorconfig`, TWAE/NoWarn, the #15 promotion model) 8. Testing (**NUnit** + Shouldly + NSubstitute — *not* xUnit; golden #11 / arch #12 tests; `TZ=UTC`) 9. Build / CI (CPM #14, the pipeline, → `docs/ci-cd.md`) 10. **Deviation policy** (the guiding principle: match the style; diverge only with a stated reason) ## Notes - Built with a parallel read-only survey across the four areas not touched this session (CQRS, LanguageExt, Blazor, FFmpeg); the rest is from the foundations work just landed. **All file references verified to exist.** - Corrects the issue's "xUnit" → the project uses **NUnit**. - Docs-only; the last of the foundations batch (#14, #8, #15-incr1, #12, #11, #13, #16 already merged).
timothy added 1 commit 2026-06-27 11:45:56 +02:00
docs: add retroactive contributors/style guide (#10)
Build ErsatzTV Image / Build & test (.NET) (pull_request) Successful in 4m25s
Build ErsatzTV Image / Build & push image (amd64) (pull_request) Has been skipped
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (pull_request) Successful in 5m43s
Build ErsatzTV Image / Build & test (.NET) (push) Successful in 3m44s
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (push) Successful in 4m53s
Build ErsatzTV Image / Build & push image (amd64) (push) Successful in 3m32s
969a23909a
docs/contributing.md — a descriptive guide to the established patterns, derived from
the existing code: architecture/layering, CQRS handler conventions, LanguageExt
functional style, Blazor/MudBlazor UI, EF Core + dual-provider migrations, the FFmpeg
pipeline pattern, naming/formatting/analyzers, testing, and build/CI — each with
concrete file references — plus the deviation policy (match the established style;
diverge only with a concrete, stated reason). Several sections are now CI-enforced
(#12 layering, #15 analyzers, #13 migrations, #11 golden tests). CLAUDE.md points to
it so it's loaded as project guidance.

Survey across the sections done with parallel read-only agents; all file references
verified to exist.

Refs #10

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
timothy merged commit 969a23909a into main 2026-06-27 11:52:04 +02:00
timothy deleted branch foundations/10-contributors-guide 2026-06-27 11:52:04 +02:00
Sign in to join this conversation.