gof-facade
Installation
SKILL.md
One-line summary
Provide a unified, simplified interface to a set of interfaces in a subsystem — making the subsystem easier to use without preventing direct access for power users.
When to use this skill
- A subsystem has many parts and most callers only want a small, common combination of operations on them.
- Onboarding new code into a complex codebase — Facade gives the new code one clean entry point.
- Wrapping a legacy or third-party library whose internal complexity should not leak everywhere.
- The canonical example: a "watch a movie" facade that turns on the TV, dims the lights, lowers the screen, switches the receiver to the right input, queues the popcorn maker, and starts the DVD — instead of having every caller orchestrate those steps.
When NOT to use this skill
- You're trying to replace the subsystem rather than offer a simpler entry point — that's a refactor of the subsystem.
- You're trying to change the interface of a single class — that's
gof-adapter. - The subsystem is genuinely small and a Facade would only add a layer of indirection.
- Callers actually need the full control the subsystem offers; a Facade that hides too much forces them to bypass it.