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:
.editorconfigin 4 repos,CLAUDE.mdonly 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 (development → staging → production), 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¶
- Week 1 — Ratify. Review the DECISION items; circulate to leads; freeze v1.0.
- 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.
- Week 2 — Enforce. Azure DevOps branch policies on
mainof pilot repos: 2 reviewers, build validation, no self-approval, comment resolution. Pipeline runsdotnet format --verify-no-changes/prettier --check+ tests. - 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.
- 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).