diff --git a/src/mutator/base.ts b/src/mutator/base.ts new file mode 100644 index 0000000..5cd6e11 --- /dev/null +++ b/src/mutator/base.ts @@ -0,0 +1,11 @@ +export abstract class Mutator { + /** + * Override to add guard conditions. Called before {@link execute}. + * Defaults to `true` — the mutator always runs. + */ + async shouldExecute(): Promise { + return true; + } + + abstract execute(): Promise; +} diff --git a/src/mutator/types.ts b/src/mutator/types.ts new file mode 100644 index 0000000..7e0e74f --- /dev/null +++ b/src/mutator/types.ts @@ -0,0 +1,8 @@ +export type MutatorName = + | "npm" + | "claude" + | "locker" + | "branch" + | "repository" + | "ssh" + | "ssm";