Skip to content

Master Plan — ExpertGroup Global Development Guidance

Version 1.0 — 2026-06-06 — Owner: Nikola Jeremić

1. Why

A survey of D:\source\repos (June 2026) found ~27 repos with strong shared foundations (ExpertGroup.Core, .NET 8–10, HotChocolate GraphQL, Angular 17–20, Next.js 15) but significant drift:

  • Indentation: tabs (ExpertGroup core) vs 2-space vs 4-space; CRLF vs LF
  • Frameworks in parallel: .NET 7/8/10; Angular 13/17/20; Material vs PrimeNG vs Radix+Tailwind
  • Standards artifacts exist only sporadically: .editorconfig in 4 repos, CLAUDE.md only in MCP.Minimax, no CONTRIBUTING.md or analyzer enforcement anywhere
  • Pipelines only in 2 repos; testing only in some repos

2. What the guidance includes

Nine standards documents (see README index) plus six drop-in templates. Each standard is short, prescriptive, and cites authoritative 2025/2026 sources (Microsoft, angular.dev, OWASP Top 10:2025, Anthropic). Key org-wide decisions baked in:

Decision Standard Rationale
C#: tabs, CRLF matches ExpertGroup core .editorconfig — least churn in the flagship repo
TS/frontend: 2 spaces, LF, single quotes, Prettier Prettier defaults; matches newest projects
.NET target: 10 (LTS-track); .NET 7 repos must migrate .NET 7 is out of support
Angular floor: v20, new style guide (no NgModules, no type suffixes, inject(), signals) angular.dev rewrite
UI library: PrimeNG + Tailwind for new Angular apps Reporting.UI + KIPS direction
Branching: environment-branch model (developmentstagingproduction), squash to development, plain-merge promotions, Conventional Commits ratified 2026-06
Security baseline: OWASP Top 10:2025, Key Vault + Managed Identity, Renovate current editions
Enforcement: .editorconfig + EnforceCodeStyleInBuild + branch policies — not documentation alone rules that aren't built/gated are decoration

Anything marked DECISION inside a standard is a recommended default you can overturn before rollout.

3. Where to upload it (distribution)

Layer 1 — per-repo (do this now, works for everyone): Each repo gets a root CLAUDE.md (from templates/CLAUDE.template.md) checked into git. It contains repo-specific facts and @-imports the relevant standards. Claude Code and Cowork both read the repo-root CLAUDE.md automatically when working in that folder. Humans read the same files — one source of truth.

Layer 2 — this folder as the canonical standards repo: Put DEVELOPMENT GUIDANCE itself into a git repo (e.g. ExpertGroup.DevelopmentGuidance in Azure DevOps). Repos either copy the standards in, or reference them. Note: @-imports resolve filesystem paths (max 4 hops); importing across repos only works if developers clone the guidance repo to a known path — copying the relevant standards into each repo is more reliable.

Layer 3 — org-wide push (Claude for Teams/Enterprise): - Server-managed settings: Claude.ai Admin Settings → Claude Code → Managed Settings (cannot be overridden by users). - File-based managed policy on Windows: C:\Program Files\ClaudeCode\managed-settings.json. - A plugin marketplace (git-hosted marketplace.json) to distribute skills/commands org-wide with versioning — the right vehicle if you want /eg-review, /eg-new-service style commands later.

Layer 4 — per-developer: C:\Users\<name>\.claude\CLAUDE.md for personal preferences only; never org standards.

4. Will existing sessions read it?

No. CLAUDE.md is loaded at session start only. Already-open Claude Code or Cowork sessions will NOT see a newly added or edited CLAUDE.md — there is no reload command. Start a new session (or in Claude Code, /clear starts fresh context) after adding/changing guidance. Future sessions in any repo containing the CLAUDE.md pick it up automatically.

Also note the budget: keep each CLAUDE.md lean (Anthropic guidance: ruthlessly pruned; large files get ignored). Detailed standards live in separate files that CLAUDE.md @-imports or points to.

5. Rollout plan

  1. Week 1 — Ratify. Review the DECISION items; circulate to leads; freeze v1.0.
  2. Week 1 — Pilot. Adopt in two active repos (suggest: ExpertGroup.Reporting.Service + KIPS): add CLAUDE.md, .editorconfig, Directory.Build.props, PR template. Fix the warning fallout in a dedicated PR.
  3. Week 2 — Enforce. Azure DevOps branch policies on main of pilot repos: 2 reviewers, build validation, no self-approval, comment resolution. Pipeline runs dotnet format --verify-no-changes / prettier --check + tests.
  4. Weeks 3–4 — Roll out to remaining active repos (ArtLift, Transfera, MCP.Minimax, Ametrics). Legacy repos (PropertyTax .NET 7 / Angular 13) get CLAUDE.md + a migration ticket, not retro-formatting.
  5. Ongoing. Changes via PR to the guidance repo; quarterly review; Renovate keeps dependencies current.

6. Out of scope (v1)

Retro-formatting legacy codebases; mandating a single frontend framework (Transfera stays Next.js); MAUI standards (add when the MAUI app becomes active); skills/plugin marketplace build-out (Layer 3, later phase).