@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,64 @@
|
|
|
1
|
+
# openapi-router-hierarchy: Use OpenAPIHono Throughout Router Hierarchy
|
|
2
|
+
|
|
3
|
+
**Guideline:** Use `OpenAPIHono` for all routers in the hierarchy (root, intermediate, and leaf) to ensure OpenAPI routes appear in the generated specification.
|
|
4
|
+
|
|
5
|
+
**Rationale:** OpenAPI metadata propagation works through the router chain only when all routers use `OpenAPIHono`. Mixing regular `Hono` with `OpenAPIHono` breaks metadata propagation, causing child OpenAPI routes to be "lost" and resulting in incomplete API documentation.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
// src/app.ts - Root router
|
|
11
|
+
// src/routes/v1/index.ts - Intermediate router
|
|
12
|
+
|
|
13
|
+
// src/routes/v1/items.ts - Leaf router
|
|
14
|
+
import {
|
|
15
|
+
createRoute,
|
|
16
|
+
OpenAPIHono,
|
|
17
|
+
OpenAPIHono,
|
|
18
|
+
OpenAPIHono,
|
|
19
|
+
z,
|
|
20
|
+
} from "@hono/zod-openapi";
|
|
21
|
+
|
|
22
|
+
export function createApp() {
|
|
23
|
+
// ✅ Use OpenAPIHono for root
|
|
24
|
+
const app = new OpenAPIHono();
|
|
25
|
+
|
|
26
|
+
app.use("*", logger());
|
|
27
|
+
app.route("/api/v1", v1Router);
|
|
28
|
+
|
|
29
|
+
return app;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// ✅ Use OpenAPIHono for intermediate router
|
|
33
|
+
export const v1Router = new OpenAPIHono();
|
|
34
|
+
|
|
35
|
+
v1Router.route("/items", itemsRouter);
|
|
36
|
+
v1Router.route("/users", usersRouter);
|
|
37
|
+
|
|
38
|
+
// ✅ Use OpenAPIHono for leaf router
|
|
39
|
+
export const itemsRouter = new OpenAPIHono();
|
|
40
|
+
|
|
41
|
+
const listItemsRoute = createRoute({
|
|
42
|
+
method: "get",
|
|
43
|
+
path: "/",
|
|
44
|
+
responses: {
|
|
45
|
+
200: {
|
|
46
|
+
content: {"application/json": {schema: ItemListSchema}},
|
|
47
|
+
description: "List of items",
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
itemsRouter.openapi(listItemsRoute, (c) => {
|
|
53
|
+
// Handler implementation
|
|
54
|
+
});
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Techniques:**
|
|
58
|
+
- Import `OpenAPIHono` from `@hono/zod-openapi`
|
|
59
|
+
- Use `OpenAPIHono` for root application router
|
|
60
|
+
- Use `OpenAPIHono` for all intermediate routers (version routers, feature groupings)
|
|
61
|
+
- Use `OpenAPIHono` for all leaf routers (domain-specific routes)
|
|
62
|
+
- Mount routers normally with `.route()` method
|
|
63
|
+
- Verify all routes appear in generated `/openapi.json` spec
|
|
64
|
+
- Regular non-OpenAPI routes can coexist on OpenAPIHono routers
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# openapi-spec-generation: Use app.doc() for Automatic OpenAPI Spec Generation
|
|
2
|
+
|
|
3
|
+
**Guideline:** Use the `app.doc()` method to automatically generate OpenAPI specifications from registered routes instead of maintaining static documents.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Manual OpenAPI documents drift out of sync with implementation, require constant maintenance, and create a duplicate source of truth. The `app.doc()` method automatically extracts route metadata from route definitions, building complete documentation that stays synchronized with the actual implementation.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
import {createRoute, OpenAPIHono, z} from "@hono/zod-openapi";
|
|
11
|
+
|
|
12
|
+
const app = new OpenAPIHono();
|
|
13
|
+
|
|
14
|
+
// Define and register OpenAPI routes
|
|
15
|
+
const listItemsRoute = createRoute({
|
|
16
|
+
method: "get",
|
|
17
|
+
path: "/items",
|
|
18
|
+
responses: {
|
|
19
|
+
200: {
|
|
20
|
+
content: {"application/json": {schema: ItemListSchema}},
|
|
21
|
+
description: "List of items",
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
app.openapi(listItemsRoute, (c) => {
|
|
27
|
+
// Handler implementation
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
// ✅ CORRECT - Auto-generate spec with app.doc()
|
|
31
|
+
app.doc("/openapi.json", {
|
|
32
|
+
openapi: "3.1.0",
|
|
33
|
+
info: {
|
|
34
|
+
title: "Hono Backend API",
|
|
35
|
+
version: "1.0.0",
|
|
36
|
+
description: "API for managing items and uploads",
|
|
37
|
+
},
|
|
38
|
+
servers: [
|
|
39
|
+
{
|
|
40
|
+
url: "http://localhost:3000",
|
|
41
|
+
description: "Development",
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
// Access spec at: http://localhost:3000/openapi.json
|
|
47
|
+
// Spec automatically includes all registered OpenAPI routes
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Techniques:**
|
|
51
|
+
- Ensure your app uses `OpenAPIHono` (not regular `Hono`)
|
|
52
|
+
- Define routes using `createRoute()` with full request and response schemas
|
|
53
|
+
- Register routes using `router.openapi(route, handler)` method
|
|
54
|
+
- Call `app.doc(path, metadata)` to register spec endpoint
|
|
55
|
+
- Provide OpenAPI metadata: openapi version, info object, servers
|
|
56
|
+
- Access the spec at the registered path (e.g., `/openapi.json`)
|
|
57
|
+
- Never manually create or maintain the `paths` object
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# platform-runtime: Platform-Specific Runtime Detection
|
|
2
|
+
|
|
3
|
+
**Guideline:** Use `env()` for unified environment variables and `getRuntimeKey()` for platform-specific code paths.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Hono runs on different runtimes with different APIs and behaviors. Unified helpers enable portable code across all platforms.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
import {Hono} from "hono";
|
|
11
|
+
import {env, getRuntimeKey} from "hono/adapter";
|
|
12
|
+
import {getConnInfo} from "hono/cloudflare-workers";
|
|
13
|
+
|
|
14
|
+
const app = new Hono();
|
|
15
|
+
|
|
16
|
+
// Unified environment access
|
|
17
|
+
app.get("/config", (c) => {
|
|
18
|
+
const {DATABASE_URL} = env<{DATABASE_URL: string}>(c);
|
|
19
|
+
return c.json({configured: !!DATABASE_URL});
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
// Platform-specific logic
|
|
23
|
+
app.use("*", async (c, next) => {
|
|
24
|
+
const runtime = getRuntimeKey();
|
|
25
|
+
c.header("X-Runtime", runtime === "workerd" ? "cloudflare" : runtime);
|
|
26
|
+
await next();
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
// Connection info
|
|
30
|
+
app.get("/ip", (c) => {
|
|
31
|
+
const info = getConnInfo(c);
|
|
32
|
+
return c.json({ip: info.remote.address});
|
|
33
|
+
});
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Techniques:**
|
|
37
|
+
- Import `env` and `getRuntimeKey` from `hono/adapter`
|
|
38
|
+
- Use `env(c)` instead of `process.env` or `Deno.env`
|
|
39
|
+
- Check runtime with `getRuntimeKey()` for platform-specific logic
|
|
40
|
+
- Import connection info from platform-specific paths
|
|
41
|
+
- Handle platform differences (Deno cache requires `wait: true`, Node.js needs compression middleware)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# router-selection: Choosing the Right Router for Your Environment
|
|
2
|
+
|
|
3
|
+
**Guideline:** Select the appropriate Hono router based on deployment environment, optimizing for cold start times in serverless/edge or throughput in traditional servers.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Hono provides multiple router implementations: RegExpRouter (fastest throughput via single regex), LinearRouter (optimized for serverless cold starts), SmartRouter (default, supports all patterns), and PatternRouter (smallest footprint). Choosing correctly impacts cold starts, request throughput, and memory usage.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
import {Hono} from "hono";
|
|
11
|
+
import {LinearRouter} from "hono/router/linear-router";
|
|
12
|
+
import {RegExpRouter} from "hono/router/reg-exp-router";
|
|
13
|
+
|
|
14
|
+
// High-throughput traditional server
|
|
15
|
+
const app = new Hono({
|
|
16
|
+
router: new RegExpRouter(),
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
// Serverless/edge with fast initialization
|
|
20
|
+
const serverlessApp = new Hono({
|
|
21
|
+
router: new LinearRouter(),
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
// Default SmartRouter (no configuration needed)
|
|
25
|
+
const defaultApp = new Hono();
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**Techniques:**
|
|
29
|
+
- Identify deployment environment: serverless/edge (prioritize cold starts) or traditional server
|
|
30
|
+
- Use LinearRouter for serverless/edge environments with repeated initialization
|
|
31
|
+
- Use RegExpRouter for high-throughput APIs with persistent connections
|
|
32
|
+
- Use SmartRouter (default) when unsure or mixing pattern types
|
|
33
|
+
- Consider route complexity: wildcards, optional params, regex patterns
|
|
34
|
+
- Profile cold start times and request throughput for your specific use case
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# security-middleware: Built-in Security Middleware Configuration
|
|
2
|
+
|
|
3
|
+
**Guideline:** Use Hono's built-in security middleware for authentication, CSRF protection, and security headers, applying `secureHeaders()` first in the middleware chain.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Hono provides battle-tested security middleware implementations for basic auth, bearer tokens, JWT verification, CSRF protection, and IP restriction with consistent configuration patterns and type safety, eliminating the need for external dependencies.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
import {Hono} from "hono";
|
|
11
|
+
import {basicAuth} from "hono/basic-auth";
|
|
12
|
+
import {bearerAuth} from "hono/bearer-auth";
|
|
13
|
+
import {csrf} from "hono/csrf";
|
|
14
|
+
import {ipRestriction} from "hono/ip-restriction";
|
|
15
|
+
import {secureHeaders} from "hono/secure-headers";
|
|
16
|
+
|
|
17
|
+
const app = new Hono();
|
|
18
|
+
|
|
19
|
+
// Apply secure headers first
|
|
20
|
+
app.use("*", secureHeaders());
|
|
21
|
+
|
|
22
|
+
// CSRF protection for form submissions
|
|
23
|
+
app.use("/forms/*", csrf());
|
|
24
|
+
|
|
25
|
+
// Bearer auth with custom verification
|
|
26
|
+
app.use(
|
|
27
|
+
"/api/*",
|
|
28
|
+
bearerAuth({
|
|
29
|
+
verifyToken: async (token, c) => {
|
|
30
|
+
return await tokenService.verify(token);
|
|
31
|
+
},
|
|
32
|
+
}),
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
// Basic auth for admin routes
|
|
36
|
+
app.use(
|
|
37
|
+
"/admin/*",
|
|
38
|
+
basicAuth({
|
|
39
|
+
verifyUser: (username, password, c) => {
|
|
40
|
+
return username === "admin" && password === process.env.ADMIN_PASSWORD;
|
|
41
|
+
},
|
|
42
|
+
}),
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
// IP restriction for internal routes
|
|
46
|
+
app.use(
|
|
47
|
+
"/internal/*",
|
|
48
|
+
ipRestriction({
|
|
49
|
+
denyList: [],
|
|
50
|
+
allowList: ["192.168.0.0/16", "10.0.0.0/8"],
|
|
51
|
+
}),
|
|
52
|
+
);
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Techniques:**
|
|
56
|
+
- Import middleware from `hono/` subpaths (basicAuth, bearerAuth, csrf, secureHeaders, ipRestriction)
|
|
57
|
+
- Apply security headers first in middleware chain to protect all routes
|
|
58
|
+
- Use custom verifiers for dynamic authentication logic
|
|
59
|
+
- Configure CSRF protection for form-based applications
|
|
60
|
+
- Restrict IPs for admin and internal routes using CIDR notation
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# validation-type-safety: Request Validation and Type Safety with Zod
|
|
2
|
+
|
|
3
|
+
**Guideline:** Cast `c.req.valid` to specify return types and cast validation errors to `z.ZodError` to restore type safety when using Hono's base Context type.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Hono's Context type without generic validation types returns `any` from `c.req.valid()`, losing type safety. Type assertions restore compile-time type checking without complex nested generics, enabling autocomplete and error detection while keeping signatures simple.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
import {zValidator} from "@hono/zod-validator";
|
|
11
|
+
import type {Context} from "hono";
|
|
12
|
+
import type {z} from "zod";
|
|
13
|
+
import {CreateUserSchema, type CreateUser} from "../schemas/users.js";
|
|
14
|
+
|
|
15
|
+
// Controller with type-safe validation
|
|
16
|
+
export function createUser(c: Context) {
|
|
17
|
+
// Cast c.req.valid to specify return type
|
|
18
|
+
const data = (c.req.valid as (target: string) => CreateUser)("json");
|
|
19
|
+
|
|
20
|
+
// Now `data` has full type information
|
|
21
|
+
const user = userService.create(data);
|
|
22
|
+
return c.json(user, 201);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
usersRouter.post(
|
|
26
|
+
"/",
|
|
27
|
+
zValidator("json", CreateUserSchema, (result, c) => {
|
|
28
|
+
if (!result.success) {
|
|
29
|
+
// Cast to z.ZodError for type-safe error processing
|
|
30
|
+
return badRequest(c, result.error as z.ZodError);
|
|
31
|
+
}
|
|
32
|
+
}),
|
|
33
|
+
controller.createUser,
|
|
34
|
+
);
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Techniques:**
|
|
38
|
+
- Define Zod schemas for request payloads with TypeScript type exports
|
|
39
|
+
- In controllers using base `Context`, cast `c.req.valid` with target parameter
|
|
40
|
+
- Specify the return type in the cast (e.g., `CreateUser`)
|
|
41
|
+
- In zValidator error handlers, cast `result.error` to `z.ZodError`
|
|
42
|
+
- Use typed validation errors in error response functions
|
|
43
|
+
- Apply same pattern to query params and path params
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# websocket-support: WebSocket Server Setup and Route Patterns
|
|
2
|
+
|
|
3
|
+
**Guideline:** Keep the object reference returned from `createNodeWebSocket()` and call methods on that object rather than destructuring, to maintain proper `this` binding.
|
|
4
|
+
|
|
5
|
+
**Rationale:** JavaScript methods that rely on `this` context lose their binding when destructured. The `@hono/node-ws` package's `createNodeWebSocket()` returns methods that depend on `this` to access internal state. Keeping the object reference preserves the binding while factory functions like `upgradeWebSocket` can safely be destructured.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
import {serve} from "@hono/node-server";
|
|
11
|
+
import {createNodeWebSocket} from "@hono/node-ws";
|
|
12
|
+
import {Hono} from "hono";
|
|
13
|
+
import {createApp} from "./app.js";
|
|
14
|
+
|
|
15
|
+
const app = createApp();
|
|
16
|
+
|
|
17
|
+
// ✅ CORRECT - Keep object reference
|
|
18
|
+
const wsHelpers = createNodeWebSocket({app});
|
|
19
|
+
|
|
20
|
+
const server = serve({
|
|
21
|
+
fetch: app.fetch,
|
|
22
|
+
port: 3000,
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
// Call method on object to maintain binding
|
|
26
|
+
wsHelpers.injectWebSocket(server);
|
|
27
|
+
|
|
28
|
+
// Destructuring upgradeWebSocket is safe (it's a factory)
|
|
29
|
+
const {upgradeWebSocket} = createNodeWebSocket({app: new Hono()});
|
|
30
|
+
|
|
31
|
+
export const wsRouter = new Hono();
|
|
32
|
+
|
|
33
|
+
wsRouter.get(
|
|
34
|
+
"/chat",
|
|
35
|
+
upgradeWebSocket(() => ({
|
|
36
|
+
onOpen(_evt, ws) {
|
|
37
|
+
console.log("Client connected");
|
|
38
|
+
},
|
|
39
|
+
onMessage(event, ws) {
|
|
40
|
+
const data = JSON.parse(String(event.data)) as {message: string};
|
|
41
|
+
ws.send(JSON.stringify({echo: data.message}));
|
|
42
|
+
},
|
|
43
|
+
onClose(_evt, ws) {
|
|
44
|
+
console.log("Client disconnected");
|
|
45
|
+
},
|
|
46
|
+
onError(evt, ws) {
|
|
47
|
+
console.error("WebSocket error:", evt);
|
|
48
|
+
},
|
|
49
|
+
})),
|
|
50
|
+
);
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Techniques:**
|
|
54
|
+
- Import `createNodeWebSocket` from `@hono/node-ws` and call with `{app}` parameter
|
|
55
|
+
- Keep entire object reference (e.g., `wsHelpers`) for method-based APIs
|
|
56
|
+
- Call methods on the object: `wsHelpers.injectWebSocket(server)`
|
|
57
|
+
- Destructuring factory functions like `upgradeWebSocket` is safe
|
|
58
|
+
- Define WebSocket handlers with onOpen, onMessage, onClose, onError callbacks
|
|
59
|
+
- Use TypeScript types for message data to ensure type safety
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: insights-guidelines
|
|
3
|
+
description: >-
|
|
4
|
+
Trigger on post-session reflection and skill improvement tasks. Use when analyzing development sessions for lessons learned. Apply for extracting insights, integrating into skills. Keywords: mistakes, discoveries, patterns, insights extraction, skill integration, lessons learned, development session analysis.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Insights Guidelines
|
|
8
|
+
|
|
9
|
+
## Core Principles
|
|
10
|
+
|
|
11
|
+
- **Extract from Experience** - Analyze session for development errors and corrections, see [reference/insights-extract.md](reference/insights-extract.md)
|
|
12
|
+
- **Identify Patterns** - Find general patterns beyond current task
|
|
13
|
+
- **Document Structure** - Save with frontmatter for tracking and integration
|
|
14
|
+
- **Progressive Integration** - Convert insights into skill guidelines, see [reference/insights-integrate.md](reference/insights-integrate.md)
|
|
15
|
+
|
|
16
|
+
## Workflow
|
|
17
|
+
|
|
18
|
+
- **Extract** - Review conversation, document category/topic/mistake/discovery/fix, see [reference/insights-extract.md](reference/insights-extract.md)
|
|
19
|
+
- **Save** - Create separate files with frontmatter for each insight
|
|
20
|
+
- **Integrate** - Convert to progressive disclosure skills, mark as applied, see [reference/insights-integrate.md](reference/insights-integrate.md)
|
|
21
|
+
|
|
22
|
+
## Progressive Disclosure
|
|
23
|
+
|
|
24
|
+
### Insight Extraction
|
|
25
|
+
- Read [reference/insights-extract.md](reference/insights-extract.md) - Analyze session for development lessons
|
|
26
|
+
|
|
27
|
+
### Insight Integration
|
|
28
|
+
- Read [reference/insights-integrate.md](reference/insights-integrate.md) - Convert insights to progressive disclosure skills
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# insights-extract: Extract Development Lessons
|
|
2
|
+
|
|
3
|
+
**Guideline:** Extract development mistakes and lessons learned from sessions into structured insight files with frontmatter metadata.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Captures learning from errors during development. Structured insights with frontmatter can be tracked and later integrated into permanent guidelines to improve team practices.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
---
|
|
11
|
+
category: testing
|
|
12
|
+
topic: json-response-type-safety
|
|
13
|
+
applies_to: [API testing, Hono testing]
|
|
14
|
+
created: "2025-01-07"
|
|
15
|
+
applied: false
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Testing: JSON Response Type Safety
|
|
19
|
+
|
|
20
|
+
- **MISTAKE**: Expected JSON response parsing to provide type safety automatically
|
|
21
|
+
- **DISCOVERY**: Tests passed but runtime errors occurred with incorrect property access
|
|
22
|
+
- **FIX**: Use Zod schema validation on response.json() results
|
|
23
|
+
- **APPLIES TO**: API testing, Response validation
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Techniques:**
|
|
27
|
+
- Review session for development errors and corrections made
|
|
28
|
+
- Extract patterns applicable beyond current task
|
|
29
|
+
- Create insight file with frontmatter: category, topic, applies_to, created, applied
|
|
30
|
+
- Document: MISTAKE, DISCOVERY, FIX, APPLIES TO sections
|
|
31
|
+
- Categorize by technology and domain for later discovery
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# insights-integrate: Convert Insights to Skills
|
|
2
|
+
|
|
3
|
+
**Guideline:** Integrate extracted insights into Claude skills with progressive disclosure structure, creating or merging into category-specific guidelines.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Transforms session insights into permanent, discoverable guidelines organized by topic in detail files, enabling knowledge reuse without cluttering main skill documentation.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
---
|
|
11
|
+
name: testing-guidelines
|
|
12
|
+
description: Use when writing tests. Apply for type safety, mocking, async patterns.
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Essentials
|
|
16
|
+
|
|
17
|
+
- Validate all external inputs
|
|
18
|
+
- Type-check response data with Zod schemas
|
|
19
|
+
- Mock external dependencies deterministically
|
|
20
|
+
- Test error paths explicitly
|
|
21
|
+
- Use test factories for complex data
|
|
22
|
+
|
|
23
|
+
## Progressive Disclosure
|
|
24
|
+
|
|
25
|
+
- Read [details/json-response-validation.md](details/json-response-validation.md) - When validating API responses
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**Techniques:**
|
|
29
|
+
- Search insights/ directory for category-matching insight files
|
|
30
|
+
- Parse content and extract topics with MISTAKE/DISCOVERY/FIX sections
|
|
31
|
+
- Generate or merge SKILL.md: Essentials (3-7 items), Progressive Disclosure links
|
|
32
|
+
- Create detail files from each insight using standard Guideline/Rationale/Example/Techniques format
|
|
33
|
+
- Deduplicate essentials keeping most important items
|
|
34
|
+
- Preserve existing detail files when merging
|
|
35
|
+
- Mark integrated insights as `applied: true`
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: instruction-guidelines
|
|
3
|
+
description: >-
|
|
4
|
+
Trigger on `AGENTS.md`, `CLAUDE.md` files. Use when working with project instruction files. Apply for assimilating patterns, simplifying verbosity, syncing directory structure. Keywords: AGENTS.md, CLAUDE.md, project instructions, directory structure, patterns, dry-run, preserve context.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Project Instruction Guidelines
|
|
8
|
+
|
|
9
|
+
## Core Principles
|
|
10
|
+
|
|
11
|
+
- **Preserve Project Context** - Never modify technology names, paths, or commands
|
|
12
|
+
- **Match Style and Voice** - Maintain target file's formatting and terminology
|
|
13
|
+
- **Structure Integrity** - Keep section order and hierarchy intact
|
|
14
|
+
- **Safe Modifications** - Use dry-run to preview changes before applying
|
|
15
|
+
|
|
16
|
+
## Common Operations
|
|
17
|
+
|
|
18
|
+
- **Assimilate** - Extract organizational patterns from source and integrate into target
|
|
19
|
+
- **Simplify** - Reduce verbosity while preserving structure and workflows
|
|
20
|
+
- **Sync** - Update directory listings to reflect current filesystem state
|
|
21
|
+
|
|
22
|
+
## Progressive Disclosure
|
|
23
|
+
|
|
24
|
+
- **Assimilate patterns** - Augment instructions with patterns from another file, see [reference/assimilate.md](reference/assimilate.md)
|
|
25
|
+
- **Simplify instructions** - Reduce verbosity in AGENTS.md/CLAUDE.md, see [reference/simplify.md](reference/simplify.md)
|
|
26
|
+
- **Sync with filesystem** - Update directory structure to current state, see [reference/sync.md](reference/sync.md)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# assimilate: Extract Patterns from Source Instructions
|
|
2
|
+
|
|
3
|
+
**Guideline:** Extract organizational patterns from source AGENTS.md/CLAUDE.md and integrate into target while preserving structure, style, technology names, and context.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Share organizational patterns between projects without losing project-specific details, technology choices, or critical context that defines how the project operates.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Source: source-project AGENTS.md
|
|
11
|
+
# Target: target-project AGENTS.md
|
|
12
|
+
|
|
13
|
+
# Extract workflow pattern from source:
|
|
14
|
+
# "Setup: npm install, git lfs pull"
|
|
15
|
+
# "Tasks: npx moon run <project>:<task>"
|
|
16
|
+
|
|
17
|
+
# Apply to target with its technology names:
|
|
18
|
+
# Target uses Gradle and Maven instead of npm
|
|
19
|
+
# Result: "Setup: gradle build, git lfs pull"
|
|
20
|
+
# "Tasks: gradle run <project>:<task>"
|
|
21
|
+
|
|
22
|
+
# Extract section grouping (Subdirectories + Workflow + Integration)
|
|
23
|
+
# Reorder target to match, preserving custom sections
|
|
24
|
+
|
|
25
|
+
# Before: Services > Deployment > Infrastructure > Utilities
|
|
26
|
+
# After: Services > Deployment > Infrastructure > Workflow > Integration Points > Utilities
|
|
27
|
+
|
|
28
|
+
# All paths, tech names, and project context unchanged
|
|
29
|
+
# Only organizational structure adopted from source
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Techniques:**
|
|
33
|
+
- Load both target and source files and analyze their structure
|
|
34
|
+
- Extract organizational patterns from source (not content or tech names)
|
|
35
|
+
- Preserve target's technology names, paths, and project-specific context
|
|
36
|
+
- Rewrite patterns using target's terminology and formatting
|
|
37
|
+
- Maintain section order and hierarchy integrity
|
|
38
|
+
- Commit before running and verify output
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# simplify: Simplify Instruction Files
|
|
2
|
+
|
|
3
|
+
**Guideline:** Reduce AGENTS.md/CLAUDE.md verbosity by 40-50% while preserving structure, workflows, and technology names.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Instruction files grow verbose over time. Simplification improves scannability and readability while preserving essential information, commands, and workflows needed for development.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
# BEFORE (verbose, 145 lines)
|
|
11
|
+
|
|
12
|
+
## Setup and Configuration
|
|
13
|
+
|
|
14
|
+
The platform requires initialization through a multi-step process. First, you must install all necessary dependencies using the npm package manager. After installation, you should pull all large files from Git LFS to ensure you have the complete codebase available locally.
|
|
15
|
+
|
|
16
|
+
The setup process involves:
|
|
17
|
+
1. Running npm install to fetch all dependencies
|
|
18
|
+
2. Running git lfs pull to download large binary files
|
|
19
|
+
|
|
20
|
+
Once setup is complete, you can begin development work.
|
|
21
|
+
|
|
22
|
+
## Running Tasks with Moon
|
|
23
|
+
|
|
24
|
+
The project uses Moon as a task orchestration system. To run tasks, use the `npx moon run` command with the format `<project>:<task>`. You can also run tasks by tag using the `#<tag>:<task>` syntax...
|
|
25
|
+
|
|
26
|
+
# AFTER (simplified, 80% reduction, 29 lines)
|
|
27
|
+
|
|
28
|
+
## Setup
|
|
29
|
+
|
|
30
|
+
- Dependencies → `npm install`
|
|
31
|
+
- Large files → `git lfs pull`
|
|
32
|
+
|
|
33
|
+
## Running Tasks
|
|
34
|
+
|
|
35
|
+
- Project task → `npx moon run <project>:<task>`
|
|
36
|
+
- Tag-based → `npx moon run #<tag>:<task>`
|
|
37
|
+
- Tenants → `npx moon run #tenant-<name>:<task>`
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Techniques:**
|
|
41
|
+
- Measure baseline line count to track reduction
|
|
42
|
+
- Remove verbose prose and redundant descriptions
|
|
43
|
+
- Condense multi-line bullets to single lines with inline details
|
|
44
|
+
- Convert code blocks to inline arrow notation (`→`)
|
|
45
|
+
- Preserve section hierarchy, technology names, and integration points
|
|
46
|
+
- Keep command examples with actual tool names
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# sync: Sync AGENTS.md with Filesystem
|
|
2
|
+
|
|
3
|
+
**Guideline:** Update AGENTS.md to reflect current directory structure, files, and configuration state while preserving technology names.
|
|
4
|
+
|
|
5
|
+
**Rationale:** Directory structures evolve. Syncing keeps instruction files accurate and up-to-date with the actual filesystem state so developers have reliable reference documentation.
|
|
6
|
+
|
|
7
|
+
**Example:**
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
# Before sync (missing new directories)
|
|
11
|
+
|
|
12
|
+
## Subdirectories
|
|
13
|
+
- **services/**: TypeScript applications
|
|
14
|
+
- **clusters/**: Kubernetes GitOps
|
|
15
|
+
- **docs/**: Documentation
|
|
16
|
+
|
|
17
|
+
# After scan, detect new directories
|
|
18
|
+
# New: games/ (with C++, TypeScript), assets/, insights/
|
|
19
|
+
|
|
20
|
+
# After sync (directories now reflect filesystem)
|
|
21
|
+
|
|
22
|
+
## Subdirectories
|
|
23
|
+
- **services/**: TypeScript/JavaScript apps (package.json, tsconfig.json)
|
|
24
|
+
- **clusters/**: Kubernetes GitOps (kustomization.yaml)
|
|
25
|
+
- **docs/**: Technical documentation (*.md)
|
|
26
|
+
- **games/**: C++ game dev with TypeScript scripting (CMakeLists.txt, tsconfig.json)
|
|
27
|
+
- **assets/**: Brand assets and fonts (*.ttf, *.png)
|
|
28
|
+
- **insights/**: Development lessons (*.md)
|
|
29
|
+
|
|
30
|
+
# Updated commands from detected config files
|
|
31
|
+
# From moon.yml: "npx moon run <project>:<task>"
|
|
32
|
+
# From package.json: "npm install", "npm run build"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Techniques:**
|
|
36
|
+
- Scan subdirectories 1 level deep, excluding node_modules, .git, build, dist
|
|
37
|
+
- Identify config files (package.json, moon.yml, CMakeLists.txt, Dockerfile)
|
|
38
|
+
- Format files inline: `(main.tf, vars, backend.sh)`
|
|
39
|
+
- Detect `<name>/` patterns for similar directories
|
|
40
|
+
- Add new directories, update existing entries, remove deleted ones
|
|
41
|
+
- Extract updated commands from config files while preserving technology names
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kubernetes-guidelines
|
|
3
|
+
description: >-
|
|
4
|
+
Trigger on `.yaml/.yml` files in clusters/ or k8s directories. Use when writing Kubernetes manifests for GitOps deployments. Apply for Deployments, Services, security, multi-environment config. Keywords: Kubernetes, Deployment, Service, ConfigMap, Secret, Kustomize, Flux, RLS, SOPS, labels, namespaces.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Kubernetes Coding Guidelines
|
|
8
|
+
|
|
9
|
+
## Requirements
|
|
10
|
+
|
|
11
|
+
- Kubernetes ≥ 1.28, Kustomize ≥ 5, GitOps (Flux).
|
|
12
|
+
|
|
13
|
+
## Essentials
|
|
14
|
+
|
|
15
|
+
- **Organization** - Use namespaces, labels, annotations consistently, see [reference/deployments.md](reference/deployments.md)
|
|
16
|
+
- **Container images** - No `latest` tags, set requests/limits and probes, see [reference/deployments.md](reference/deployments.md)
|
|
17
|
+
- **Security** - Run as non-root, read-only FS, drop capabilities, see [reference/deployments.md](reference/deployments.md)
|
|
18
|
+
- **Configuration** - Use ConfigMaps/Secrets, SOPS/External Secrets for secrets, see [reference/configmaps-secrets.md](reference/configmaps-secrets.md)
|
|
19
|
+
- **Multi-environment** - Manage with Kustomize bases/overlays, validate with `--dry-run`, see [reference/kustomize.md](reference/kustomize.md), [reference/validation.md](reference/validation.md)
|
|
20
|
+
|
|
21
|
+
## Progressive disclosure
|
|
22
|
+
|
|
23
|
+
- Read [reference/deployments.md](reference/deployments.md) - When creating or updating Deployment resources
|
|
24
|
+
- Read [reference/services.md](reference/services.md) - When exposing applications or configuring load balancing
|
|
25
|
+
- Read [reference/configmaps-secrets.md](reference/configmaps-secrets.md) - When externalizing configuration or managing secrets
|
|
26
|
+
- Read [reference/kustomize.md](reference/kustomize.md) - When managing multiple environments with overlays
|
|
27
|
+
- Read [reference/network-policies.md](reference/network-policies.md) - When implementing network isolation between pods
|
|
28
|
+
- Read [reference/validation.md](reference/validation.md) - When validating manifests before applying to cluster
|