@ranimontagna/agent-toolkit 0.3.6 → 0.3.7

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.
Files changed (107) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +1 -1
  3. package/package.json +1 -1
  4. package/skills/backend/fastify-best-practices/NOTICE.md +1 -1
  5. package/skills/backend/fastify-best-practices/rules/authentication.md +13 -0
  6. package/skills/backend/fastify-best-practices/rules/configuration.md +9 -0
  7. package/skills/backend/fastify-best-practices/rules/content-type.md +16 -0
  8. package/skills/backend/fastify-best-practices/rules/cors-security.md +18 -0
  9. package/skills/backend/fastify-best-practices/rules/database.md +12 -0
  10. package/skills/backend/fastify-best-practices/rules/decorators.md +14 -0
  11. package/skills/backend/fastify-best-practices/rules/deployment.md +16 -0
  12. package/skills/backend/fastify-best-practices/rules/error-handling.md +16 -0
  13. package/skills/backend/fastify-best-practices/rules/hooks.md +20 -0
  14. package/skills/backend/fastify-best-practices/rules/http-proxy.md +11 -0
  15. package/skills/backend/fastify-best-practices/rules/logging.md +18 -0
  16. package/skills/backend/fastify-best-practices/rules/performance.md +20 -0
  17. package/skills/backend/fastify-best-practices/rules/plugins.md +14 -0
  18. package/skills/backend/fastify-best-practices/rules/routes.md +18 -0
  19. package/skills/backend/fastify-best-practices/rules/schemas.md +20 -0
  20. package/skills/backend/fastify-best-practices/rules/serialization.md +19 -0
  21. package/skills/backend/fastify-best-practices/rules/testing.md +17 -0
  22. package/skills/backend/fastify-best-practices/rules/typescript.md +15 -0
  23. package/skills/backend/fastify-best-practices/rules/websockets.md +15 -0
  24. package/skills/backend/go/golang-patterns/NOTICE.md +1 -1
  25. package/skills/backend/go/golang-patterns/SKILL.md +2 -1
  26. package/skills/devops/docker-patterns/NOTICE.md +1 -1
  27. package/skills/devops/docker-patterns/SKILL.md +3 -3
  28. package/skills/frontend/design/revenue-centric-design/NOTICE.md +1 -1
  29. package/skills/frontend/design/revenue-centric-design/SKILL.md +6 -4
  30. package/skills/frontend/design/revenue-centric-design/assets/1985681720104903142__1.jpg +0 -0
  31. package/skills/frontend/design/revenue-centric-design/assets/1999584679247134761__1.jpg +0 -0
  32. package/skills/frontend/design/revenue-centric-design/assets/2000930776636940333__1.jpg +0 -0
  33. package/skills/frontend/design/revenue-centric-design/assets/2018693884449009956__3.jpg +0 -0
  34. package/skills/frontend/design/revenue-centric-design/assets/2081714430811730162__1.jpg +0 -0
  35. package/skills/frontend/design/revenue-centric-design/assets/2092692547244007852__q__1.jpg +0 -0
  36. package/skills/frontend/design/revenue-centric-design/assets/2092692547244007852__q__2.jpg +0 -0
  37. package/skills/frontend/design/revenue-centric-design/assets/2092692547244007852__q__3.jpg +0 -0
  38. package/skills/frontend/design/revenue-centric-design/references/checkout-and-forms.md +39 -0
  39. package/skills/frontend/design/revenue-centric-design/references/churn-and-retention.md +25 -0
  40. package/skills/frontend/design/revenue-centric-design/references/conversion-and-landing-pages.md +52 -1
  41. package/skills/frontend/design/revenue-centric-design/references/dashboards-and-data-viz.md +23 -0
  42. package/skills/frontend/design/revenue-centric-design/references/metrics-and-experimentation.md +13 -0
  43. package/skills/frontend/design/revenue-centric-design/references/onboarding-and-activation.md +7 -1
  44. package/skills/frontend/design/revenue-centric-design/references/pricing-and-monetization.md +35 -8
  45. package/skills/frontend/design/revenue-centric-design/references/product-strategy-and-features.md +37 -0
  46. package/skills/frontend/design/revenue-centric-design/references/revenue-centric-design.md +2 -2
  47. package/skills/frontend/design/ui-ux-pro-max/NOTICE.md +6 -4
  48. package/skills/frontend/design/ui-ux-pro-max/SKILL.md +103 -573
  49. package/skills/frontend/design/ui-ux-pro-max/data/app-interface.csv +29 -27
  50. package/skills/frontend/design/ui-ux-pro-max/data/catalog-summary.json +78 -0
  51. package/skills/frontend/design/ui-ux-pro-max/data/charts.csv +26 -26
  52. package/skills/frontend/design/ui-ux-pro-max/data/colors.csv +191 -160
  53. package/skills/frontend/design/ui-ux-pro-max/data/data-provenance.json +1348 -0
  54. package/skills/frontend/design/ui-ux-pro-max/data/google-font-licenses.json +20185 -0
  55. package/skills/frontend/design/ui-ux-pro-max/data/google-fonts.csv +1934 -1923
  56. package/skills/frontend/design/ui-ux-pro-max/data/icons.csv +106 -106
  57. package/skills/frontend/design/ui-ux-pro-max/data/landing.csv +35 -35
  58. package/skills/frontend/design/ui-ux-pro-max/data/motion.csv +18 -0
  59. package/skills/frontend/design/ui-ux-pro-max/data/phosphor-icons-upstream.json +32582 -0
  60. package/skills/frontend/design/ui-ux-pro-max/data/products.csv +192 -161
  61. package/skills/frontend/design/ui-ux-pro-max/data/react-performance.csv +37 -37
  62. package/skills/frontend/design/ui-ux-pro-max/data/stacks/angular.csv +51 -51
  63. package/skills/frontend/design/ui-ux-pro-max/data/stacks/astro.csv +54 -54
  64. package/skills/frontend/design/ui-ux-pro-max/data/stacks/avalonia.csv +57 -0
  65. package/skills/frontend/design/ui-ux-pro-max/data/stacks/flutter.csv +53 -53
  66. package/skills/frontend/design/ui-ux-pro-max/data/stacks/html-tailwind.csv +60 -56
  67. package/skills/frontend/design/ui-ux-pro-max/data/stacks/javafx.csv +76 -0
  68. package/skills/frontend/design/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -53
  69. package/skills/frontend/design/ui-ux-pro-max/data/stacks/laravel.csv +51 -51
  70. package/skills/frontend/design/ui-ux-pro-max/data/stacks/nextjs.csv +62 -53
  71. package/skills/frontend/design/ui-ux-pro-max/data/stacks/nuxt-ui.csv +77 -51
  72. package/skills/frontend/design/ui-ux-pro-max/data/stacks/nuxtjs.csv +68 -59
  73. package/skills/frontend/design/ui-ux-pro-max/data/stacks/react-native.csv +52 -52
  74. package/skills/frontend/design/ui-ux-pro-max/data/stacks/react.csv +67 -54
  75. package/skills/frontend/design/ui-ux-pro-max/data/stacks/shadcn.csv +69 -61
  76. package/skills/frontend/design/ui-ux-pro-max/data/stacks/svelte.csv +56 -54
  77. package/skills/frontend/design/ui-ux-pro-max/data/stacks/swiftui.csv +51 -51
  78. package/skills/frontend/design/ui-ux-pro-max/data/stacks/threejs.csv +54 -54
  79. package/skills/frontend/design/ui-ux-pro-max/data/stacks/uno.csv +60 -0
  80. package/skills/frontend/design/ui-ux-pro-max/data/stacks/uwp.csv +56 -0
  81. package/skills/frontend/design/ui-ux-pro-max/data/stacks/vue.csv +50 -50
  82. package/skills/frontend/design/ui-ux-pro-max/data/stacks/winui.csv +60 -0
  83. package/skills/frontend/design/ui-ux-pro-max/data/stacks/wpf.csv +57 -0
  84. package/skills/frontend/design/ui-ux-pro-max/data/styles.csv +89 -85
  85. package/skills/frontend/design/ui-ux-pro-max/data/typography.csv +74 -73
  86. package/skills/frontend/design/ui-ux-pro-max/data/ui-reasoning.csv +193 -162
  87. package/skills/frontend/design/ui-ux-pro-max/data/ux-guidelines.csv +30 -10
  88. package/skills/frontend/design/ui-ux-pro-max/references/pro-rules.md +117 -0
  89. package/skills/frontend/design/ui-ux-pro-max/references/quick-reference.md +256 -0
  90. package/skills/frontend/design/ui-ux-pro-max/scripts/core.py +800 -69
  91. package/skills/frontend/design/ui-ux-pro-max/scripts/design_system.py +700 -180
  92. package/skills/frontend/design/ui-ux-pro-max/scripts/reasoning_contract.py +123 -0
  93. package/skills/frontend/design/ui-ux-pro-max/scripts/search.py +105 -42
  94. package/skills/frontend/design/ui-ux-pro-max/scripts/validate_data.py +1095 -0
  95. package/skills/frontend/react-native/react-native-unistyles-v3/NOTICE.md +1 -1
  96. package/skills/frontend/react-native/react-native-unistyles-v3/SKILL.md +33 -24
  97. package/skills/frontend/react-native/react-native-unistyles-v3/references/api-reference.md +135 -78
  98. package/skills/frontend/react-native/react-native-unistyles-v3/references/common-issues.md +48 -31
  99. package/skills/frontend/react-native/react-native-unistyles-v3/references/setup-guide.md +76 -34
  100. package/skills/frontend/react-native/react-native-unistyles-v3/references/styling-patterns.md +145 -52
  101. package/skills/frontend/react-native/react-native-unistyles-v3/references/third-party-integration.md +76 -27
  102. package/skills/media/brag-slim/NOTICE.md +3 -3
  103. package/skills/media/brag-slim/SKILL.md +4 -0
  104. package/skills/frontend/design/revenue-centric-design/assets/2018693884449009956__1.jpg +0 -0
  105. package/skills/frontend/design/ui-ux-pro-max/data/_sync_all.py +0 -414
  106. package/skills/frontend/design/ui-ux-pro-max/data/design.csv +0 -1776
  107. package/skills/frontend/design/ui-ux-pro-max/data/draft.csv +0 -1779
