# 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.

- Skill: `open-mercato/om-eject-and-customize` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add open-mercato/om-eject-and-customize`
- Raw SKILL.md: https://api.skillmd.com/api/skills/open-mercato/om-eject-and-customize/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: open-mercato (https://skillmd.com/u/open-mercato)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/open-mercato/om-eject-and-customize

---


# 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.

