@exelalfanso/puppets-orchestration 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.
Files changed (345) hide show
  1. package/.agents/architect.md +29 -0
  2. package/.agents/backend.md +33 -0
  3. package/.agents/debugger.md +29 -0
  4. package/.agents/explorer.md +29 -0
  5. package/.agents/frontend.md +33 -0
  6. package/.agents/orchestrator.md +35 -0
  7. package/.agents/reviewer.md +42 -0
  8. package/.agents/tester.md +29 -0
  9. package/.agents/worker-skills.md +24 -0
  10. package/AGENTS.md +33 -0
  11. package/README.md +150 -0
  12. package/bin/puppets.mjs +152 -0
  13. package/docs/README.md +64 -0
  14. package/docs/architecture/decisions/README.md +36 -0
  15. package/docs/architecture/overview.md +41 -0
  16. package/docs/engineering/conventions.md +30 -0
  17. package/docs/engineering/project-orchestration.md +118 -0
  18. package/docs/engineering/testing-strategy.md +41 -0
  19. package/docs/javascript-typescript-stack.md +59 -0
  20. package/docs/product/PRD.md +56 -0
  21. package/docs/requirements/SRS.md +35 -0
  22. package/package.json +20 -0
  23. package/skills/README.md +12 -0
  24. package/skills/be/backend-architect/SKILL.md +333 -0
  25. package/skills/be/backend-development-feature-development/SKILL.md +180 -0
  26. package/skills/be/backend-security-coder/SKILL.md +156 -0
  27. package/skills/be/nodejs-backend-patterns/SKILL.md +35 -0
  28. package/skills/be/nodejs-backend-patterns/resources/implementation-playbook.md +1019 -0
  29. package/skills/fe/frontend-design/LICENSE.txt +177 -0
  30. package/skills/fe/frontend-design/SKILL.md +71 -0
  31. package/skills/fe/web-design-guidelines/SKILL.md +39 -0
  32. package/skills/qa/ai-qa-review/SKILL.md +357 -0
  33. package/skills/qa/ai-qa-review/references/mutation-testing.md +38 -0
  34. package/skills/qa/ai-qa-review/references/smell-examples.md +232 -0
  35. package/skills/qa/ai-qa-review/references/testability-refactors.md +97 -0
  36. package/skills/qa/coverage-analysis/SKILL.md +308 -0
  37. package/skills/qa/coverage-analysis/references/ci-gating.md +132 -0
  38. package/skills/qa/coverage-analysis/references/mutation-testing.md +29 -0
  39. package/skills/qa/coverage-analysis/references/tool-config.md +195 -0
  40. package/skills/qa/qa-project-context/SKILL.md +289 -0
  41. package/skills/qa/qa-project-context/references/examples.md +237 -0
  42. package/skills/qa/release-readiness/SKILL.md +443 -0
  43. package/skills/qa/release-readiness/references/communication-templates.md +38 -0
  44. package/skills/qa/release-readiness/references/rollout-automation.md +47 -0
  45. package/skills/qa/risk-based-testing/SKILL.md +337 -0
  46. package/skills/qa/risk-based-testing/references/examples.md +81 -0
  47. package/skills/react/vercel-composition-patterns/AGENTS.md +946 -0
  48. package/skills/react/vercel-composition-patterns/README.md +60 -0
  49. package/skills/react/vercel-composition-patterns/SKILL.md +89 -0
  50. package/skills/react/vercel-composition-patterns/rules/_sections.md +29 -0
  51. package/skills/react/vercel-composition-patterns/rules/_template.md +24 -0
  52. package/skills/react/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
  53. package/skills/react/vercel-composition-patterns/rules/architecture-compound-components.md +112 -0
  54. package/skills/react/vercel-composition-patterns/rules/patterns-children-over-render-props.md +87 -0
  55. package/skills/react/vercel-composition-patterns/rules/patterns-explicit-variants.md +100 -0
  56. package/skills/react/vercel-composition-patterns/rules/react19-no-forwardref.md +42 -0
  57. package/skills/react/vercel-composition-patterns/rules/state-context-interface.md +191 -0
  58. package/skills/react/vercel-composition-patterns/rules/state-decouple-implementation.md +113 -0
  59. package/skills/react/vercel-composition-patterns/rules/state-lift-state.md +125 -0
  60. package/skills/react/vercel-react-best-practices/AGENTS.md +3810 -0
  61. package/skills/react/vercel-react-best-practices/README.md +123 -0
  62. package/skills/react/vercel-react-best-practices/SKILL.md +149 -0
  63. package/skills/react/vercel-react-best-practices/rules/_sections.md +46 -0
  64. package/skills/react/vercel-react-best-practices/rules/_template.md +28 -0
  65. package/skills/react/vercel-react-best-practices/rules/advanced-effect-event-deps.md +56 -0
  66. package/skills/react/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  67. package/skills/react/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
  68. package/skills/react/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
  69. package/skills/react/vercel-react-best-practices/rules/async-api-routes.md +38 -0
  70. package/skills/react/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +37 -0
  71. package/skills/react/vercel-react-best-practices/rules/async-defer-await.md +82 -0
  72. package/skills/react/vercel-react-best-practices/rules/async-dependencies.md +51 -0
  73. package/skills/react/vercel-react-best-practices/rules/async-parallel.md +28 -0
  74. package/skills/react/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  75. package/skills/react/vercel-react-best-practices/rules/bundle-analyzable-paths.md +63 -0
  76. package/skills/react/vercel-react-best-practices/rules/bundle-barrel-imports.md +60 -0
  77. package/skills/react/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
  78. package/skills/react/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
  79. package/skills/react/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  80. package/skills/react/vercel-react-best-practices/rules/bundle-preload.md +50 -0
  81. package/skills/react/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
  82. package/skills/react/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
  83. package/skills/react/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  84. package/skills/react/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  85. package/skills/react/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
  86. package/skills/react/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  87. package/skills/react/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  88. package/skills/react/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
  89. package/skills/react/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  90. package/skills/react/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  91. package/skills/react/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
  92. package/skills/react/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  93. package/skills/react/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  94. package/skills/react/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
  95. package/skills/react/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  96. package/skills/react/vercel-react-best-practices/rules/js-request-idle-callback.md +105 -0
  97. package/skills/react/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  98. package/skills/react/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  99. package/skills/react/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  100. package/skills/react/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  101. package/skills/react/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
  102. package/skills/react/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  103. package/skills/react/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  104. package/skills/react/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  105. package/skills/react/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  106. package/skills/react/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
  107. package/skills/react/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
  108. package/skills/react/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  109. package/skills/react/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  110. package/skills/react/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  111. package/skills/react/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  112. package/skills/react/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  113. package/skills/react/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  114. package/skills/react/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
  115. package/skills/react/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  116. package/skills/react/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  117. package/skills/react/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  118. package/skills/react/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  119. package/skills/react/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
  120. package/skills/react/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  121. package/skills/react/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
  122. package/skills/react/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  123. package/skills/react/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
  124. package/skills/react/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  125. package/skills/react/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  126. package/skills/react/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  127. package/skills/react/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  128. package/skills/react/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  129. package/skills/react/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  130. package/skills/react/vercel-react-best-practices/rules/server-hoist-static-io.md +149 -0
  131. package/skills/react/vercel-react-best-practices/rules/server-no-shared-module-state.md +50 -0
  132. package/skills/react/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  133. package/skills/react/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +34 -0
  134. package/skills/react/vercel-react-best-practices/rules/server-serialization.md +38 -0
  135. package/skills/vue/create-adaptable-composable/SKILL.md +76 -0
  136. package/skills/vue/vue-best-practices/SKILL.md +154 -0
  137. package/skills/vue/vue-best-practices/references/animation-class-based-technique.md +254 -0
  138. package/skills/vue/vue-best-practices/references/animation-state-driven-technique.md +291 -0
  139. package/skills/vue/vue-best-practices/references/component-async.md +97 -0
  140. package/skills/vue/vue-best-practices/references/component-data-flow.md +307 -0
  141. package/skills/vue/vue-best-practices/references/component-fallthrough-attrs.md +174 -0
  142. package/skills/vue/vue-best-practices/references/component-keep-alive.md +137 -0
  143. package/skills/vue/vue-best-practices/references/component-slots.md +216 -0
  144. package/skills/vue/vue-best-practices/references/component-suspense.md +228 -0
  145. package/skills/vue/vue-best-practices/references/component-teleport.md +108 -0
  146. package/skills/vue/vue-best-practices/references/component-transition-group.md +128 -0
  147. package/skills/vue/vue-best-practices/references/component-transition.md +125 -0
  148. package/skills/vue/vue-best-practices/references/composables.md +290 -0
  149. package/skills/vue/vue-best-practices/references/directives.md +162 -0
  150. package/skills/vue/vue-best-practices/references/perf-avoid-component-abstraction-in-lists.md +159 -0
  151. package/skills/vue/vue-best-practices/references/perf-v-once-v-memo-directives.md +182 -0
  152. package/skills/vue/vue-best-practices/references/perf-virtualize-large-lists.md +187 -0
  153. package/skills/vue/vue-best-practices/references/plugins.md +166 -0
  154. package/skills/vue/vue-best-practices/references/reactivity.md +344 -0
  155. package/skills/vue/vue-best-practices/references/render-functions.md +201 -0
  156. package/skills/vue/vue-best-practices/references/sfc.md +310 -0
  157. package/skills/vue/vue-best-practices/references/state-management.md +135 -0
  158. package/skills/vue/vue-best-practices/references/updated-hook-performance.md +187 -0
  159. package/skills/vue/vue-debug-guides/SKILL.md +202 -0
  160. package/skills/vue/vue-debug-guides/reference/animation-key-for-rerender.md +160 -0
  161. package/skills/vue/vue-debug-guides/reference/animation-transitiongroup-performance.md +241 -0
  162. package/skills/vue/vue-debug-guides/reference/async-component-error-handling.md +115 -0
  163. package/skills/vue/vue-debug-guides/reference/async-component-keepalive-ref-issue.md +112 -0
  164. package/skills/vue/vue-debug-guides/reference/async-component-suspense-control.md +84 -0
  165. package/skills/vue/vue-debug-guides/reference/async-component-vue-router.md +109 -0
  166. package/skills/vue/vue-debug-guides/reference/attrs-event-listener-merging.md +205 -0
  167. package/skills/vue/vue-debug-guides/reference/checkbox-true-false-value-form-submission.md +118 -0
  168. package/skills/vue/vue-debug-guides/reference/cleanup-side-effects.md +172 -0
  169. package/skills/vue/vue-debug-guides/reference/click-events-on-components.md +180 -0
  170. package/skills/vue/vue-debug-guides/reference/component-naming-conflicts.md +159 -0
  171. package/skills/vue/vue-debug-guides/reference/component-ref-requires-defineexpose.md +176 -0
  172. package/skills/vue/vue-debug-guides/reference/composable-avoid-hidden-side-effects.md +208 -0
  173. package/skills/vue/vue-debug-guides/reference/composable-call-location-restrictions.md +141 -0
  174. package/skills/vue/vue-debug-guides/reference/composable-naming-return-pattern.md +139 -0
  175. package/skills/vue/vue-debug-guides/reference/composable-tovalue-inside-watcheffect.md +182 -0
  176. package/skills/vue/vue-debug-guides/reference/composition-api-not-functional-programming.md +120 -0
  177. package/skills/vue/vue-debug-guides/reference/composition-api-script-setup-async-context.md +203 -0
  178. package/skills/vue/vue-debug-guides/reference/composition-api-vs-react-hooks-differences.md +156 -0
  179. package/skills/vue/vue-debug-guides/reference/computed-array-mutation.md +148 -0
  180. package/skills/vue/vue-debug-guides/reference/computed-conditional-dependencies.md +147 -0
  181. package/skills/vue/vue-debug-guides/reference/computed-no-parameters.md +159 -0
  182. package/skills/vue/vue-debug-guides/reference/computed-no-side-effects.md +107 -0
  183. package/skills/vue/vue-debug-guides/reference/computed-return-value-readonly.md +160 -0
  184. package/skills/vue/vue-debug-guides/reference/configure-app-before-mount.md +89 -0
  185. package/skills/vue/vue-debug-guides/reference/declare-emits-for-documentation.md +212 -0
  186. package/skills/vue/vue-debug-guides/reference/define-expose-before-await.md +192 -0
  187. package/skills/vue/vue-debug-guides/reference/define-model-default-value-sync.md +139 -0
  188. package/skills/vue/vue-debug-guides/reference/defineEmits-must-be-top-level.md +164 -0
  189. package/skills/vue/vue-debug-guides/reference/defineEmits-no-runtime-and-type-mixed.md +170 -0
  190. package/skills/vue/vue-debug-guides/reference/definemodel-object-mutation-no-emit.md +148 -0
  191. package/skills/vue/vue-debug-guides/reference/dom-update-timing-nexttick.md +90 -0
  192. package/skills/vue/vue-debug-guides/reference/dynamic-argument-constraints.md +146 -0
  193. package/skills/vue/vue-debug-guides/reference/dynamic-component-registration-vite.md +147 -0
  194. package/skills/vue/vue-debug-guides/reference/event-modifier-order-matters.md +101 -0
  195. package/skills/vue/vue-debug-guides/reference/exact-modifier-for-precise-shortcuts.md +155 -0
  196. package/skills/vue/vue-debug-guides/reference/fallthrough-attrs-overwrite-vue3.md +159 -0
  197. package/skills/vue/vue-debug-guides/reference/in-dom-template-parsing-caveats.md +149 -0
  198. package/skills/vue/vue-debug-guides/reference/inheritattrs-false-for-wrapper-components.md +230 -0
  199. package/skills/vue/vue-debug-guides/reference/keepalive-router-nested-double-mount.md +222 -0
  200. package/skills/vue/vue-debug-guides/reference/keepalive-transition-memory-leak.md +144 -0
  201. package/skills/vue/vue-debug-guides/reference/keyup-modifier-timing.md +137 -0
  202. package/skills/vue/vue-debug-guides/reference/lifecycle-dom-access-timing.md +216 -0
  203. package/skills/vue/vue-debug-guides/reference/lifecycle-hooks-synchronous-registration.md +156 -0
  204. package/skills/vue/vue-debug-guides/reference/lifecycle-ssr-awareness.md +184 -0
  205. package/skills/vue/vue-debug-guides/reference/local-components-not-in-descendants.md +151 -0
  206. package/skills/vue/vue-debug-guides/reference/mount-return-value.md +88 -0
  207. package/skills/vue/vue-debug-guides/reference/multi-root-component-class-attrs.md +93 -0
  208. package/skills/vue/vue-debug-guides/reference/native-event-collision-with-emits.md +162 -0
  209. package/skills/vue/vue-debug-guides/reference/no-passive-with-prevent.md +141 -0
  210. package/skills/vue/vue-debug-guides/reference/no-v-if-with-v-for.md +136 -0
  211. package/skills/vue/vue-debug-guides/reference/perf-computed-object-stability.md +157 -0
  212. package/skills/vue/vue-debug-guides/reference/perf-props-stability-update-optimization.md +140 -0
  213. package/skills/vue/vue-debug-guides/reference/plugin-global-properties-sparingly.md +109 -0
  214. package/skills/vue/vue-debug-guides/reference/plugin-install-before-mount.md +124 -0
  215. package/skills/vue/vue-debug-guides/reference/plugin-prefer-provide-inject-over-global-properties.md +120 -0
  216. package/skills/vue/vue-debug-guides/reference/plugin-typescript-type-augmentation.md +157 -0
  217. package/skills/vue/vue-debug-guides/reference/prop-defineprops-scope-limitation.md +161 -0
  218. package/skills/vue/vue-debug-guides/reference/provide-inject-debugging-challenges.md +203 -0
  219. package/skills/vue/vue-debug-guides/reference/provide-inject-default-value-factory.md +244 -0
  220. package/skills/vue/vue-debug-guides/reference/provide-inject-reactivity-not-automatic.md +226 -0
  221. package/skills/vue/vue-debug-guides/reference/provide-inject-synchronous-setup.md +235 -0
  222. package/skills/vue/vue-debug-guides/reference/reactive-destructuring.md +89 -0
  223. package/skills/vue/vue-debug-guides/reference/reactivity-debugging-hooks.md +132 -0
  224. package/skills/vue/vue-debug-guides/reference/reactivity-markraw-for-non-reactive.md +149 -0
  225. package/skills/vue/vue-debug-guides/reference/reactivity-proxy-identity-hazard.md +96 -0
  226. package/skills/vue/vue-debug-guides/reference/reactivity-same-tick-batching.md +166 -0
  227. package/skills/vue/vue-debug-guides/reference/ref-value-access.md +61 -0
  228. package/skills/vue/vue-debug-guides/reference/refs-in-collections-need-value.md +81 -0
  229. package/skills/vue/vue-debug-guides/reference/render-function-avoid-internal-vnode-properties.md +151 -0
  230. package/skills/vue/vue-debug-guides/reference/render-function-vnodes-must-be-unique.md +133 -0
  231. package/skills/vue/vue-debug-guides/reference/rendering-render-function-h-import-vue3.md +148 -0
  232. package/skills/vue/vue-debug-guides/reference/rendering-render-function-return-from-setup.md +148 -0
  233. package/skills/vue/vue-debug-guides/reference/rendering-render-function-slots-as-functions.md +168 -0
  234. package/skills/vue/vue-debug-guides/reference/rendering-resolve-component-for-string-names.md +231 -0
  235. package/skills/vue/vue-debug-guides/reference/select-initial-value-ios-bug.md +91 -0
  236. package/skills/vue/vue-debug-guides/reference/self-referencing-component-name.md +157 -0
  237. package/skills/vue/vue-debug-guides/reference/sfc-named-exports-forbidden.md +184 -0
  238. package/skills/vue/vue-debug-guides/reference/sfc-scoped-css-child-component-styling.md +156 -0
  239. package/skills/vue/vue-debug-guides/reference/sfc-scoped-css-dynamic-content.md +193 -0
  240. package/skills/vue/vue-debug-guides/reference/sfc-scoped-css-slot-content.md +242 -0
  241. package/skills/vue/vue-debug-guides/reference/sfc-script-setup-reactivity.md +195 -0
  242. package/skills/vue/vue-debug-guides/reference/slot-forwarding-to-child-components.md +143 -0
  243. package/skills/vue/vue-debug-guides/reference/slot-implicit-default-content.md +155 -0
  244. package/skills/vue/vue-debug-guides/reference/slot-name-reserved-prop.md +109 -0
  245. package/skills/vue/vue-debug-guides/reference/slot-named-scoped-explicit-default.md +95 -0
  246. package/skills/vue/vue-debug-guides/reference/slot-render-scope-parent-only.md +135 -0
  247. package/skills/vue/vue-debug-guides/reference/slot-v-slot-on-components-or-templates-only.md +122 -0
  248. package/skills/vue/vue-debug-guides/reference/ssr-hydration-mismatch-causes.md +280 -0
  249. package/skills/vue/vue-debug-guides/reference/ssr-platform-specific-apis.md +256 -0
  250. package/skills/vue/vue-debug-guides/reference/state-ssr-cross-request-pollution.md +276 -0
  251. package/skills/vue/vue-debug-guides/reference/suspense-no-builtin-error-handling.md +127 -0
  252. package/skills/vue/vue-debug-guides/reference/suspense-ssr-hydration-issues.md +159 -0
  253. package/skills/vue/vue-debug-guides/reference/tailwind-dynamic-class-generation.md +144 -0
  254. package/skills/vue/vue-debug-guides/reference/teleport-scoped-styles-limitation.md +191 -0
  255. package/skills/vue/vue-debug-guides/reference/teleport-ssr-hydration.md +152 -0
  256. package/skills/vue/vue-debug-guides/reference/teleport-target-must-exist.md +113 -0
  257. package/skills/vue/vue-debug-guides/reference/template-expressions-restrictions.md +114 -0
  258. package/skills/vue/vue-debug-guides/reference/template-functions-no-side-effects.md +187 -0
  259. package/skills/vue/vue-debug-guides/reference/template-ref-null-with-v-if.md +123 -0
  260. package/skills/vue/vue-debug-guides/reference/template-ref-unwrapping-top-level.md +104 -0
  261. package/skills/vue/vue-debug-guides/reference/template-ref-v-for-order.md +172 -0
  262. package/skills/vue/vue-debug-guides/reference/textarea-no-interpolation.md +72 -0
  263. package/skills/vue/vue-debug-guides/reference/transition-group-flip-inline-elements.md +152 -0
  264. package/skills/vue/vue-debug-guides/reference/transition-group-move-animation-position-absolute.md +130 -0
  265. package/skills/vue/vue-debug-guides/reference/transition-group-no-default-wrapper-vue3.md +152 -0
  266. package/skills/vue/vue-debug-guides/reference/transition-js-hooks-done-callback.md +251 -0
  267. package/skills/vue/vue-debug-guides/reference/transition-nested-duration.md +182 -0
  268. package/skills/vue/vue-debug-guides/reference/transition-reusable-scoped-style.md +245 -0
  269. package/skills/vue/vue-debug-guides/reference/transition-router-view-appear.md +193 -0
  270. package/skills/vue/vue-debug-guides/reference/transition-type-when-mixed.md +172 -0
  271. package/skills/vue/vue-debug-guides/reference/transition-unmount-hook-timing.md +149 -0
  272. package/skills/vue/vue-debug-guides/reference/ts-defineprops-boolean-default-false.md +225 -0
  273. package/skills/vue/vue-debug-guides/reference/ts-defineprops-imported-types-limitations.md +281 -0
  274. package/skills/vue/vue-debug-guides/reference/ts-event-handler-explicit-typing.md +213 -0
  275. package/skills/vue/vue-debug-guides/reference/ts-reactive-no-generic-argument.md +196 -0
  276. package/skills/vue/vue-debug-guides/reference/ts-shallowref-for-dynamic-components.md +218 -0
  277. package/skills/vue/vue-debug-guides/reference/ts-template-ref-null-handling.md +249 -0
  278. package/skills/vue/vue-debug-guides/reference/ts-template-type-casting.md +214 -0
  279. package/skills/vue/vue-debug-guides/reference/ts-withdefaults-mutable-factory-function.md +171 -0
  280. package/skills/vue/vue-debug-guides/reference/undeclared-emits-double-firing.md +195 -0
  281. package/skills/vue/vue-debug-guides/reference/use-template-ref-vue35.md +158 -0
  282. package/skills/vue/vue-debug-guides/reference/v-else-must-follow-v-if.md +136 -0
  283. package/skills/vue/vue-debug-guides/reference/v-for-component-props.md +95 -0
  284. package/skills/vue/vue-debug-guides/reference/v-for-computed-reverse-sort.md +86 -0
  285. package/skills/vue/vue-debug-guides/reference/v-for-key-attribute.md +90 -0
  286. package/skills/vue/vue-debug-guides/reference/v-for-range-starts-at-one.md +66 -0
  287. package/skills/vue/vue-debug-guides/reference/v-if-null-check-order.md +171 -0
  288. package/skills/vue/vue-debug-guides/reference/v-model-ignores-html-attributes.md +83 -0
  289. package/skills/vue/vue-debug-guides/reference/v-model-ime-composition.md +83 -0
  290. package/skills/vue/vue-debug-guides/reference/v-model-number-modifier-behavior.md +124 -0
  291. package/skills/vue/vue-debug-guides/reference/v-show-template-limitation.md +124 -0
  292. package/skills/vue/vue-debug-guides/reference/watch-async-cleanup.md +180 -0
  293. package/skills/vue/vue-debug-guides/reference/watch-async-creation-memory-leak.md +176 -0
  294. package/skills/vue/vue-debug-guides/reference/watch-deep-same-object-reference.md +165 -0
  295. package/skills/vue/vue-debug-guides/reference/watch-flush-timing.md +189 -0
  296. package/skills/vue/vue-debug-guides/reference/watch-reactive-property-getter.md +108 -0
  297. package/skills/vue/vue-debug-guides/reference/watcheffect-async-dependency-tracking.md +173 -0
  298. package/skills/vue/vue-debug-guides/reference/watcheffect-flush-post-for-refs.md +176 -0
  299. package/skills/vue/vue-jsx-best-practices/SKILL.md +12 -0
  300. package/skills/vue/vue-jsx-best-practices/reference/render-function-jsx-vue-vs-react.md +141 -0
  301. package/skills/vue/vue-options-api-best-practices/SKILL.md +23 -0
  302. package/skills/vue/vue-options-api-best-practices/reference/no-arrow-functions-in-lifecycle-hooks.md +95 -0
  303. package/skills/vue/vue-options-api-best-practices/reference/no-arrow-functions-in-methods.md +68 -0
  304. package/skills/vue/vue-options-api-best-practices/reference/stateful-methods-lifecycle.md +61 -0
  305. package/skills/vue/vue-options-api-best-practices/reference/ts-options-api-arrow-functions-validators.md +141 -0
  306. package/skills/vue/vue-options-api-best-practices/reference/ts-options-api-computed-return-types.md +192 -0
  307. package/skills/vue/vue-options-api-best-practices/reference/ts-options-api-proptype-complex-types.md +212 -0
  308. package/skills/vue/vue-options-api-best-practices/reference/ts-options-api-provide-inject-limitations.md +135 -0
  309. package/skills/vue/vue-options-api-best-practices/reference/ts-options-api-type-event-handlers.md +202 -0
  310. package/skills/vue/vue-options-api-best-practices/reference/ts-options-api-use-definecomponent.md +172 -0
  311. package/skills/vue/vue-options-api-best-practices/reference/ts-strict-mode-options-api.md +197 -0
  312. package/skills/vue/vue-pinia-best-practices/SKILL.md +21 -0
  313. package/skills/vue/vue-pinia-best-practices/reference/pinia-no-active-pinia-error.md +248 -0
  314. package/skills/vue/vue-pinia-best-practices/reference/pinia-setup-store-return-all-state.md +227 -0
  315. package/skills/vue/vue-pinia-best-practices/reference/pinia-store-destructuring-breaks-reactivity.md +193 -0
  316. package/skills/vue/vue-pinia-best-practices/reference/state-url-for-ephemeral-filters.md +238 -0
  317. package/skills/vue/vue-pinia-best-practices/reference/state-use-pinia-for-large-apps.md +262 -0
  318. package/skills/vue/vue-pinia-best-practices/reference/store-method-binding-parentheses.md +191 -0
  319. package/skills/vue/vue-router-best-practices/SKILL.md +23 -0
  320. package/skills/vue/vue-router-best-practices/reference/router-beforeenter-no-param-trigger.md +167 -0
  321. package/skills/vue/vue-router-best-practices/reference/router-beforerouteenter-no-this.md +176 -0
  322. package/skills/vue/vue-router-best-practices/reference/router-guard-async-await-pattern.md +227 -0
  323. package/skills/vue/vue-router-best-practices/reference/router-navigation-guard-infinite-loop.md +187 -0
  324. package/skills/vue/vue-router-best-practices/reference/router-navigation-guard-next-deprecated.md +150 -0
  325. package/skills/vue/vue-router-best-practices/reference/router-param-change-no-lifecycle.md +181 -0
  326. package/skills/vue/vue-router-best-practices/reference/router-simple-routing-cleanup.md +209 -0
  327. package/skills/vue/vue-router-best-practices/reference/router-use-vue-router-for-production.md +183 -0
  328. package/skills/vue/vue-testing-best-practices/SKILL.md +29 -0
  329. package/skills/vue/vue-testing-best-practices/reference/async-component-testing.md +163 -0
  330. package/skills/vue/vue-testing-best-practices/reference/teleport-testing-complexity.md +158 -0
  331. package/skills/vue/vue-testing-best-practices/reference/testing-async-await-flushpromises.md +175 -0
  332. package/skills/vue/vue-testing-best-practices/reference/testing-browser-vs-node-runners.md +208 -0
  333. package/skills/vue/vue-testing-best-practices/reference/testing-component-blackbox-approach.md +144 -0
  334. package/skills/vue/vue-testing-best-practices/reference/testing-composables-helper-wrapper.md +238 -0
  335. package/skills/vue/vue-testing-best-practices/reference/testing-e2e-playwright-recommended.md +242 -0
  336. package/skills/vue/vue-testing-best-practices/reference/testing-no-snapshot-only.md +197 -0
  337. package/skills/vue/vue-testing-best-practices/reference/testing-pinia-store-setup.md +228 -0
  338. package/skills/vue/vue-testing-best-practices/reference/testing-suspense-async-components.md +229 -0
  339. package/skills/vue/vue-testing-best-practices/reference/testing-vitest-recommended-for-vue.md +204 -0
  340. package/skills/worker/README.md +10 -0
  341. package/skills/worker/caveman/README.md +48 -0
  342. package/skills/worker/caveman/SKILL.md +88 -0
  343. package/skills/worker/ponytail/SKILL.md +120 -0
  344. package/skills-lock.json +131 -0
  345. package/templates/state.md +16 -0
