From skills
Guides maintainability-first cleanup, refactoring, and review in strict TypeScript repos and monorepos. Use when improving code health, deleting dead code, reducing duplication, or enforcing boundaries.
How this skill is triggered — by the user, by Claude, or both
Slash command
/skills:maintainable-typescriptThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill when the project needs maintainability doctrine, not just local code changes.
README.mddoctrine/abstractions/build-deep-modules-not-shallow-abstractions.mddoctrine/abstractions/compose-behavior-do-not-specialize-classes.mddoctrine/abstractions/design-around-composable-primitives.mddoctrine/abstractions/keep-a-functional-core-and-imperative-shell.mddoctrine/abstractions/keep-schemas-minimal.mddoctrine/abstractions/make-builders-earn-their-keep.mddoctrine/abstractions/no-premature-abstractions.mddoctrine/abstractions/ssot-or-die.mddoctrine/abstractions/structure-typescript-apps-around-feature-owners.mddoctrine/abstractions/use-classes-for-object-apis-not-service-buckets.mddoctrine/boundaries/assign-cache-invalidation-owners.mddoctrine/boundaries/boundaries-validate-internals-trust.mddoctrine/boundaries/error-messages-are-ux.mddoctrine/boundaries/log-at-boundaries-not-everywhere.mddoctrine/boundaries/no-defensive-catches.mddoctrine/boundaries/no-defensive-null-checks.mddoctrine/boundaries/no-type-casts.mddoctrine/boundaries/pass-values-across-boundaries.mddoctrine/deletion/clean-up-what-you-touch.mdUse this skill when the project needs maintainability doctrine, not just local code changes.
Do not read the whole skill directory by default.
stack/start-here.md.doctrine/, stack/, prompts/, scripts/, and assets/tooling-templates/ as references, not required context.Use the fallow skill for Fallow config, commands, JSON output, fixes, CI gates, and result interpretation. If missing:
npx skills add https://github.com/fallow-rs/fallow/tree/main/npm/fallow/skills/fallow --skill fallow
maintainability-equals-correctness, resolve-uncertainty-into-contracts, ssot-or-die, integration-first-testing, external-boundary-mocks-only, assert-observable-outcomesclean-up-what-you-touch, delete-obsolete-code, no-backwards-compat-shims, delete-fake-layers, edit-real-owners, build-deep-modules-not-shallow-abstractions, cleanup-module-rewrite, review-structural-slopstructure-typescript-apps-around-feature-owners, monorepo-package-boundaries, treat-critical-code-like-a-library, naming-is-navigation, no-re-exports, no-barrel-exportsstack-overview, design-openapi-for-inference, errors-are-schema, document-fields-in-derived-zod-schemas, use-canonical-named-types, jsdoc-with-first-party-sources, no-magic-values, use-branded-scalar-typescontract-gate-synthetic-fixtures, test-ai-apps-by-artifacts-not-prose, no-type-casts, boundaries-validate-internals-trust, do-not-synchronize-state-with-useeffect, use-the-design-system-not-ad-hoc-tailwind, test-react-apps-in-real-browsers, maintainability-toolingFor cleanup or review:
skill_dir="<path-to-this-skill>"
bash "$skill_dir/scripts/audit-typescript-repo.sh" .
Treat audit output as signal, not authority. Check real usage before deleting API surface or collapsing a pattern.
If the target repo is Vite+, use vp for the normal toolchain entrypoint: vp lint, vp test, vp fmt, vp pack, vp add, and vp dlx.
npx claudepluginhub miguelspizza/skills --plugin skillsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.