@1aboveio/skills 0.10.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 (397) hide show
  1. package/LICENSE +3 -0
  2. package/README.md +90 -0
  3. package/bin/1aboveio-skills.mjs +18 -0
  4. package/package.json +28 -0
  5. package/runtime/skills/distribution/generated/recipes.json +1189 -0
  6. package/runtime/skills/distribution/scripts/bundles.mjs +280 -0
  7. package/runtime/skills/engineering/engineering-runtime/scripts/main-module.mjs +80 -0
  8. package/skills/backend/airflow-dag-develop/LICENSE +3 -0
  9. package/skills/backend/airflow-dag-develop/SKILL.md +111 -0
  10. package/skills/backend/app-debug/LICENSE +3 -0
  11. package/skills/backend/app-debug/SKILL.md +109 -0
  12. package/skills/backend/app-debug/references/common-errors.md +128 -0
  13. package/skills/backend/python-backend/LICENSE +3 -0
  14. package/skills/backend/python-backend/SKILL.md +326 -0
  15. package/skills/cicd-pipeline/cloud-build/LICENSE +3 -0
  16. package/skills/cicd-pipeline/cloud-build/SKILL.md +707 -0
  17. package/skills/cicd-pipeline/cloud-debug/LICENSE +3 -0
  18. package/skills/cicd-pipeline/cloud-debug/SKILL.md +316 -0
  19. package/skills/cicd-pipeline/cloud-debug/references/build-failures.md +238 -0
  20. package/skills/cicd-pipeline/cloud-debug/references/deploy-failures.md +376 -0
  21. package/skills/cicd-pipeline/cloud-debug/references/pipeline-failures.md +378 -0
  22. package/skills/cicd-pipeline/cloud-deploy/LICENSE +3 -0
  23. package/skills/cicd-pipeline/cloud-deploy/SKILL.md +229 -0
  24. package/skills/cicd-pipeline/cloud-deploy/references/config-templates.md +257 -0
  25. package/skills/cicd-pipeline/docker/LICENSE +3 -0
  26. package/skills/cicd-pipeline/docker/SKILL.md +126 -0
  27. package/skills/cicd-pipeline/google-cloud/LICENSE +3 -0
  28. package/skills/cicd-pipeline/google-cloud/SKILL.md +118 -0
  29. package/skills/cicd-pipeline/google-cloud/references/gcs.md +469 -0
  30. package/skills/cicd-pipeline/google-cloud/references/iam.md +451 -0
  31. package/skills/cicd-pipeline/google-cloud/references/project.md +349 -0
  32. package/skills/cicd-pipeline/google-cloud/references/secrets.md +336 -0
  33. package/skills/cicd-pipeline/google-cloud/references/vpc.md +312 -0
  34. package/skills/cicd-pipeline/google-cloud/scripts/create-sa.sh +36 -0
  35. package/skills/cicd-pipeline/google-cloud/scripts/gcp-config.sh +31 -0
  36. package/skills/cicd-pipeline/google-cloud/scripts/grant-iap.sh +41 -0
  37. package/skills/cicd-pipeline/google-cloud/scripts/setup-secrets.sh +48 -0
  38. package/skills/cicd-pipeline/mergify/LICENSE +3 -0
  39. package/skills/cicd-pipeline/mergify/SKILL.md +138 -0
  40. package/skills/cicd-pipeline/mergify/assets/templates/mergify.yml +237 -0
  41. package/skills/cicd-pipeline/mergify/assets/templates/ruleset.json +46 -0
  42. package/skills/cicd-pipeline/mergify/references/branch-protection.md +277 -0
  43. package/skills/cicd-pipeline/mergify/references/configuration.md +183 -0
  44. package/skills/cicd-pipeline/mergify/references/diagnosis.md +73 -0
  45. package/skills/cicd-pipeline/mergify/references/traps.md +78 -0
  46. package/skills/cicd-pipeline/mergify/references/watch-contract.md +218 -0
  47. package/skills/cicd-pipeline/mergify/scripts/audit-core.mjs +131 -0
  48. package/skills/cicd-pipeline/mergify/scripts/audit.mjs +4 -0
  49. package/skills/cicd-pipeline/mergify/scripts/watch-pr-delivery-core.mjs +663 -0
  50. package/skills/cicd-pipeline/mergify/scripts/watch-pr-delivery.mjs +4 -0
  51. package/skills/cicd-pipeline/podman/LICENSE +3 -0
  52. package/skills/cicd-pipeline/podman/SKILL.md +70 -0
  53. package/skills/cicd-pipeline/podman/agents/openai.yaml +4 -0
  54. package/skills/cicd-pipeline/podman/assets/templates/podman-compose-socket-directory.yml +6 -0
  55. package/skills/cicd-pipeline/podman/assets/templates/podman-service-override.conf +3 -0
  56. package/skills/cicd-pipeline/podman/references/compose-compatibility.md +70 -0
  57. package/skills/cicd-pipeline/podman/references/networking-and-ports.md +74 -0
  58. package/skills/cicd-pipeline/podman/references/rootless-services-and-sockets.md +156 -0
  59. package/skills/cicd-pipeline/podman/references/troubleshooting.md +98 -0
  60. package/skills/engineering/e2e-test/LICENSE +3 -0
  61. package/skills/engineering/e2e-test/SKILL.md +156 -0
  62. package/skills/engineering/e2e-test/assets/ci-gates.cloudbuild.yaml +272 -0
  63. package/skills/engineering/e2e-test/assets/ci-gates.github.yml +451 -0
  64. package/skills/engineering/e2e-test/assets/e2e-workflow.yml +282 -0
  65. package/skills/engineering/e2e-test/references/authoring/auth-flows.md +159 -0
  66. package/skills/engineering/e2e-test/references/authoring/playwright-config.md +71 -0
  67. package/skills/engineering/e2e-test/references/authoring/playwright-patterns.md +219 -0
  68. package/skills/engineering/e2e-test/references/authoring/test-skipping.md +44 -0
  69. package/skills/engineering/e2e-test/references/ci-integration.md +121 -0
  70. package/skills/engineering/e2e-test/references/ci-playwright-container.md +280 -0
  71. package/skills/engineering/e2e-test/references/debugging.md +36 -0
  72. package/skills/engineering/e2e-test/references/presentation-sweep.md +131 -0
  73. package/skills/engineering/e2e-test/references/reviewing.md +39 -0
  74. package/skills/engineering/e2e-test/references/route-discovery.md +50 -0
  75. package/skills/engineering/e2e-test/references/route-manifest.md +44 -0
  76. package/skills/engineering/e2e-test/scripts/detect-routes-fastapi.py +290 -0
  77. package/skills/engineering/e2e-test/scripts/detect-routes-nextjs.mjs +200 -0
  78. package/skills/engineering/e2e-test/scripts/post-visual-evidence.mjs +158 -0
  79. package/skills/engineering/e2e-test/scripts/presentation-checks.mjs +171 -0
  80. package/skills/engineering/e2e-test/scripts/presentation-perceivability.mjs +179 -0
  81. package/skills/engineering/e2e-test/scripts/presentation-reachability.mjs +154 -0
  82. package/skills/engineering/e2e-test/scripts/presentation-render-health.mjs +141 -0
  83. package/skills/engineering/e2e-test/scripts/presentation-sweep.mjs +148 -0
  84. package/skills/engineering/e2e-test/scripts/presentation-temporal.mjs +127 -0
  85. package/skills/engineering/e2e-test/scripts/presentation-visual.mjs +84 -0
  86. package/skills/engineering/e2e-test/scripts/project-route-manifest.mjs +75 -0
  87. package/skills/engineering/e2e-test/scripts/validate-manifest.mjs +106 -0
  88. package/skills/engineering/engineering-runtime/LICENSE +3 -0
  89. package/skills/engineering/engineering-runtime/SKILL.md +10 -0
  90. package/skills/engineering/engineering-runtime/agents/openai.yaml +6 -0
  91. package/skills/engineering/engineering-runtime/coherence/workflow.json +553 -0
  92. package/skills/engineering/engineering-runtime/scripts/exact-head-artifact.mjs +131 -0
  93. package/skills/engineering/engineering-runtime/scripts/head-check-set.mjs +398 -0
  94. package/skills/engineering/engineering-runtime/scripts/main-module.mjs +80 -0
  95. package/skills/engineering/engineering-runtime/scripts/mergify-yaml.mjs +11 -0
  96. package/skills/engineering/engineering-runtime/scripts/package-lock.json +43 -0
  97. package/skills/engineering/engineering-runtime/scripts/package.json +10 -0
  98. package/skills/engineering/engineering-runtime/scripts/required-check-plan.mjs +223 -0
  99. package/skills/engineering/engineering-runtime/scripts/workflow-coherence.mjs +576 -0
  100. package/skills/engineering/engineering-runtime/scripts/workflow-policy.mjs +166 -0
  101. package/skills/engineering/ensure-coverage/LICENSE +3 -0
  102. package/skills/engineering/ensure-coverage/SKILL.md +136 -0
  103. package/skills/engineering/ensure-coverage/evals/evals.json +125 -0
  104. package/skills/engineering/ensure-coverage/references/breadth/coverage-ledger.md +91 -0
  105. package/skills/engineering/ensure-coverage/references/breadth/inventory-contract.md +83 -0
  106. package/skills/engineering/ensure-coverage/references/breadth/surface-baseline.md +44 -0
  107. package/skills/engineering/ensure-coverage/references/breadth/surface-discovery.md +16 -0
  108. package/skills/engineering/ensure-coverage/references/depth/characterization.md +68 -0
  109. package/skills/engineering/ensure-coverage/references/depth/coverage.config.example.json +25 -0
  110. package/skills/engineering/ensure-coverage/references/depth/grading.md +35 -0
  111. package/skills/engineering/ensure-coverage/references/depth/mock-policy.md +87 -0
  112. package/skills/engineering/ensure-coverage/references/depth/test-smells.md +23 -0
  113. package/skills/engineering/ensure-coverage/references/enforcement/ci-contract.md +164 -0
  114. package/skills/engineering/ensure-coverage/references/enforcement/hooks.md +85 -0
  115. package/skills/engineering/ensure-coverage/references/examples/coverage-ledger.md +109 -0
  116. package/skills/engineering/ensure-coverage/references/examples/refund-flow.md +33 -0
  117. package/skills/engineering/ensure-coverage/references/presentation/axis.md +78 -0
  118. package/skills/engineering/ensure-coverage/references/presentation/runner-contract.md +74 -0
  119. package/skills/engineering/ensure-coverage/references/process/audit-mode.md +33 -0
  120. package/skills/engineering/ensure-coverage/references/process/output-template.md +139 -0
  121. package/skills/engineering/ensure-coverage/references/process/review-contract-template.md +119 -0
  122. package/skills/engineering/ensure-coverage/references/process/scope-class.md +178 -0
  123. package/skills/engineering/ensure-coverage/references/process/test-strategy.md +55 -0
  124. package/skills/engineering/ensure-coverage/schemas/coverage-config.schema.json +45 -0
  125. package/skills/engineering/ensure-coverage/schemas/coverage-file.schema.json +93 -0
  126. package/skills/engineering/ensure-coverage/scripts/adapters/nextjs-inventory.mjs +178 -0
  127. package/skills/engineering/ensure-coverage/scripts/check-quarantine-expiry.mjs +101 -0
  128. package/skills/engineering/ensure-coverage/scripts/ci-audit.mjs +358 -0
  129. package/skills/engineering/ensure-coverage/scripts/coverage-checklist.mjs +494 -0
  130. package/skills/engineering/ensure-coverage/scripts/coverage-ledger.mjs +663 -0
  131. package/skills/engineering/ensure-coverage/scripts/design-parity.mjs +591 -0
  132. package/skills/engineering/ensure-coverage/scripts/evidence-block.mjs +367 -0
  133. package/skills/engineering/ensure-coverage/scripts/lint-tests.mjs +269 -0
  134. package/skills/engineering/ensure-coverage/scripts/mock-policy-config.mjs +176 -0
  135. package/skills/engineering/ensure-coverage/scripts/package-lock.json +76 -0
  136. package/skills/engineering/ensure-coverage/scripts/package.json +19 -0
  137. package/skills/engineering/ensure-coverage/scripts/scope-class.mjs +554 -0
  138. package/skills/engineering/harness-runtime/LICENSE +3 -0
  139. package/skills/engineering/harness-runtime/SKILL.md +18 -0
  140. package/skills/engineering/harness-runtime/agents/openai.yaml +6 -0
  141. package/skills/engineering/harness-runtime/bin/discover-models.mjs +4 -0
  142. package/skills/engineering/harness-runtime/bin/model-catalog.mjs +4 -0
  143. package/skills/engineering/harness-runtime/contracts.md +15 -0
  144. package/skills/engineering/harness-runtime/discover-models.mjs +392 -0
  145. package/skills/engineering/harness-runtime/fixtures/native-question-schemas.json +33 -0
  146. package/skills/engineering/harness-runtime/fixtures/question-responses.json +54 -0
  147. package/skills/engineering/harness-runtime/index.mjs +767 -0
  148. package/skills/engineering/harness-runtime/model-catalog.mjs +787 -0
  149. package/skills/engineering/harness-runtime/native-question-contracts.md +37 -0
  150. package/skills/engineering/harness-runtime/references/model-catalog-seed.json +159 -0
  151. package/skills/engineering/harness-runtime/references/model-catalog.md +57 -0
  152. package/skills/engineering/implement-and-pr/LICENSE +3 -0
  153. package/skills/engineering/implement-and-pr/SKILL.md +176 -0
  154. package/skills/engineering/implement-and-pr/references/ci-iteration.md +10 -0
  155. package/skills/engineering/implement-and-pr/references/closeout.md +27 -0
  156. package/skills/engineering/implement-and-pr/references/contract-complete-fix-rounds.md +34 -0
  157. package/skills/engineering/implement-and-pr/references/evidence-rules.md +39 -0
  158. package/skills/engineering/implement-and-pr/references/incremental-plan.md +16 -0
  159. package/skills/engineering/implement-and-pr/references/self-review.md +23 -0
  160. package/skills/engineering/implement-and-pr/references/tdd-mode.md +18 -0
  161. package/skills/engineering/resolve-issues/LICENSE +3 -0
  162. package/skills/engineering/resolve-issues/SKILL.md +167 -0
  163. package/skills/engineering/resolve-issues/generated/workflow-repair-policy.json +448 -0
  164. package/skills/engineering/resolve-issues/references/breaker.md +82 -0
  165. package/skills/engineering/resolve-issues/references/deliverables.md +27 -0
  166. package/skills/engineering/resolve-issues/references/delivery.md +108 -0
  167. package/skills/engineering/resolve-issues/references/evidence-lane.md +21 -0
  168. package/skills/engineering/resolve-issues/references/exact-head-ci.md +287 -0
  169. package/skills/engineering/resolve-issues/references/fan-out.md +33 -0
  170. package/skills/engineering/resolve-issues/references/finalization.md +68 -0
  171. package/skills/engineering/resolve-issues/references/guarantees.md +10 -0
  172. package/skills/engineering/resolve-issues/references/high-risk.md +29 -0
  173. package/skills/engineering/resolve-issues/references/incidents/848/README.md +156 -0
  174. package/skills/engineering/resolve-issues/references/intake.md +86 -0
  175. package/skills/engineering/resolve-issues/references/integration-gate.md +53 -0
  176. package/skills/engineering/resolve-issues/references/interference.md +87 -0
  177. package/skills/engineering/resolve-issues/references/loop.md +134 -0
  178. package/skills/engineering/resolve-issues/references/model-catalog.md +9 -0
  179. package/skills/engineering/resolve-issues/references/postmortem.md +27 -0
  180. package/skills/engineering/resolve-issues/references/pre-flight-model-slots.md +41 -0
  181. package/skills/engineering/resolve-issues/references/pre-flight-recording-and-checkout.md +48 -0
  182. package/skills/engineering/resolve-issues/references/pre-flight.md +41 -0
  183. package/skills/engineering/resolve-issues/references/regression-checklist.md +26 -0
  184. package/skills/engineering/resolve-issues/references/run-state.md +288 -0
  185. package/skills/engineering/resolve-issues/references/sandboxed-testing.md +48 -0
  186. package/skills/engineering/resolve-issues/references/spawn-contract.md +96 -0
  187. package/skills/engineering/resolve-issues/references/terminal-evidence-journal.md +40 -0
  188. package/skills/engineering/resolve-issues/references/why.md +653 -0
  189. package/skills/engineering/resolve-issues/schemas/fix-round.schema.json +49 -0
  190. package/skills/engineering/resolve-issues/scripts/combine-and-verify.mjs +721 -0
  191. package/skills/engineering/resolve-issues/scripts/component-candidate.mjs +962 -0
  192. package/skills/engineering/resolve-issues/scripts/contract-revision.mjs +220 -0
  193. package/skills/engineering/resolve-issues/scripts/detect-delivery-mode.mjs +420 -0
  194. package/skills/engineering/resolve-issues/scripts/detect-target-branch.mjs +256 -0
  195. package/skills/engineering/resolve-issues/scripts/detect-workspace-mode.mjs +168 -0
  196. package/skills/engineering/resolve-issues/scripts/discover-models.mjs +9 -0
  197. package/skills/engineering/resolve-issues/scripts/doctrine.mjs +62 -0
  198. package/skills/engineering/resolve-issues/scripts/evidence-lifecycle-contract.mjs +191 -0
  199. package/skills/engineering/resolve-issues/scripts/exact-head-ci.mjs +413 -0
  200. package/skills/engineering/resolve-issues/scripts/exact-head-github-provider.mjs +332 -0
  201. package/skills/engineering/resolve-issues/scripts/finalize.mjs +488 -0
  202. package/skills/engineering/resolve-issues/scripts/fix-rounds.mjs +3307 -0
  203. package/skills/engineering/resolve-issues/scripts/fixtures/evidence-lifecycle-circular-1001.json +16 -0
  204. package/skills/engineering/resolve-issues/scripts/fixtures/evidence-lifecycle-valid-sequencing.json +51 -0
  205. package/skills/engineering/resolve-issues/scripts/fixtures/fmm-express-830-component-candidate.json +17 -0
  206. package/skills/engineering/resolve-issues/scripts/fixtures/head-check-set-1081.json +166 -0
  207. package/skills/engineering/resolve-issues/scripts/gate-value-series.mjs +92 -0
  208. package/skills/engineering/resolve-issues/scripts/guide-index.mjs +73 -0
  209. package/skills/engineering/resolve-issues/scripts/head-check-set.mjs +159 -0
  210. package/skills/engineering/resolve-issues/scripts/interference.mjs +427 -0
  211. package/skills/engineering/resolve-issues/scripts/model-catalog.mjs +9 -0
  212. package/skills/engineering/resolve-issues/scripts/next-operations.mjs +419 -0
  213. package/skills/engineering/resolve-issues/scripts/postmortem.mjs +909 -0
  214. package/skills/engineering/resolve-issues/scripts/preflight-questions.mjs +322 -0
  215. package/skills/engineering/resolve-issues/scripts/reconcile-contained-unit-prs.mjs +415 -0
  216. package/skills/engineering/resolve-issues/scripts/release-state-contract.mjs +697 -0
  217. package/skills/engineering/resolve-issues/scripts/report.mjs +494 -0
  218. package/skills/engineering/resolve-issues/scripts/required-check-plan.mjs +172 -0
  219. package/skills/engineering/resolve-issues/scripts/round-metadata.mjs +79 -0
  220. package/skills/engineering/resolve-issues/scripts/run-state-review6-cases.mjs +334 -0
  221. package/skills/engineering/resolve-issues/scripts/run-state.mjs +4784 -0
  222. package/skills/engineering/resolve-issues/scripts/sandbox-selftest.mjs +395 -0
  223. package/skills/engineering/resolve-issues/scripts/spawn-contract.mjs +290 -0
  224. package/skills/engineering/resolve-issues/scripts/terminal-dispositions.mjs +170 -0
  225. package/skills/engineering/resolve-issues/scripts/terminal-evidence-journal.mjs +293 -0
  226. package/skills/engineering/resolve-issues/scripts/unit-kind.mjs +197 -0
  227. package/skills/engineering/resolve-issues/scripts/unit-lifecycle.mjs +127 -0
  228. package/skills/engineering/resolve-issues/scripts/watch-delivery.mjs +893 -0
  229. package/skills/engineering/resolve-issues/scripts/workspaces.mjs +829 -0
  230. package/skills/engineering/resolve-issues/workflows/independent-review.workflow.js +290 -0
  231. package/skills/engineering/resolve-issues/workflows/prior-art-scan.workflow.js +80 -0
  232. package/skills/engineering/resolve-issues/workflows/workflow-smoke.mjs +102 -0
  233. package/skills/engineering/resolve-release/LICENSE +3 -0
  234. package/skills/engineering/resolve-release/SKILL.md +112 -0
  235. package/skills/engineering/resolve-release/references/assembly.md +137 -0
  236. package/skills/engineering/resolve-release/references/auto-when-green.md +56 -0
  237. package/skills/engineering/resolve-release/references/candidate.md +167 -0
  238. package/skills/engineering/resolve-release/references/exposure.md +178 -0
  239. package/skills/engineering/resolve-release/references/handoff.md +24 -0
  240. package/skills/engineering/resolve-release/references/postmortem.md +230 -0
  241. package/skills/engineering/resolve-release/references/preflight.md +207 -0
  242. package/skills/engineering/resolve-release/references/principles.md +94 -0
  243. package/skills/engineering/resolve-release/references/regression-checklist.md +36 -0
  244. package/skills/engineering/resolve-release/references/related-skills.md +12 -0
  245. package/skills/engineering/resolve-release/references/routing.md +149 -0
  246. package/skills/engineering/resolve-release/references/verified-sha-github-flow.md +285 -0
  247. package/skills/engineering/resolve-release/references/versioning.md +202 -0
  248. package/skills/engineering/resolve-release/references/why.md +53 -0
  249. package/skills/engineering/resolve-release/scripts/adapter-completion-artifact.mjs +389 -0
  250. package/skills/engineering/resolve-release/scripts/build-changes.mjs +209 -0
  251. package/skills/engineering/resolve-release/scripts/candidate-hygiene.mjs +407 -0
  252. package/skills/engineering/resolve-release/scripts/candidate-identity.mjs +904 -0
  253. package/skills/engineering/resolve-release/scripts/candidate-traffic.mjs +81 -0
  254. package/skills/engineering/resolve-release/scripts/checked-adapter-loader.mjs +612 -0
  255. package/skills/engineering/resolve-release/scripts/close-attempt.mjs +135 -0
  256. package/skills/engineering/resolve-release/scripts/closeout-release.mjs +161 -0
  257. package/skills/engineering/resolve-release/scripts/doctrine.mjs +106 -0
  258. package/skills/engineering/resolve-release/scripts/durable-processing.mjs +522 -0
  259. package/skills/engineering/resolve-release/scripts/ensure-target-green.mjs +659 -0
  260. package/skills/engineering/resolve-release/scripts/evidence-bundle.mjs +1014 -0
  261. package/skills/engineering/resolve-release/scripts/finalize-release.mjs +526 -0
  262. package/skills/engineering/resolve-release/scripts/fixtures/durable-processing-adapter.mjs +169 -0
  263. package/skills/engineering/resolve-release/scripts/green-gate.mjs +599 -0
  264. package/skills/engineering/resolve-release/scripts/isolated-adapter-evaluator.mjs +752 -0
  265. package/skills/engineering/resolve-release/scripts/metadata-pr-status.mjs +56 -0
  266. package/skills/engineering/resolve-release/scripts/metadata-sync.mjs +1538 -0
  267. package/skills/engineering/resolve-release/scripts/postmortem.mjs +381 -0
  268. package/skills/engineering/resolve-release/scripts/preflight-probes.mjs +498 -0
  269. package/skills/engineering/resolve-release/scripts/production-endpoints.mjs +326 -0
  270. package/skills/engineering/resolve-release/scripts/rc-circuit-breaker.mjs +272 -0
  271. package/skills/engineering/resolve-release/scripts/report.mjs +417 -0
  272. package/skills/engineering/resolve-release/scripts/reprobe-credentials.mjs +114 -0
  273. package/skills/engineering/resolve-release/scripts/revalidate-candidate.mjs +238 -0
  274. package/skills/engineering/resolve-release/scripts/review-packet.mjs +503 -0
  275. package/skills/engineering/resolve-release/scripts/rollback-floor.mjs +263 -0
  276. package/skills/engineering/resolve-release/scripts/version-assert.mjs +339 -0
  277. package/skills/engineering/resolve-release/scripts/version-postmortem.mjs +485 -0
  278. package/skills/engineering/resolve-release/scripts/version.mjs +1199 -0
  279. package/skills/engineering/resolve-release/scripts/watch-candidate-delivery.mjs +449 -0
  280. package/skills/engineering/resolve-release/vendor/ACORN-LICENSE +21 -0
  281. package/skills/engineering/resolve-release/vendor/README.md +60 -0
  282. package/skills/engineering/resolve-release/vendor/acorn.mjs +6233 -0
  283. package/skills/engineering/resolve-release/vendor/quickjs/core/LICENSE +21 -0
  284. package/skills/engineering/resolve-release/vendor/quickjs/core/README.md +341 -0
  285. package/skills/engineering/resolve-release/vendor/quickjs/core/README.template.md +70 -0
  286. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/chunk-TAV5CUKK.mjs +2 -0
  287. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/chunk-TAV5CUKK.mjs.map +1 -0
  288. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/chunk-V2S4ZYJR.mjs +7 -0
  289. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/chunk-V2S4ZYJR.mjs.map +1 -0
  290. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.d.mts +2033 -0
  291. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.d.ts +2033 -0
  292. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.js +7 -0
  293. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.js.map +1 -0
  294. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.mjs +2 -0
  295. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.mjs.map +1 -0
  296. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/module-ES6BEMUI.mjs +2 -0
  297. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/module-ES6BEMUI.mjs.map +1 -0
  298. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/module-asyncify-2EFITU5U.mjs +2 -0
  299. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/module-asyncify-2EFITU5U.mjs.map +1 -0
  300. package/skills/engineering/resolve-release/vendor/quickjs/core/package.json +49 -0
  301. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/LICENSE +21 -0
  302. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/README.md +5 -0
  303. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.d.mts +549 -0
  304. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.d.ts +549 -0
  305. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.js +2 -0
  306. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.js.map +1 -0
  307. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.mjs +2 -0
  308. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.mjs.map +1 -0
  309. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/package.json +36 -0
  310. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/LICENSE +47 -0
  311. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/README.md +82 -0
  312. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.browser.d.ts +11 -0
  313. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.browser.mjs +22 -0
  314. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.cjs +21 -0
  315. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.cloudflare.cjs +21 -0
  316. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.cloudflare.d.ts +11 -0
  317. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.d.ts +11 -0
  318. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.mjs +25 -0
  319. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.wasm +0 -0
  320. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.d.mts +85 -0
  321. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.d.ts +85 -0
  322. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.js +2 -0
  323. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.js.map +1 -0
  324. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.mjs +2 -0
  325. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.mjs.map +1 -0
  326. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.d.mts +20 -0
  327. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.d.ts +20 -0
  328. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.js +2 -0
  329. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.js.map +1 -0
  330. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.mjs +2 -0
  331. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.mjs.map +1 -0
  332. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/package.json +61 -0
  333. package/skills/engineering/review-pr/LICENSE +3 -0
  334. package/skills/engineering/review-pr/SKILL.md +123 -0
  335. package/skills/engineering/review-pr/references/adversarial-reviewer-prompt.md +42 -0
  336. package/skills/engineering/review-pr/references/code-correctness.md +5 -0
  337. package/skills/engineering/review-pr/references/contract-freshness.md +9 -0
  338. package/skills/engineering/review-pr/references/coordination.md +18 -0
  339. package/skills/engineering/review-pr/references/domain-hazards.md +123 -0
  340. package/skills/engineering/review-pr/references/finding-themes.md +7 -0
  341. package/skills/engineering/review-pr/references/github-posting.md +98 -0
  342. package/skills/engineering/review-pr/references/golden-path-smoke.md +5 -0
  343. package/skills/engineering/review-pr/references/incremental-output.md +16 -0
  344. package/skills/engineering/review-pr/references/inputs-and-discovery.md +31 -0
  345. package/skills/engineering/review-pr/references/output-format.md +99 -0
  346. package/skills/engineering/review-pr/references/over-mock-screen.md +7 -0
  347. package/skills/engineering/review-pr/references/promotion-prs.md +16 -0
  348. package/skills/engineering/review-pr/references/re-review.md +18 -0
  349. package/skills/engineering/review-pr/references/review-method.md +199 -0
  350. package/skills/engineering/review-pr/references/review-mode.md +30 -0
  351. package/skills/engineering/review-pr/references/review-posture.md +53 -0
  352. package/skills/engineering/review-pr/references/round1-depth.md +62 -0
  353. package/skills/engineering/review-pr/references/scripts.md +17 -0
  354. package/skills/engineering/review-pr/references/workflow.md +16 -0
  355. package/skills/engineering/review-pr/schemas/findings.schema.json +282 -0
  356. package/skills/engineering/review-pr/scripts/finding-contract.mjs +285 -0
  357. package/skills/engineering/review-pr/scripts/post-review.mjs +405 -0
  358. package/skills/engineering/review-pr/scripts/pr-context.mjs +207 -0
  359. package/skills/engineering/review-pr/scripts/scan-diff.mjs +365 -0
  360. package/skills/engineering/review-pr/scripts/theme-contract.mjs +57 -0
  361. package/skills/engineering/smoke/LICENSE +3 -0
  362. package/skills/engineering/smoke/SKILL.md +131 -0
  363. package/skills/engineering/smoke/assets/smoke.manifest.example.json +53 -0
  364. package/skills/engineering/smoke/references/manifest.md +192 -0
  365. package/skills/engineering/smoke/scripts/smoke.mjs +713 -0
  366. package/skills/fullstack/better-auth/LICENSE +3 -0
  367. package/skills/fullstack/better-auth/SKILL.md +601 -0
  368. package/skills/fullstack/better-auth/references/feishu-api.md +270 -0
  369. package/skills/fullstack/monorepo/LICENSE +3 -0
  370. package/skills/fullstack/monorepo/SKILL.md +465 -0
  371. package/skills/fullstack/nextjs-fullstack/LICENSE +3 -0
  372. package/skills/fullstack/nextjs-fullstack/SKILL.md +210 -0
  373. package/skills/fullstack/nextjs-fullstack/conventions.md +318 -0
  374. package/skills/fullstack/nextjs-fullstack/frontend-conventions.md +61 -0
  375. package/skills/fullstack/nextjs-fullstack/nextjs16.md +287 -0
  376. package/skills/fullstack/nextjs-fullstack/server-actions.md +409 -0
  377. package/skills/fullstack/prisma-setup/LICENSE +3 -0
  378. package/skills/fullstack/prisma-setup/SKILL.md +180 -0
  379. package/skills/fullstack/prisma-setup/nextjs.md +258 -0
  380. package/skills/fullstack/prisma-setup/turborepo.md +301 -0
  381. package/skills/fullstack/shadcn/LICENSE +3 -0
  382. package/skills/fullstack/shadcn/SKILL.md +119 -0
  383. package/skills/fullstack/shadcn/assets/shadcn-small.png +0 -0
  384. package/skills/fullstack/shadcn/assets/shadcn.png +0 -0
  385. package/skills/fullstack/shadcn/cli.md +411 -0
  386. package/skills/fullstack/shadcn/customization.md +224 -0
  387. package/skills/fullstack/shadcn/evals/evals.json +90 -0
  388. package/skills/fullstack/shadcn/mcp.md +101 -0
  389. package/skills/fullstack/shadcn/rules/base-vs-radix.md +323 -0
  390. package/skills/fullstack/shadcn/rules/component-selection.md +67 -0
  391. package/skills/fullstack/shadcn/rules/composition.md +195 -0
  392. package/skills/fullstack/shadcn/rules/data-table.md +201 -0
  393. package/skills/fullstack/shadcn/rules/forms.md +255 -0
  394. package/skills/fullstack/shadcn/rules/icons.md +103 -0
  395. package/skills/fullstack/shadcn/rules/styling.md +167 -0
  396. package/skills/fullstack/zod-v4/LICENSE +3 -0
  397. package/skills/fullstack/zod-v4/SKILL.md +287 -0
