monica-third-party-module-development
Create, modernize, validate, package, containerize, or publish independent Monica extension repositories.
Skill by Tairitsua
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-third-party-module-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.
About
Use cases: design, devops
Reviews
Write a reviewNo 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 26, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 3
api.nuget.org· found in codecodeload.github.com· found in install commandgithub.com· found in code
Files it touches
~/.claude/skills/monica-third-party-module-development
What's inside
- Skill name
monica-third-party-module-development- Description
- Create, modernize, validate, package, containerize, or publish independent Monica extension repositories. Use when building one or several publisher-owned Monica NuGet packages, separating capability/provider/UI packages, assigning manifest ecosystem keys and cross-package dependencies, pairing a provider connector with CPU or NVIDIA OCI images, applying ecosystem branding, preparing CI/release automation, or migrating an older third-party module repository.
- License
- MIT
- Instructions
- 118 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (17)
- SKILL.md
- openai.yaml · agents/
- module-repository.manifest.example.json · assets/
- monica-compatibility-mark.png · assets/
- monica-compatibility-mark.svg · assets/
- monica-open-source-badge.svg · assets/
- ecosystem-standard.md · references/
- licensing-and-commercial-use.md · references/
- manifest-schema.md · references/
- project-patterns.md · references/
- publishing.md · references/
- inspect_images.py · scripts/
- inspect_packages.py · scripts/
- scaffold_repository.py · scripts/
- validate_oci.py · scripts/
- validate_repository.py · scripts/
- test_repository_scaffold_and_validation.py · tests/
SKILL.md (first lines)
# Monica Third-Party Module Development Build independent packages and companion images from one explicit repository contract. Treat a NuGet package as a distribution boundary, a Monica module as a runtime capability, and an OCI repository as an independently runnable provider-service boundary. Resolve every bundled `scripts/`, `references/`, and `assets/` path from this skill's own directory. Do not assume an `.agents` or `.claude` projection path. ## Companion skills by task - Use `$monica-architecture` for package and module boundaries. - Use `$monica-development` for host-bound registrations, providers, Facades, and services. - Use `$monica-ui-development` for UI packages, `$monica-ui-localization` for localization changes, and `$monica-ui-audit` when reviewing a concrete UI risk. - Use `$monica-unit-testing` for tests. - Use `$monica-docs-authoring` for canonical Agent Skill instructions or Monica.Docs guidance. - Use `$monica-ui-bridge-debug` and `$playwright-cli` for runnable UI verification. Independently published packages override Monica's first-party test naming rule: use one `tests/Test.<PackageId>` project per package. The host lifecycle, isolation, assertion, and test execution rules from `$monica-unit-testing` still apply. ## Workflow 1. Inspect repository instructions, status, license, projects, APIs, tests, and existing release automation. Preserve unrelated work. 2. Collect the repository contract: - durable publisher/repository identity and aligned release version - every NuGet package ID, project path, description, tags, and package dependency - every module name, kind, manifest ecosystem key, full manifest-key dependency, and provider target - optional OCI repository, companion connector package, build context, Dockerfile, bake targets, stages, platforms, accelerators, tag suffixes, provider-specific smoke commands, and managed NVIDIA runner labels - Monica version, target framework, source visibility, license, branding, contacts, and publishing target 3. Read [ecosystem-standard.md](references/ecosystem-standard.md) and reject invalid package/module identity. 4. Read [project-patterns.md](references/project-patterns.md). Split packages only for real install, dependency, support, or release boundaries. 5. Write schema-v2 `monica.manifest.json` from [manifest-schema.md](references/manifest-schema.md), then run: ```bash python scripts/scaffold_repository.py --manifest <manifest.json> --output <repository-directory> ``` 6. Implement the real capability. Do not publish scaffold shells, fake providers, placeholder services, TODO behavior, or sample secrets. OCI declarations generate the deterministic Bake contract and directory only; implement every declared Dockerfile before validation. 7. Add sociable tests at the smallest honest boundary. Prove package references, module composition, provider selection, localization, and UI integration through real host composition. 8. Validate source, package metadata, and optional OCI targets: ```bash python scripts/validate_repository.py --root <repository-directory> python scripts/validate_localization.py --root <repository-directory> --strict # UI only python scripts/validate_oci.py --root <repository-directory> # OCI only ``` 9. Restore the exact declared Monica NuGet version, then build, test, and pack sequentially using paths understood by the selected SDK. Do not replace Monica package references with local source-project switches. The repository validator rejects any `Monica.*` `PackageReference` whose resolved version differs from `monicaVersion`. 10. Inspect the exact release artifact set and consume every package entry point from a clean local feed: ```bash python scripts/inspect_packages.py --root . --artifacts artifacts python scripts/inspect_images.py --root . # after local image builds ``` 11. For NVIDIA targets, run an actual `docker run --gpus ...` recognition smoke test. Building a CUDA-tagged image or running `nvidia-smi` alone does not prove provider execution. 12. Read [publishing.md](references/publishing.md), validate an immutable effective version, and publish only after all NuGet and OCI artifacts pass together. ## Repository and dependency rules - Use manifest `schemaVersion: 2`; keep package ecosystem tags at `monica-ecosystem-v1`. - Give every package exactly one packable project at `src/<PackageId>/<PackageId>.csproj`. - Keep `PackageId`, project name, assembly name, and root namespace identical. - Declare the NuGet graph through package `packageDependencies` using full package IDs. - Preserve declared package/module casing in the repository contract. The scaffold resolves case-insensitive dependency input to the owning declaration before emitting Linux-sensitive paths. - Declare the repository distribution graph through module `dependsOn` using full manifest ecosystem keys. The scaffold resolves those keys to concrete CLR module and option types in `Describe(ModuleDescriptor)`; runtime identity is always the module `Type`. - Back every cross-package module dependency with a package dependency. - Use `kind: provider` plus `providerFor` for a module implementing `IModuleProvider`; include the target manifest key in `dependsOn`, return the target CLR type from `ProvidesFor`, and declare the hard runtime edge in `Describe`. - Never embed a sibling package assembly to avoid a dependency. The packed-artifact inspector rejects this. - Keep one aligned manifest version for all NuGet and OCI artifacts in a repository release. ## Identity and navigation - Reserve `Monica.*` and the purple Monica logo for first-party packages. - Name third-party packages `<Publisher>.Monica.<Package>[.<Variant>]` with dot-separated ASCII letter-or-digit segments and at most 100 characters. - Keep all packages in one repository under the same publisher segment. - Put package-owned module types and registration extensions in `<PackageId>.Modules`. Cross-package dependencies use fully qualified concrete module and option types; Monica-owned modules remain in `Monica.Modules`. - Make every manifest module key equal its owning package ID or start with `<PackageId>.`. - Use a final `.UI` package/key segment for a separately distributed UI package. - Derive a UI category ID by removing only the UI module's manifest ecosystem key final `.UI` segment. Implement `IUIModule`; do not infer UI runtime identity from the key suffix. - Contribute each UI category and its pages through one `ModuleShellUIOption.ConfigureNavigation` callback in `Describe`, and contribute the module-owned resource marker to `ModuleLocalizationOption` there as well. - Derive public routes from the package family without `<Publisher>.Monica.` or a distribution-only final `.UI`: `Tairitsua.Monica.GachaPool` uses `/gacha-pool`; `Tairitsua.Monica.AI.OCR.UI` uses `/ai-ocr`. - Keep public routes under the package-family prefix; the host route namespace is shared and duplicate normalized routes fail fast. ## OCI contract - Model one OCI repository once and list its CPU/GPU variants as bake targets; do not create a second repository merely for acceleration. - Make every OCI image name one connector package that owns a `kind: provider` module through `companionPackageId`. - Keep context, Dockerfile, runtime stage, platform, accelerator, and tag suffix explicit. - Derive immutable tags as `<manifest-version>-<tag-suffix>`. - Use one Dockerfile DAG so targets share base, dependency, application, and model layers before diverging into CPU/NVIDIA runtime stages. - Pin base images and dependency/model inputs. Run as non-root, declare a health check, and emit OCI version/source/revision plus Monica companion-package/accelerator labels. - Make NVIDIA images fail fast when GPU execution is requested but unavailable unless the product explicitly documents CPU fallback. - Add `releaseGates` only after provider-specific CPU/NVIDIA smoke scripts exist. Every CPU target requires `cpuSmokeCommand`; every NVIDIA target requires `nvidiaSmokeCommand` plus shared `managedNvidiaRunnerLabels` containing `self-hosted` and `nvidia`. - Treat missing release gates as fail-closed: the scaffold omits the entire publish workflow for a release unit containing OCI images. With complete gates, it loads and inspects every image and runs meaningful CPU/NVIDIA provider inference before registry login or any artifact push. ## Branding and licensing - Copy the canonical emerald compatibility assets unchanged or use a publisher-owned icon. - As optional open-source README presentation guidance, prefer a centered project logo at the top, a centered badge row immediately beneath it, and then a centered language selector before the introduction; keep this ordering consistent across localized READMEs. For UI-bearing packages, also consider representative desktop and narrow-width demo screenshots near the overview. - Add the open-source badge only when `license.openSource=true` and a NuGet SPDX expression is declared. - Include the compatibility self-attestation and independence notice when using the mark. - Never claim official, certified, verified, endorsed, or supported status. - Let the publisher choose open-source, proprietary, dual, free, or paid distribution. Read [licensing-and-commercial-use.md](references/licensing-and-commercial-use.md) for nonstandard licensing or restricted feeds. ## Completion gate Do not describe a repository as ready until all applicable checks pass: - manifest-to-project and project-to-package bijection - package, assembly, namespace, manifest-key, concrete module `Type`, module/provider, and dependency-graph alignment - exact manifest-declared Monica NuGet restore with no version drift or local source override - XML documentation and zero warnings for restore/build/test/pack - synchronized `zh-CN`/`en-US`, theme-token, responsive, bridge, and browser checks for UI packages - exact `.nupkg`/`.snupkg` set, internal nuspec dependencies, README/icon/license/symbol metadata, and clean consumers - no sibling assemblies, secrets, machine paths, or source-project references in packages - exact Bake targets and `group.default`, image platform/labels, non-root user, health check, CPU smoke, and real GPU OCR smoke for OCI releases - prerelease extension version whenever any Monica dependency is prerelease
From Tairitsua/Monica, MIT.
More from Tairitsua/Monica
- 0.639score
monica-application-unit-testing
Tairitsua
Apply Monica application testing rules when creating, refactoring, or reviewing behavior tests, host scenarios, persistence isolation, and provider seams.
SkillAFreshness: A★ 14Claude Code +9 - 0.639score
monica-guide
Tairitsua
Explain, bootstrap, configure, diagnose, update, and route the Monica toolbox, including application specification loading, extension/framework work, skill…
SkillAFreshness: A★ 14Claude Code +9 - 0.639score
monica-infra-ui
Tairitsua
Register and use Monica Blazor UI modules, the shell, icons, Markdown viewer, themes, navigation, and localization in a host.
SkillAFreshness: A★ 14Claude Code +9 - 0.639score
monica-application-project-unit-development
Tairitsua
Apply Monica application unit rules when implementing, refactoring, or reviewing handlers, entities, repositories, events, jobs, seeders, host services, CRUD…
SkillAFreshness: A★ 14Claude Code +9 - 0.639score
monica-unit-testing
Tairitsua
Create, migrate, or review Monica framework tests and shared testing infrastructure, including host-owned scenarios, raw ProjectUnit fixtures, Roslyn…
SkillAFreshness: A★ 14Claude Code +9 - 0.639score
monica-application
Tairitsua
Apply the shared Monica application specification and the repository's project specification before designing, implementing, refactoring, or reviewing a…
SkillAFreshness: A★ 14Claude Code +9 - 0.637score
monica-infra-jobs
Tairitsua
Use when adding Monica JobScheduler recurring or triggered jobs, choosing its store and scope, or configuring startup seeders and their readiness behavior.
SkillAFreshness: A★ 14Claude Code +9 - 0.637score
monica-infra-persistence
Tairitsua
Use when integrating Monica Repository, UnitOfWork, transactional domain events, outbox, or inbox in an application, diagnosing save and commit behavior, or…
SkillAFreshness: A★ 14Claude Code +9 - 0.637score
monica-infra-configuration
Tairitsua
Use when integrating Monica managed configuration, bootstrap input plans, file or EF Core stores, pure object validation, observed options diagnostics…
SkillAFreshness: A★ 14Claude Code +9 - 0.637score
monica-infra-messaging
Tairitsua
Use when integrating Monica EventBus, RPC clients, DataChannel pipelines, or SignalR hubs and diagnosing their transport, delivery, and provider configuration.
SkillAFreshness: A★ 14Claude Code +9 - 0.637score
monica-infra-ai
Tairitsua
Configure and use Monica AI providers, chat, knowledge bases, RAG, runtime skills, and MCP in an application.
SkillAFreshness: A★ 14Claude Code +9 - 0.635score
monica-ui-development
Tairitsua
Implement Monica Blazor and MudBlazor v9 components, pages, themes, CSS isolation, local assets, browser storage, and async component lifecycle.
SkillAFreshness: A★ 14Claude Code +9
Signals
- Stars
- 14
- Forks
- 7
- Open issues
- 0
- Last commit (this folder)
- Sep 24, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Tairitsua/Monica
- Website
- monica.dpdns.org/
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Tairitsua
- 0.639score
monica-guide
Tairitsua
Explain, bootstrap, configure, diagnose, update, and route the Monica toolbox, including application specification loading, extension/framework work, skill…
SkillAFreshness: A★ 14Claude Code +9 - 0.639score
monica-application
Tairitsua
Apply the shared Monica application specification and the repository's project specification before designing, implementing, refactoring, or reviewing a…
SkillAFreshness: A★ 14Claude Code +9 - 0.639score
monica-unit-testing
Tairitsua
Create, migrate, or review Monica framework tests and shared testing infrastructure, including host-owned scenarios, raw ProjectUnit fixtures, Roslyn…
SkillAFreshness: A★ 14Claude Code +9 - 0.639score
monica-application-unit-testing
Tairitsua
Apply Monica application testing rules when creating, refactoring, or reviewing behavior tests, host scenarios, persistence isolation, and provider seams.
SkillAFreshness: A★ 14Claude Code +9 - 0.639score
monica-application-project-unit-development
Tairitsua
Apply Monica application unit rules when implementing, refactoring, or reviewing handlers, entities, repositories, events, jobs, seeders, host services, CRUD…
SkillAFreshness: A★ 14Claude Code +9 - 0.639score
monica-infra-ui
Tairitsua
Register and use Monica Blazor UI modules, the shell, icons, Markdown viewer, themes, navigation, and localization in a host.
SkillAFreshness: A★ 14Claude Code +9
Cite this page
monica-third-party-module-development skill. Agent Mart. https://agentmart.dev/skills/tairitsua-monica-third-party-module-development (last updated 2026-10-24)