skills/design-patterns/behaviorals/pattern-template-method/SKILL.md
Teaches and applies the Template Method behavioral design pattern — defining the skeleton of an algorithm in a superclass while letting subclasses override specific steps. Trigger: When defining invariant algorithm structure with customizable steps in subclasses.
npx skillsauth add johnnystefan/test-saas-business pattern-template-methodInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Defines the skeleton of an algorithm in a superclass but lets subclasses override specific steps of the algorithm without changing its structure.
abstract class DataMiner {
public mine() {
// Template Method
this.openFile();
this.extractData();
this.closeFile();
}
abstract openFile(): void;
abstract extractData(): void;
closeFile() {
console.log('File closed.');
} // Default impl
}
class PDFMiner extends DataMiner {
openFile() {
console.log('Opening PDF...');
}
extractData() {
console.log('Extracting PDF content...');
}
}
tools
Zustand 5 state management patterns. Trigger: When implementing client-side state with Zustand (stores, selectors, persist middleware, slices).
databases
Zod 4 schema validation patterns. Trigger: When creating or updating Zod v4 schemas for validation/parsing (forms, request payloads, adapters), including v3 -> v4 migration patterns.
development
Vitest unit testing patterns with React Testing Library. Trigger: When writing unit tests for React components, hooks, or utilities.
tools
Vite 8 (Rolldown-powered) build tool configuration, plugin API, SSR, and migration guide. Trigger: When working with vite.config.ts, Vite plugins, building libraries, or SSR apps with Vite.