package/CHANGELOG.md CHANGED
@@ -15,6 +15,8 @@ The release entries below are based on Git tag ranges and npm publication metada
15
15
 
16
16
  ## [Unreleased]
17
17
 
18
+ - Updated the bundled `revenue-centric-design` skill to upstream `heliocosta-dev/revenue-centric-design@1942760` (1.3.0, 101 → 134 principles), adding the Checkout & Forms and Dashboards & Data Visualization references and vendoring only the assets they cite.
19
+ - Refreshed bundled third-party skills against their upstreams: `ui-ux-pro-max` to `nextlevelbuilder/ui-ux-pro-max-skill@477bcb2` (curated data overhaul, design dials, GSAP presets and new references, with command paths kept relative to the skill directory and the upstream test suite left out), `react-native-unistyles-v3` to `jpudysz/react-native-unistyles@eef411b` (docs refresh), `fastify-best-practices` to `mcollina/skills@58b3eeb` (tables of contents in long rules), `brag-slim` to `latent-spaces/brag@069432c` (skip list and secrets rule), the `golang-patterns` golangci-lint `govet` example to `enable: [shadow]` from `affaan-m/ECC@d29cf65`, and the `docker-patterns` Node examples to `npm prune --omit=dev` with group-scoped `adduser`, following `sickn33/antigravity-awesome-skills@e0bcf88`.
18
20
  - Fixed the Codex Superpowers install on a `CODEX_HOME` that never synced the local `openai-curated` marketplace: the installer now falls back to `superpowers@openai-curated-remote`, the account's remote catalog.
19
21
  - Added the bundled `media/brag-slim` launch-video skill, vendored from `latent-spaces/brag@fd7de7e` with its MIT license and attribution notice.
20
22
  - Refreshed the pinned external tools: RTK `v0.51.0` with new archive checksums, Caveman `3.2.0` at `2e08b91`, Graphify `0.9.87`, GSD Core `1.16.0`, Agent Skills CLI `1.7.2`, Agent Browser `0.39.0` with its matching `vercel-labs/agent-browser` tag commit, the `pbakaus/impeccable`, `millionco/react-doctor`, `remotion-dev/skills` and `mattpocock/skills` sources, and the Claude Code `2.1.296`, Codex `0.162.1`, OpenCode `1.19.0` and Gemini `0.63.0` runtime CLIs, after re-checking the installer and Ariadne headless flags on each.
package/README.md CHANGED
@@ -109,7 +109,7 @@ workflow; toolkit tags remain `vX.Y.Z`.
109
109
 
110
110
  The first-party `security` skills are defensive rewrites informed by [`uphiago/recon-skills`](https://github.com/uphiago/recon-skills), under its MIT License. They are intended for authorized, non-destructive reviews; upstream offensive infrastructure, agent instructions, scripts, and mass-scanning workflows are not included. See [`skills/security/NOTICE.md`](skills/security/NOTICE.md) for attribution.
111
111
 
112
- The bundled `media/brag-slim` skill is vendored from [`latent-spaces/brag`](https://github.com/latent-spaces/brag) at commit `fd7de7e418334876b3ea4e9258231a66a2c2a38d` under the MIT License. It turns a project directory or website URL into a short launch video with share copy, built with tools already on the machine; the full `/brag` skill, its render scripts, and bundled music are not included. See [`skills/media/brag-slim/NOTICE.md`](skills/media/brag-slim/NOTICE.md) for attribution.
112
+ The bundled `media/brag-slim` skill is vendored from [`latent-spaces/brag`](https://github.com/latent-spaces/brag) at commit `069432cac935ed1895859df201c31436c07fb74e` under the MIT License. It turns a project directory or website URL into a short launch video with share copy, built with tools already on the machine; the full `/brag` skill, its render scripts, and bundled music are not included. See [`skills/media/brag-slim/NOTICE.md`](skills/media/brag-slim/NOTICE.md) for attribution.
113
113
 
114
114
  The first-party `ariadne` and `ariadne-prd` skills are Ariadne-specific adaptations of concepts from [`snarktank/ralph`](https://github.com/snarktank/ralph) under the MIT License. They install through the ordinary Custom Skills pipeline for all five runtimes; `tools.ariadne` records reviewed attribution only and is not fetched or executed during a normal Ariadne run. Each skill directory contains its source path, reviewed commit, and source hash in `NOTICE.md`.
115
115
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ranimontagna/agent-toolkit",
3
- "version": "0.3.6",
3
+ "version": "0.3.7",
4
4
  "description": "Personal AI agent toolkit installer for Claude Code, Codex CLI, OpenCode, Gemini CLI, Antigravity and graph-aware workflows.",
5
5
  "type": "module",
6
6
  "engines": {
@@ -3,7 +3,7 @@
3
3
  This skill is copied from Matteo Collina's public `mcollina/skills` repository.
4
4
 
5
5
  - Source: https://github.com/mcollina/skills/tree/main/skills/fastify
6
- - Imported from commit: `5b2a81354b6d10325da0db9decc9ce5ecc714138`
6
+ - Imported from commit: `58b3eeb398d10c007988e80f73d30ebadab64754`
7
7
  - Upstream package name: `mcollina/fastify-best-practices`
8
8
  - License: MIT
9
9
  - Copyright: Copyright (c) 2026 Matteo Collina
@@ -7,6 +7,19 @@ metadata:
7
7
 
8
8
  # Authentication and Authorization
9
9
 
10
+ ## Contents
11
+
12
+ - [JWT Authentication with @fastify/jwt](#jwt-authentication-with-fastifyjwt)
13
+ - [Refresh Tokens](#refresh-tokens)
14
+ - [Role-Based Access Control](#role-based-access-control)
15
+ - [Permission-Based Authorization](#permission-based-authorization)
16
+ - [API Key / Bearer Token Authentication](#api-key--bearer-token-authentication)
17
+ - [OAuth 2.0 Integration](#oauth-20-integration)
18
+ - [Session-Based Authentication](#session-based-authentication)
19
+ - [Resource-Based Authorization](#resource-based-authorization)
20
+ - [Password Hashing](#password-hashing)
21
+ - [Rate Limiting for Auth Endpoints](#rate-limiting-for-auth-endpoints)
22
+
10
23
  ## JWT Authentication with @fastify/jwt
11
24
 
12
25
  Use `@fastify/jwt` for JSON Web Token authentication:
@@ -7,6 +7,15 @@ metadata:
7
7
 
8
8
  # Application Configuration
9
9
 
10
+ ## Contents
11
+
12
+ - [Use env-schema for Configuration](#use-env-schema-for-configuration)
13
+ - [Configuration as Plugin](#configuration-as-plugin)
14
+ - [Secrets Management](#secrets-management)
15
+ - [Feature Flags](#feature-flags)
16
+ - [Anti-Patterns to Avoid](#anti-patterns-to-avoid)
17
+ - [Dynamic Configuration](#dynamic-configuration)
18
+
10
19
  ## Use env-schema for Configuration
11
20
 
12
21
  **Always use `env-schema` for configuration validation.** It provides JSON Schema validation for environment variables with sensible defaults.
@@ -7,6 +7,22 @@ metadata:
7
7
 
8
8
  # Content Type Parsing
9
9
 
10
+ ## Contents
11
+
12
+ - [Default Content Type Parsers](#default-content-type-parsers)
13
+ - [Custom Content Type Parsers](#custom-content-type-parsers)
14
+ - [XML Parsing](#xml-parsing)
15
+ - [Multipart Form Data](#multipart-form-data)
16
+ - [Stream Processing](#stream-processing)
17
+ - [Custom JSON Parser](#custom-json-parser)
18
+ - [Content Type with Parameters](#content-type-with-parameters)
19
+ - [Catch-All Parser](#catch-all-parser)
20
+ - [Body Limit Configuration](#body-limit-configuration)
21
+ - [Protocol Buffers](#protocol-buffers)
22
+ - [Form Data with @fastify/formbody](#form-data-with-fastifyformbody)
23
+ - [Content Negotiation](#content-negotiation)
24
+ - [Validation After Parsing](#validation-after-parsing)
25
+
10
26
  ## Default Content Type Parsers
11
27
 
12
28
  Fastify includes parsers for common content types:
@@ -7,6 +7,24 @@ metadata:
7
7
 
8
8
  # CORS and Security
9
9
 
10
+ ## Contents
11
+
12
+ - [CORS with @fastify/cors](#cors-with-fastifycors)
13
+ - [Dynamic CORS Origin](#dynamic-cors-origin)
14
+ - [Per-Route CORS](#per-route-cors)
15
+ - [Security Headers with @fastify/helmet](#security-headers-with-fastifyhelmet)
16
+ - [Configure Individual Headers](#configure-individual-headers)
17
+ - [Rate Limiting](#rate-limiting)
18
+ - [Redis-Based Rate Limiting](#redis-based-rate-limiting)
19
+ - [CSRF Protection](#csrf-protection)
20
+ - [Custom Security Headers](#custom-security-headers)
21
+ - [Secure Cookies](#secure-cookies)
22
+ - [Request Validation Security](#request-validation-security)
23
+ - [IP Filtering](#ip-filtering)
24
+ - [Trust Proxy](#trust-proxy)
25
+ - [HTTPS Redirect](#https-redirect)
26
+ - [Security Best Practices Summary](#security-best-practices-summary)
27
+
10
28
  ## CORS with @fastify/cors
11
29
 
12
30
  Enable Cross-Origin Resource Sharing:
@@ -7,6 +7,18 @@ metadata:
7
7
 
8
8
  # Database Integration
9
9
 
10
+ ## Contents
11
+
12
+ - [Use Official Fastify Database Adapters](#use-official-fastify-database-adapters)
13
+ - [PostgreSQL with @fastify/postgres](#postgresql-with-fastifypostgres)
14
+ - [MySQL with @fastify/mysql](#mysql-with-fastifymysql)
15
+ - [MongoDB with @fastify/mongodb](#mongodb-with-fastifymongodb)
16
+ - [Redis with @fastify/redis](#redis-with-fastifyredis)
17
+ - [Database as Plugin](#database-as-plugin)
18
+ - [Repository Pattern](#repository-pattern)
19
+ - [Testing with Database](#testing-with-database)
20
+ - [Connection Pool Configuration](#connection-pool-configuration)
21
+
10
22
  ## Use Official Fastify Database Adapters
11
23
 
12
24
  Always use the official Fastify database plugins from the `@fastify` organization. They provide proper connection pooling, encapsulation, and integration with Fastify's lifecycle.
@@ -7,6 +7,20 @@ metadata:
7
7
 
8
8
  # Decorators and Extensions
9
9
 
10
+ ## Contents
11
+
12
+ - [Understanding Decorators](#understanding-decorators)
13
+ - [Decorator Types](#decorator-types)
14
+ - [TypeScript Declaration Merging](#typescript-declaration-merging)
15
+ - [Decorator Initialization](#decorator-initialization)
16
+ - [Dependency Injection with Decorators](#dependency-injection-with-decorators)
17
+ - [Request Context Pattern](#request-context-pattern)
18
+ - [Reply Helpers](#reply-helpers)
19
+ - [Checking Decorators](#checking-decorators)
20
+ - [Decorator Encapsulation](#decorator-encapsulation)
21
+ - [Functional Decorators](#functional-decorators)
22
+ - [Async Decorator Initialization](#async-decorator-initialization)
23
+
10
24
  ## Understanding Decorators
11
25
 
12
26
  Decorators add custom properties and methods to Fastify instances, requests, and replies:
@@ -7,6 +7,20 @@ metadata:
7
7
 
8
8
  # Production Deployment
9
9
 
10
+ ## Contents
11
+
12
+ - [Graceful Shutdown with close-with-grace](#graceful-shutdown-with-close-with-grace)
13
+ - [Health Check Endpoints](#health-check-endpoints)
14
+ - [Docker Configuration](#docker-configuration)
15
+ - [Kubernetes Deployment](#kubernetes-deployment)
16
+ - [Production Logger Configuration](#production-logger-configuration)
17
+ - [Request Timeouts](#request-timeouts)
18
+ - [Trust Proxy Settings](#trust-proxy-settings)
19
+ - [Static File Serving](#static-file-serving)
20
+ - [Compression](#compression)
21
+ - [Metrics and Monitoring](#metrics-and-monitoring)
22
+ - [Zero-Downtime Deployments](#zero-downtime-deployments)
23
+
10
24
  ## Graceful Shutdown with close-with-grace
11
25
 
12
26
  Use `close-with-grace` for proper shutdown handling:
@@ -106,6 +120,7 @@ app.get('/health/details', {
106
120
  };
107
121
  });
108
122
  ```
123
+
109
124
  ## Docker Configuration
110
125
 
111
126
  Create an optimized Dockerfile:
@@ -421,3 +436,4 @@ closeWithGrace({ delay: 30000 }, async ({ signal }) => {
421
436
  app.log.info('Server closed');
422
437
  });
423
438
  ```
439
+
@@ -7,6 +7,22 @@ metadata:
7
7
 
8
8
  # Error Handling in Fastify
9
9
 
10
+ ## Contents
11
+
12
+ - [Default Error Handler](#default-error-handler)
13
+ - [Custom Error Classes](#custom-error-classes)
14
+ - [Custom Error Handler](#custom-error-handler)
15
+ - [Error Response Schema](#error-response-schema)
16
+ - [Reply Helpers with @fastify/sensible](#reply-helpers-with-fastifysensible)
17
+ - [Async Error Handling](#async-error-handling)
18
+ - [Hook Error Handling](#hook-error-handling)
19
+ - [Not Found Handler](#not-found-handler)
20
+ - [Error Wrapping](#error-wrapping)
21
+ - [Validation Error Customization](#validation-error-customization)
22
+ - [Error Cause Chain](#error-cause-chain)
23
+ - [Plugin-Scoped Error Handlers](#plugin-scoped-error-handlers)
24
+ - [Graceful Error Recovery](#graceful-error-recovery)
25
+
10
26
  ## Default Error Handler
11
27
 
12
28
  Fastify has a built-in error handler. Thrown errors automatically become HTTP responses:
@@ -7,6 +7,26 @@ metadata:
7
7
 
8
8
  # Hooks and Request Lifecycle
9
9
 
10
+ ## Contents
11
+
12
+ - [Request Lifecycle Overview](#request-lifecycle-overview)
13
+ - [onRequest Hook](#onrequest-hook)
14
+ - [preParsing Hook](#preparsing-hook)
15
+ - [preValidation Hook](#prevalidation-hook)
16
+ - [preHandler Hook](#prehandler-hook)
17
+ - [preSerialization Hook](#preserialization-hook)
18
+ - [onSend Hook](#onsend-hook)
19
+ - [onResponse Hook](#onresponse-hook)
20
+ - [onError Hook](#onerror-hook)
21
+ - [onTimeout Hook](#ontimeout-hook)
22
+ - [onRequestAbort Hook](#onrequestabort-hook)
23
+ - [Application Lifecycle Hooks](#application-lifecycle-hooks)
24
+ - [Scoped Hooks](#scoped-hooks)
25
+ - [Hook Execution Order](#hook-execution-order)
26
+ - [Stopping Hook Execution](#stopping-hook-execution)
27
+ - [Route-Level Hooks](#route-level-hooks)
28
+ - [Async Hook Patterns](#async-hook-patterns)
29
+
10
30
  ## Request Lifecycle Overview
11
31
 
12
32
  Fastify executes hooks in a specific order:
@@ -7,6 +7,17 @@ metadata:
7
7
 
8
8
  # HTTP Proxy and Reply.from()
9
9
 
10
+ ## Contents
11
+
12
+ - [@fastify/http-proxy](#fastifyhttp-proxy)
13
+ - [@fastify/reply-from](#fastifyreply-from)
14
+ - [API Gateway Pattern](#api-gateway-pattern)
15
+ - [Request Body Handling](#request-body-handling)
16
+ - [Error Handling](#error-handling)
17
+ - [WebSocket Proxying](#websocket-proxying)
18
+ - [Timeout Configuration](#timeout-configuration)
19
+ - [Caching Proxied Responses](#caching-proxied-responses)
20
+
10
21
  ## @fastify/http-proxy
11
22
 
12
23
  Use `@fastify/http-proxy` for simple reverse proxy scenarios:
@@ -7,6 +7,24 @@ metadata:
7
7
 
8
8
  # Logging with Pino
9
9
 
10
+ ## Contents
11
+
12
+ - [Built-in Pino Integration](#built-in-pino-integration)
13
+ - [Log Levels](#log-levels)
14
+ - [Request-Scoped Logging](#request-scoped-logging)
15
+ - [Structured Logging](#structured-logging)
16
+ - [Logging Configuration by Environment](#logging-configuration-by-environment)
17
+ - [Custom Serializers](#custom-serializers)
18
+ - [Redacting Sensitive Data](#redacting-sensitive-data)
19
+ - [Child Loggers](#child-loggers)
20
+ - [Request Logging Configuration](#request-logging-configuration)
21
+ - [Logging Errors](#logging-errors)
22
+ - [Log Destinations](#log-destinations)
23
+ - [Log Rotation](#log-rotation)
24
+ - [Log Aggregation](#log-aggregation)
25
+ - [Request ID Tracking](#request-id-tracking)
26
+ - [Performance Considerations](#performance-considerations)
27
+
10
28
  ## Built-in Pino Integration
11
29
 
12
30
  Fastify uses Pino for high-performance logging:
@@ -7,6 +7,26 @@ metadata:
7
7
 
8
8
  # Performance Optimization
9
9
 
10
+ ## Contents
11
+
12
+ - [Fastify is Fast by Default](#fastify-is-fast-by-default)
13
+ - [Use @fastify/under-pressure for Load Shedding](#use-fastifyunder-pressure-for-load-shedding)
14
+ - [Always Define Response Schemas](#always-define-response-schemas)
15
+ - [Avoid Dynamic Schema Compilation](#avoid-dynamic-schema-compilation)
16
+ - [Use Logger Wisely](#use-logger-wisely)
17
+ - [Connection Pooling](#connection-pooling)
18
+ - [Avoid Blocking the Event Loop](#avoid-blocking-the-event-loop)
19
+ - [Stream Large Responses](#stream-large-responses)
20
+ - [Caching Strategies](#caching-strategies)
21
+ - [Request Coalescing with async-cache-dedupe](#request-coalescing-with-async-cache-dedupe)
22
+ - [Payload Limits](#payload-limits)
23
+ - [Compression](#compression)
24
+ - [Connection Timeouts](#connection-timeouts)
25
+ - [Disable Unnecessary Features](#disable-unnecessary-features)
26
+ - [Benchmarking](#benchmarking)
27
+ - [Profiling](#profiling)
28
+ - [Memory Management](#memory-management)
29
+
10
30
  ## Fastify is Fast by Default
11
31
 
12
32
  Fastify is designed for performance. Key optimizations are built-in:
@@ -7,6 +7,20 @@ metadata:
7
7
 
8
8
  # Plugin Development and Encapsulation
9
9
 
10
+ ## Contents
11
+
12
+ - [Understanding Encapsulation](#understanding-encapsulation)
13
+ - [Breaking Encapsulation with fastify-plugin](#breaking-encapsulation-with-fastify-plugin)
14
+ - [Plugin Registration Order](#plugin-registration-order)
15
+ - [Plugin Options](#plugin-options)
16
+ - [Plugin Factory Pattern](#plugin-factory-pattern)
17
+ - [Plugin Dependencies](#plugin-dependencies)
18
+ - [Scoped Plugins for Route Groups](#scoped-plugins-for-route-groups)
19
+ - [Prefix Routes with Register](#prefix-routes-with-register)
20
+ - [Plugin Metadata](#plugin-metadata)
21
+ - [Autoload Plugins](#autoload-plugins)
22
+ - [Testing Plugins in Isolation](#testing-plugins-in-isolation)
23
+
10
24
  ## Understanding Encapsulation
11
25
 
12
26
  Fastify's plugin system provides automatic encapsulation. Each plugin creates its own context, isolating decorators, hooks, and plugins registered within it:
@@ -7,6 +7,24 @@ metadata:
7
7
 
8
8
  # Route Organization and Handlers
9
9
 
10
+ ## Contents
11
+
12
+ - [Basic Route Definition](#basic-route-definition)
13
+ - [Route Parameters](#route-parameters)
14
+ - [Query String Parameters](#query-string-parameters)
15
+ - [Request Body](#request-body)
16
+ - [Headers](#headers)
17
+ - [Reply Methods](#reply-methods)
18
+ - [Route Organization by Feature](#route-organization-by-feature)
19
+ - [Route Constraints](#route-constraints)
20
+ - [Route Prefixing](#route-prefixing)
21
+ - [Multiple Methods](#multiple-methods)
22
+ - [404 Handler](#404-handler)
23
+ - [Method Not Allowed](#method-not-allowed)
24
+ - [Route-Level Configuration](#route-level-configuration)
25
+ - [Async Route Registration](#async-route-registration)
26
+ - [Auto-loading Routes with @fastify/autoload](#auto-loading-routes-with-fastifyautoload)
27
+
10
28
  ## Basic Route Definition
11
29
 
12
30
  Define routes with the shorthand methods or the full route method:
@@ -7,6 +7,26 @@ metadata:
7
7
 
8
8
  # JSON Schema Validation
9
9
 
10
+ ## Contents
11
+
12
+ - [Use TypeBox for Type-Safe Schemas](#use-typebox-for-type-safe-schemas)
13
+ - [TypeBox Common Patterns](#typebox-common-patterns)
14
+ - [Register TypeBox Schemas Globally](#register-typebox-schemas-globally)
15
+ - [Plain JSON Schema (Alternative)](#plain-json-schema-alternative)
16
+ - [Request Validation Parts](#request-validation-parts)
17
+ - [Shared Schemas with $id](#shared-schemas-with-id)
18
+ - [Array Schemas](#array-schemas)
19
+ - [Custom Formats](#custom-formats)
20
+ - [Custom Keywords](#custom-keywords)
21
+ - [Coercion](#coercion)
22
+ - [Validation Error Handling](#validation-error-handling)
23
+ - [Schema Compiler Options](#schema-compiler-options)
24
+ - [Nullable Fields](#nullable-fields)
25
+ - [Conditional Validation](#conditional-validation)
26
+ - [Schema Organization](#schema-organization)
27
+ - [OpenAPI/Swagger Integration](#openapiswagger-integration)
28
+ - [Performance Considerations](#performance-considerations)
29
+
10
30
  ## Use TypeBox for Type-Safe Schemas
11
31
 
12
32
  **Prefer TypeBox for defining schemas.** It provides TypeScript types automatically and compiles to JSON Schema:
@@ -7,6 +7,25 @@ metadata:
7
7
 
8
8
  # Response Serialization
9
9
 
10
+ ## Contents
11
+
12
+ - [Use TypeBox for Type-Safe Response Schemas](#use-typebox-for-type-safe-response-schemas)
13
+ - [Fast JSON Stringify](#fast-json-stringify)
14
+ - [Response Schema Benefits](#response-schema-benefits)
15
+ - [Multiple Status Code Schemas](#multiple-status-code-schemas)
16
+ - [Default Response Schema](#default-response-schema)
17
+ - [Custom Serializers](#custom-serializers)
18
+ - [Shared Serializers](#shared-serializers)
19
+ - [Serialization with Type Coercion](#serialization-with-type-coercion)
20
+ - [Nullable Fields](#nullable-fields)
21
+ - [Additional Properties](#additional-properties)
22
+ - [Nested Objects](#nested-objects)
23
+ - [Date Serialization](#date-serialization)
24
+ - [BigInt Serialization](#bigint-serialization)
25
+ - [Stream Responses](#stream-responses)
26
+ - [Pre-Serialization Hook](#pre-serialization-hook)
27
+ - [Disable Serialization](#disable-serialization)
28
+
10
29
  ## Use TypeBox for Type-Safe Response Schemas
11
30
 
12
31
  Define response schemas with TypeBox for automatic TypeScript types and fast serialization:
@@ -7,6 +7,23 @@ metadata:
7
7
 
8
8
  # Testing Fastify Applications
9
9
 
10
+ ## Contents
11
+
12
+ - [Using inject() for Request Testing](#using-inject-for-request-testing)
13
+ - [Testing with Headers and Authentication](#testing-with-headers-and-authentication)
14
+ - [Testing Query Parameters](#testing-query-parameters)
15
+ - [Testing URL Parameters](#testing-url-parameters)
16
+ - [Testing Validation Errors](#testing-validation-errors)
17
+ - [Testing File Uploads](#testing-file-uploads)
18
+ - [Testing Streams](#testing-streams)
19
+ - [Mocking Dependencies](#mocking-dependencies)
20
+ - [Testing Plugins in Isolation](#testing-plugins-in-isolation)
21
+ - [Testing Hooks](#testing-hooks)
22
+ - [Test Factory Pattern](#test-factory-pattern)
23
+ - [Database Testing with Transactions](#database-testing-with-transactions)
24
+ - [Parallel Test Execution](#parallel-test-execution)
25
+ - [Running Tests](#running-tests)
26
+
10
27
  ## Using inject() for Request Testing
11
28
 
12
29
  Fastify's `inject()` method simulates HTTP requests without network overhead:
@@ -7,6 +7,21 @@ metadata:
7
7
 
8
8
  # TypeScript Integration
9
9
 
10
+ ## Contents
11
+
12
+ - [Type Stripping with Node.js](#type-stripping-with-nodejs)
13
+ - [Basic Type Safety](#basic-type-safety)
14
+ - [Typing Route Handlers](#typing-route-handlers)
15
+ - [Type Providers](#type-providers)
16
+ - [Typing Decorators](#typing-decorators)
17
+ - [Typing Plugins](#typing-plugins)
18
+ - [Typing Hooks](#typing-hooks)
19
+ - [Typing Schema Objects](#typing-schema-objects)
20
+ - [Shared Types](#shared-types)
21
+ - [Type-Safe Route Registration](#type-safe-route-registration)
22
+ - [Avoiding Type Gymnastics](#avoiding-type-gymnastics)
23
+ - [Type Checking Without Compilation](#type-checking-without-compilation)
24
+
10
25
  ## Type Stripping with Node.js
11
26
 
12
27
  Use Node.js built-in type stripping (Node.js 22.6+):
@@ -7,6 +7,21 @@ metadata:
7
7
 
8
8
  # WebSocket Support
9
9
 
10
+ ## Contents
11
+
12
+ - [Using @fastify/websocket](#using-fastifywebsocket)
13
+ - [WebSocket with Hooks](#websocket-with-hooks)
14
+ - [Connection Options](#connection-options)
15
+ - [Broadcast to All Clients](#broadcast-to-all-clients)
16
+ - [Rooms/Channels Pattern](#roomschannels-pattern)
17
+ - [Structured Message Protocol](#structured-message-protocol)
18
+ - [Heartbeat/Ping-Pong](#heartbeatping-pong)
19
+ - [Authentication](#authentication)
20
+ - [Error Handling](#error-handling)
21
+ - [Rate Limiting WebSocket Messages](#rate-limiting-websocket-messages)
22
+ - [Graceful Shutdown](#graceful-shutdown)
23
+ - [Full-Duplex Stream Pattern](#full-duplex-stream-pattern)
24
+
10
25
  ## Using @fastify/websocket
11
26
 
12
27
  Add WebSocket support to Fastify:
@@ -3,7 +3,7 @@
3
3
  This skill was copied from Affaan Mustafa's ECC repository.
4
4
 
5
5
  - Source: https://github.com/affaan-m/ECC/tree/main/skills/golang-patterns
6
- - Source commit: 2bc924faf2f8e893bfe0af86b1931283693c30ae
6
+ - Source commit: d29cf651c795869f733669c33e3d33dfd8307d10
7
7
  - License: MIT
8
8
  - Copyright: Copyright (c) 2026 Affaan Mustafa
9
9
 
@@ -617,7 +617,8 @@ linters-settings:
617
617
  errcheck:
618
618
  check-type-assertions: true
619
619
  govet:
620
- check-shadowing: true
620
+ enable:
621
+ - shadow
621
622
 
622
623
  issues:
623
624
  exclude-use-default: false
@@ -5,7 +5,7 @@ This skill is adapted from two MIT-licensed community skills:
5
5
  - ECC docker-patterns: https://github.com/affaan-m/ECC/tree/main/.kiro/skills/docker-patterns
6
6
  - ECC source commit: 0f84c0e2796703fbda87d577b2636351418c7442
7
7
  - Antigravity docker-expert: https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/docker-expert
8
- - Antigravity source commit: b806b97a9a48063f7bdbee5611caf40edd17e305
8
+ - Antigravity source commit: e0bcf882d89316b924ed2416dd42eb4b1099ea53
9
9
 
10
10
  The upstream MIT license texts are included in `LICENSE.ECC` and
11
11
  `LICENSE.ANTIGRAVITY`.
@@ -125,12 +125,12 @@ FROM node:22-alpine AS build
125
125
  WORKDIR /app
126
126
  COPY --from=deps /app/node_modules ./node_modules
127
127
  COPY . .
128
- RUN npm run build && npm prune --production
128
+ RUN npm run build && npm prune --omit=dev
129
129
 
130
130
  # Stage: production (minimal image)
131
131
  FROM node:22-alpine AS production
132
132
  WORKDIR /app
133
- RUN addgroup -g 1001 -S appgroup && adduser -S appuser -u 1001
133
+ RUN addgroup -g 1001 -S appgroup && adduser -S appuser -u 1001 -G appgroup
134
134
  USER appuser
135
135
  COPY --from=build --chown=appuser:appgroup /app/dist ./dist
136
136
  COPY --from=build --chown=appuser:appgroup /app/node_modules ./node_modules
@@ -256,7 +256,7 @@ services:
256
256
  FROM node:22.12-alpine3.20
257
257
 
258
258
  # 2. Run as non-root
259
- RUN addgroup -g 1001 -S app && adduser -S app -u 1001
259
+ RUN addgroup -g 1001 -S app && adduser -S app -u 1001 -G app
260
260
  USER app
261
261
 
262
262
  # 3. Drop capabilities (in compose)
@@ -3,7 +3,7 @@
3
3
  This skill was copied from Helio Costa's Revenue-Centric Design repository.
4
4
 
5
5
  - Source: https://github.com/heliocosta-dev/revenue-centric-design
6
- - Source commit: 6fa20cb4f91fa97bce9197be3f78b168784eb772
6
+ - Source commit: 1942760c2242f609bf63ce2c97204f5a1791bd68
7
7
  - License: Source-available custom terms; attribution required, no gambling/betting/casino use
8
8
  - Copyright: Copyright (c) 2026 the curators of the source repository
9
9
 
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: revenue-centric-design
3
- description: "Playbook for SaaS and startup product design that improves conversion, activation, retention, pricing, positioning, GTM, monetization, and AI-era differentiation. Use for product UX, landing pages, onboarding, trials, churn, pricing, growth, or positioning. Not for gambling, betting, or casino products."
3
+ description: "Playbook for SaaS and startup product design that improves conversion, activation, retention, pricing, positioning, GTM, monetization, and AI-era differentiation. Use for product UX, landing pages, checkout and forms, onboarding, trials, dashboards, churn, pricing, growth, or positioning. Not for gambling, betting, or casino products."
4
4
  ---
5
5
 
6
6
  # Revenue-Centric Design
7
7
 
8
- A distilled playbook of **101 principles** from **Richard ([@richardrx](https://x.com/richardrx), "Design for startups")** —
8
+ A distilled playbook of **134 principles** from **Richard ([@richardrx](https://x.com/richardrx), "Design for startups")** —
9
9
  a product designer specializing in conversion-rate optimization, churn reduction, and applied
10
10
  behavioral science (ex-Volkswagen, PayPal, IBM). The throughline is his coined philosophy,
11
11
  **Revenue-Centric Design (RCD)**: design decisions should serve the user _and_ the business —
@@ -54,13 +54,15 @@ gambling/betting/casino use. This is a hard constraint set by the author, not a
54
54
  | When the question is about… | Open |
55
55
  | ----------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
56
56
  | Landing pages, hero/copy, CTAs, social proof, awareness levels, CRO | [conversion-and-landing-pages](references/conversion-and-landing-pages.md) |
57
+ | Checkout, signup/lead forms, cart abandonment, field friction, trust signals | [checkout-and-forms](references/checkout-and-forms.md) |
57
58
  | First-run, empty states, aha moment, TTV, activation, trial-as-onboarding | [onboarding-and-activation](references/onboarding-and-activation.md) |
58
59
  | Cancellation, retention, expectation debt, NRR, jobs-to-be-done, support load | [churn-and-retention](references/churn-and-retention.md) |
59
60
  | Pricing tables, decoy/anchoring, GBB, trial-with-card, upgrade paths | [pricing-and-monetization](references/pricing-and-monetization.md) |
61
+ | Dashboards, KPIs, data viz, actionable panels, F-pattern, role context | [dashboards-and-data-viz](references/dashboards-and-data-viz.md) |
60
62
  | Cognitive biases & persuasion tactics (cross-cutting toolkit) | [behavioral-science-toolkit](references/behavioral-science-toolkit.md) |
61
63
  | Feature scope, Swiss Knife Index, feature adoption, attention hierarchy | [product-strategy-and-features](references/product-strategy-and-features.md) |
62
64
  | Design philosophy, the RCD principles, design process & method | [revenue-centric-design](references/revenue-centric-design.md) |
63
- | ICP, niche, founder-fit, distribution, PLG, Bullseye, first customers | [positioning-icp-and-gtm](references/positioning-icp-and-gtm.md) |
65
+ | ICP, niche, TAM/SAM/SOM, distribution, PLG, Bullseye, first customers | [positioning-icp-and-gtm](references/positioning-icp-and-gtm.md) |
64
66
  | Differentiating in the AI era, moats, commoditization | [ai-era-differentiation](references/ai-era-differentiation.md) |
65
67
  | A/B testing rigor, vanity metrics, churn→LTV math, signal quality | [metrics-and-experimentation](references/metrics-and-experimentation.md) |
66
68
 
@@ -68,6 +70,6 @@ Informational diagrams and screenshots referenced by the principles live in `ass
68
70
 
69
71
  ## Provenance
70
72
 
71
- 101 curated posts by [@richardrx](https://x.com/richardrx), extracted with a valid X API key and
73
+ 136 curated posts by [@richardrx](https://x.com/richardrx), extracted with a valid X API key and
72
74
  distilled **with the author's permission**, translated from Portuguese to English. Every principle
73
75
  links back to its source post. Reuse is subject to the gambling/betting/casino exclusion above.