@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,258 @@
1
+ # Next.js + Prisma v7 Bootstrap
2
+
3
+ Complete setup guide for Prisma v7 in a standalone Next.js App Router project.
4
+
5
+ ---
6
+
7
+ ## Setup Workflow
8
+
9
+ ### 1. Install Dependencies
10
+
11
+ ```bash
12
+ npm install prisma tsx --save-dev
13
+ npm install @prisma/adapter-pg @prisma/client dotenv
14
+ ```
15
+
16
+ ### 2. Initialize Prisma
17
+
18
+ **Interactive command - run manually:**
19
+
20
+ ```bash
21
+ npx prisma init --db --output ../app/generated/prisma
22
+ ```
23
+
24
+ This creates:
25
+ - `prisma/schema.prisma`
26
+ - `prisma.config.ts`
27
+ - `.env` with DATABASE_URL
28
+
29
+ Ensure `.env` uses `postgres://` URL scheme.
30
+
31
+ ### 3. Update Schema
32
+
33
+ ```prisma
34
+ generator client {
35
+ provider = "prisma-client"
36
+ output = "../app/generated/prisma"
37
+ }
38
+
39
+ datasource db {
40
+ provider = "postgresql"
41
+ }
42
+
43
+ model User {
44
+ id Int @id @default(autoincrement())
45
+ email String @unique
46
+ name String?
47
+ createdAt DateTime @default(now())
48
+ updatedAt DateTime @updatedAt
49
+ }
50
+ ```
51
+
52
+ ### 4. Create Prisma Client
53
+
54
+ ```typescript
55
+ // lib/prisma.ts
56
+ import { PrismaClient } from "../app/generated/prisma/client"
57
+ import { PrismaPg } from "@prisma/adapter-pg"
58
+
59
+ const adapter = new PrismaPg({
60
+ connectionString: process.env.DATABASE_URL!,
61
+ })
62
+
63
+ const globalForPrisma = global as unknown as { prisma: PrismaClient }
64
+
65
+ const prisma = globalForPrisma.prisma || new PrismaClient({ adapter })
66
+
67
+ if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma
68
+
69
+ export default prisma
70
+ ```
71
+
72
+ ### 5. Add NPM Scripts
73
+
74
+ ```json
75
+ {
76
+ "scripts": {
77
+ "dev": "next dev",
78
+ "build": "next build",
79
+ "db:test": "tsx scripts/test-database.ts",
80
+ "db:studio": "prisma studio"
81
+ }
82
+ }
83
+ ```
84
+
85
+ ### 6. Create Test Script
86
+
87
+ ```typescript
88
+ // scripts/test-database.ts
89
+ import "dotenv/config"
90
+ import prisma from "../lib/prisma"
91
+
92
+ async function testDatabase() {
93
+ console.log("Testing Prisma connection...\n")
94
+
95
+ try {
96
+ console.log("Connected!")
97
+
98
+ const user = await prisma.user.create({
99
+ data: { email: "test@example.com", name: "Test" },
100
+ })
101
+ console.log("Created:", user)
102
+
103
+ const users = await prisma.user.findMany()
104
+ console.log(`Found ${users.length} users`)
105
+
106
+ console.log("\nAll tests passed!")
107
+ } catch (error) {
108
+ console.error("Error:", error)
109
+ process.exit(1)
110
+ }
111
+ }
112
+
113
+ testDatabase()
114
+ ```
115
+
116
+ ### 7. Push Schema & Test
117
+
118
+ ```bash
119
+ npx prisma db push
120
+ npx prisma generate
121
+ npm run db:test
122
+ ```
123
+
124
+ ---
125
+
126
+ ## API Route Example
127
+
128
+ ```typescript
129
+ // app/api/users/route.ts
130
+ import { NextRequest, NextResponse } from "next/server"
131
+ import prisma from "../../../lib/prisma"
132
+
133
+ export async function GET(request: NextRequest) {
134
+ try {
135
+ const users = await prisma.user.findMany()
136
+ return NextResponse.json(users)
137
+ } catch (error) {
138
+ console.error("Error fetching users:", error)
139
+ return NextResponse.json(
140
+ { error: "Failed to fetch users" },
141
+ { status: 500 }
142
+ )
143
+ }
144
+ }
145
+
146
+ export async function POST(request: NextRequest) {
147
+ try {
148
+ const body = await request.json()
149
+ const user = await prisma.user.create({
150
+ data: { email: body.email, name: body.name },
151
+ })
152
+ return NextResponse.json(user, { status: 201 })
153
+ } catch (error) {
154
+ console.error("Error creating user:", error)
155
+ return NextResponse.json(
156
+ { error: "Failed to create user" },
157
+ { status: 500 }
158
+ )
159
+ }
160
+ }
161
+ ```
162
+
163
+ ---
164
+
165
+ ## Server Component Example
166
+
167
+ ```typescript
168
+ // app/page.tsx
169
+ import prisma from "../lib/prisma"
170
+
171
+ export default async function Home() {
172
+ let users = []
173
+ let error = null
174
+
175
+ try {
176
+ users = await prisma.user.findMany({
177
+ orderBy: { createdAt: "desc" },
178
+ })
179
+ } catch (e) {
180
+ console.error("Error:", e)
181
+ error = "Failed to load users"
182
+ }
183
+
184
+ return (
185
+ <main className="p-8">
186
+ <h1>Users</h1>
187
+ {error ? (
188
+ <p className="text-red-500">{error}</p>
189
+ ) : users.length === 0 ? (
190
+ <p>No users yet</p>
191
+ ) : (
192
+ <ul>
193
+ {users.map((user) => (
194
+ <li key={user.id}>{user.name} ({user.email})</li>
195
+ ))}
196
+ </ul>
197
+ )}
198
+ </main>
199
+ )
200
+ }
201
+ ```
202
+
203
+ ---
204
+
205
+ ## File Structure
206
+
207
+ ```
208
+ project/
209
+ ├── app/
210
+ │ ├── generated/
211
+ │ │ └── prisma/ # Generated client
212
+ │ ├── api/
213
+ │ │ └── users/
214
+ │ │ └── route.ts
215
+ │ └── page.tsx
216
+ ├── lib/
217
+ │ └── prisma.ts # Singleton client
218
+ ├── prisma/
219
+ │ ├── schema.prisma
220
+ │ └── migrations/
221
+ ├── scripts/
222
+ │ └── test-database.ts
223
+ ├── prisma.config.ts
224
+ ├── .env
225
+ └── package.json
226
+ ```
227
+
228
+ ---
229
+
230
+ ## Troubleshooting
231
+
232
+ ### "Cannot find module"
233
+
234
+ Check import path includes `/client`:
235
+ ```typescript
236
+ // Correct
237
+ import { PrismaClient } from "../app/generated/prisma/client"
238
+ ```
239
+
240
+ ### "DATABASE_URL not found"
241
+
242
+ Ensure `import "dotenv/config"` is at top of:
243
+ - `prisma.config.ts`
244
+ - `scripts/test-database.ts`
245
+
246
+ ### "Connection refused"
247
+
248
+ Verify DATABASE_URL uses TCP URL (`postgres://...`), not HTTP URL.
249
+
250
+ ### "prisma-client-js deprecated"
251
+
252
+ Update generator:
253
+ ```prisma
254
+ generator client {
255
+ provider = "prisma-client" # Not "prisma-client-js"
256
+ output = "../app/generated/prisma"
257
+ }
258
+ ```
@@ -0,0 +1,301 @@
1
+ # Turborepo + Prisma v7 Setup
2
+
3
+ Monorepo setup with shared Prisma package across multiple apps.
4
+
5
+ ---
6
+
7
+ ## Monorepo Layout
8
+
9
+ ```
10
+ repo/
11
+ ├── apps/
12
+ │ ├── web/ # Next.js app
13
+ │ └── admin/ # Another Next app
14
+ ├── packages/
15
+ │ ├── db/ # Prisma package
16
+ │ └── ui/ # Shared UI
17
+ ├── turbo.json
18
+ ├── package.json
19
+ └── .env
20
+ ```
21
+
22
+ **Key rule:** Prisma lives in `packages/db`, not inside an app.
23
+
24
+ ---
25
+
26
+ ## Package Structure: packages/db
27
+
28
+ ```
29
+ packages/db/
30
+ ├── prisma/
31
+ │ ├── schema.prisma
32
+ │ └── migrations/
33
+ ├── src/
34
+ │ ├── generated/
35
+ │ │ └── prisma/ # Generated client
36
+ │ ├── client.ts # Singleton
37
+ │ └── index.ts # Exports
38
+ ├── scripts/
39
+ │ └── test-database.ts
40
+ ├── prisma.config.ts
41
+ └── package.json
42
+ ```
43
+
44
+ ---
45
+
46
+ ## Schema Configuration
47
+
48
+ ```prisma
49
+ // packages/db/prisma/schema.prisma
50
+ generator client {
51
+ provider = "prisma-client"
52
+ output = "../src/generated/prisma"
53
+ }
54
+
55
+ datasource db {
56
+ provider = "postgresql"
57
+ }
58
+
59
+ model User {
60
+ id Int @id @default(autoincrement())
61
+ email String @unique
62
+ name String?
63
+ createdAt DateTime @default(now())
64
+ updatedAt DateTime @updatedAt
65
+ }
66
+ ```
67
+
68
+ ---
69
+
70
+ ## Prisma Config
71
+
72
+ ```typescript
73
+ // packages/db/prisma.config.ts
74
+ import "dotenv/config"
75
+ import { defineConfig, env } from "prisma/config"
76
+
77
+ export default defineConfig({
78
+ schema: "prisma/schema.prisma",
79
+ migrations: {
80
+ path: "prisma/migrations",
81
+ },
82
+ datasource: {
83
+ url: env("DATABASE_URL"),
84
+ },
85
+ })
86
+ ```
87
+
88
+ ---
89
+
90
+ ## Client Singleton
91
+
92
+ ```typescript
93
+ // packages/db/src/client.ts
94
+ import { PrismaClient } from "./generated/prisma/client"
95
+ import { PrismaPg } from "@prisma/adapter-pg"
96
+
97
+ const adapter = new PrismaPg({
98
+ connectionString: process.env.DATABASE_URL!,
99
+ })
100
+
101
+ const globalForPrisma = globalThis as unknown as {
102
+ prisma?: PrismaClient
103
+ }
104
+
105
+ export const prisma =
106
+ globalForPrisma.prisma ?? new PrismaClient({ adapter })
107
+
108
+ if (process.env.NODE_ENV !== "production") {
109
+ globalForPrisma.prisma = prisma
110
+ }
111
+
112
+ export default prisma
113
+ ```
114
+
115
+ ---
116
+
117
+ ## Package Exports
118
+
119
+ ```typescript
120
+ // packages/db/src/index.ts
121
+ export { prisma } from "./client"
122
+ export * from "./generated/prisma"
123
+ ```
124
+
125
+ ```json
126
+ // packages/db/package.json
127
+ {
128
+ "name": "@repo/db",
129
+ "private": true,
130
+ "main": "src/index.ts",
131
+ "types": "src/index.ts",
132
+ "scripts": {
133
+ "db:generate": "prisma generate",
134
+ "db:push": "prisma db push",
135
+ "db:migrate": "prisma migrate dev",
136
+ "db:studio": "prisma studio",
137
+ "db:test": "tsx scripts/test-database.ts"
138
+ }
139
+ }
140
+ ```
141
+
142
+ ---
143
+
144
+ ## Turbo Configuration
145
+
146
+ ```json
147
+ // turbo.json
148
+ {
149
+ "globalEnv": ["DATABASE_URL"],
150
+ "tasks": {
151
+ "dev": {
152
+ "cache": false,
153
+ "persistent": true,
154
+ "dependsOn": ["^db:generate"]
155
+ },
156
+ "build": {
157
+ "dependsOn": ["^db:generate"],
158
+ "outputs": [".next/**", "dist/**"]
159
+ },
160
+ "db:generate": {
161
+ "cache": false
162
+ },
163
+ "db:migrate": {
164
+ "cache": false
165
+ },
166
+ "db:studio": {
167
+ "cache": false
168
+ },
169
+ "db:test": {
170
+ "cache": false,
171
+ "dependsOn": ["db:generate"]
172
+ }
173
+ }
174
+ }
175
+ ```
176
+
177
+ ---
178
+
179
+ ## Root Scripts
180
+
181
+ ```json
182
+ // package.json (root)
183
+ {
184
+ "scripts": {
185
+ "dev": "turbo dev",
186
+ "build": "turbo build",
187
+ "db:generate": "turbo run db:generate",
188
+ "db:push": "turbo run db:push",
189
+ "db:migrate": "turbo run db:migrate",
190
+ "db:studio": "turbo run db:studio",
191
+ "db:test": "turbo run db:test"
192
+ }
193
+ }
194
+ ```
195
+
196
+ ---
197
+
198
+ ## Using in Apps
199
+
200
+ ### Add Dependency
201
+
202
+ ```json
203
+ // apps/web/package.json
204
+ {
205
+ "dependencies": {
206
+ "@repo/db": "*"
207
+ }
208
+ }
209
+ ```
210
+
211
+ ### Import in Server Code
212
+
213
+ ```typescript
214
+ // apps/web/app/api/users/route.ts
215
+ import { prisma } from "@repo/db"
216
+ import { NextResponse } from "next/server"
217
+
218
+ export async function GET() {
219
+ try {
220
+ const users = await prisma.user.findMany()
221
+ return NextResponse.json(users)
222
+ } catch (e) {
223
+ console.error(e)
224
+ return NextResponse.json({ error: "Failed" }, { status: 500 })
225
+ }
226
+ }
227
+ ```
228
+
229
+ ---
230
+
231
+ ## Test Script
232
+
233
+ ```typescript
234
+ // packages/db/scripts/test-database.ts
235
+ import "dotenv/config"
236
+ import prisma from "../src/client"
237
+
238
+ async function testDatabase() {
239
+ console.log("Testing connection...\n")
240
+
241
+ try {
242
+ console.log("Connected!")
243
+
244
+ const user = await prisma.user.create({
245
+ data: { email: "demo@example.com", name: "Demo" }
246
+ })
247
+ console.log("Created:", user)
248
+
249
+ const users = await prisma.user.findMany()
250
+ console.log(`Found ${users.length} users`)
251
+
252
+ console.log("\nAll tests passed!")
253
+ } catch (error) {
254
+ console.error("Error:", error)
255
+ process.exit(1)
256
+ } finally {
257
+ await prisma.$disconnect()
258
+ }
259
+ }
260
+
261
+ testDatabase()
262
+ ```
263
+
264
+ ---
265
+
266
+ ## Setup Workflow
267
+
268
+ 1. Create Turborepo or use existing
269
+ 2. Add `packages/db`, install Prisma v7 deps
270
+ 3. Initialize Prisma in packages/db:
271
+ ```bash
272
+ cd packages/db
273
+ npx prisma init
274
+ ```
275
+ 4. Update `prisma.config.ts` with `import "dotenv/config"`
276
+ 5. Update schema with v7 generator + output
277
+ 6. Create `src/client.ts` singleton
278
+ 7. Wire Turbo tasks in `turbo.json`
279
+ 8. Add `.env` at root and/or `packages/db/.env`
280
+ 9. Push schema:
281
+ ```bash
282
+ npm run db:push
283
+ ```
284
+ 10. Test:
285
+ ```bash
286
+ npm run db:test
287
+ ```
288
+
289
+ ---
290
+
291
+ ## Verification Checklist
292
+
293
+ 1. `provider = "prisma-client"`?
294
+ 2. `output = "../src/generated/prisma"` in packages/db?
295
+ 3. All Prisma files in `packages/db`?
296
+ 4. Client imports from generated path or `@repo/db`?
297
+ 5. `import "dotenv/config"` in prisma.config.ts?
298
+ 6. Turbo tasks depend on `db:generate`?
299
+ 7. `DATABASE_URL` in `globalEnv`?
300
+ 8. All DB ops wrapped in try/catch?
301
+ 9. Test script exists in packages/db?
@@ -0,0 +1,3 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 1AboveIO
@@ -0,0 +1,119 @@
1
+ ---
2
+ name: shadcn
3
+ description: "Add or debug shadcn/ui in a React/Next.js project: components.json, shadcn init/add, presets, registries, Tailwind styling, base/radix/aria composition, component fixes, and list-index pages — where the default is the DiceUI data table with filter/sort/pagination in the URL via nuqs, not a bare shadcn Table."
4
+ allowed-tools: Bash(npx shadcn@latest *), Bash(pnpm dlx shadcn@latest *), Bash(bunx --bun shadcn@latest *)
5
+ ---
6
+
7
+ # shadcn/ui
8
+
9
+ Components are added as **source code** via the CLI — you edit them like your own files.
10
+
11
+ **This page is an index.** Each rule below is the short form; the linked file carries the reasoning and the Incorrect/Correct pairs. Read the row for your task before acting — the rules are stated flat here and the *why* is what stops you misapplying them.
12
+
13
+ > Run every CLI command with the project's runner: `npx shadcn@latest`, `pnpm dlx shadcn@latest`, or `bunx --bun shadcn@latest`. Pick from the lockfile or `package.json`'s `packageManager` — `shadcn info` does not report it.
14
+
15
+ ## Current Project Context
16
+
17
+ ```json
18
+ !`npx shadcn@latest info --json`
19
+ ```
20
+
21
+ Blocks: `project`, `config`, `preset`, `components`, `links`. Names are exact — `config.rsc` not `isRSC`, `project.tailwindCss` not `tailwindCssFile`, `project.importAlias` not `aliasPrefix`, and there is no `packageManager`. Full table: [cli.md](./cli.md#info--project-information).
22
+
23
+ Four fields change what you write: **`config.base`** (`radix` | `base` | `aria` — different APIs), **`config.rsc`** (`"use client"` needed?), **`config.iconLibrary`** (never assume `lucide-react`), **`config.aliases`**/`resolvedPaths` (never hardcode `@/`).
24
+
25
+ ## Routing
26
+
27
+ | Task | Read |
28
+ |---|---|
29
+ | Pick a component; the core code patterns | [rules/component-selection.md](./rules/component-selection.md) |
30
+ | Forms — layout, validation, errors, inputs | [rules/forms.md](./rules/forms.md) |
31
+ | Compose — groups, overlays, Card, Tabs, Avatar | [rules/composition.md](./rules/composition.md) |
32
+ | Style — colors, spacing, variants, `cn()`, dark mode | [rules/styling.md](./rules/styling.md) |
33
+ | Icons — `data-icon`, sizing, icons as props | [rules/icons.md](./rules/icons.md) |
34
+ | A list/index page or any data table | [rules/data-table.md](./rules/data-table.md) |
35
+ | `asChild` vs `render`; `base`/`radix`/`aria` splits | [rules/base-vs-radix.md](./rules/base-vs-radix.md) |
36
+ | Any CLI command, flag, preset, registry | [cli.md](./cli.md) |
37
+ | Theming, CSS variables, extending a component | [customization.md](./customization.md) |
38
+ | MCP server | [mcp.md](./mcp.md) |
39
+
40
+ ## Principles
41
+
42
+ 1. **Use an existing component first** (`npx shadcn@latest search`), and **compose rather than reinvent** — a settings page is Tabs + Card + form controls.
43
+ 2. **Built-in variants before custom styles; semantic colors only** — never `bg-blue-500`.
44
+ 3. **Read the docs before writing a component** — `npx shadcn@latest docs <component>`, then fetch the URLs. APIs differ per base and shift between releases, so guessing yields code that looks right and isn't.
45
+
46
+ ## Critical Rules
47
+
48
+ **Styling** → [styling.md](./rules/styling.md)
49
+
50
+ - `className` for layout only — never component colors or typography, and no manual `dark:` overrides.
51
+ - `gap-*` not `space-x-*`/`space-y-*`; `size-*` when width and height match; `truncate` not the longhand.
52
+ - `cn()` for conditional classes, never template literals. No manual `z-index` on overlays.
53
+ - `Badge` variants are exactly `default`, `secondary`, `destructive`, `outline`, `ghost` — no `success`.
54
+
55
+ **Forms** → [forms.md](./rules/forms.md)
56
+
57
+ - `FieldGroup` + `Field` for layout, never a raw `div`.
58
+ - Errors go in `FieldError`, never `FieldDescription`. Validation is `data-invalid` on `Field` **and** `aria-invalid` on the control; disabled likewise.
59
+ - `InputGroup` takes `InputGroupInput`/`InputGroupTextarea`; buttons inside it use `InputGroupButton` in an `InputGroupAddon`, and a trailing one needs `align="inline-end"`.
60
+ - Option sets (2–7) use `ToggleGroup`; `FieldSet` + `FieldLegend` group related checkboxes/radios.
61
+
62
+ **Composition** → [composition.md](./rules/composition.md)
63
+
64
+ - Items live inside their Group — `SelectItem`→`SelectGroup`, `DropdownMenuItem`→`DropdownMenuGroup`, `CommandItem`→`CommandGroup`.
65
+ - `asChild` (radix) or `render` (base) for custom triggers; check `config.base` → [base-vs-radix.md](./rules/base-vs-radix.md).
66
+ - Dialog/Sheet/Drawer need a Title (`sr-only` if hidden); `TabsTrigger` belongs in `TabsList`; `Avatar` needs `AvatarFallback`.
67
+ - Full Card composition, not everything in `CardContent`. `Button` has no `isPending`/`isLoading` — compose `Spinner` + `data-icon` + `disabled`.
68
+ - Prefer the component over markup: `Alert`, `Empty`, `sonner`'s `toast()`, `Separator`, `Skeleton`, `Badge`.
69
+
70
+ **Icons** → [icons.md](./rules/icons.md)
71
+
72
+ - `data-icon="inline-start"`/`"inline-end"` on icons inside `Button`; pass icons as components (`icon={CheckIcon}`), not string keys.
73
+ - No sizing classes on icons inside components — a `size-*` class *opts out* of the component's sizing rather than matching it.
74
+
75
+ **CLI** → [cli.md](./cli.md)
76
+
77
+ - Never decode or fetch a preset code by hand — `preset decode <code>` shows what it encodes. Swap icon libraries with `migrate icons --from <a> --to <b>`.
78
+ - Never `--overwrite` without explicit approval → [smart merge](./cli.md#smart-merge-from-upstream). Never guess an unnamed registry, and read every file one adds → [third-party registries](./cli.md#working-with-third-party-registries).
79
+
80
+ ## Data Tables & List Pages
81
+
82
+ **On a portal list/index page the data table is DiceUI's — the default, not a suggestion.** A bare `Table` there is the choice that needs justifying. Elsewhere: DiceUI once a table needs server-side filter/sort/paginate, plain `Table` when it's display.
83
+
84
+ **List-page state belongs in the URL, via `nuqs`** — not `useState`, and never mirrored into both. `useDataTable` calls `useQueryState` internally, so `nuqs` is a hard dependency and the app must be wrapped once in `NuqsAdapter` or the hook throws.
85
+
86
+ ```bash
87
+ npx shadcn@latest add "https://tablecn.com/r/data-table.json" # .json required; extensionless 404s
88
+ ```
89
+
90
+ Why URL state is the point, the install traps (undeclared `zod` / `@dnd-kit/*`), the server-side parsing pattern, and the column contract: [rules/data-table.md](./rules/data-table.md). Surrounding state & data-flow conventions: the project's `nextjs-fullstack` skill.
91
+
92
+ ## Starting a New Project
93
+
94
+ Canonical config: **Base UI + nova + lucide** — `components.json` ends up with `style: "base-nova"`. Install the whole library up front so feature work never stalls on a missing component.
95
+
96
+ ```bash
97
+ # Single app — same result as `init --defaults`, which resolves to next + base-nova.
98
+ npx shadcn@latest init --template next --base base --preset nova
99
+ # Turborepo workspace.
100
+ npx shadcn@latest init --template next --base base --preset nova --monorepo
101
+ npx shadcn@latest add --all
102
+ ```
103
+
104
+ Two consequences to carry into everything you write afterwards:
105
+
106
+ - **The base is `base`, so component APIs are Base UI's** — `render` not `asChild`, `multiple` not `type="single"`, a scalar `Slider`, and `Select` needs an `items` prop → [base-vs-radix.md](./rules/base-vs-radix.md). Registry items and most examples online are written for radix; expect to convert.
107
+ - **In a monorepo the UI alias is `@workspace/ui/components`, not `@/components/ui`** — so third-party registry items land with imports that resolve to nothing. Rewrite them against `config.aliases`.
108
+
109
+ `--all` is a setup step, not an update path — what that means when upstream moves: [cli.md](./cli.md#installing-everything-up-front).
110
+
111
+ ## Workflow
112
+
113
+ 1. Read the injected context; re-run `npx shadcn@latest info` to refresh.
114
+ 2. Check `components` (or list `resolvedPaths.ui`) before importing. On a project set up as above everything is already there, so this is usually a one-line confirmation — but don't assume it: older projects and ones initialised elsewhere may have been added to piecemeal, and importing a component that was never added fails at build, not at review.
115
+ 3. Find components — `npx shadcn@latest search`.
116
+ 4. Read the docs — `npx shadcn@latest docs <component>`, then fetch. `view` browses uninstalled items; `add --diff` previews changes to installed ones.
117
+ 5. Install or update — `npx shadcn@latest add`; [smart merge](./cli.md#smart-merge-from-upstream) anything with local edits.
118
+ 6. Ask which registry when the user didn't name one, then review every added file → [third-party registries](./cli.md#working-with-third-party-registries).
119
+ 7. Switching presets — ask first: **overwrite** / **merge** / **skip**, or `apply --only theme` to re-theme alone → [cli.md](./cli.md#switching-presets).