From skills
Guides maintainability-first cleanup, refactoring, and code review in strict TypeScript repos and monorepos. Use for improving code health, deleting dead code, reducing duplication, and enforcing boundaries.
npx claudepluginhub miguelspizza/skills --plugin skillsThis skill uses the workspace's default tool permissions.
Use this skill when the project needs maintainability doctrine, not just local code changes.
README.mdassets/tooling-templates/ast-grep/no-as-any.ymlassets/tooling-templates/ast-grep/no-ts-ignore.ymlassets/tooling-templates/sgconfig.ymldoctrine/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/split-by-stable-seam.mddoctrine/abstractions/ssot-or-die.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.mdGuides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Processes PDFs: extracts text/tables/images, merges/splits/rotates pages, adds watermarks, creates/fills forms, encrypts/decrypts, OCRs scans. Activates on PDF mentions or output requests.
Share bugs, ideas, or general feedback.
Use this skill when the project needs maintainability doctrine, not just local code changes.
doctrine/ contains the portable rules and supporting guidance that should hold across strict TypeScript repos.stack/ contains stack-specific doctrine for the opinionated Vite+ / Drizzle / oRPC / Cloudflare setup.prompts/ contains reusable prompt text for cleanup and review tasks when you need to steer another model away from wrapper-heavy refactors.scripts/ contains runnable TypeScript-repo audit helpers for dead code, duplicate code, and import-boundary problems in the current project.assets/tooling-templates/ contains copyable config templates for target repos.Do not read the whole skill directory by default.
Default portable backbone:
doctrine/foundations/maintainability-equals-correctness.mddoctrine/abstractions/ssot-or-die.mddoctrine/testing/integration-first-testing.mddoctrine/testing/external-boundary-mocks-only.mddoctrine/testing/assert-observable-outcomes.mdIf the repo matches the house stack, read stack/start-here.md before any stack-specific files.
Use the smallest relevant set.
doctrine/foundations/maintainability-equals-correctness.mddoctrine/foundations/write-for-the-agent-era.mddoctrine/deletion/clean-up-what-you-touch.mddoctrine/deletion/delete-obsolete-code.mddoctrine/deletion/no-backwards-compat-shims.mddoctrine/deletion/delete-fake-layers.mddoctrine/deletion/edit-real-owners.mddoctrine/abstractions/split-by-stable-seam.mddoctrine/foundations/your-pattern-will-be-copied.mdprompts/cleanup-module-rewrite.md or prompts/review-structural-slop.mddoctrine/abstractions/split-by-stable-seam.mddoctrine/deletion/delete-fake-layers.mddoctrine/packages/monorepo-package-boundaries.mddoctrine/foundations/treat-critical-code-like-a-library.mddoctrine/foundations/naming-is-navigation.mddoctrine/packages/no-re-exports.mddoctrine/packages/no-barrel-exports.mddoctrine/abstractions/ssot-or-die.mdstack/design-openapi-for-inference.mdstack/errors-are-schema.mdstack/document-fields-in-derived-zod-schemas.mdstack/use-canonical-named-types.mddoctrine/abstractions/ssot-or-die.mdstack/jsdoc-with-first-party-sources.mdstack/no-magic-values.mdstack/use-branded-scalar-types.mdstack/use-canonical-named-types.mddoctrine/testing/integration-first-testing.mddoctrine/testing/external-boundary-mocks-only.mddoctrine/testing/contract-gate-synthetic-fixtures.mddoctrine/testing/assert-observable-outcomes.mddoctrine/testing/test-ai-apps-by-artifacts-not-prose.mddoctrine/foundations/treat-critical-code-like-a-library.mddoctrine/boundaries/no-type-casts.mddoctrine/boundaries/boundaries-validate-internals-trust.mdstack/do-not-synchronize-state-with-useeffect.mddoctrine/testing/external-boundary-mocks-only.mddoctrine/testing/contract-gate-synthetic-fixtures.mdstack/use-the-design-system-not-ad-hoc-tailwind.mdstack/test-react-apps-in-real-browsers.mdstack/stack-overview.mdstack/catalog-dependencies.mdstack/schema-migrations-are-generated.mddoctrine/packages/use-mature-dependencies-dont-roll-your-own.mddoctrine/tooling/maintainability-tooling.mdWhen the task is cleanup or review, resolve the skill directory first and then run:
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.