@@ -0,0 +1,237 @@
1
+ # qa-project-context — Filled Examples
2
+
3
+ Two complete `.agents/qa-project-context.md` files for different product types. Copy the
4
+ structure, not the version pins — verify your own framework versions against `package.json`.
5
+
6
+ ---
7
+
8
+ ## Example: SaaS Product
9
+
10
+ ```markdown
11
+ # QA Project Context
12
+
13
+ ## Product
14
+ - **Name:** InvoiceCloud
15
+ - **Type:** SaaS
16
+ - **Description:** Invoicing and payment platform for freelancers and small businesses
17
+ - **URLs:**
18
+ - Production: https://invoicecloud.io
19
+ - Staging: https://staging.invoicecloud.io
20
+ - Development: http://localhost:3000
21
+ - **Key User Flows:**
22
+ - Sign up with email, verify account, complete onboarding
23
+ - Create invoice, add line items, send to client
24
+ - Client receives invoice email, views invoice, pays with Stripe
25
+ - Connect bank account for payouts via Plaid
26
+ - Generate monthly revenue report, export as PDF
27
+
28
+ ## Tech Stack
29
+ ### Frontend
30
+ - **Framework:** Next.js 16 (App Router)
31
+ - **Language:** TypeScript
32
+ - **Styling:** Tailwind CSS
33
+ - **State Management:** Zustand + React Query
34
+
35
+ ### Backend
36
+ - **Framework:** Next.js API routes + tRPC
37
+ - **Language:** TypeScript
38
+ - **API Style:** tRPC (internal), REST webhooks (Stripe, Plaid)
39
+
40
+ ### Database
41
+ - **Primary:** PostgreSQL 16 on Supabase
42
+ - **Cache:** Redis (Upstash)
43
+ - **ORM:** Drizzle
44
+
45
+ ### Hosting
46
+ - **Platform:** Vercel
47
+ - **CDN:** Vercel Edge
48
+ - **Monitoring:** Sentry (errors), Vercel Analytics (performance)
49
+
50
+ ## Test Stack
51
+ ### E2E / Integration
52
+ - **Framework:** Playwright 1.60
53
+ - **Config Location:** playwright.config.ts
54
+ - **Test Directory:** tests/e2e/
55
+
56
+ ### Unit / Component
57
+ - **Framework:** Vitest 4
58
+ - **Config Location:** vitest.config.ts
59
+ - **Test Directory:** src/__tests__/
60
+
61
+ ### API Testing
62
+ - **Framework:** Playwright API testing (shared with E2E)
63
+ - **Test Directory:** tests/api/
64
+
65
+ ### Visual Testing
66
+ - **Tool:** Playwright screenshot comparisons
67
+ - **Baseline Location:** tests/e2e/__screenshots__/
68
+
69
+ ### Performance
70
+ - **Tool:** Lighthouse CI
71
+ - **Test Directory:** N/A (runs in CI only)
72
+
73
+ ## CI/CD
74
+ - **Platform:** GitHub Actions
75
+ - **Config Location:** .github/workflows/
76
+ - **Test Pipeline:**
77
+ - Unit tests run on: every push
78
+ - E2E tests run on: PR to main
79
+ - Parallelism: 3 Playwright shards
80
+ - Artifacts: screenshots on failure, coverage report, Playwright HTML report
81
+ - **Deployment:**
82
+ - Staging: auto-deploy on merge to develop
83
+ - Production: auto-deploy on merge to main (with required CI checks)
84
+
85
+ ## Environments
86
+ ### Development
87
+ - **URL:** http://localhost:3000
88
+ - **Characteristics:** Local Supabase, Stripe test mode, mock Plaid
89
+
90
+ ### Staging
91
+ - **URL:** https://staging.invoicecloud.io
92
+ - **Characteristics:** Supabase staging project, Stripe test mode, Plaid sandbox
93
+
94
+ ### Production
95
+ - **URL:** https://invoicecloud.io
96
+ - **Characteristics:** Production Supabase, Stripe live mode, Plaid production
97
+
98
+ ## Quality Goals
99
+ - **Unit Test Coverage Target:** 80%
100
+ - **E2E Coverage:** All 5 critical user flows + payment edge cases
101
+ - **Flakiness Threshold:** <2%
102
+ - **Max Test Suite Duration:**
103
+ - Unit: 2 minutes
104
+ - E2E: 12 minutes (3 shards)
105
+ - **Key Metrics:**
106
+ - Test pass rate > 98%
107
+ - Zero P0 payment bugs in production per quarter
108
+ - Mean time to detect regression < 30 minutes
109
+
110
+ ## Risk Areas
111
+ | Area | Risk Level | Business Impact | Notes |
112
+ |------|-----------|----------------|-------|
113
+ | Stripe payment flow | Critical | Revenue loss, compliance | Currency edge cases, webhook reliability |
114
+ | Plaid bank connection | High | User onboarding blocked | Third-party sandbox differs from production |
115
+ | Invoice PDF generation | Medium | Client trust | Large invoices (100+ line items) can timeout |
116
+ | Email delivery | Medium | User engagement | Relies on Resend, template rendering edge cases |
117
+
118
+ ## Team
119
+ - **QA Engineers:** 1 (automation-focused)
120
+ - **Total Developers:** 4
121
+ - **Dev/QA Ratio:** 4:1
122
+ - **Process:** Kanban with weekly releases
123
+ - **QA Involvement:** Shift-left -- QA reviews specs and writes E2E for critical paths, devs own unit tests
124
+
125
+ ## Conventions
126
+ ### Test Files
127
+ - **Naming Pattern:** *.spec.ts for E2E, *.test.ts for unit
128
+ - **Co-located or Separate:** Unit tests co-located in src/__tests__/, E2E in tests/e2e/
129
+
130
+ ### Selectors (E2E)
131
+ - **Strategy:** data-testid attributes for interactive elements, ARIA roles for navigation
132
+ - **Naming Convention:** data-testid="invoice-create-button" (kebab-case, descriptive)
133
+
134
+ ### Branching
135
+ - **Strategy:** Feature branches -> develop -> main
136
+ - **PR Requirements:** All CI checks pass, 1 code review, QA sign-off for payment-related changes
137
+
138
+ ### Test Data
139
+ - **Strategy:** Factory functions using @faker-js/faker, API-generated per test
140
+ - **Cleanup:** Each test creates its own data via API, no shared state between tests
141
+ ```
142
+
143
+ ---
144
+
145
+ ## Example: Media Site (multi-tenant publisher)
146
+
147
+ A condensed example showing how the same template works for a different product type.
148
+
149
+ ```markdown
150
+ # QA Project Context
151
+
152
+ ## Product
153
+ - **Name:** PulseMedia Network
154
+ - **Type:** Media (multi-site publisher)
155
+ - **Description:** Network of 4 news and lifestyle sites serving 12M monthly visitors
156
+ - **URLs:**
157
+ - Production: https://pulsemedia.com (+ techpulse.com, lifepulse.com, sportspulse.com)
158
+ - Staging: https://staging.pulsemedia.com
159
+ - **Key User Flows:**
160
+ - Reader lands from Google, reads article, scrolls to related content
161
+ - Editor creates article in CMS, adds images and embeds, previews, publishes
162
+ - Ad manager configures placements, verifies rendering across breakpoints
163
+
164
+ ## Tech Stack
165
+ - **Frontend:** Next.js 16 (App Router), TypeScript, Tailwind CSS, multi-tenant routing
166
+ - **Backend:** Next.js API routes + headless WordPress, REST + GraphQL
167
+ - **Database:** MySQL 8 (WordPress), PostgreSQL (analytics), Redis (cache)
168
+ - **Hosting:** AWS (ECS, RDS, S3), CloudFront CDN, Datadog + Sentry monitoring
169
+
170
+ ## Test Stack
171
+ - **E2E:** Playwright 1.60 (tests/e2e/, per-site subdirectories)
172
+ - **Unit:** Vitest 4 (src/__tests__/)
173
+ - **Visual:** Chromatic (Storybook) + Playwright screenshots (full pages)
174
+ - **Performance:** Lighthouse CI + k6 (tests/performance/)
175
+
176
+ ## CI/CD
177
+ - **Platform:** GitHub Actions
178
+ - **Pipeline:** Unit on every push, E2E on PR to main + nightly, visual on PR (Chromatic), perf weekly
179
+ - **Parallelism:** 6 Playwright shards (one per site + cross-site)
180
+ - **Deploy:** Auto to staging on merge to develop, manual promotion to production
181
+
182
+ ## Environments
183
+ - **Dev:** localhost:3000 -- local WordPress, mock ad server, content fixtures
184
+ - **Staging:** staging.pulsemedia.com -- production content snapshot (weekly refresh), sandbox ads
185
+ - **Production:** pulsemedia.com -- live WordPress, live ads, CDN caching (5-min TTL)
186
+
187
+ ## Quality Goals
188
+ - **Coverage:** 75% unit (business logic), critical reader flows on all 4 sites
189
+ - **Flakiness:** <3% (ad-related tests excluded from flake tracking)
190
+ - **Speed:** Unit <3 min, E2E <20 min (6 shards)
191
+ - **Key Metrics:** Core Web Vitals pass rate >90%, zero broken article pages, ad viewability >70%
192
+
193
+ ## Risk Areas
194
+ | Area | Risk Level | Business Impact | Notes |
195
+ |------|-----------|----------------|-------|
196
+ | Article rendering | Critical | SEO rankings | Rich embeds break frequently |
197
+ | Ad placements | High | Revenue ($400K/mo) | Third-party scripts cause layout shift |
198
+ | CMS publish flow | High | Editorial velocity | WordPress API + ISR cache invalidation |
199
+ | Cross-site navigation | Medium | Reader engagement | Multi-tenant routing edge cases |
200
+
201
+ ## Team
202
+ - **QA:** 3 (1 automation lead, 1 manual/exploratory, 1 performance), 12 devs (4:1 ratio)
203
+ - **Process:** Scrum (2-week sprints), mixed shift-left approach
204
+
205
+ ## Conventions
206
+ - **Test files:** *.spec.ts (E2E), *.test.ts (unit), E2E organized by site in tests/e2e/{site}/
207
+ - **Selectors:** data-testid for interactive, semantic selectors (article, nav) for content
208
+ - **Branching:** Feature -> develop -> main, QA sign-off for ad and CMS changes
209
+ - **Test data:** WordPress fixtures via WP-CLI, staging reset weekly from production
210
+ ```
211
+
212
+ ---
213
+
214
+ ## Monorepo structure
215
+
216
+ When the project is a monorepo (detected via `turbo.json`, `pnpm-workspace.yaml`, or
217
+ `nx.json`), represent each frontend app separately and keep the shared API as one entry:
218
+
219
+ ```markdown
220
+ ## Tech Stack
221
+ ### Frontend — apps/admin
222
+ - **Framework:** Next.js 16, TypeScript
223
+ ### Frontend — apps/storefront
224
+ - **Framework:** Remix (React Router 7), TypeScript
225
+ ### Backend — packages/api (shared)
226
+ - **Framework:** Fastify, REST + tRPC
227
+
228
+ ## Test Stack
229
+ ### E2E
230
+ - **apps/admin:** Playwright 1.60, apps/admin/tests/e2e/
231
+ - **apps/storefront:** Playwright 1.60, apps/storefront/tests/e2e/
232
+ - **Shared API:** Playwright API tests, packages/api/tests/
233
+ ```
234
+
235
+ Shard E2E per app rather than across the whole monorepo: each app's suite runs and shards
236
+ independently so a change in `apps/admin` doesn't trigger `apps/storefront` E2E. Note in the
237
+ CI/CD section which path filters gate which app's suite (e.g. `apps/admin/**` → admin E2E).
@@ -0,0 +1,443 @@
1
+ ---
2
+ name: release-readiness
3
+ description: >-
4
+ Validate release readiness with evidence-based go/no-go decisions. Covers go/no-go
5
+ checklists, smoke test suite design, staged rollout validation, rollback criteria
6
+ and procedures, and post-deployment verification. Ensures release confidence comes
7
+ from data, not feelings. Use when: "release ready," "go/no-go," "smoke test,"
8
+ "release checklist," "rollback plan," "staged rollout," "canary deploy."
9
+ Not for: safe-release techniques (flags, canary, dark launch) applied during the
10
+ rollout itself — use testing-in-production; scheduled probes that run continuously
11
+ after release — use synthetic-monitoring; designing new tests from prod telemetry —
12
+ use observability-driven-testing.
13
+ Related: testing-in-production, qa-metrics, ci-cd-integration, ai-system-testing.
14
+ license: MIT
15
+ metadata:
16
+ author: kindlmann
17
+ version: "2.0"
18
+ category: process
19
+ ---
20
+
21
+ <objective>
22
+ "I think it's fine" ships the bug that the rollback you never practiced can't undo at 6 PM on a Friday. This skill turns "ready to ship" into something measurable: a go/no-go checklist with evidence for each item, a sub-5-minute smoke suite, a staged rollout with metric-gated promotion, rollback thresholds defined before deploy, and post-deployment verification. Every section gives concrete criteria, not aspirations.
23
+ </objective>
24
+
25
+ ---
26
+
27
+ ## Discovery Questions
28
+
29
+ Check `.agents/qa-project-context.md` first — if it exists, use it and skip anything answered there. Then ask only what's missing.
30
+
31
+ **Release cadence and process:**
32
+ - How often do you release, and who makes the go/no-go call? (Continuous/daily/weekly vs engineering lead/QA lead/release manager — sets how heavyweight the checklist should be.)
33
+ - Is there a release train schedule or is it ad-hoc?
34
+ - How many environments exist between dev and production? (staging, pre-prod, canary)
35
+
36
+ **Current state:**
37
+ - What does the current go/no-go process look like, and is it documented?
38
+ - Has a release ever been rolled back? How long did it take? (Reveals whether rollback is real or aspirational.)
39
+ - What was the last release incident and its root cause? Any release-blocking bugs right now?
40
+
41
+ **Infrastructure and capabilities:**
42
+ - Do you have rollback capability, and how long does a rollback take?
43
+ - Can you do staged/canary deployments?
44
+ - Do you have feature flags, and how are they managed? (Decides flag-based vs infra-level rollout.)
45
+ - What monitoring and alerting is in place? Are database migrations reversible?
46
+
47
+ **Team and communication:**
48
+ - Who is on-call during and after releases?
49
+ - How are stakeholders notified, and is there a release communication channel?
50
+ - How are release notes generated?
51
+
52
+ ---
53
+
54
+ ## Core Principles
55
+
56
+ ### 1. Release confidence comes from evidence, not feelings
57
+ "I think it's fine" is not a go/no-go criterion. Evidence means: all CI pipelines green, smoke tests pass on staging, performance budgets met, no open P0/P1 bugs. If you can't point to data, you're not ready.
58
+
59
+ ### 2. Smoke tests are the last safety net, not the only safety net
60
+ Smoke tests catch catastrophic failures. They are not a substitute for thorough testing throughout the development cycle. If your smoke test suite is the only thing between you and production, you have a process problem upstream.
61
+
62
+ ### 3. Staged rollouts reduce blast radius
63
+ Deploying to 100% of users simultaneously means 100% of users are affected by any bug. Staged rollouts (canary, percentage-based, ring-based) let you catch issues when they affect 1% of users instead of all of them.
64
+
65
+ ### 4. Rollback criteria must be defined BEFORE release
66
+ If you wait until something is on fire to decide whether to roll back, you'll waste critical minutes debating. Define the criteria in advance, relative to baseline: "If error rate exceeds 2x baseline within 15 minutes, we roll back. No discussion needed." Tie the trigger to your DORA targets — a release whose error rate would push you past your change-failure-rate target, or whose recovery would blow your MTTR target, is one the rollback rule exists to stop.
67
+
68
+ ### 5. Every release is a learning opportunity
69
+ Post-deployment verification isn't just about catching bugs. Track what went well, what was slow, what was stressful. Improve the process continuously.
70
+
71
+ ---
72
+
73
+ ## Go/No-Go Checklist
74
+
75
+ Use this as a template. Adapt it to your context. Every item should be verifiable with evidence, not just "I checked." Store the completed checklist as a versioned artifact (e.g. `RELEASE-<version>.md` or a tracked issue) so sign-off is auditable.
76
+
77
+ ### Automated Checks (Must Pass)
78
+
79
+ - [ ] **All CI pipelines green** — Unit tests, integration tests, E2E tests, type checking, linting
80
+ - [ ] **Smoke test suite passes on staging** — Critical user journeys verified in the staging environment
81
+ - [ ] **No open P0/P1 bugs for this release** — Check issue tracker, filter by milestone/label
82
+ - [ ] **Performance budgets met** — API response times and bundle size within thresholds; Lighthouse CI for frontend releases (skip Lighthouse for API/backend-only releases — it measures page load, not service health)
83
+ - [ ] **Security scan clean** — No high/critical vulnerabilities in `npm audit` / Snyk / Dependabot
84
+ - [ ] **API contract tests pass** — No breaking changes to public APIs
85
+ - [ ] **Visual regression tests pass** — No unintended visual changes
86
+ - [ ] **Accessibility checks pass** — axe-core scan shows no new violations
87
+
88
+ ### Manual Checks (Verify Before Go)
89
+
90
+ - [ ] **Feature flags reviewed** — Document which flags are enabled/disabled in this release; confirm flag states for production
91
+ - [ ] **Monitoring and alerts configured** — New features have corresponding alerts (error rate, latency, business metrics)
92
+ - [ ] **Rollback plan documented and tested** — Written procedure exists; rollback has been practiced on staging
93
+ - [ ] **Database migrations tested** — Tested forward migration; backward migration verified if schema change is reversible
94
+ - [ ] **Third-party dependency changes reviewed** — New or upgraded external dependencies checked for breaking changes
95
+ - [ ] **Release notes prepared** — Changelog updated, stakeholder-facing summary written
96
+ - [ ] **On-call engineer identified** — Named person is available and has context on the release contents
97
+ - [ ] **Communication plan ready** — Stakeholders know the release is happening; support team briefed on changes
98
+ - [ ] **No conflicting releases** — Other teams aren't deploying simultaneously
99
+ - [ ] **Deploy window confirmed** — Not deploying during peak traffic or before a weekend (unless continuous deployment)
100
+
101
+ ### Risk Assessment
102
+
103
+ - [ ] **Change scope categorized** — Small (config change, copy update), Medium (new feature, refactor), Large (architecture change, migration)
104
+ - [ ] **Blast radius estimated** — What percentage of users could be affected if something goes wrong?
105
+ - [ ] **Revert complexity assessed** — Can this be reverted in <5 minutes? Does reverting require a data migration?
106
+
107
+ ---
108
+
109
+ ## Smoke Test Suite Design
110
+
111
+ ### What to Include
112
+
113
+ Smoke tests cover **critical user journeys only**. If these fail, the application is fundamentally broken.
114
+
115
+ **Typical smoke test suite (5-8 tests):**
116
+
117
+ 1. **Application health** — Homepage loads, returns 200, no JavaScript errors in console
118
+ 2. **Authentication** — User can log in with valid credentials, session is established
119
+ 3. **Core workflow** — The primary value-delivering action works (e.g., create a document, submit a form, add to cart or complete a purchase flow)
120
+ 4. **Data retrieval** — Key data loads correctly (dashboard populates, search returns results, product page loads)
121
+ 5. **Payment/transaction** (if applicable) — Payment flow completes with test credentials
122
+ 6. **API health** — Primary API endpoints return valid responses with correct schemas
123
+ 7. **Navigation** — Critical navigation paths work (deep links, redirects, menu items)
124
+ 8. **Error handling** — Application shows a user-friendly error page for invalid routes (404)
125
+
126
+ ### What NOT to Include
127
+
128
+ - Edge cases (those belong in regression tests)
129
+ - Visual perfection (that belongs in visual regression tests)
130
+ - Performance benchmarks (that belongs in performance tests)
131
+ - Exhaustive form validation (that belongs in unit/integration tests)
132
+
133
+ ### Keeping It Fast
134
+
135
+ Target: **under 5 minutes** for the entire smoke suite.
136
+
137
+ - Run tests in parallel where possible
138
+ - Use API calls instead of UI interactions for setup (create test user via API, not through registration form)
139
+ - Skip non-critical assertions (don't check exact copy text, check that elements exist)
140
+ - Use a dedicated test account with pre-created data (don't create data from scratch each run)
141
+ - Avoid unnecessary waits — use smart waiting (wait for element, not `sleep(3000)` / `waitForTimeout`)
142
+
143
+ ### Environment-Specific Smoke Tests
144
+
145
+ **Staging smoke tests:**
146
+ - Full smoke suite (all 5-8 tests)
147
+ - Can use test payment providers
148
+ - Can test with feature flags in upcoming release configuration
149
+ - Can test database migrations
150
+
151
+ **Production smoke tests:**
152
+ - Subset of staging smoke tests (3-5 tests)
153
+ - Use synthetic test accounts (clearly labeled, won't affect analytics)
154
+ - Never test with real payment transactions (use sandbox mode or skip)
155
+ - Focus on: app loads, auth works, core read operations work, API responds
156
+
157
+ **Post-deployment smoke tests:**
158
+ - Run immediately after deploy completes (within 60 seconds)
159
+ - Same as production smoke tests
160
+ - If any fail, trigger alert and begin rollback evaluation
161
+
162
+ Staging is not production: it has different data volumes, traffic patterns, third-party configurations, and infrastructure scale. That gap is exactly why production and post-deployment smoke tests exist on top of staging verification.
163
+
164
+ ---
165
+
166
+ ## Staged Rollout Validation
167
+
168
+ ### Rollout Stages
169
+
170
+ A typical staged rollout. The same ladder expressed for flag-based rollouts adds a 25% step (see below):
171
+
172
+ | Stage | Traffic % | Duration | Purpose |
173
+ |-------|-----------|----------|---------|
174
+ | Canary | 1% | 15-30 min | Catch crashes, exceptions, obvious failures |
175
+ | Early adopters | 10% | 1-2 hours | Validate error rates, latency, business metrics |
176
+ | Partial rollout | 25-50% | 2-4 hours | Confirm stability at scale |
177
+ | Full rollout | 100% | — | Monitor for 24 hours post-deployment |
178
+
179
+ ### What to Monitor Between Stages
180
+
181
+ Before promoting to the next stage, verify **all** of these:
182
+
183
+ **Error metrics:**
184
+ - Error rate (HTTP 5xx) is not higher than baseline
185
+ - Exception count is not higher than baseline
186
+ - No new error types appearing in logs
187
+
188
+ **Performance metrics:**
189
+ - P50 and P95 latency are within acceptable range (relative to baseline, not an absolute ceiling)
190
+ - No increase in timeout errors
191
+ - Database query times are stable
192
+
193
+ **Business metrics:**
194
+ - Conversion rate is not dropping
195
+ - User engagement (page views, actions) is stable
196
+ - Revenue/transaction volume is normal (if applicable)
197
+
198
+ **Infrastructure metrics:**
199
+ - CPU and memory usage are normal
200
+ - No increase in queue depth or message backlog
201
+ - No disk space issues from new logging
202
+
203
+ ### Automated Promotion Criteria
204
+
205
+ Define rules for automatic promotion between stages. Each gate combines an error-rate ceiling, a latency ceiling expressed **relative to baseline**, a stability window, and (at higher stages) business-metric guardrails. See `references/rollout-automation.md` for the full canary→10%→50%→100% promotion ruleset.
206
+
207
+ ### Feature Flag Gradual Rollout
208
+
209
+ An alternative to infrastructure-level canary deploys:
210
+
211
+ 1. Deploy new code to 100% with the feature flag OFF
212
+ 2. Enable the flag for internal users first (dogfooding)
213
+ 3. Enable for 1% of users (canary equivalent)
214
+ 4. Gradually increase: 10%, 25%, 50%, 100%
215
+ 5. Remove the flag after full rollout is stable for 1 week
216
+
217
+ **Advantages:** Faster rollback (just flip the flag), no infrastructure changes, can target specific user segments.
218
+
219
+ **Disadvantages:** Code complexity (branching logic), stale flags become tech debt, doesn't catch infrastructure issues.
220
+
221
+ #### Tooling
222
+
223
+ | Platform | Best at | Notes |
224
+ |----------|---------|-------|
225
+ | **LaunchDarkly** | Enterprise scale; Guarded Rollouts (auto-canary analysis, GA since May 2025); AI Configs for prompt/model rollouts; agent graphs | Acquired Highlight.io in 2025 — also offers observability tied to flags |
226
+ | **Statsig** | Experiment-first culture; Switchback experiments (Feb 2026 update) for two-sided marketplaces; auto-tune | Acquired by OpenAI Sept 2025; still operates independently as of mid-2026, but weigh acquisition/roadmap risk before a multi-year infrastructure bet |
227
+ | **GrowthBook** | OSS-first; stale-flag detection with code-reference scanning; SQL-based experimentation | Strong fit when you want to self-host and avoid vendor lock-in |
228
+ | **Unleash** | OSS, GitOps-style flag definition, environment scoping | Apache 2 license; Enterprise tier for SSO/audit |
229
+ | **Flagsmith** | Kill switches as first-class concept; canary alerts; OSS option | Published "what is a kill switch" + "release testing" guides 2026 |
230
+ | **Harness FME** (formerly Split) | Targeted rollouts + monitoring tied to deploy pipelines; warehouse-native experimentation + flag archiving (2026) | Rebranded after Harness acquisition |
231
+
232
+ Vendor-native canary analysis (LaunchDarkly Guarded Rollouts, Statsig Auto-tune, Flagger) is now common — if your platform offers it, prefer it over hand-rolled rollout-policy YAML. Given the vendor churn this table documents (Statsig→OpenAI, Split→Harness FME), prefer OpenFeature-compatible SDKs (CNCF spec; Harness FME and others now standardize on it) so flag tooling stays swappable.
233
+
234
+ #### Rolling Out AI/LLM Features
235
+
236
+ AI features need a distinct rollout pattern: prompt versions and model IDs are configurable separately from code, and a kill switch is mandatory.
237
+
238
+ 1. Pin the prompt template version and model ID in your AI Configs platform (LaunchDarkly AI Configs, custom dataset, or feature-flag JSON).
239
+ 2. Roll out the prompt/model combo behind a flag — internal first, then 1%, 10%, etc.
240
+ 3. Watch eval metrics (hallucination rate, jailbreak success rate, cost per request) per cohort, not just error rate.
241
+ 4. Cost guardrail: a budget circuit breaker that fails the feature open (graceful fallback) when a model's per-request cost spikes.
242
+ 5. Kill switch: a single flag that disables the AI path and routes to a deterministic fallback or a "feature unavailable" state — testable in staging before launch.
243
+
244
+ See `ai-system-testing` for prompt-level eval test patterns and `testing-in-production` for canary metric design.
245
+
246
+ ---
247
+
248
+ ## Rollback Criteria and Process
249
+
250
+ ### Automated Rollback Triggers
251
+
252
+ Define these thresholds BEFORE deployment. When any trigger fires, rollback begins automatically. All thresholds are relative to the measured baseline, not absolute ceilings.
253
+
254
+ | Metric | Threshold | Action |
255
+ |--------|-----------|--------|
256
+ | Error rate (5xx) | >2x baseline for 5 min | Auto-rollback |
257
+ | P95 latency | >3x baseline for 5 min | Auto-rollback |
258
+ | Health check | 3 consecutive failures | Auto-rollback |
259
+ | Crash rate (mobile) | >0.5% | Auto-rollback |
260
+ | Error budget | >50% burned in 1 hour | Auto-rollback |
261
+
262
+ ### Manual Rollback Triggers
263
+
264
+ These require human judgment but should have clear guidelines:
265
+
266
+ - **Customer-reported critical issue** — Multiple users reporting the same problem
267
+ - **Data integrity concern** — Evidence of corrupted or incorrect data
268
+ - **Security vulnerability discovered** — Active exploitation or high-severity CVE
269
+ - **Monitoring blind spots** — You realize you can't monitor a critical metric for the new feature
270
+ - **On-call engineer judgment** — The on-call engineer always has authority to trigger a rollback
271
+
272
+ ### Rollback Procedure
273
+
274
+ **Step 1: Decide (< 2 minutes)**
275
+ - Is the trigger automated or manual?
276
+ - If manual: does the issue meet rollback criteria? If yes, proceed. Don't debate.
277
+
278
+ **Step 2: Execute rollback (< 5 minutes)**
279
+ - **Kill switch (fastest, prefer if available):** Flip the dedicated kill-switch flag for the affected feature. Distinct from a full code rollback — disables one capability without redeploy. Test the kill switch in staging before every release; an untested switch is not a switch.
280
+ - **Feature flag rollback:** Disable the feature flag for the new code path. Slower than a kill switch when both exist (rollout flag vs kill switch are different concerns).
281
+ - **Code rollback:** Revert to the previous deployment (re-deploy previous image/artifact). Use when the issue is not contained to a single flagged feature.
282
+ - **Database rollback:** Run backward migration if applicable. If migration is irreversible, skip this step and handle data separately.
283
+ - **Cache invalidation:** Clear CDN and application caches if the old version would serve stale/incorrect data.
284
+
285
+ **Step 3: Verify (< 5 minutes)**
286
+ - Run production smoke tests
287
+ - Verify error rate returns to baseline
288
+ - Check that the rolled-back version serves correctly
289
+
290
+ **Step 4: Communicate (< 10 minutes)**
291
+ - Notify the release channel using the rollback skeleton below
292
+ - Update status page if user-facing impact occurred
293
+ - Brief the support team
294
+
295
+ **Step 5: Investigate (next business day)**
296
+ - Root cause analysis
297
+ - Write a regression test that would have caught the issue
298
+ - Update the go/no-go checklist if a check was missing
299
+ - Schedule the fix and re-release
300
+
301
+ #### Rollback announcement skeleton
302
+
303
+ Drop this in the release channel during Step 4. For the full release + rollback templates, see `references/communication-templates.md`.
304
+
305
+ ```
306
+ Subject: [Rollback] v{version} — {date} {time}
307
+ Status: ROLLED BACK
308
+ Reason: {one line — e.g. error rate 4x baseline within 8 min}
309
+ Impact: {who was affected, for how long}
310
+ Current state: Running previous version v{prev_version}
311
+ Next steps:
312
+ - Root cause investigation: {owner}
313
+ - Fix ETA: {estimate or "investigating"}
314
+ ```
315
+
316
+ ### Data Considerations
317
+
318
+ When a migration can't be rolled back:
319
+
320
+ - **Forward-fix:** Deploy a fix on top of the current (broken) version instead of rolling back
321
+ - **Dual-write:** During migration, write to both old and new schemas; rollback drops the new writes
322
+ - **Shadow migration:** Migrate in the background, validate, then cut over. Rollback just stops the cutover
323
+ - **Point-in-time recovery:** Restore database from backup (last resort, causes data loss for changes since backup)
324
+
325
+ ---
326
+
327
+ ## Post-Deployment Verification
328
+
329
+ ### Immediate (0-15 minutes)
330
+
331
+ - [ ] Production smoke tests pass
332
+ - [ ] Error rate is at or below pre-deployment baseline
333
+ - [ ] No new exception types in error tracker
334
+ - [ ] Health check endpoints return healthy
335
+ - [ ] Key pages load correctly (spot check 2-3 pages manually)
336
+
337
+ ### Short-term (15 minutes - 2 hours)
338
+
339
+ - [ ] Synthetic monitoring confirms all critical paths working
340
+ - [ ] Error rate trend is flat or declining (not increasing)
341
+ - [ ] P50 and P95 latency are within expected range
342
+ - [ ] No increase in support ticket volume
343
+ - [ ] Business metrics (conversions, revenue, signups) are normal
344
+ - [ ] No memory leaks or resource exhaustion trends
345
+
346
+ ### Medium-term (2-24 hours)
347
+
348
+ - [ ] Overnight batch jobs complete successfully (if applicable)
349
+ - [ ] No time-zone-dependent issues surfacing as other regions wake up
350
+ - [ ] Email/notification delivery is normal
351
+ - [ ] Third-party integrations are functioning
352
+ - [ ] No gradual performance degradation
353
+
354
+ ---
355
+
356
+ ## Anti-Patterns
357
+
358
+ ### "It worked on staging"
359
+ Staging is not production — different data volumes, traffic patterns, third-party configurations, and infrastructure scale. Staging success is necessary but not sufficient evidence of readiness.
360
+ **Fix:** Use production smoke tests and staged rollouts in addition to staging verification.
361
+
362
+ ### No rollback plan
363
+ "We'll figure it out if something goes wrong" means you'll figure it out under pressure, sleep-deprived, with users complaining. That's when mistakes happen.
364
+ **Fix:** Document the rollback procedure. Practice it quarterly. Time it. Make it a checklist, not tribal knowledge.
365
+
366
+ ### Deploying on Friday afternoon
367
+ You deploy at 4 PM on Friday. An issue surfaces at 6 PM. Your team is at dinner. The issue grows overnight. Monday morning is chaos.
368
+ **Fix:** Deploy early in the week, early in the day, when the full team is available to monitor. If you must deploy on Friday, deploy before noon with extra monitoring.
369
+
370
+ ### Skipping smoke tests because "the pipeline is green"
371
+ CI pipelines test against test data in test environments. Smoke tests verify the deployed application works with production configuration, production data, and production infrastructure.
372
+ **Fix:** Smoke tests are non-negotiable. If they're slow, make them faster. If they're flaky, fix them. Never skip them.
373
+
374
+ ### Big-bang releases instead of incremental
375
+ Accumulating 6 weeks of changes into one mega-release means: more things can break, harder to identify which change caused the issue, higher risk, longer rollback time, more stress.
376
+ **Fix:** Release smaller, more frequently. If you can't do continuous deployment, aim for weekly or bi-weekly releases with small, well-understood changesets.
377
+
378
+ ### No post-deployment verification
379
+ You deploy and move on to the next feature. An hour later, users are experiencing errors that nobody is watching for.
380
+ **Fix:** Assign someone to monitor dashboards for 30-60 minutes post-deploy. Set up automated alerts with appropriate thresholds. Run post-deployment smoke tests.
381
+
382
+ ### Rollback aversion
383
+ "We're so close to fixing it, let's just push a hotfix forward." Meanwhile, users are affected for another 45 minutes while you debug under pressure.
384
+ **Fix:** Roll back first, investigate second. A working previous version is better than a broken current version. Your ego can recover; user trust is harder to rebuild.
385
+
386
+ ### Feature flag accumulation
387
+ You use feature flags for safe rollouts (good!) but never remove them (bad). After a year, you have 200 flags, nobody knows which are active, and flag interactions cause mysterious bugs.
388
+ **Fix:** 2026 best practice is platform-level stale detection, not calendar reminders. Use GrowthBook stale-flag detection (code references), LaunchDarkly archive flow, or Flagsmith's flag age telemetry to surface flags whose code paths haven't been touched in N weeks. Pair with a quarterly review where flags older than the threshold are either archived or get a documented owner + reason to keep. Calendar dates rot; code-reference scans don't.
389
+
390
+ ### Canary alerts that lie
391
+ Auto-rollback wired to a metric that's noisy, late-arriving, or partially aggregated. The alert fires (or doesn't) at the wrong time, and the team learns to mistrust it — so when the real incident arrives, the signal is ignored.
392
+ **Fix:** Treat the canary alert like any other test — it has a false-positive rate and a false-negative rate, and you measure both. Run a "shadow" period where the alert publishes its decision but doesn't actually rollback; compare its calls to ground truth for two weeks. Promote to auto-rollback only after the false-positive rate is below your tolerance. Reference: https://www.flagsmith.com/blog/when-canary-alerts-go-wrong
393
+
394
+ ### Switchback experiments for two-sided systems
395
+ Standard A/B fails on marketplaces, ride-share, ad auctions, and other systems where the treatment group affects the control group through shared state. Splitting traffic 50/50 doesn't isolate the experiment — both sides see the same warped market.
396
+ **Fix:** Use a switchback design — alternate the entire system between control and treatment over short windows (minutes to hours). Statsig's Switchback experiments (Feb 2026) automate this for the common cases. Don't block release on a corrupted A/B test result; rerun with the right design. Reference: https://www.statsig.com/updates
397
+
398
+ ---
399
+
400
+ ## Verification
401
+
402
+ Run these immediately after the deploy completes, smallest check first. Expand the error-tracker queries in `references/rollout-automation.md`.
403
+
404
+ ```bash
405
+ # Health endpoint returns healthy
406
+ curl -s https://your-app.com/health | jq .
407
+
408
+ # Response time + status in one shot
409
+ curl -o /dev/null -s -w "HTTP %{http_code} in %{time_total}s\n" https://your-app.com
410
+
411
+ # New errors since deploy (Sentry CLI) — should be empty
412
+ sentry-cli issues list --project your-project --query "firstSeen:>15m"
413
+
414
+ # Datadog: compare 5xx count for the service before vs after deploy — must not increase
415
+ ```
416
+
417
+ Pass criteria: health returns `healthy`, status is `200` within your latency budget, the Sentry query returns no new issues, and the post-deploy 5xx count is at or below the pre-deploy baseline.
418
+
419
+ ---
420
+
421
+ ## Done When
422
+
423
+ - Go/no-go checklist completed with evidence for each item and stored as a versioned artifact (e.g. `RELEASE-<version>.md` or a tracked issue), signed off by the named approver with a timestamp
424
+ - Smoke test suite run against the release candidate in staging — all tests pass (exit code 0)
425
+ - Rollback criteria documented as specific baseline-relative thresholds, and the rollback procedure practiced on staging at least once
426
+ - Staged rollout plan defined with traffic percentages, per-stage promotion criteria, and guardrail metrics for each stage
427
+ - Post-deployment verification commands run and passing (health 200, no new Sentry issues, 5xx count at or below baseline)
428
+
429
+ ## Reference Files (in `references/`)
430
+
431
+ - **rollout-automation.md** — Automated canary→10%→50%→100% promotion criteria (baseline-relative) and post-deployment verification command snippets.
432
+ - **communication-templates.md** — Load when writing a release or rollback announcement: fill-in-the-blank release and rollback templates.
433
+
434
+ ## Related Skills
435
+
436
+ - `testing-in-production` — Overlaps directly with progressive rollout. Go there for the safe-release *techniques* (flags, canary, dark launch, guardrail metrics) applied while shipping; come here for the go/no-go *decision* that gates the release.
437
+ - `synthetic-monitoring` — Scheduled probes that run continuously after release. Release-readiness covers the one-shot post-deploy verification window; synthetic-monitoring covers ongoing SLA validation.
438
+ - `qa-metrics` — Source of the DORA evidence (change failure rate, MTTR) and error/pass-rate numbers you cite in go/no-go decisions and rollback thresholds.
439
+ - `ci-cd-integration` — The CI pipeline must be green as a prerequisite; go there to build the pipeline, come here to gate on it.
440
+ - `ai-system-testing` — When releasing AI/LLM features: prompt-version eval tests and kill-switch design. The rollout pattern here points at it.
441
+ - `compliance-testing` — EU AI Act / EAA / GDPR requirements that may legally gate a release before go/no-go.
442
+ - `playwright-automation` — Smoke tests are often implemented here; go there for the test structure, come here for which journeys are smoke-critical.
443
+ - `quality-postmortem` — When a release goes wrong, the postmortem feeds the missing check back into this go/no-go checklist.