Skip to content
Agentmart
Submit a tool

monica-application-project-unit-development

Apply Monica application unit rules when implementing, refactoring, or reviewing handlers, entities, repositories, events, jobs, seeders, host services, CRUD…

Skill by Tairitsua

IndexedMIT★ 14
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/tairitsua-monica-application-project-unit-development

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Apply Monica application unit rules when implementing, refactoring, or reviewing handlers, entities, repositories, events, jobs, seeders, host services, CRUD adapters, controllers, Facades, and support types. Load monica-application and the project specification first.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/monica-application-project-unit-development

What's inside

Skill name
monica-application-project-unit-development
Description
Apply Monica application unit rules when implementing, refactoring, or reviewing handlers, entities, repositories, events, jobs, seeders, host services, CRUD adapters, controllers, Facades, and support types. Load monica-application and the project specification first.
License
MIT
Instructions
51 lines in SKILL.md · view on GitHub

Files (15)

  • SKILL.md
  • openai.yaml · agents/
  • 00-project-unit-overview.md · references/
  • 01-project-unit-naming-and-boundaries.md · references/
  • 02-project-unit-composition-map.md · references/
  • 03-project-unit-context-metadata.md · references/
  • 04-adapters-lifecycle-and-support-types.md · references/
  • 10-application-service-template.md · references/
  • 11-domain-service-template.md · references/
  • 12-entity-request-event-template.md · references/
  • 13-repository-and-persistence-template.md · references/
  • 14-event-handler-template.md · references/
  • 15-job-template.md · references/
  • 16-configuration-template.md · references/
  • 17-connected-use-case-example.md · references/

SKILL.md (first lines)

# Monica Application ProjectUnit Development

## Overview

Use this skill for unit-level application development in Monica-based DDD projects. Before changing or reviewing units, load `$monica-application` and the repository-designated project specification, even when this skill was invoked directly. The [shared specification](../monica-application/references/00-application-specification.md) defines rule strength; [specification evolution](../monica-application/references/01-specification-evolution.md) governs concrete architectural gaps and rule changes, not ordinary combinations of these units.

## Workflow

Use the project's adopted `$monica-application-microservice` or `$monica-application-modular-monolith` profile to locate the owning subdomain and project. Use [unit overview](references/00-project-unit-overview.md) and [composition map](references/02-project-unit-composition-map.md) when the feature's units are unclear; load only the matching unit reference below. Keep invariants on entities and orchestration in handlers. A DomainService is an optional home for a meaningful domain rule with no natural entity owner, not a required hop for every command.

When adding or refactoring application EventBus events and consumers, including outbox or inbox adoption, load the [event contract](references/12-entity-request-event-template.md) and [handler](references/14-event-handler-template.md) templates before changing their delivery configuration.

## Ground Rules

- Prefer Monica-native types. Follow the [type naming, source filename, placement, boundary, and project-level extension rules](references/01-project-unit-naming-and-boundaries.md) when selecting a reusable specialization. Keep the application's concrete names and adopted extension families in its local guidance.
- Keep persistence concerns in repositories and persistence classes, not in request handlers. Use `$monica-infra-persistence` for the current operation, transaction, and provider contracts.
- Keep repository implementations in the owning subdomain or service infrastructure boundary. Do not move a repository or adapter to `Platform` just because it uses an external library; only project-common reusable infrastructure belongs in `Platform`.
- Keep contracts stable: requests, DTOs, and events are not persistence entities.
- Add explicit `[ProjectUnitMetadata]` to each application-authored discovered unit and `[ProjectUnitRequirement]` for applicable actual requirement IDs, following the [metadata and coverage-debt rules](references/03-project-unit-context-metadata.md). Do not inherit metadata or invent a requirement merely to fill the catalog.
- Keep metadata, description, and requirement traceability explicit. Resolve optional ownership through the [metadata rules](references/03-project-unit-context-metadata.md).
- If a handler returns `Res<string>`, use `Res.Ok<string>(value)` instead of `Res.Ok(value)` to avoid the non-generic string overload.
- Make HTTP contracts request-owned. Put `[ApiEndpoint]` on the request type and keep route, verb, binding, and optional operation name off the `ApplicationService` handler.
- A request is published for generated RPC clients only when it is attributed source in the exact namespace `*.PublishedLanguages.Domain{DomainName}.Requests`. Attributed requests outside that boundary remain local HTTP endpoints.
- Put `[assembly: WebApiGenerationConfig(...)]` in each assembly that owns attributed requests. Protocol assemblies select the required `RpcClientTargets`; local-only assemblies normally use `None`.
- Do not add MVC `[Http*]`, `[Route]`, or `[From*]` attributes to generated `ApplicationService` endpoints. The request contract is the single endpoint authority.
- Use `ApplicationService` only for HTTP-exposed mediator handlers. If a request is intentionally internal and must have no HTTP endpoint, implement `IRequestHandler<TRequest, TResult>` as a normal transient dependency instead of omitting `[ApiEndpoint]` from an `ApplicationService`.
- For capability setup and runtime behavior, use `$monica-infra-configuration`, `$monica-infra-jobs`, `$monica-infra-messaging`, and `$monica-infra-web` as applicable. This skill owns the application unit's shape and placement.

## Reference Navigation

- Unit catalog and responsibilities: [00-project-unit-overview.md](references/00-project-unit-overview.md)
- Naming, placement, boundaries, and project-level extensions: [01-project-unit-naming-and-boundaries.md](references/01-project-unit-naming-and-boundaries.md)
- Unit selection by feature shape: [02-project-unit-composition-map.md](references/02-project-unit-composition-map.md)
- Metadata, ownership, and requirement traceability: [03-project-unit-context-metadata.md](references/03-project-unit-context-metadata.md)
- Bounded CRUD, seeders, hosted services, controllers, internal mediator handlers, Facades, and support types: [04-adapters-lifecycle-and-support-types.md](references/04-adapters-lifecycle-and-support-types.md)
- `ApplicationService` templates: [10-application-service-template.md](references/10-application-service-template.md)
- `DomainService` templates: [11-domain-service-template.md](references/11-domain-service-template.md)
- Entity, request, and event templates: [12-entity-request-event-template.md](references/12-entity-request-event-template.md)
- Repository and DbContext templates: [13-repository-and-persistence-template.md](references/13-repository-and-persistence-template.md)
- Event handler templates: [14-event-handler-template.md](references/14-event-handler-template.md)
- Job templates: [15-job-template.md](references/15-job-template.md)
- Configuration templates: [16-configuration-template.md](references/16-configuration-template.md)
- Connected request, handler, entity, and repository example: [17-connected-use-case-example.md](references/17-connected-use-case-example.md)

## Scope Notes

- This skill is architecture-agnostic. It explains unit design, not solution topology.
- Use `monica-application-microservice` to decide service splits, published-language layout, and migration project boundaries.
- Use `monica-application-modular-monolith` to decide module splits, host composition, and cross-module contracts.

From Tairitsua/Monica, MIT.

More from Tairitsua/Monica

Signals

Stars
14
Forks
7
Open issues
0
Last commit (this folder)
Oct 16, 2026 (12 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Tairitsua

Cite this page

monica-application-project-unit-development skill. Agent Mart. https://agentmart.dev/skills/tairitsua-monica-application-project-unit-development (last updated 2026-10-24)