Skip to content

docs(readme): rewrite for Trellis V3 / .NET 10 + replace stale PNG diagrams with Mermaid - #33

Merged
xavierjohn merged 2 commits into
mainfrom
docs/readme-rewrite
Jun 5, 2026
Merged

docs(readme): rewrite for Trellis V3 / .NET 10 + replace stale PNG diagrams with Mermaid#33
xavierjohn merged 2 commits into
mainfrom
docs/readme-rewrite

Conversation

@xavierjohn

Copy link
Copy Markdown
Owner

Why

The README was severely outdated:

What changed

README.md fully rewritten for two audiences (Trellis V3 evaluators + reference-implementation hunters):

  • 1-paragraph hook + "What it demonstrates" capabilities list
  • Current stack table + Trellis package usage table
  • 3-step Quickstart
  • Tour table of the 7 merged showcase PRs with links to each Docs/PR*.md walkthrough
  • Inline Mermaid architecture diagram showing the actual Domain/Application/Infrastructure/Api layers + where each Trellis package plugs in
  • Inline Mermaid aggregate-relationships diagram (User, Host, Menu, Dinner, Reservation, MenuReview) with FK relationships and cross-aggregate gates
  • API surface table summarizing each endpoint family
  • Cross-cutting patterns table (ETag, idempotency, state machines, leak-shielded 404s, ROP, ServiceDefaults composition) linking to relevant walkthroughs
  • "Where to look for common tasks" pointer table
  • Project layout outline + .http replay note
  • Credits preserving the link to the original YouTube tutorial series

Stale PNGs removed via git rm (readme-assets/clean-architecture-{diagram,diagram-2,detailed}.png). Mermaid renders natively on GitHub so no replacement image files are needed.

Verification

  • 2 Mermaid fences validated against the flowchart parser
  • All linked file paths checked against the actual repo layout (e.g., Api/src/2022-12-21/Controllers/MenusController.cs, Application/src/MenuReviews/Commands/SubmitMenuReviewCommandHandler.cs)
  • Authentication route corrected post-agent-pass: /authentication/register and /authentication/login (matches [Route("[controller]")] on AuthenticationController)
  • No fabricated features — every capability mentioned is verifiable in the codebase
  • No CI/contributing/security boilerplate invented
  • No badges added (no CI hooks exist to link to)

…agrams with Mermaid

The README was still referencing .NET 7, EF Core, and the predecessor
FunctionalDDD library, and the three readme-assets/*.png Clean Architecture
diagrams were generic stock images that did not reflect what this codebase
demonstrates. Both have been replaced.

The new README is structured for two audiences: developers evaluating
Trellis V3, and developers using BuberDinner as a reference for "how do I do
X in this stack". It includes:

  - 1-paragraph hook + "What it demonstrates" bullet list
  - Current stack table + Trellis package table
  - 3-step Quickstart (dotnet build / test / run)
  - Tour table of the 7 merged showcase PRs with link-out to each
    Docs/PR*.md walkthrough
  - Inline Mermaid architecture diagram showing the actual layers and
    how Trellis V3 plugs into each
  - Inline Mermaid aggregate-relationships diagram (User, Host, Menu,
    Dinner, Reservation, MenuReview) with their FK relationships and
    cross-aggregate gates
  - API surface table summarizing each endpoint family
  - Cross-cutting patterns table linking to the right walkthrough for
    each pattern (ETag, idempotency, state machines, leak-shielded 404s,
    command-boundary validation, ServiceDefaults)
  - "Where to look for common tasks" pointer table
  - Project layout outline
  - .http replay note
  - Credits & history (preserves the link to the original YouTube
    tutorial series that the project began as)

The three readme-assets PNGs are removed via git rm. Mermaid renders
natively on GitHub so no replacement image files are needed.
Onion diagram
-------------
Added readme-assets/clean-architecture-onion.svg - an inline SVG showing the
classic Clean Architecture onion (Domain at the centre, Application around it,
Api and Infrastructure on the outside) with a dashed equator splitting the
outer ring into the Api half and the Infrastructure half, and a "depends on"
arrow pointing inward on the right edge to make the dependency rule visible.
The SVG is a hand-written ~5KB file with no external dependencies; GitHub
renders it inline through the standard image-link syntax. It complements the
existing Mermaid runtime-flow diagram without replacing it.

Code-review fixes (from PR #33 review)
--------------------------------------
1. API version disambiguation (Medium)
   The "API surface at a glance" section previously said the controllers are
   "under the versioned 2022-12-21 controller set". That date is the source-
   tree folder name, not the wire version. Every controller in that folder
   declares [ApiVersion("2022-10-01")], so the api-version query parameter
   the client must send is 2022-10-01. Reworded to state both explicitly and
   call out the required query-string value.

2. Trellis.Authorization vs Trellis.Http.Abstractions (Low)
   The Trellis packages table listed Trellis.Authorization but that package
   has no direct PackageReference in any .csproj - it's pulled in transitively
   via Trellis.Mediator. Meanwhile Trellis.Http.Abstractions IS a direct
   dependency of the Application project but was missing from the table.
   Added a row for Trellis.Http.Abstractions and qualified the
   Trellis.Authorization entry with "(pulled in transitively via Trellis.Mediator)".

3. replay-http.py reference (Low)
   The .http replay paragraph referenced a "local session-state helper named
   replay-http.py" that does not live in the repo (it's a session artifact).
   Removed the dangling reference; kept the substantive guidance that
   `dotnet test` is the durable verification because the integration suite
   exercises the same endpoints end-to-end.
@xavierjohn
xavierjohn merged commit ad4a73b into main Jun 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant