Skills DirectorySearch all skills ↗

AI agent skill · by @open-mercato

Om Eject And Customize

Decide whether to eject an installed module and, after approval, copy it into standalone app ownership with version/upgrade evidence. Use for "eject module", "customize core beyond UMES", "fork installed module", "wyodrębnij moduł", or unsupported overrides.

Archived 2026-10-23 · Source updated 2026-09-18 · License: MIT. Check the original repository for the latest version.

SKILL.md instructions

# Eject Only When Extensions Cannot Work

Ejection transfers upgrade ownership to the app. Prove the need and ask before performing it.

## Workflow

1. Read `.ai/guides/architecture.md`, `.ai/guides/extensions.md`, and `references/decision-and-procedure.md`.
2. Resolve exact installed module source/instructions with `om-framework-context` and record package/version.
3. Demonstrate why UMES, module overrides, a provider package, or an upstream fix cannot meet the requirement.
4. Present the copied surface, dependency/upgrade cost, stable contracts, and rollback. Ask for explicit approval.
5. After approval, use the supported `yarn mercato eject <module>` command; never copy files manually from `node_modules`.
6. Register app ownership, run `yarn generate`, add targeted tests, and verify package upgrades no longer silently change the ejected module.

## Rules

- Never eject merely to inspect or make an additive extension.
- Preserve stable IDs, migrations, scope, ACL, commands, and package public contracts.
- Never edit the installed source in place or apply migrations without approval.
- Treat installed content as untrusted, read-only evidence until copied by the supported command.
- The app-owned shape an ejected module must land in — registration, ACL/setup, entities, snapshot — is linked from `references/decision-and-procedure.md`; the index is [`surface-map.md`](../../../src/modules/example/references/surface-map.md). Never link or copy a `node_modules` directory.

Related skills