Skip to main content
ooneex design:remove deletes a design module you no longer need. It does not just remove the folder — it unwires the module from the rest of the workspace first, so you are not left with broken imports or dangling config. It removes any leftover references in AppModule and SharedModule, deletes the path alias from the root tsconfig.json, drops the module scope from the commitlint config, and only then deletes the modules/<kebab-name>/ directory. The command is deliberately narrow: it only removes modules whose <name>.yml declares type: "design". Pointing it at a regular module is rejected with an error, and the core app and shared modules are protected and cannot be removed. A name that does not match any module is reported as an error too.

Command

ooneex design:remove [options]
If you run it without --name, you are prompted for the design module to remove. Unless you pass --silent, you are asked to confirm before anything is deleted.

Examples

# Interactive: prompts for the module name, then asks you to confirm
ooneex design:remove
# Remove the "ui" design module
ooneex design:remove --name=ui
The name is normalized to PascalCase with a trailing Module stripped, and the folder on disk uses kebab-case — so --name=ui, --name=Ui, and --name=UiModule all target the same modules/ui/ directory.

Options

OptionDescriptionDefault
--nameName of the design module to remove.Prompted if omitted
--cwdWorking directory the command runs in.Current directory
--silentSkip prompts, confirmation, and log output.false
This is destructive. The command deletes the entire modules/<name>/ directory — every controller, service, component, and test inside it — and there is no undo. Commit or branch your work first so the removal is reversible through git.Only modules with type: "design" in their yml config can be removed. The core app and shared modules are protected and cannot be removed. Unless you pass --silent, you are asked to confirm before deletion.

What gets cleaned up

Removing a design module touches more than the module folder. In order, the command:
  • Removes any leftover references to the module in AppModule.
  • Removes any leftover references to the module in SharedModule.
  • Deletes the module’s path alias from the root tsconfig.json.
  • Removes the module’s scope from the commitlint config.
  • Deletes the modules/<kebab-name>/ directory.
After it finishes, no imports, aliases, or commit scopes point at the removed module — the workspace is in a consistent state.

Use with Claude and Codex

The remover ships a matching design:remove skill, so your AI agent can run the same cleanup from a natural-language request — confirming the target module, running the command, and reporting what was removed. Initialize the skills once for your agent:
ooneex claude:init
Then ask Claude in natural language — it maps the request to the remover and runs it:
Prompt
Remove the "ui" design module from this project.