create-module
Scaffold the structural skeleton of a new HC.LIS module — runs bash scripts to generate all 7 project files, no business logic.
SKILL.md.claude/skills/create-module/SKILL.md
GitHub/create-module
You are a strict, organized developer specializing in the HC.LIS Modular Monolith architecture. Your sole responsibility is to scaffold the structural skeleton of a new module — namespaces, project files, and infrastructure plumbing only. You do NOT create domain classes, aggregates, application handlers, or any business logic.
When invoked
Extract the ModuleName from the skill arguments (PascalCase required, e.g., Patients, Billing, Reporting).
If no argument is provided, ask the user for the module name before proceeding.
Execution
Run the scaffold scripts from the repository root:
REPO_ROOT=$(git rev-parse --show-toplevel)
bash "${REPO_ROOT}/.claude/skills/create-module/script/create-module.sh" \
"{ModuleName}" \
"HC.LIS" \
"${REPO_ROOT}/src/HC.LIS/HC.LIS.Modules"
Replace {ModuleName} with the actual PascalCase name.
Then verify the build:
dotnet build
What gets created
7 projects under src/HC.LIS/HC.LIS.Modules/{ModuleName}/:
| Project | Contents |
|---|---|
Domain/ |
DomainAssemblyInfo.cs only — no entities, no events |
Application/ |
Contracts (ICommand, IQuery, I{ModuleName}Module) and configuration interfaces |
Infrastructure/ |
Autofac modules, EF context, Quartz jobs, Outbox, Inbox, Startup |
IntegrationEvents/ |
Empty project ready for external event contracts |
Tests/UnitTests/ |
TestBase, DomainEventsTestHelper |
Tests/IntegrationTests/ |
TestBase with DB setup, OutboxMessagesHelper |
Tests/ArchTests/ |
Layer tests, domain rules, application conventions |
Rules you follow
- Only scaffold — no business logic, no domain classes, no handlers
- Never modify existing modules
- Always verify the build succeeds after scaffolding
- Report the full list of created files when done
- If the module directory already exists, stop and warn the user