@xonovex/skills 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +21 -0
- package/commands/code-align.md +108 -0
- package/commands/code-harden.md +74 -0
- package/commands/code-simplify.md +145 -0
- package/commands/git-commit.md +146 -0
- package/commands/insights-extract.md +109 -0
- package/commands/insights-integrate.md +100 -0
- package/commands/plan-continue.md +167 -0
- package/commands/plan-create.md +107 -0
- package/commands/plan-research.md +113 -0
- package/commands/plan-subplans-create.md +111 -0
- package/commands/plan-tdd-create.md +128 -0
- package/commands/plan-update.md +99 -0
- package/commands/plan-validate.md +100 -0
- package/commands/plan-worktree-abandon.md +104 -0
- package/commands/plan-worktree-create.md +92 -0
- package/commands/plan-worktree-merge.md +132 -0
- package/package.json +44 -0
- package/skills/astro-guidelines/SKILL.md +23 -0
- package/skills/astro-guidelines/reference/accessibility.md +31 -0
- package/skills/astro-guidelines/reference/components.md +42 -0
- package/skills/astro-guidelines/reference/content-collections.md +32 -0
- package/skills/astro-guidelines/reference/islands-architecture.md +26 -0
- package/skills/astro-guidelines/reference/project-structure.md +32 -0
- package/skills/c99-game-opinionated-guidelines/SKILL.md +43 -0
- package/skills/c99-game-opinionated-guidelines/reference/builder-pattern.md +29 -0
- package/skills/c99-game-opinionated-guidelines/reference/coordinate-system.md +27 -0
- package/skills/c99-game-opinionated-guidelines/reference/geometry-pipeline.md +29 -0
- package/skills/c99-game-opinionated-guidelines/reference/math-types.md +31 -0
- package/skills/c99-game-opinionated-guidelines/reference/mesh-types.md +32 -0
- package/skills/c99-game-opinionated-guidelines/reference/physics-patterns.md +28 -0
- package/skills/c99-game-opinionated-guidelines/reference/spatial-structures.md +26 -0
- package/skills/c99-game-opinionated-guidelines/reference/tagged-unions.md +40 -0
- package/skills/c99-game-opinionated-guidelines/reference/vertex-packing.md +38 -0
- package/skills/c99-guidelines/SKILL.md +29 -0
- package/skills/c99-guidelines/reference/compound-literals.md +33 -0
- package/skills/c99-guidelines/reference/const-correctness.md +32 -0
- package/skills/c99-guidelines/reference/designated-initializers.md +32 -0
- package/skills/c99-guidelines/reference/error-handling.md +49 -0
- package/skills/c99-guidelines/reference/inline-functions.md +37 -0
- package/skills/c99-guidelines/reference/memory-management.md +35 -0
- package/skills/c99-opinionated-guidelines/SKILL.md +44 -0
- package/skills/c99-opinionated-guidelines/reference/alignment.md +50 -0
- package/skills/c99-opinionated-guidelines/reference/caller-owns-memory.md +38 -0
- package/skills/c99-opinionated-guidelines/reference/compound-literals.md +33 -0
- package/skills/c99-opinionated-guidelines/reference/const-correctness.md +32 -0
- package/skills/c99-opinionated-guidelines/reference/data-oriented-design.md +42 -0
- package/skills/c99-opinionated-guidelines/reference/designated-initializers.md +32 -0
- package/skills/c99-opinionated-guidelines/reference/error-handling.md +49 -0
- package/skills/c99-opinionated-guidelines/reference/file-naming.md +33 -0
- package/skills/c99-opinionated-guidelines/reference/implementation-variants.md +35 -0
- package/skills/c99-opinionated-guidelines/reference/inline-functions.md +37 -0
- package/skills/c99-opinionated-guidelines/reference/memory-management.md +35 -0
- package/skills/c99-opinionated-guidelines/reference/safety-validations.md +32 -0
- package/skills/c99-opinionated-guidelines/reference/testing-patterns.md +39 -0
- package/skills/cmake-guidelines/SKILL.md +31 -0
- package/skills/cmake-guidelines/reference/compile-options.md +34 -0
- package/skills/cmake-guidelines/reference/fetchcontent.md +32 -0
- package/skills/cmake-guidelines/reference/find-package.md +29 -0
- package/skills/cmake-guidelines/reference/generator-expressions.md +34 -0
- package/skills/cmake-guidelines/reference/installation.md +38 -0
- package/skills/cmake-guidelines/reference/project-structure.md +40 -0
- package/skills/cmake-guidelines/reference/target-types.md +37 -0
- package/skills/cmake-guidelines/reference/testing.md +30 -0
- package/skills/cmake-guidelines/reference/visibility-specifiers.md +32 -0
- package/skills/content-guidelines/SKILL.md +36 -0
- package/skills/content-guidelines/reference/humanize.md +30 -0
- package/skills/content-guidelines/reference/news.md +28 -0
- package/skills/content-guidelines/reference/travelguide.md +31 -0
- package/skills/docker-guidelines/SKILL.md +23 -0
- package/skills/docker-guidelines/reference/docker-compose.md +40 -0
- package/skills/docker-guidelines/reference/layer-caching.md +25 -0
- package/skills/docker-guidelines/reference/multi-stage-builds.md +37 -0
- package/skills/docker-guidelines/reference/production-config.md +32 -0
- package/skills/docker-guidelines/reference/security.md +27 -0
- package/skills/express.js-guidelines/SKILL.md +32 -0
- package/skills/express.js-guidelines/reference/app-setup.md +39 -0
- package/skills/express.js-guidelines/reference/authentication.md +39 -0
- package/skills/express.js-guidelines/reference/controllers.md +49 -0
- package/skills/express.js-guidelines/reference/error-handling.md +54 -0
- package/skills/express.js-guidelines/reference/project-structure.md +29 -0
- package/skills/express.js-guidelines/reference/responses.md +30 -0
- package/skills/express.js-guidelines/reference/routes.md +29 -0
- package/skills/express.js-guidelines/reference/testing.md +39 -0
- package/skills/express.js-guidelines/reference/validation.md +41 -0
- package/skills/general-fp-guidelines/SKILL.md +28 -0
- package/skills/general-oop-guidelines/SKILL.md +28 -0
- package/skills/git-guidelines/SKILL.md +46 -0
- package/skills/git-guidelines/reference/commit.md +32 -0
- package/skills/git-guidelines/reference/merge-resolve.md +38 -0
- package/skills/git-guidelines/reference/worktree-abandon.md +48 -0
- package/skills/git-guidelines/reference/worktree-cleanup.md +40 -0
- package/skills/git-guidelines/reference/worktree-commit.md +46 -0
- package/skills/git-guidelines/reference/worktree-create.md +42 -0
- package/skills/git-guidelines/reference/worktree-merge.md +45 -0
- package/skills/git-guidelines/reference/worktree-validate.md +44 -0
- package/skills/hono-guidelines/SKILL.md +49 -0
- package/skills/hono-guidelines/reference/application-structure.md +53 -0
- package/skills/hono-guidelines/reference/context-storage.md +46 -0
- package/skills/hono-guidelines/reference/cookie-handling.md +63 -0
- package/skills/hono-guidelines/reference/error-handling.md +69 -0
- package/skills/hono-guidelines/reference/middleware-combine.md +47 -0
- package/skills/hono-guidelines/reference/middleware-patterns.md +58 -0
- package/skills/hono-guidelines/reference/platform-runtime.md +41 -0
- package/skills/hono-guidelines/reference/security-middleware.md +60 -0
- package/skills/hono-guidelines/reference/validation-type-safety.md +43 -0
- package/skills/hono-guidelines/reference/websocket-support.md +59 -0
- package/skills/hono-opinionated-guidelines/SKILL.md +49 -0
- package/skills/hono-opinionated-guidelines/reference/application-structure.md +53 -0
- package/skills/hono-opinionated-guidelines/reference/body-limit.md +57 -0
- package/skills/hono-opinionated-guidelines/reference/context-storage.md +46 -0
- package/skills/hono-opinionated-guidelines/reference/controllers.md +38 -0
- package/skills/hono-opinionated-guidelines/reference/cookie-handling.md +63 -0
- package/skills/hono-opinionated-guidelines/reference/error-handling.md +69 -0
- package/skills/hono-opinionated-guidelines/reference/middleware-combine.md +47 -0
- package/skills/hono-opinionated-guidelines/reference/middleware-patterns.md +58 -0
- package/skills/hono-opinionated-guidelines/reference/openapi-explicit-status-codes.md +61 -0
- package/skills/hono-opinionated-guidelines/reference/openapi-inline-handlers.md +56 -0
- package/skills/hono-opinionated-guidelines/reference/openapi-router-hierarchy.md +64 -0
- package/skills/hono-opinionated-guidelines/reference/openapi-spec-generation.md +57 -0
- package/skills/hono-opinionated-guidelines/reference/platform-runtime.md +41 -0
- package/skills/hono-opinionated-guidelines/reference/router-selection.md +34 -0
- package/skills/hono-opinionated-guidelines/reference/security-middleware.md +60 -0
- package/skills/hono-opinionated-guidelines/reference/validation-type-safety.md +43 -0
- package/skills/hono-opinionated-guidelines/reference/websocket-support.md +59 -0
- package/skills/insights-guidelines/SKILL.md +28 -0
- package/skills/insights-guidelines/reference/insights-extract.md +31 -0
- package/skills/insights-guidelines/reference/insights-integrate.md +35 -0
- package/skills/instruction-guidelines/SKILL.md +26 -0
- package/skills/instruction-guidelines/reference/assimilate.md +38 -0
- package/skills/instruction-guidelines/reference/simplify.md +46 -0
- package/skills/instruction-guidelines/reference/sync.md +41 -0
- package/skills/kubernetes-guidelines/SKILL.md +28 -0
- package/skills/kubernetes-guidelines/reference/configmaps-secrets.md +34 -0
- package/skills/kubernetes-guidelines/reference/deployments.md +55 -0
- package/skills/kubernetes-guidelines/reference/kustomize.md +41 -0
- package/skills/kubernetes-guidelines/reference/network-policies.md +53 -0
- package/skills/kubernetes-guidelines/reference/services.md +36 -0
- package/skills/kubernetes-guidelines/reference/validation.md +32 -0
- package/skills/lua-guidelines/SKILL.md +29 -0
- package/skills/lua-guidelines/reference/coroutines.md +66 -0
- package/skills/lua-guidelines/reference/error-handling.md +41 -0
- package/skills/lua-guidelines/reference/idiomatic-patterns.md +40 -0
- package/skills/lua-guidelines/reference/input-validation.md +42 -0
- package/skills/lua-guidelines/reference/local-variables.md +33 -0
- package/skills/lua-guidelines/reference/metatables.md +52 -0
- package/skills/lua-guidelines/reference/module-pattern.md +37 -0
- package/skills/lua-guidelines/reference/string-concatenation.md +31 -0
- package/skills/lua-opinionated-guidelines/SKILL.md +32 -0
- package/skills/lua-opinionated-guidelines/reference/cache-lookups.md +43 -0
- package/skills/lua-opinionated-guidelines/reference/coroutines.md +66 -0
- package/skills/lua-opinionated-guidelines/reference/error-handling.md +41 -0
- package/skills/lua-opinionated-guidelines/reference/idiomatic-patterns.md +40 -0
- package/skills/lua-opinionated-guidelines/reference/input-validation.md +42 -0
- package/skills/lua-opinionated-guidelines/reference/jit-friendly-tables.md +57 -0
- package/skills/lua-opinionated-guidelines/reference/local-variables.md +33 -0
- package/skills/lua-opinionated-guidelines/reference/metatables.md +52 -0
- package/skills/lua-opinionated-guidelines/reference/module-pattern.md +37 -0
- package/skills/lua-opinionated-guidelines/reference/string-concatenation.md +31 -0
- package/skills/moon-guidelines/SKILL.md +30 -0
- package/skills/moon-guidelines/reference/docker-multistage.md +42 -0
- package/skills/moon-guidelines/reference/project-constraints.md +25 -0
- package/skills/moon-guidelines/reference/query-language.md +27 -0
- package/skills/moon-guidelines/reference/tag-based-filtering.md +28 -0
- package/skills/moon-guidelines/reference/task-configuration.md +38 -0
- package/skills/moon-guidelines/reference/task-inheritance.md +30 -0
- package/skills/motion-react-guidelines/SKILL.md +66 -0
- package/skills/motion-react-guidelines/reference/3d-effects.md +35 -0
- package/skills/motion-react-guidelines/reference/entrance.md +36 -0
- package/skills/motion-react-guidelines/reference/exit.md +35 -0
- package/skills/motion-react-guidelines/reference/gestures.md +23 -0
- package/skills/motion-react-guidelines/reference/layout.md +39 -0
- package/skills/motion-react-guidelines/reference/motion-values.md +33 -0
- package/skills/motion-react-guidelines/reference/performance.md +32 -0
- package/skills/motion-react-guidelines/reference/scroll.md +38 -0
- package/skills/motion-react-guidelines/reference/spring-physics.md +40 -0
- package/skills/motion-react-guidelines/reference/stagger.md +34 -0
- package/skills/motion-react-guidelines/reference/svg-path.md +33 -0
- package/skills/motion-react-guidelines/reference/text-effects.md +39 -0
- package/skills/plan-guidelines/SKILL.md +56 -0
- package/skills/plan-guidelines/reference/code-align.md +23 -0
- package/skills/plan-guidelines/reference/code-barrels-remove.md +24 -0
- package/skills/plan-guidelines/reference/code-comments-remove.md +28 -0
- package/skills/plan-guidelines/reference/code-harden.md +30 -0
- package/skills/plan-guidelines/reference/code-shared-extract.md +25 -0
- package/skills/plan-guidelines/reference/code-simplify.md +33 -0
- package/skills/plan-guidelines/reference/code-template-extract.md +34 -0
- package/skills/plan-guidelines/reference/code-template-scaffold.md +36 -0
- package/skills/plan-guidelines/reference/general-research.md +35 -0
- package/skills/plan-guidelines/reference/plan-create.md +37 -0
- package/skills/plan-guidelines/reference/plan-tdd-create.md +44 -0
- package/skills/plan-guidelines/reference/todos.md +39 -0
- package/skills/presentation-guidelines/SKILL.md +25 -0
- package/skills/presentation-guidelines/reference/presentation-create.md +41 -0
- package/skills/presentation-guidelines/reference/presentation-motion-scaffold.md +38 -0
- package/skills/python-guidelines/SKILL.md +32 -0
- package/skills/python-guidelines/reference/async-await-patterns.md +62 -0
- package/skills/python-guidelines/reference/caching-functions.md +47 -0
- package/skills/python-guidelines/reference/dataclasses-type-hints.md +63 -0
- package/skills/python-guidelines/reference/exception-handling.md +72 -0
- package/skills/python-guidelines/reference/generators-comprehensions.md +54 -0
- package/skills/python-guidelines/reference/pathlib-file-ops.md +60 -0
- package/skills/python-guidelines/reference/resource-management.md +58 -0
- package/skills/python-guidelines/reference/string-formatting.md +41 -0
- package/skills/python-guidelines/reference/type-checking.md +47 -0
- package/skills/react-guidelines/SKILL.md +105 -0
- package/skills/react-guidelines/reference/accessibility.md +31 -0
- package/skills/react-guidelines/reference/activity-effect-event.md +42 -0
- package/skills/react-guidelines/reference/component-design.md +57 -0
- package/skills/react-guidelines/reference/hooks.md +39 -0
- package/skills/react-guidelines/reference/migration-anti-patterns.md +33 -0
- package/skills/react-guidelines/reference/migration-deprecations.md +109 -0
- package/skills/react-guidelines/reference/migration-paradigm-shifts.md +33 -0
- package/skills/react-guidelines/reference/migration-typescript.md +95 -0
- package/skills/react-guidelines/reference/new-hooks.md +94 -0
- package/skills/react-guidelines/reference/performance-optimization.md +41 -0
- package/skills/react-guidelines/reference/react-compiler.md +34 -0
- package/skills/react-guidelines/reference/server-components.md +99 -0
- package/skills/react-guidelines/reference/state-management.md +72 -0
- package/skills/react-guidelines/reference/suspense-streaming.md +36 -0
- package/skills/remotion-guidelines/SKILL.md +67 -0
- package/skills/remotion-guidelines/reference/animations.md +121 -0
- package/skills/remotion-guidelines/reference/assets.md +21 -0
- package/skills/remotion-guidelines/reference/captions.md +33 -0
- package/skills/remotion-guidelines/reference/charts.md +35 -0
- package/skills/remotion-guidelines/reference/compositions.md +40 -0
- package/skills/remotion-guidelines/reference/dom-measurement.md +82 -0
- package/skills/remotion-guidelines/reference/gifs.md +33 -0
- package/skills/remotion-guidelines/reference/lottie.md +41 -0
- package/skills/remotion-guidelines/reference/maps.md +26 -0
- package/skills/remotion-guidelines/reference/media.md +39 -0
- package/skills/remotion-guidelines/reference/mediabunny.md +28 -0
- package/skills/remotion-guidelines/reference/sequencing.md +44 -0
- package/skills/remotion-guidelines/reference/text.md +24 -0
- package/skills/remotion-guidelines/reference/three-d.md +33 -0
- package/skills/remotion-guidelines/reference/timing.md +22 -0
- package/skills/remotion-guidelines/reference/transitions.md +52 -0
- package/skills/shell-scripting-guidelines/SKILL.md +31 -0
- package/skills/shell-scripting-guidelines/reference/argument-parsing.md +67 -0
- package/skills/shell-scripting-guidelines/reference/common-patterns.md +46 -0
- package/skills/shell-scripting-guidelines/reference/error-handling.md +62 -0
- package/skills/shell-scripting-guidelines/reference/functions.md +66 -0
- package/skills/shell-scripting-guidelines/reference/idempotency.md +57 -0
- package/skills/shell-scripting-guidelines/reference/parameter-expansion.md +38 -0
- package/skills/shell-scripting-guidelines/reference/posix-compatibility.md +53 -0
- package/skills/shell-scripting-guidelines/reference/quoting.md +42 -0
- package/skills/shell-scripting-guidelines/reference/script-template.md +70 -0
- package/skills/shell-scripting-guidelines/reference/strict-mode.md +41 -0
- package/skills/shell-scripting-guidelines/reference/validation.md +30 -0
- package/skills/skill-guidelines/SKILL.md +33 -0
- package/skills/skill-guidelines/reference/assimilate.md +51 -0
- package/skills/skill-guidelines/reference/create.md +48 -0
- package/skills/skill-guidelines/reference/extract.md +48 -0
- package/skills/skill-guidelines/reference/simplify.md +56 -0
- package/skills/sql-postgresql-guidelines/SKILL.md +31 -0
- package/skills/sql-postgresql-guidelines/reference/constraints.md +47 -0
- package/skills/sql-postgresql-guidelines/reference/cte-patterns.md +42 -0
- package/skills/sql-postgresql-guidelines/reference/data-types.md +46 -0
- package/skills/sql-postgresql-guidelines/reference/indexing.md +45 -0
- package/skills/sql-postgresql-guidelines/reference/jsonb.md +54 -0
- package/skills/sql-postgresql-guidelines/reference/performance.md +46 -0
- package/skills/sql-postgresql-guidelines/reference/role-based-access.md +47 -0
- package/skills/sql-postgresql-guidelines/reference/row-level-security.md +66 -0
- package/skills/strudel-guidelines/SKILL.md +52 -0
- package/skills/strudel-guidelines/reference/arrangement.md +24 -0
- package/skills/strudel-guidelines/reference/conditionals.md +22 -0
- package/skills/strudel-guidelines/reference/effects.md +22 -0
- package/skills/strudel-guidelines/reference/genre-ambient.md +26 -0
- package/skills/strudel-guidelines/reference/genre-harsh.md +21 -0
- package/skills/strudel-guidelines/reference/genre-trance.md +23 -0
- package/skills/strudel-guidelines/reference/layering.md +22 -0
- package/skills/strudel-guidelines/reference/mini-notation.md +74 -0
- package/skills/strudel-guidelines/reference/modulation.md +22 -0
- package/skills/strudel-guidelines/reference/scales-harmony.md +20 -0
- package/skills/strudel-guidelines/reference/sounds.md +89 -0
- package/skills/strudel-guidelines/reference/tempo-timing.md +23 -0
- package/skills/terraform-guidelines/SKILL.md +28 -0
- package/skills/terraform-guidelines/reference/advanced-patterns.md +88 -0
- package/skills/terraform-guidelines/reference/locals.md +53 -0
- package/skills/terraform-guidelines/reference/module-definition.md +81 -0
- package/skills/terraform-guidelines/reference/module-structure.md +51 -0
- package/skills/terraform-guidelines/reference/remote-state.md +38 -0
- package/skills/terraform-guidelines/reference/root-module.md +71 -0
- package/skills/terraform-guidelines/reference/typed-variables.md +90 -0
- package/skills/threejs-guidelines/SKILL.md +38 -0
- package/skills/threejs-guidelines/reference/animation.md +26 -0
- package/skills/threejs-guidelines/reference/cameras-controls.md +26 -0
- package/skills/threejs-guidelines/reference/geometry.md +22 -0
- package/skills/threejs-guidelines/reference/interaction.md +25 -0
- package/skills/threejs-guidelines/reference/lighting-shadows.md +31 -0
- package/skills/threejs-guidelines/reference/loaders.md +29 -0
- package/skills/threejs-guidelines/reference/materials.md +25 -0
- package/skills/threejs-guidelines/reference/math.md +27 -0
- package/skills/threejs-guidelines/reference/node-materials.md +32 -0
- package/skills/threejs-guidelines/reference/patterns.md +29 -0
- package/skills/threejs-guidelines/reference/performance.md +24 -0
- package/skills/threejs-guidelines/reference/physics-vr.md +36 -0
- package/skills/threejs-guidelines/reference/postprocessing.md +26 -0
- package/skills/threejs-guidelines/reference/scene-fundamentals.md +26 -0
- package/skills/threejs-guidelines/reference/shaders.md +28 -0
- package/skills/threejs-guidelines/reference/textures.md +21 -0
- package/skills/threejs-guidelines/reference/webgpu.md +34 -0
- package/skills/typescript-guidelines/SKILL.md +37 -0
- package/skills/typescript-guidelines/reference/async-without-await.md +32 -0
- package/skills/typescript-guidelines/reference/avoid-barrel-exports.md +25 -0
- package/skills/typescript-guidelines/reference/avoid-eslint-disable.md +28 -0
- package/skills/typescript-guidelines/reference/avoid-reexports.md +26 -0
- package/skills/typescript-guidelines/reference/env-access-bracket-notation.md +29 -0
- package/skills/typescript-guidelines/reference/numeric-separator-enforcement.md +30 -0
- package/skills/typescript-guidelines/reference/template-literals-require-string-conversion.md +26 -0
- package/skills/typescript-guidelines/reference/unbound-method-references.md +32 -0
- package/skills/typescript-guidelines/reference/unnecessary-async-keywords.md +37 -0
- package/skills/typescript-to-lua-guidelines/SKILL.md +33 -0
- package/skills/typescript-to-lua-guidelines/reference/avoiding-heavy-features.md +41 -0
- package/skills/typescript-to-lua-guidelines/reference/coroutine-patterns.md +49 -0
- package/skills/typescript-to-lua-guidelines/reference/function-patterns.md +59 -0
- package/skills/typescript-to-lua-guidelines/reference/lua-interop.md +49 -0
- package/skills/typescript-to-lua-guidelines/reference/module-organization.md +42 -0
- package/skills/typescript-to-lua-guidelines/reference/multi-return-functions.md +47 -0
- package/skills/typescript-to-lua-guidelines/reference/namespaces-vs-classes.md +52 -0
- package/skills/typescript-to-lua-guidelines/reference/performance-tips.md +68 -0
- package/skills/typescript-to-lua-guidelines/reference/stable-tables.md +60 -0
- package/skills/typescript-to-lua-guidelines/reference/tsconfig.md +46 -0
- package/skills/typescript-to-lua-guidelines/reference/tstl-decorators.md +61 -0
- package/skills/typescript-to-lua-guidelines/reference/type-safety.md +79 -0
- package/skills/vitest-guidelines/SKILL.md +32 -0
- package/skills/vitest-guidelines/reference/cors-preflight-status-code.md +34 -0
- package/skills/vitest-guidelines/reference/http-testing.md +57 -0
- package/skills/vitest-guidelines/reference/json-response-type-safety.md +40 -0
- package/skills/vitest-guidelines/reference/mock-patterns.md +53 -0
- package/skills/vitest-guidelines/reference/project-references-path-resolution.md +36 -0
- package/skills/vitest-guidelines/reference/test-organization.md +25 -0
- package/skills/vitest-guidelines/reference/timestamp-testing.md +55 -0
- package/skills/vitest-guidelines/reference/type-safety.md +55 -0
- package/skills/vitest-guidelines/reference/typescript-config.md +43 -0
- package/skills/zod-guidelines/SKILL.md +33 -0
- package/skills/zod-guidelines/reference/default-values-output-type.md +63 -0
- package/skills/zod-guidelines/reference/migration-string-validators.md +38 -0
- package/skills/zod-guidelines/reference/migration-v4.md +46 -0
- package/skills/zod-guidelines/reference/schema-organization.md +73 -0
- package/skills/zod-guidelines/reference/validation-patterns.md +37 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# code-harden: Identify Code Hardening Opportunities
|
|
2
|
+
|
|
3
|
+
**Guideline:** Analyze code for hardening focusing on type safety, validation, logging, and error handling.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Hardening improves reliability, debugging, and maintainability. Type safety catches bugs compile-time, validation prevents invalid states, logging aids debugging, and explicit error handling prevents silent failures.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
```typescript
|
|
9
|
+
// Before: Weak type safety, no validation
|
|
10
|
+
function processUser(data: any) {
|
|
11
|
+
return { id: data.id, email: data.email }
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// After: Strong types, validation, error handling
|
|
15
|
+
function processUser(data: unknown): Result<User, ValidationError> {
|
|
16
|
+
const parsed = userSchema.safeParse(data)
|
|
17
|
+
if (!parsed.success) return Err(parsed.error)
|
|
18
|
+
logger.info('Processing user', { id: parsed.data.id })
|
|
19
|
+
return Ok(parsed.data)
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Techniques:**
|
|
24
|
+
- Review project standards by reading CLAUDE.md, AGENTS.md, and style guides
|
|
25
|
+
- Scan for type safety issues: any types, implicit types, unchecked assertions
|
|
26
|
+
- Identify missing validation: unvalidated inputs, absent schema checks, missing guards
|
|
27
|
+
- Analyze error handling patterns: unhandled errors, swallowed exceptions, silent failures
|
|
28
|
+
- Detect logging gaps: missing context, inconsistent levels, inadequate debugging info
|
|
29
|
+
- Find code smells: long functions (>30 lines), deep nesting, complex branches
|
|
30
|
+
- Group issues by severity and category, prioritize by impact and fix effort
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# code-shared-extract: Identify Common Patterns for Shared Library Extraction
|
|
2
|
+
|
|
3
|
+
**Guideline:** Identify common code patterns across packages for extraction to shared libraries.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Duplicated code increases maintenance burden and inconsistency risks. Extracting to shared libraries promotes DRY, ensures consistent behavior, simplifies updates.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
```typescript
|
|
9
|
+
// Found in 3 packages: auth validation logic
|
|
10
|
+
// packages/api/src/utils/validateToken.ts
|
|
11
|
+
// packages/web/src/utils/validateToken.ts (duplicate!)
|
|
12
|
+
// packages/admin/src/utils/validateToken.ts (slight variation)
|
|
13
|
+
|
|
14
|
+
// Extract to: packages/shared-auth/src/validateToken.ts
|
|
15
|
+
export function validateToken(token: string): Result<Payload, Error>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
**Techniques:**
|
|
19
|
+
- Scan packages for repeated patterns: functions, components, hooks, middleware, types, constants
|
|
20
|
+
- Use semantic analysis to find similar logic even with different names
|
|
21
|
+
- Group patterns by similarity: identical code, equivalent logic, same interface
|
|
22
|
+
- Rank candidates by impact: occurrences × complexity × cross-package count
|
|
23
|
+
- Determine target: same-package `utils/`, cross-package `shared-*`, or new library
|
|
24
|
+
- Plan phased extraction with minimal breaking changes
|
|
25
|
+
- Validate extraction with typecheck, lint, and test suite
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# code-simplify: Analyze Code Complexity for Simplification
|
|
2
|
+
|
|
3
|
+
**Guideline:** Identify consolidation, dead code removal, and simplification opportunities.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Complexity accumulates through duplication and feature additions. Simplification reduces cognitive load, improves maintainability, and helps new contributors.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
```typescript
|
|
9
|
+
// Dead code: unused export
|
|
10
|
+
export interface LegacyUserType { name: string }
|
|
11
|
+
|
|
12
|
+
// Duplicate validation repeated 5 times
|
|
13
|
+
if (!email || !email.includes('@')) throw new Error()
|
|
14
|
+
if (!phone || !phone.match(/^\d{10}$/)) throw new Error()
|
|
15
|
+
|
|
16
|
+
// Over-engineered: single implementation
|
|
17
|
+
interface IUserValidation { validate(u: any): boolean }
|
|
18
|
+
class UserValidation implements IUserValidation { ... }
|
|
19
|
+
// Just use: function validateUser(u: User): boolean
|
|
20
|
+
|
|
21
|
+
// Large interface needing simplification
|
|
22
|
+
interface Config { host, port, ssl, timeout, retries, backoff, circuit, cache, ... }
|
|
23
|
+
// Split: { server: { host, port, ssl }, network: { timeout, retries } }
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Techniques:**
|
|
27
|
+
- Scan files and build signature index for duplicate detection
|
|
28
|
+
- Find copy-paste duplicates: identical functions, replicated logic (>10 lines)
|
|
29
|
+
- Identify dead code: uncalled functions, unreachable branches, unused exports
|
|
30
|
+
- Detect redundancy: repeated validation, duplicate utilities, hardcoded constants
|
|
31
|
+
- Find over-engineering: single-implementation interfaces, unnecessary wrapper classes
|
|
32
|
+
- Analyze large interfaces: >5 parameters, nested config, inconsistent signatures
|
|
33
|
+
- Group issues by severity, prioritize by impact, and plan phased removal
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# code-template-extract: Analyze Package for Template Extraction
|
|
2
|
+
|
|
3
|
+
**Guideline:** Analyze packages to identify core patterns for template extraction.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Templates enable rapid scaffolding while maintaining consistency. Extracting from proven implementations ensures new packages follow established patterns and best practices.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
```
|
|
9
|
+
Analyzing packages/api-auth (successful, reusable):
|
|
10
|
+
├── src/
|
|
11
|
+
│ ├── routes/index.ts
|
|
12
|
+
│ ├── middleware/auth.ts
|
|
13
|
+
│ ├── services/TokenService.ts
|
|
14
|
+
│ └── types/index.ts
|
|
15
|
+
├── tests/
|
|
16
|
+
├── Dockerfile
|
|
17
|
+
├── docker-compose.yml
|
|
18
|
+
└── moon.yml
|
|
19
|
+
|
|
20
|
+
Template parameters:
|
|
21
|
+
- {{PACKAGE_NAME}}: api-auth
|
|
22
|
+
- {{PORT}}: 3000
|
|
23
|
+
- {{DATABASE_URL}}: postgres://...
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Techniques:**
|
|
27
|
+
- Analyze successful package structure: directories, naming, organization patterns
|
|
28
|
+
- Document configuration templates: package.json, tsconfig.json, build settings
|
|
29
|
+
- Extract code patterns: common handlers, middleware, components, hooks
|
|
30
|
+
- Identify deployment setup: Dockerfile patterns, CI/CD, Kubernetes manifests
|
|
31
|
+
- Catalog testing patterns: utilities, fixtures, test organization
|
|
32
|
+
- Compare across packages to validate reusability and frequency
|
|
33
|
+
- Define parameterization: variables for names, ports, URLs, package-specific values
|
|
34
|
+
- Create template scaffold with substitution markers
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# code-template-scaffold: Analyze Package Scaffolding Options
|
|
2
|
+
|
|
3
|
+
**Guideline:** Analyze available templates and generate research report on scaffolding options.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Understanding available templates before scaffolding ensures correct foundation. Reduces setup time and ensures consistency with established patterns.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
```
|
|
9
|
+
Available templates in .templates/:
|
|
10
|
+
1. api-typescript:
|
|
11
|
+
- Features: Express, Zod validation, Jest tests, Docker
|
|
12
|
+
- Use for: RESTful API services
|
|
13
|
+
- Dependencies: 45, Size: 2.1MB
|
|
14
|
+
|
|
15
|
+
2. react-vite:
|
|
16
|
+
- Features: Vite, React 19, TailwindCSS, Vitest
|
|
17
|
+
- Use for: Frontend applications
|
|
18
|
+
- Dependencies: 38, Size: 1.8MB
|
|
19
|
+
|
|
20
|
+
3. shared-library:
|
|
21
|
+
- Features: Monorepo-friendly, TypeScript, ESM, minimal deps
|
|
22
|
+
- Use for: Reusable utilities and components
|
|
23
|
+
- Dependencies: 12, Size: 0.8MB
|
|
24
|
+
|
|
25
|
+
Recommendation: For new API → use api-typescript
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**Techniques:**
|
|
29
|
+
- Discover templates in monorepo (usually in `templates/`, `.templates/`, or `_templates/`)
|
|
30
|
+
- List template types: website, API, library, utility, service
|
|
31
|
+
- Document features and capabilities for each template
|
|
32
|
+
- Identify configuration options and substitution placeholders
|
|
33
|
+
- Catalog dependencies, build systems, and deployment setup
|
|
34
|
+
- Map best use cases and target scenarios for each
|
|
35
|
+
- Compare templates across categories to guide selection
|
|
36
|
+
- Provide recommendations matching requirements to template fit
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# general-research: Research Codebase and Web
|
|
2
|
+
|
|
3
|
+
**Guideline:** Research codebase and web for requirements, presenting findings without creating plans.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Separates research from planning, allowing exploration and decision-making before implementation. Enables saving research independently from multiple sources (codebase + web).
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
```
|
|
9
|
+
Research Topic: "Add OAuth2 authentication to API"
|
|
10
|
+
|
|
11
|
+
Codebase Findings:
|
|
12
|
+
- Current: JWT-based auth in packages/auth-service
|
|
13
|
+
- Version: @auth/core v5.1
|
|
14
|
+
- Similar: GitHub OAuth in 2 places (admin, web)
|
|
15
|
+
|
|
16
|
+
Web Research:
|
|
17
|
+
- Latest: @auth/core v6.0 (released Jan 2026)
|
|
18
|
+
- Breaking: Session handling changed
|
|
19
|
+
- Docs: oauth.net/2 reference implementation
|
|
20
|
+
|
|
21
|
+
Recommendations:
|
|
22
|
+
- Upgrade to v6.0 (more secure)
|
|
23
|
+
- Plan migration of session layer
|
|
24
|
+
- Consolidate OAuth logic to shared-auth package
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Techniques:**
|
|
28
|
+
- Parse research topic and clarify scope with specific requirements
|
|
29
|
+
- Explore codebase patterns using parallel search: grep, glob, file reading
|
|
30
|
+
- Document current library versions and identify similar implementations
|
|
31
|
+
- Research latest versions and releases via web search
|
|
32
|
+
- Fetch and analyze documentation from official sources
|
|
33
|
+
- Map integration points and existing patterns in the codebase
|
|
34
|
+
- Identify relevant guidelines and best practices
|
|
35
|
+
- Synthesize codebase findings and web research into recommendations
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# plan-create: Create Implementation Plan with Research
|
|
2
|
+
|
|
3
|
+
**Guideline:** Generate implementation plan from spec/requirements using research findings.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Creates actionable plan from research context. Breaks work into tracked tasks with dependencies, enabling parallel or sequential execution as needed.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
```
|
|
9
|
+
## Implementation Plan: Add OAuth2 Authentication
|
|
10
|
+
|
|
11
|
+
### Goals
|
|
12
|
+
- Support OAuth2 authentication
|
|
13
|
+
- Maintain backward compatibility with JWT
|
|
14
|
+
- Consolidate OAuth logic across services
|
|
15
|
+
|
|
16
|
+
### Key Decisions
|
|
17
|
+
- Upgrade @auth/core to v6.0
|
|
18
|
+
- Migrate session layer (breaks change)
|
|
19
|
+
- Extract OAuth to shared-auth package
|
|
20
|
+
|
|
21
|
+
### Tasks
|
|
22
|
+
1. [BLOCKED BY: none] Update @auth/core dependency
|
|
23
|
+
2. [BLOCKED BY: 1] Migrate session handling in auth-service
|
|
24
|
+
3. [PARALLEL TO: 2] Extract GitHub OAuth to shared-auth
|
|
25
|
+
4. [BLOCKED BY: 2,3] Update packages/web to use shared OAuth
|
|
26
|
+
5. [BLOCKED BY: 2,3,4] End-to-end testing and deployment
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Techniques:**
|
|
30
|
+
- Read specification and clarify requirements with stakeholders
|
|
31
|
+
- Synthesize research findings from conversation history and prior analysis
|
|
32
|
+
- Document key architecture decisions: technology choices, versions, rationale
|
|
33
|
+
- Create granular tasks with clear objectives in imperative form
|
|
34
|
+
- Define task dependencies: which tasks block or are blocked by others
|
|
35
|
+
- Identify independent tasks for parallel execution
|
|
36
|
+
- Structure plan sections: overview, goals, current state, findings, tasks
|
|
37
|
+
- Set success criteria and completion indicators for each task
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# plan-tdd-create: Create TDD Implementation Plan with Research
|
|
2
|
+
|
|
3
|
+
**Guideline:** Generate TDD implementation plan with RED-GREEN-COMMIT cycles as tracked tasks.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Creates actionable TDD plan from research context. Each RED-GREEN-COMMIT cycle becomes a tracked task, ensuring test-first development with proper sequencing.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
```
|
|
9
|
+
## TDD Plan: User Authentication
|
|
10
|
+
|
|
11
|
+
### Story 1: Basic login validation
|
|
12
|
+
[RED] Write test: login() validates email format
|
|
13
|
+
[GREEN] Implement: if (!email.includes('@')) throw
|
|
14
|
+
[COMMIT] "feat: validate email format in login"
|
|
15
|
+
|
|
16
|
+
### Story 2: Password requirements
|
|
17
|
+
[RED] Write test: password must be 8+ chars
|
|
18
|
+
[GREEN] Implement: if (password.length < 8) throw
|
|
19
|
+
[COMMIT] "feat: enforce 8-char password minimum"
|
|
20
|
+
|
|
21
|
+
### Story 3: Token generation
|
|
22
|
+
[RED] Write test: login() returns JWT token
|
|
23
|
+
[GREEN] Implement: return jwt.sign({email})
|
|
24
|
+
[COMMIT] "feat: generate JWT token on successful login"
|
|
25
|
+
|
|
26
|
+
### Story 4: Error handling
|
|
27
|
+
[RED] Write test: invalid credentials return error
|
|
28
|
+
[GREEN] Implement: check hash match, return Err
|
|
29
|
+
[COMMIT] "feat: return error for invalid credentials"
|
|
30
|
+
|
|
31
|
+
### Story 5: Refactor
|
|
32
|
+
[REFACTOR] Extract validation to schema, improve test coverage
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Techniques:**
|
|
36
|
+
- Read specification and extract research findings from prior analysis
|
|
37
|
+
- Decompose feature into discrete, testable stories
|
|
38
|
+
- Sequence stories: basic → properties → behavior → edge cases → validation
|
|
39
|
+
- Write RED test code matching project's test framework and conventions
|
|
40
|
+
- Define GREEN implementation guidance: minimal to pass test, hardcode acceptable
|
|
41
|
+
- Create sequential task dependencies: each cycle depends on previous completion
|
|
42
|
+
- Structure each task with test code, implementation guidance, and validation steps
|
|
43
|
+
- Plan for refactoring after GREEN phase for code quality
|
|
44
|
+
- Check granularity: independent commit, tests one thing, clear description
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# todos: Scan and Group TODO Comments
|
|
2
|
+
|
|
3
|
+
**Guideline:** Scan for TODO comments, group by intent, and generate research report.
|
|
4
|
+
|
|
5
|
+
**Rationale:** TODO comments accumulate and become difficult to track. Scanning and grouping by intent helps prioritize work, identify systemic issues, and convert notes into actionable plans.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
```
|
|
9
|
+
Scan Results: 47 TODO comments found
|
|
10
|
+
|
|
11
|
+
Group 1: Auth improvements (12 occurrences, 3 files)
|
|
12
|
+
- "TODO: Add 2FA support"
|
|
13
|
+
- Files: services/auth, packages/web, packages/admin
|
|
14
|
+
- Priority: HIGH (blocks security audit)
|
|
15
|
+
- Action: Convert to plan-create task
|
|
16
|
+
|
|
17
|
+
Group 2: Performance optimizations (18 occurrences, 7 files)
|
|
18
|
+
- "TODO: Add caching layer"
|
|
19
|
+
- "TODO: Optimize database queries"
|
|
20
|
+
- Files: across services
|
|
21
|
+
- Priority: MEDIUM
|
|
22
|
+
- Action: Create code-simplify analysis
|
|
23
|
+
|
|
24
|
+
Group 3: Deprecations (17 occurrences, 5 files)
|
|
25
|
+
- "TODO: Remove legacy API"
|
|
26
|
+
- Files: api routes
|
|
27
|
+
- Priority: LOW
|
|
28
|
+
- Action: Schedule for v2.0 release
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Techniques:**
|
|
32
|
+
- Scan directory recursively for TODO patterns (`TODO:`, `FIXME:`, `NOTE:`)
|
|
33
|
+
- Extract unique TODO messages, normalized for whitespace consistency
|
|
34
|
+
- Group TODOs by similarity: identical text, conceptual intent, file patterns
|
|
35
|
+
- Map each group to source files, count occurrences and affected files
|
|
36
|
+
- Infer applicable skills from file extensions and framework indicators
|
|
37
|
+
- Categorize by priority: blocking work, technical debt, nice-to-have
|
|
38
|
+
- Generate report with groups, file counts, and action recommendations
|
|
39
|
+
- Convert high-priority TODOs into tasks for tracking and execution
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: presentation-guidelines
|
|
3
|
+
description: >-
|
|
4
|
+
Trigger on presentation/slides creation tasks. Use when creating presentations from codebase analysis. Apply for scaffolding motion presentation packages. Keywords: presentation, slides, codebase analysis, GraphViz diagrams, Motion, React components, visual flow, narrative structure.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Presentation Guidelines
|
|
8
|
+
|
|
9
|
+
## Core Principles
|
|
10
|
+
|
|
11
|
+
- **Explore First** - Use Task agents to gather context from codebase
|
|
12
|
+
- **Structure Slides** - Organize findings into clear narrative flow
|
|
13
|
+
- **Visual Diagrams** - Create GraphViz diagrams for architecture and flows
|
|
14
|
+
- **Factory Pattern** - Use factory functions for automatic maxSteps calculation
|
|
15
|
+
- **Theme Consistency** - Extract and apply brand colors throughout
|
|
16
|
+
|
|
17
|
+
## Workflow
|
|
18
|
+
|
|
19
|
+
- **Create Presentation** - Explore codebase and generate markdown presentation, see [reference/presentation-create.md](reference/presentation-create.md)
|
|
20
|
+
- **Scaffold Package** - Convert markdown to Motion presentation package, see [reference/presentation-motion-scaffold.md](reference/presentation-motion-scaffold.md)
|
|
21
|
+
|
|
22
|
+
## Progressive Disclosure
|
|
23
|
+
|
|
24
|
+
- **Create presentation document** - Explore codebase and structure into slides, see [reference/presentation-create.md](reference/presentation-create.md)
|
|
25
|
+
- **Scaffold motion package** - Generate React+Motion package from markdown, see [reference/presentation-motion-scaffold.md](reference/presentation-motion-scaffold.md)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# presentation-create: Create Presentation Document from Codebase
|
|
2
|
+
|
|
3
|
+
**Guideline:** Generate markdown presentation by exploring codebase and structuring findings into slides.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Transforms technical findings from codebase analysis into structured narrative flow with clear narrative arcs, enabling effective communication of architecture and decisions to various audiences.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
# Microservices Architecture
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
- 12 services, 15 shared packages
|
|
16
|
+
- Kubernetes orchestration, GitOps deployment
|
|
17
|
+
- Found in: services/, clusters/
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Core Services
|
|
22
|
+
- API Gateway (packages/services/api-gateway)
|
|
23
|
+
- Auth Service (packages/services/auth)
|
|
24
|
+
- User Service (packages/services/users)
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Next Steps
|
|
29
|
+
- Scale to 20 services
|
|
30
|
+
- Implement service mesh
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Techniques:**
|
|
34
|
+
- Parse topic and identify relevant codebase areas and packages
|
|
35
|
+
- Clarify scope with questions: packages, depth, audience, style
|
|
36
|
+
- Scan codebase using parallel exploration: architecture, schemas, integration points
|
|
37
|
+
- Synthesize findings into logical narrative with file references
|
|
38
|
+
- Generate diagrams: ASCII art for markdown or GraphViz for motion
|
|
39
|
+
- Structure content into slides: title, summary, challenges, solutions, implementation
|
|
40
|
+
- Extract and document style preferences: colors, fonts, logo, themes
|
|
41
|
+
- Create markdown with `---` separators for slide boundaries
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# presentation-motion-scaffold: Create Motion Presentation Package
|
|
2
|
+
|
|
3
|
+
**Guideline:** Scaffold Motion React presentation package from markdown presentation document.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Converts markdown presentations into fully-functional React + Motion slide decks with animations and interactive features.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
```
|
|
9
|
+
Input: presentation.md with:
|
|
10
|
+
- Title: "Microservices Architecture"
|
|
11
|
+
- Theme colors: #2563eb, #dc2626, #16a34a
|
|
12
|
+
- Slides: overview, services, challenges, next steps
|
|
13
|
+
|
|
14
|
+
Output structure:
|
|
15
|
+
packages/presentations/microservices/
|
|
16
|
+
├── src/
|
|
17
|
+
│ ├── slides/
|
|
18
|
+
│ │ ├── Title.tsx
|
|
19
|
+
│ │ ├── Overview.tsx
|
|
20
|
+
│ │ ├── Services.tsx
|
|
21
|
+
│ │ └── NextSteps.tsx
|
|
22
|
+
│ ├── App.tsx
|
|
23
|
+
│ └── theme.ts (generated colors)
|
|
24
|
+
├── public/assets/
|
|
25
|
+
├── package.json (generated)
|
|
26
|
+
└── vite.config.ts (generated)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Techniques:**
|
|
30
|
+
- Parse markdown: extract title, style guide, slides separated by `---`
|
|
31
|
+
- Determine slide types from content: title, bullets, diagrams, chapter headers, closing
|
|
32
|
+
- Create package structure at `packages/presentations/[name]/` with configs
|
|
33
|
+
- Generate TSX components for each slide type with factory functions
|
|
34
|
+
- Extract theme colors from Style Guide section (#hex format)
|
|
35
|
+
- Convert ASCII diagrams to GraphViz .dot files for SVG generation
|
|
36
|
+
- Download and place external logos/images to `public/assets/`
|
|
37
|
+
- Generate configs: package.json, moon.yml, tsconfig.json, vite.config.ts
|
|
38
|
+
- Create factory functions for each slide with automatic step calculation
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: python-guidelines
|
|
3
|
+
description: >-
|
|
4
|
+
Trigger on `.py` files. Use when writing Python 3.12+ code. Apply for API development, data processing, file operations, resource management. Keywords: Python, async/await, dataclasses, type hints, generators, pathlib, pytest, context managers, @cache, f-strings.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Python Coding Guidelines
|
|
8
|
+
|
|
9
|
+
## Requirements
|
|
10
|
+
|
|
11
|
+
- Python ≥ 3.12; pytest ≥ 8.
|
|
12
|
+
|
|
13
|
+
## Essentials
|
|
14
|
+
|
|
15
|
+
- **Data models** - Use dataclasses and type hints, see [reference/dataclasses-type-hints.md](reference/dataclasses-type-hints.md), [reference/type-checking.md](reference/type-checking.md)
|
|
16
|
+
- **Iteration** - Prefer generators/comprehensions for data processing, see [reference/generators-comprehensions.md](reference/generators-comprehensions.md)
|
|
17
|
+
- **Async I/O** - Use async/await for I/O operations, see [reference/async-await-patterns.md](reference/async-await-patterns.md)
|
|
18
|
+
- **Performance** - Cache pure functions with `@cache`, see [reference/caching-functions.md](reference/caching-functions.md)
|
|
19
|
+
- **Resource management** - Use context managers for cleanup, see [reference/resource-management.md](reference/resource-management.md)
|
|
20
|
+
- **Modern syntax** - Use pathlib, f-strings, specific exceptions, see [reference/pathlib-file-ops.md](reference/pathlib-file-ops.md), [reference/string-formatting.md](reference/string-formatting.md), [reference/exception-handling.md](reference/exception-handling.md)
|
|
21
|
+
|
|
22
|
+
## Progressive disclosure
|
|
23
|
+
|
|
24
|
+
- Read [reference/dataclasses-type-hints.md](reference/dataclasses-type-hints.md) - When defining structured data models or adding type annotations
|
|
25
|
+
- Read [reference/type-checking.md](reference/type-checking.md) - When using Protocols, type aliases, or complex Union types
|
|
26
|
+
- Read [reference/async-await-patterns.md](reference/async-await-patterns.md) - When building async APIs or handling concurrent I/O operations
|
|
27
|
+
- Read [reference/resource-management.md](reference/resource-management.md) - When working with files, connections, or resources needing cleanup
|
|
28
|
+
- Read [reference/caching-functions.md](reference/caching-functions.md) - When optimizing expensive computations or repeated function calls
|
|
29
|
+
- Read [reference/generators-comprehensions.md](reference/generators-comprehensions.md) - When processing large datasets or streaming data
|
|
30
|
+
- Read [reference/string-formatting.md](reference/string-formatting.md) - When formatting output, building messages, or templating
|
|
31
|
+
- Read [reference/pathlib-file-ops.md](reference/pathlib-file-ops.md) - When reading/writing files or traversing directories
|
|
32
|
+
- Read [reference/exception-handling.md](reference/exception-handling.md) - When defining error handling or creating custom exceptions
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# async-await-patterns: Async/Await Patterns
|
|
2
|
+
|
|
3
|
+
**Guideline:** Use async/await for I/O-bound operations with proper concurrent execution patterns.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Async programming enables efficient I/O operations without blocking threads. Using `asyncio.gather()` allows multiple operations to run concurrently, improving performance. Async generators enable memory-efficient streaming of data. Proper async context management ensures resources are cleaned up correctly.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
|
|
9
|
+
```python
|
|
10
|
+
import asyncio
|
|
11
|
+
import aiohttp
|
|
12
|
+
from typing import Sequence
|
|
13
|
+
|
|
14
|
+
# Async function with type hints
|
|
15
|
+
async def fetch_url(session: aiohttp.ClientSession, url: str) -> str:
|
|
16
|
+
async with session.get(url) as response:
|
|
17
|
+
response.raise_for_status()
|
|
18
|
+
return await response.text()
|
|
19
|
+
|
|
20
|
+
# Async context manager
|
|
21
|
+
async def fetch_multiple(urls: Sequence[str]) -> list[str]:
|
|
22
|
+
async with aiohttp.ClientSession() as session:
|
|
23
|
+
tasks = [fetch_url(session, url) for url in urls]
|
|
24
|
+
return await asyncio.gather(*tasks)
|
|
25
|
+
|
|
26
|
+
# Async generator
|
|
27
|
+
async def fetch_paginated(
|
|
28
|
+
session: aiohttp.ClientSession,
|
|
29
|
+
base_url: str,
|
|
30
|
+
page_size: int = 100
|
|
31
|
+
):
|
|
32
|
+
page = 1
|
|
33
|
+
while True:
|
|
34
|
+
url = f"{base_url}?page={page}&size={page_size}"
|
|
35
|
+
data = await fetch_url(session, url)
|
|
36
|
+
|
|
37
|
+
if not data:
|
|
38
|
+
break
|
|
39
|
+
|
|
40
|
+
yield data
|
|
41
|
+
page += 1
|
|
42
|
+
|
|
43
|
+
# Usage
|
|
44
|
+
async def main():
|
|
45
|
+
urls = ["https://api.example.com/1", "https://api.example.com/2"]
|
|
46
|
+
results = await fetch_multiple(urls)
|
|
47
|
+
|
|
48
|
+
async with aiohttp.ClientSession() as session:
|
|
49
|
+
async for page_data in fetch_paginated(session, "https://api.example.com/items"):
|
|
50
|
+
process_page(page_data)
|
|
51
|
+
|
|
52
|
+
# Run
|
|
53
|
+
asyncio.run(main())
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Techniques:**
|
|
57
|
+
- Define async functions with `async def`
|
|
58
|
+
- Use `await` for async operations
|
|
59
|
+
- Use `async with` for async context managers
|
|
60
|
+
- Gather concurrent operations with `asyncio.gather(*tasks)`
|
|
61
|
+
- Create async generators with `async def` and `yield`
|
|
62
|
+
- Run async code with `asyncio.run(main())`
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# caching-functions: Caching Pure Functions
|
|
2
|
+
|
|
3
|
+
**Guideline:** Cache expensive pure function results with `@cache` or `@lru_cache` decorators.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Caching eliminates redundant computations for pure functions (functions that always return the same output for the same input). `@cache` provides unbounded caching for small datasets, while `@lru_cache` offers size-limited caching with LRU eviction for larger datasets. This dramatically improves performance for recursive algorithms and expensive operations.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
|
|
9
|
+
```python
|
|
10
|
+
from functools import cache, lru_cache
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
|
|
13
|
+
# Cache with @cache (unbounded cache)
|
|
14
|
+
@cache
|
|
15
|
+
def load_config() -> dict[str, str]:
|
|
16
|
+
"""Load and parse config file (cached after first call)"""
|
|
17
|
+
return parse_config(Path("config.txt").read_text())
|
|
18
|
+
|
|
19
|
+
# LRU cache with size limit
|
|
20
|
+
@lru_cache(maxsize=128)
|
|
21
|
+
def fibonacci(n: int) -> int:
|
|
22
|
+
"""Calculate Fibonacci number (cached with LRU eviction)"""
|
|
23
|
+
if n < 2:
|
|
24
|
+
return n
|
|
25
|
+
return fibonacci(n - 1) + fibonacci(n - 2)
|
|
26
|
+
|
|
27
|
+
# Cache expensive computations
|
|
28
|
+
@lru_cache(maxsize=1000)
|
|
29
|
+
def calculate_hash(data: str) -> str:
|
|
30
|
+
"""Compute expensive hash (cached)"""
|
|
31
|
+
import hashlib
|
|
32
|
+
return hashlib.sha256(data.encode()).hexdigest()
|
|
33
|
+
|
|
34
|
+
# Usage - function only runs once per unique input
|
|
35
|
+
config1 = load_config() # Loads from file
|
|
36
|
+
config2 = load_config() # Returns cached value
|
|
37
|
+
|
|
38
|
+
fib_10 = fibonacci(10) # Calculates
|
|
39
|
+
fib_10_again = fibonacci(10) # Returns cached
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Techniques:**
|
|
43
|
+
- Use `@cache` for unbounded caching of pure functions
|
|
44
|
+
- Use `@lru_cache(maxsize=N)` for size-limited caching
|
|
45
|
+
- Only cache pure functions (no side effects, deterministic output)
|
|
46
|
+
- Consider cache size based on memory constraints
|
|
47
|
+
- Cache is per-function-call signature (different args = different cache entry)
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# dataclasses-type-hints: Dataclasses and Type Hints
|
|
2
|
+
|
|
3
|
+
**Guideline:** Use dataclasses with type hints for structured data definitions.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Dataclasses reduce boilerplate code while providing automatic `__init__`, `__repr__`, and comparison methods. Type hints enable static analysis, IDE support, and self-documenting code. Frozen dataclasses create immutable objects that are safer in concurrent contexts.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
|
|
9
|
+
```python
|
|
10
|
+
from dataclasses import dataclass, field
|
|
11
|
+
from datetime import datetime
|
|
12
|
+
from typing import Optional
|
|
13
|
+
|
|
14
|
+
# Immutable dataclass with type hints
|
|
15
|
+
@dataclass(frozen=True)
|
|
16
|
+
class User:
|
|
17
|
+
id: str
|
|
18
|
+
email: str
|
|
19
|
+
name: str
|
|
20
|
+
created_at: datetime
|
|
21
|
+
metadata: dict[str, str] = field(default_factory=dict)
|
|
22
|
+
|
|
23
|
+
# Mutable dataclass
|
|
24
|
+
@dataclass
|
|
25
|
+
class Config:
|
|
26
|
+
host: str = "localhost"
|
|
27
|
+
port: int = 5432
|
|
28
|
+
debug: bool = False
|
|
29
|
+
timeout: float = 30.0
|
|
30
|
+
|
|
31
|
+
# Optional and union types
|
|
32
|
+
@dataclass(frozen=True)
|
|
33
|
+
class Response:
|
|
34
|
+
status: int
|
|
35
|
+
data: dict[str, any]
|
|
36
|
+
error: Optional[str] = None
|
|
37
|
+
|
|
38
|
+
# Generic types
|
|
39
|
+
@dataclass
|
|
40
|
+
class Page[T]:
|
|
41
|
+
items: list[T]
|
|
42
|
+
total: int
|
|
43
|
+
page: int
|
|
44
|
+
page_size: int
|
|
45
|
+
|
|
46
|
+
# Usage with type safety
|
|
47
|
+
user = User(
|
|
48
|
+
id="123",
|
|
49
|
+
email="user@example.com",
|
|
50
|
+
name="John Doe",
|
|
51
|
+
created_at=datetime.now()
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
# Type checker knows this is str
|
|
55
|
+
print(user.email)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Techniques:**
|
|
59
|
+
- Import `dataclass` decorator and type hints
|
|
60
|
+
- Annotate all fields with types using modern syntax (`list[T]`, `dict[K,V]`)
|
|
61
|
+
- Use `frozen=True` for immutable data structures
|
|
62
|
+
- Use `field(default_factory=...)` for mutable defaults
|
|
63
|
+
- Leverage generics with `[T]` syntax for reusable data structures
|