Skip to content

Expert Review — 30 Suggested Additions, Scored for ExpertGroup

2026-06-06 — derived from published guidance of 10 renowned developers/architects. Score = whether to implement for ExpertGroup (1–10), judged against team size, existing repos, ratified standards, effort vs payoff.

Status (2026-06-06): - Score 8+ IMPLEMENTED: 1, 5, 7, 8, 10, 11, 14, 23, 26 → new standards 10/11/12, ADR-001, ADR template, additions to 01/06/07, CLAUDE template. - Score-7 review complete: ACCEPTED 2 (C4), 4 (feature flags), 9 (steady state), 18 (postmortems), 27 (MSW), 28 (perf budgets, scoped: bundle budgets everywhere, Lighthouse CI on public pages); REJECTED 20 (MediatR/AutoMapper policy). - Piggy-backed: 29 (CWV p75 targets) and 30 (JS/image discipline) ACCEPTED with 28. - Remaining unreviewed (score 4–6): 3, 6, 12, 13, 15, 16, 17, 19, 21, 22, 24, 25.

# Author Area Suggestion Explanation Score Why that score
1 Milanović Architecture docs Require in-repo ADRs One Status/Context/Decision/Consequences file per significant decision. 9 Near-zero effort, the standards' DECISION items already need a home, and three of ten experts converge on it.
2 Milanović Architecture docs C4 + diagrams-as-code Mermaid/Structurizr diagrams version-controlled beside ADRs. 7 Cheap and durable, but useful only after ADRs exist — second step, not first.
3 Milanović Process DORA + SPACE metrics only Forbid single-metric productivity measures like LOC. 4 A small team has no metrics bureaucracy to defend against yet; one sentence in the plan is enough.
4 Fowler Release Feature toggles + removal rule Flags decouple deploy from release; each flag gets owner and removal date. 7 Promotion branches will carry unfinished work, and flags are the safe way — but start light, no flag platform.
5 Fowler Git Document the branching deviation as ADR-001 Write down why env-branches beat trunk-based for ExpertGroup. 8 One page, written once, ends a debate that will otherwise reopen with every new hire who reads Fowler.
6 Fowler Code health Continuous small-step refactoring rule Behavior-preserving refactors backed by tests; cruft flagged in review. 6 Right principle but hard to enforce; worth one paragraph in 01, not a process.
7 Fowler AI AI-generated code reviewed like human code No unreviewed "vibe code" reaches production repos. 9 ExpertGroup distributes CLAUDE.md org-wide, so the matching review rule is a one-line, high-impact guardrail.
8 Nygard Resilience Timeouts, circuit breakers, retries+backoff Every integration call gets an explicit timeout; breakers on risky dependencies. 10 Biggest genuine gap: a RabbitMQ/GraphQL microservice ecosystem with zero resilience guidance, and Microsoft.Extensions.Resilience makes it cheap.
9 Nygard Resilience Steady State rule Logs, caches, tables must not grow unboundedly; retention is part of design. 7 Cheap rule that prevents the most common slow-death production failure.
10 Nygard Architecture docs Adopt his exact ADR template One file per decision, immutable once accepted. 9 Free if item 1 is accepted — it's the canonical format.
11 Newman Architecture Independent deployability + no shared DBs Any service ships alone; integration via APIs/events only. 8 The ecosystem already mostly complies, so codifying costs nothing and blocks the shared-DB shortcut.
12 Newman Testing Consumer-driven contract tests Pact or GraphQL schema-checks verify consumers against providers in CI. 6 Right idea, but with mostly first-party UIs a lightweight schema-diff gate gives 80% of the value at 20% of Pact's cost.
13 Newman Migration Strangler Fig for legacy Extract incrementally; never big-bang rewrite. 6 Useful name for the PropertyTax migration, but it's one project, not an org-wide rule.
14 Majors Observability OpenTelemetry tracing + wide structured events High-cardinality fields (tenant, user, build) on one event per request per service. 8 Multi-service GraphQL ecosystem with no correlation story; OTel in .NET is mature and mostly config.
15 Majors Observability Alert on SLOs/symptoms only Delete cause-based alerts that page for non-emergencies. 6 Correct, but meaningless until item 14 exists — sequence it after.
16 Majors CI/CD Track deploy lead time Measure merge→staging time as a health metric. 4 Nice-to-have; staging auto-deploy already enforces the behavior the metric would measure.
17 Orosz Process Lightweight RFC/design docs Short written design reviewed before cross-team or >1-week work. 5 Valuable at scale, but for a small team a CLAUDE-assisted design note + PR description covers most of it.
18 Orosz Process Blameless postmortems Incident write-ups with owned action items. 7 The package says nothing about incidents; a half-page template is cheap insurance.
19 Orosz Database Migration playbook (dual-write/shadow-read) Incremental cutover, never big-bang, for schema/service migrations. 6 Worth three bullets in 05; full playbook ceremony exceeds current team size.
20 Bogard .NET licensing MediatR/AutoMapper license policy Pay, pin to MIT versions (MediatR 12.x/AutoMapper 14.x), or prefer alternatives. 7 Repo survey found no current usage, but a one-line policy now prevents an accidental license liability later.
21 Bogard .NET Mapping guidance Mappers only for trivially conventional mappings; else hand-map or Mapperly. 6 Low effort and from the author himself; mostly preventive given current codebase.
22 Bogard Architecture Allow vertical slices as alternative Explicit yes/no on feature-folder organization vs layered .Bll/.Dal. 5 Worth a one-line ruling either way purely to prevent accidental fragmentation; no urgency.
23 Ardalis .NET Entity-design rules (DDD-lite) Private setters, invariant-enforcing constructors, encapsulated collections, behavior over anemic bags. 8 Cheap rules that prevent the most common EF entity rot, fits the existing domain-model style.
24 Ardalis .NET Guard clauses Guard.Against.* (or equivalent) for preconditions at entry points. 5 Mild readability win; adds a dependency for something ArgumentNullException.ThrowIfNull mostly covers now.
25 Ardalis Database Specification pattern Encapsulate reusable EF query logic in specifications. 4 The existing .Apply() filter-context extensions already fill this niche; adding a second pattern would duplicate.
26 Dodds Testing Frontend Testing Trophy + Testing Library Mostly integration tests, user-centric queries (getByRole), no implementation-detail tests. 8 07 is entirely backend-shaped; this is the missing frontend half and the de facto industry standard.
27 Dodds Testing MSW for network mocking Mock at the network boundary, not fetch/Apollo internals. 7 Direct frontend parallel of the ratified "real SQL, not InMemory" rule; same mocks serve tests and dev.
28 Osmani Frontend perf Performance budgets in CI Lighthouse CI fails the build on JS-size/LCP regression. 7 Same ratchet philosophy as the coverage gate; start on KIPS/Transfera where map-heavy pages are at risk.
29 Osmani Frontend perf Core Web Vitals targets at p75 LCP <2.5s, INP <200ms, CLS <0.1 as the published bar. 6 Free to state and measurable, but only meaningful once item 28 provides enforcement.
30 Osmani Frontend perf JS/image discipline Route code-splitting, lazy-load below fold, import-on-interaction, AVIF/WebP. 6 Cheap bullets with real user impact; partially implied by Next.js/Angular defaults already.

Suggested ratification batches

  • Score 8–10 (do): 1, 5, 7, 8, 10, 11, 14, 23, 26 — two new docs (resilience, observability), ADRs, AI-review rule, deployability rule, entity rules, frontend testing.
  • Score 6–7 (do selectively): 2, 4, 6, 9, 12, 13, 18, 19, 20, 21, 27, 28, 29, 30.
  • Score 4–5 (skip or one-liner): 3, 15, 16, 17, 22, 24, 25. (15 rises to 7 once observability exists.)