Status — placeholder. Scaffolded; deep content to be written. For the working methodology today, use modular-monolith — this skill is one tool in its toolbox.
Problem
Modules silently corrupt each other when they use the same word for different things. A Resident in Care may be the person currently living on premise; a Resident in Billing may include the responsible party; a Resident in Compliance may be the person plus their entire care plan history. Three meanings, one word, one type — the type accumulates fields nobody owns and the bugs are silent.
The fix is alignment, not avoidance. List every domain term each module uses, mark the conflicts, then choose per case: one shared meaning (all modules agree), two distinct types with explicit translation (an anti-corruption layer at the boundary), or one type with a context marker (rare; only for genuinely-the-same with cosmetic differences). Done early, this is the cheapest part of the design; done late, it becomes a refactor that touches every module.
Audience
Engineers and SMEs working through the language used by a feature area before deciding the internal shape of each module (modular-ddd).
Inputs (planned)
Module inventory from modular-design.
The terms each module uses, gathered from existing code, validation rules, screens, or interview.
Outputs (planned)
A term map: term → modules using it → meaning per module → resolution.
Per cross-module data flow with a translation: source type, target type, mapping (anti-corruption layer).
A short glossary the team uses in conversation and code.
Sections to be written
Surfacing terms — code, screens, validation, SME interview
Conflict patterns — same word/different meaning, different word/same meaning, partial overlap
Resolution choices — shared, translated, marked
Anti-corruption layers in C# — where they live, how thin they should be, when to skip
Glossary maintenance — keeping it alive without ceremony
Worked example: aligning Resident across Care, Billing, Compliance
See also
modular-monolith — orchestrator; this skill is one tool in its toolbox
modular-design — produces the modules whose language this skill aligns
modular-ddd — decides where ACLs and translation live in code
1---2name: marafiq-dotnet-skills-modular-shared-language3description: modular-shared-language4---56# modular-shared-language78> **Status — placeholder.** Scaffolded; deep content to be written. For the working methodology today, use [`modular-monolith`](../modular-monolith/SKILL.md) — this skill is one tool in its toolbox.910## Problem1112Modules silently corrupt each other when they use the same word for different things. A `Resident` in *Care* may be the person currently living on premise; a `Resident` in *Billing* may include the responsible party; a `Resident` in *Compliance* may be the person plus their entire care plan history. Three meanings, one word, one type — the type accumulates fields nobody owns and the bugs are silent.1314The fix is alignment, not avoidance. List every domain term each module uses, mark the conflicts, then choose per case: *one shared meaning* (all modules agree), *two distinct types with explicit translation* (an anti-corruption layer at the boundary), or *one type with a context marker* (rare; only for genuinely-the-same with cosmetic differences). Done early, this is the cheapest part of the design; done late, it becomes a refactor that touches every module.1516## Audience1718Engineers and SMEs working through the language used by a feature area before deciding the internal shape of each module (`modular-ddd`).1920## Inputs (planned)2122- Module inventory from `modular-design`.23- The terms each module uses, gathered from existing code, validation rules, screens, or interview.2425## Outputs (planned)2627- A term map: term → modules using it → meaning per module → resolution.28- Per cross-module data flow with a translation: source type, target type, mapping (anti-corruption layer).29- A short glossary the team uses in conversation and code.3031## Sections to be written3233- [ ] Surfacing terms — code, screens, validation, SME interview34- [ ] Conflict patterns — same word/different meaning, different word/same meaning, partial overlap35- [ ] Resolution choices — shared, translated, marked36- [ ] Anti-corruption layers in C# — where they live, how thin they should be, when to skip37- [ ] Glossary maintenance — keeping it alive without ceremony38- [ ] Worked example: aligning *Resident* across *Care*, *Billing*, *Compliance*3940## See also4142- [`modular-monolith`](../modular-monolith/SKILL.md) — orchestrator; this skill is one tool in its toolbox43- [`modular-design`](../modular-design/SKILL.md) — produces the modules whose language this skill aligns44- [`modular-ddd`](../modular-ddd/SKILL.md) — decides where ACLs and translation live in code4546---47> Source: [marafiq/dotnet-skills](https://github.com/marafiq/dotnet-skills) — distributed by [TomeVault](https://tomevault.io).48<!-- tomevault:4.0:skill_md:2026-06-15 -->
Run npx skillmds@latest add tomevault-io/marafiq-dotnet-skills-modular-shared-language in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
modular-shared-language It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
tomevault-io (@tomevault-io) published this skill. Their other Agent Skills are listed on their SkillMD profile.