@@ -0,0 +1,103 @@
1
+ # Icons
2
+
3
+ **Always use the project's configured `iconLibrary` for imports.** Check the `iconLibrary` field from project context: `lucide` → `lucide-react`, `tabler` → `@tabler/icons-react`, etc. Never assume `lucide-react`.
4
+
5
+ ---
6
+
7
+ ## Icons in Button use data-icon attribute
8
+
9
+ Add `data-icon="inline-start"` (prefix) or `data-icon="inline-end"` (suffix) to the icon. No sizing classes on the icon.
10
+
11
+ **Incorrect:**
12
+
13
+ ```tsx
14
+ <Button>
15
+ <SearchIcon className="mr-2 size-4" />
16
+ Search
17
+ </Button>
18
+ ```
19
+
20
+ **Correct:**
21
+
22
+ ```tsx
23
+ <Button>
24
+ <SearchIcon data-icon="inline-start"/>
25
+ Search
26
+ </Button>
27
+
28
+ <Button>
29
+ Next
30
+ <ArrowRightIcon data-icon="inline-end"/>
31
+ </Button>
32
+ ```
33
+
34
+ ---
35
+
36
+ ## No sizing classes on icons inside components
37
+
38
+ Components handle icon sizing via CSS. Don't add `size-4`, `w-4 h-4`, or other sizing classes to icons inside `Button`, `DropdownMenuItem`, `Alert`, `Sidebar*`, or other shadcn components. Unless the user explicitly asks for custom icon sizes.
39
+
40
+ **A sizing class doesn't just duplicate the default — it disables it.** The rule components ship is `[&_svg:not([class*='size-'])]:size-4`: the component sizes any descendant `svg` *that does not already carry a `size-` class*. So writing `size-4` opts that icon out of the component's sizing entirely and pins it, which is why it looks harmless at the default size and then fails to scale. `Button`'s smaller variants set `size-3` / `size-3.5` through the same selector, so a hardcoded `size-4` inside a `size="sm"` button is visibly wrong.
41
+
42
+ **Incorrect:**
43
+
44
+ ```tsx
45
+ <Button>
46
+ <SearchIcon className="size-4" data-icon="inline-start" />
47
+ Search
48
+ </Button>
49
+
50
+ <DropdownMenuItem>
51
+ <SettingsIcon className="mr-2 size-4" />
52
+ Settings
53
+ </DropdownMenuItem>
54
+ ```
55
+
56
+ **Correct:**
57
+
58
+ ```tsx
59
+ <Button>
60
+ <SearchIcon data-icon="inline-start" />
61
+ Search
62
+ </Button>
63
+
64
+ <DropdownMenuItem>
65
+ <SettingsIcon />
66
+ Settings
67
+ </DropdownMenuItem>
68
+ ```
69
+
70
+ ---
71
+
72
+ ## Pass icons as component objects, not string keys
73
+
74
+ Use `icon={CheckIcon}`, not a string key to a lookup map.
75
+
76
+ **Incorrect:**
77
+
78
+ ```tsx
79
+ const iconMap = {
80
+ check: CheckIcon,
81
+ alert: AlertIcon,
82
+ }
83
+
84
+ function StatusBadge({ icon }: { icon: string }) {
85
+ const Icon = iconMap[icon]
86
+ return <Icon />
87
+ }
88
+
89
+ <StatusBadge icon="check" />
90
+ ```
91
+
92
+ **Correct:**
93
+
94
+ ```tsx
95
+ // Import from the project's configured iconLibrary (e.g. lucide-react, @tabler/icons-react).
96
+ import { CheckIcon } from "lucide-react"
97
+
98
+ function StatusBadge({ icon: Icon }: { icon: React.ComponentType }) {
99
+ return <Icon />
100
+ }
101
+
102
+ <StatusBadge icon={CheckIcon} />
103
+ ```
@@ -0,0 +1,167 @@
1
+ # Styling & Customization
2
+
3
+ See [customization.md](../customization.md) for theming, CSS variables, and adding custom colors.
4
+
5
+ ## Contents
6
+
7
+ - Semantic colors
8
+ - No raw color values for status/state indicators (and the real Badge variant list)
9
+ - Built-in variants first
10
+ - className for layout only
11
+ - No space-x-* / space-y-*
12
+ - Prefer size-* over w-* h-* when equal
13
+ - Prefer truncate shorthand
14
+ - No manual dark: color overrides
15
+ - Use cn() for conditional classes
16
+ - No manual z-index on overlay components
17
+
18
+ ---
19
+
20
+ ## Semantic colors
21
+
22
+ **Incorrect:**
23
+
24
+ ```tsx
25
+ <div className="bg-blue-500 text-white">
26
+ <p className="text-gray-600">Secondary text</p>
27
+ </div>
28
+ ```
29
+
30
+ **Correct:**
31
+
32
+ ```tsx
33
+ <div className="bg-primary text-primary-foreground">
34
+ <p className="text-muted-foreground">Secondary text</p>
35
+ </div>
36
+ ```
37
+
38
+ ---
39
+
40
+ ## No raw color values for status/state indicators
41
+
42
+ For positive, negative, or status indicators, use Badge variants, semantic tokens like `text-destructive`, or define custom CSS variables — don't reach for raw Tailwind colors.
43
+
44
+ **Incorrect:**
45
+
46
+ ```tsx
47
+ <span className="text-emerald-600">+20.1%</span>
48
+ <span className="text-green-500">Active</span>
49
+ <span className="text-red-600">-3.2%</span>
50
+ ```
51
+
52
+ **Correct:**
53
+
54
+ ```tsx
55
+ <Badge variant="secondary">+20.1%</Badge>
56
+ <Badge>Active</Badge>
57
+ <span className="text-destructive">-3.2%</span>
58
+ ```
59
+
60
+ **`Badge` ships exactly five variants: `default`, `secondary`, `destructive`, `outline`, `ghost`.** There is no `success` or `warning` variant — writing `<Badge variant="success">` silently falls back to the default styling, which is why it's such an easy mistake to ship. Negative states have a real token (`destructive`); positive ones don't.
61
+
62
+ So for a success/positive color: use `variant="secondary"` if the color isn't carrying meaning on its own, or add a `--success` CSS variable to the theme and a matching variant (see [customization.md](../customization.md)) if it is. Ask the user before adding the variable — it's a theme change, not a local one.
63
+
64
+ ---
65
+
66
+ ## Built-in variants first
67
+
68
+ **Incorrect:**
69
+
70
+ ```tsx
71
+ <Button className="border border-input bg-transparent hover:bg-accent">
72
+ Click me
73
+ </Button>
74
+ ```
75
+
76
+ **Correct:**
77
+
78
+ ```tsx
79
+ <Button variant="outline">Click me</Button>
80
+ ```
81
+
82
+ ---
83
+
84
+ ## className for layout only
85
+
86
+ Use `className` for layout (e.g. `max-w-md`, `mx-auto`, `mt-4`), **not** for overriding component colors or typography. To change colors, use semantic tokens, built-in variants, or CSS variables.
87
+
88
+ **Incorrect:**
89
+
90
+ ```tsx
91
+ <Card className="bg-blue-100 text-blue-900 font-bold">
92
+ <CardContent>Dashboard</CardContent>
93
+ </Card>
94
+ ```
95
+
96
+ **Correct:**
97
+
98
+ ```tsx
99
+ <Card className="max-w-md mx-auto">
100
+ <CardContent>Dashboard</CardContent>
101
+ </Card>
102
+ ```
103
+
104
+ To customize a component's appearance, prefer these approaches in order:
105
+ 1. **Built-in variants** — `variant="outline"`, `variant="destructive"`, etc.
106
+ 2. **Semantic color tokens** — `bg-primary`, `text-muted-foreground`.
107
+ 3. **CSS variables** — define custom colors in the global CSS file (see [customization.md](../customization.md)).
108
+
109
+ ---
110
+
111
+ ## No space-x-* / space-y-*
112
+
113
+ Use `gap-*` instead. `space-y-4` → `flex flex-col gap-4`. `space-x-2` → `flex gap-2`.
114
+
115
+ ```tsx
116
+ <div className="flex flex-col gap-4">
117
+ <Input />
118
+ <Input />
119
+ <Button>Submit</Button>
120
+ </div>
121
+ ```
122
+
123
+ ---
124
+
125
+ ## Prefer size-* over w-* h-* when equal
126
+
127
+ `size-10` not `w-10 h-10`. Applies to icons, avatars, skeletons, etc.
128
+
129
+ ---
130
+
131
+ ## Prefer truncate shorthand
132
+
133
+ `truncate` not `overflow-hidden text-ellipsis whitespace-nowrap`.
134
+
135
+ ---
136
+
137
+ ## No manual dark: color overrides
138
+
139
+ Use semantic tokens — they handle light/dark via CSS variables. `bg-background text-foreground` not `bg-white dark:bg-gray-950`.
140
+
141
+ ---
142
+
143
+ ## Use cn() for conditional classes
144
+
145
+ Use the `cn()` utility from the project for conditional or merged class names. Don't write manual ternaries in className strings.
146
+
147
+ **Incorrect:**
148
+
149
+ ```tsx
150
+ <div className={`flex items-center ${isActive ? "bg-primary text-primary-foreground" : "bg-muted"}`}>
151
+ ```
152
+
153
+ **Correct:**
154
+
155
+ ```tsx
156
+ import { cn } from "@/lib/utils" // the project's aliases.utils — don't assume this path
157
+
158
+ <div className={cn("flex items-center", isActive ? "bg-primary text-primary-foreground" : "bg-muted")}>
159
+ ```
160
+
161
+ `cn()` also merges conflicting Tailwind classes rather than concatenating them, so a caller's `className` reliably wins over a component's default. Template-literal concatenation leaves both classes in the string and lets specificity decide — which is why overrides "randomly" fail without it.
162
+
163
+ ---
164
+
165
+ ## No manual z-index on overlay components
166
+
167
+ `Dialog`, `Sheet`, `Drawer`, `AlertDialog`, `DropdownMenu`, `Popover`, `Tooltip`, `HoverCard` handle their own stacking. Never add `z-50` or `z-[999]`.
@@ -0,0 +1,3 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 1AboveIO
@@ -0,0 +1,287 @@
1
+ ---
2
+ name: zod-v4
3
+ description: Zod v4 conventions and migration from v3. Read when designing or reviewing validation schemas, or migrating error handling, validators, objects, enums, records, or async patterns from Zod v3 to v4.
4
+ ---
5
+
6
+ # Zod v3 to v4 Migration
7
+
8
+ Migration rules and transformations for upgrading Zod v3 code to v4.
9
+
10
+ ## Related Skills
11
+
12
+ Use these skills by name when the Zod change is part of a larger stack-specific task:
13
+
14
+ - `nextjs-fullstack` for App Router, Server Actions, and form boundaries
15
+ - `better-auth` for auth/session schemas and validation flow updates
16
+ - `prisma-setup` for schema-adjacent validation and DAL changes
17
+ - `python-backend` for backend request/response validation patterns
18
+ - `feishu-betterauth` for Feishu OAuth validation and callback payload handling
19
+ - `monorepo` for shared schema packages and workspace structure
20
+ - `code-validate` for post-change validation and checks
21
+ - `e2e-test` for E2E coverage when validation changes affect user flows
22
+ - `web-design-guidelines` for UI review after validation-driven form changes
23
+ - `vercel-react-best-practices` for React/Next.js performance-sensitive form patterns
24
+ - `app-debug` for runtime failures caused by validation or payload mismatches
25
+ - `airflow-dag-develop` only when Zod-related config or payload contracts affect DAG tooling
26
+
27
+ ---
28
+
29
+ ## 1. Error Customization (Unified API)
30
+
31
+ Zod v4 consolidates error handling into a single `error` parameter.
32
+
33
+ ### Remove These
34
+
35
+ - `invalid_type_error`
36
+ - `required_error`
37
+ - `description` (if used for error messages)
38
+
39
+ ### Replace `message` with `error`
40
+
41
+ ```typescript
42
+ // v3
43
+ z.string({ message: "Required" })
44
+
45
+ // v4
46
+ z.string({ error: "Required" })
47
+ ```
48
+
49
+ ### Replace `errorMap` with `error` callback
50
+
51
+ ```typescript
52
+ // v3
53
+ z.string({
54
+ required_error: "Required",
55
+ invalid_type_error: "Bad type",
56
+ })
57
+
58
+ // v4
59
+ z.string({
60
+ error: (issue) => issue.input === undefined ? "Required" : "Bad type"
61
+ })
62
+ ```
63
+
64
+ The error callback can return a string or `undefined` (to fall back to next error map).
65
+
66
+ ---
67
+
68
+ ## 2. String Validators (Top-Level)
69
+
70
+ Many string refinements moved to top-level `z` namespace for better tree-shaking.
71
+
72
+ | v3 | v4 |
73
+ |----|-----|
74
+ | `z.string().email()` | `z.email()` |
75
+ | `z.string().uuid()` | `z.uuid()` |
76
+ | `z.string().url()` | `z.url()` |
77
+ | `z.string().cuid()` | `z.cuid()` |
78
+
79
+ ### IP/CIDR Changes
80
+
81
+ ```typescript
82
+ // v3
83
+ z.string().ip()
84
+ z.string().cidr()
85
+
86
+ // v4 - removed, use specific versions
87
+ z.ipv4()
88
+ z.ipv6()
89
+ z.union([z.ipv4(), z.ipv6()])
90
+ z.cidrv4()
91
+ z.cidrv6()
92
+ ```
93
+
94
+ **Note:** `z.uuid()` in v4 is stricter regarding RFC 9562 variant bits.
95
+
96
+ ---
97
+
98
+ ## 3. Object & Schema Definition
99
+
100
+ ### Strict/Passthrough
101
+
102
+ ```typescript
103
+ // v3 - chaining
104
+ z.object({ ... }).strict()
105
+ z.object({ ... }).passthrough()
106
+
107
+ // v4 - factories
108
+ z.strictObject({ ... })
109
+ z.looseObject({ ... })
110
+ ```
111
+
112
+ ### Extending Objects
113
+
114
+ ```typescript
115
+ // v3
116
+ Schema1.merge(Schema2)
117
+
118
+ // v4 - prefer extend or destructuring
119
+ Schema1.extend(Schema2.shape)
120
+
121
+ // Best practice for TypeScript performance
122
+ z.object({
123
+ ...Base.shape,
124
+ ...Additions.shape,
125
+ })
126
+ ```
127
+
128
+ ### Deep Partial
129
+
130
+ ```typescript
131
+ // v3
132
+ z.deepPartial(schema)
133
+
134
+ // v4 - REMOVED
135
+ // Refactor or implement manual recursive partials
136
+ ```
137
+
138
+ ### Defaults Behavior Change
139
+
140
+ `.default()` now short-circuits on `undefined`. Defaults inside optional fields are applied even if parent object is parsed.
141
+
142
+ ---
143
+
144
+ ## 4. Numbers & Coercion
145
+
146
+ ### Integers
147
+
148
+ ```typescript
149
+ // v4: z.number().int() now only accepts SAFE integers
150
+ z.number().int() // Rejects numbers outside safe integer range
151
+ ```
152
+
153
+ ### Floats
154
+
155
+ ```typescript
156
+ // v4: z.number().safe() no longer accepts floats
157
+ // Behaves like .int()
158
+ ```
159
+
160
+ ### Coercion
161
+
162
+ ```typescript
163
+ // v4: z.coerce.string() treats input as unknown, not string
164
+ z.coerce.string() // Input type is unknown
165
+ ```
166
+
167
+ ---
168
+
169
+ ## 5. Enums & Records
170
+
171
+ ### Native Enums
172
+
173
+ ```typescript
174
+ // v3
175
+ z.nativeEnum(MyEnum)
176
+
177
+ // v4 - deprecated, use z.enum() directly
178
+ z.enum(MyEnum) // Now supports native enum objects
179
+ ```
180
+
181
+ ### Records
182
+
183
+ ```typescript
184
+ // v3 - single arg
185
+ z.record(ValueSchema)
186
+
187
+ // v4 - REMOVED, must specify key schema
188
+ z.record(z.string(), ValueSchema)
189
+ ```
190
+
191
+ ### Record Exhaustiveness
192
+
193
+ ```typescript
194
+ // v4: z.record(EnumSchema, ValueSchema) enforces ALL keys present
195
+ z.record(StatusEnum, z.number()) // All enum values required
196
+
197
+ // For optional keys, use partialRecord
198
+ z.partialRecord(StatusEnum, z.number())
199
+ ```
200
+
201
+ ---
202
+
203
+ ## 6. Arrays & Tuples
204
+
205
+ ### Non-empty Arrays
206
+
207
+ ```typescript
208
+ // v3: infers [T, ...T[]]
209
+ z.array(T).nonempty()
210
+
211
+ // v4: infers T[]
212
+ z.array(T).nonempty()
213
+
214
+ // For tuple type, use
215
+ z.tuple([T], T) // [T, ...T[]]
216
+ ```
217
+
218
+ ---
219
+
220
+ ## 7. Async & Functions
221
+
222
+ ### Promises
223
+
224
+ ```typescript
225
+ // v3
226
+ z.promise(z.string())
227
+
228
+ // v4 - DEPRECATED
229
+ // Await values before parsing instead
230
+ ```
231
+
232
+ ### Functions
233
+
234
+ ```typescript
235
+ // v3
236
+ z.function().args(z.string()).returns(z.number())
237
+
238
+ // v4 - factory function
239
+ z.function({
240
+ input: [z.string()],
241
+ output: z.number(),
242
+ })
243
+ ```
244
+
245
+ ---
246
+
247
+ ## 8. Error Handling Utilities
248
+
249
+ ### Formatting Errors
250
+
251
+ ```typescript
252
+ // v3
253
+ error.format()
254
+ error.flatten()
255
+
256
+ // v4 - DEPRECATED, use top-level
257
+ z.treeifyError(error)
258
+ ```
259
+
260
+ ### Pushing Issues
261
+
262
+ ```typescript
263
+ // v3
264
+ ctx.addIssue({ ... })
265
+
266
+ // v4 - DEPRECATED, push directly
267
+ issues.push({ ... })
268
+ ```
269
+
270
+ ---
271
+
272
+ ## Quick Reference
273
+
274
+ | v3 Pattern | v4 Replacement |
275
+ |------------|----------------|
276
+ | `z.string().email()` | `z.email()` |
277
+ | `z.string().uuid()` | `z.uuid()` |
278
+ | `z.string().url()` | `z.url()` |
279
+ | `z.string().ip()` | `z.ipv4()` / `z.ipv6()` |
280
+ | `z.nativeEnum()` | `z.enum()` |
281
+ | `z.record(Schema)` | `z.record(z.string(), Schema)` |
282
+ | `z.promise()` | Await before parsing |
283
+ | `error.format()` | `z.treeifyError(error)` |
284
+ | `ctx.addIssue()` | `issues.push()` |
285
+ | `.strict()` | `z.strictObject()` |
286
+ | `.passthrough()` | `z.looseObject()` |
287
+ | `.merge()` | `.extend()` or spread |