@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,257 @@
1
+ # Cloud Deploy Configuration Templates
2
+
3
+ Load this file when setting up Cloud Deploy pipelines, Skaffold configs, or
4
+ cloudbuild.yaml for a new service. Copy and adapt the templates below.
5
+
6
+ ## clouddeploy.yaml (Two Pipelines)
7
+
8
+ ```yaml
9
+ # =============================================================================
10
+ # DEV PIPELINE (triggered by dev branch)
11
+ # =============================================================================
12
+ apiVersion: deploy.cloud.google.com/v1
13
+ kind: DeliveryPipeline
14
+ metadata:
15
+ name: {service}-pipeline-dev
16
+ description: {Service} dev pipeline (dev branch → dev env)
17
+ serialPipeline:
18
+ stages:
19
+ - targetId: {service}-dev
20
+ profiles: ["dev"]
21
+ strategy:
22
+ standard:
23
+ predeploy:
24
+ actions: ["run-migrations"]
25
+ postdeploy:
26
+ actions: ["run-seed"]
27
+ verify: true
28
+ ---
29
+ # =============================================================================
30
+ # RELEASE PIPELINE (triggered by master branch)
31
+ # =============================================================================
32
+ apiVersion: deploy.cloud.google.com/v1
33
+ kind: DeliveryPipeline
34
+ metadata:
35
+ name: {service}-pipeline-release
36
+ description: {Service} release pipeline (master branch → staging → prod)
37
+ serialPipeline:
38
+ stages:
39
+ - targetId: {service}-staging
40
+ profiles: ["staging"]
41
+ strategy:
42
+ standard:
43
+ predeploy:
44
+ actions: ["run-migrations"]
45
+ postdeploy:
46
+ actions: ["run-seed"]
47
+ verify: true
48
+ - targetId: {service}-prod
49
+ profiles: ["prod"]
50
+ strategy:
51
+ standard:
52
+ predeploy:
53
+ actions: ["run-migrations"]
54
+ postdeploy:
55
+ actions: ["run-seed"]
56
+ ---
57
+ # =============================================================================
58
+ # TARGETS
59
+ # =============================================================================
60
+ apiVersion: deploy.cloud.google.com/v1
61
+ kind: Target
62
+ metadata:
63
+ name: {service}-dev
64
+ description: Development environment
65
+ requireApproval: false
66
+ run:
67
+ location: projects/$PROJECT_ID/locations/$LOCATION
68
+ deployParameters:
69
+ ENV: "dev"
70
+ ---
71
+ apiVersion: deploy.cloud.google.com/v1
72
+ kind: Target
73
+ metadata:
74
+ name: {service}-staging
75
+ description: Staging environment
76
+ requireApproval: false
77
+ run:
78
+ location: projects/$PROJECT_ID/locations/$LOCATION
79
+ deployParameters:
80
+ ENV: "staging"
81
+ ---
82
+ apiVersion: deploy.cloud.google.com/v1
83
+ kind: Target
84
+ metadata:
85
+ name: {service}-prod
86
+ description: Production environment
87
+ requireApproval: false # Set to true if manual approval needed before prod deploy
88
+ run:
89
+ location: projects/$PROJECT_ID/locations/$LOCATION
90
+ deployParameters:
91
+ ENV: "prod"
92
+ ```
93
+
94
+ ## cloudbuild.yaml (Single File with Branch Detection)
95
+
96
+ ```yaml
97
+ # GitFlow branching:
98
+ # - dev branch → {service}-pipeline-dev → dev environment
99
+ # - master branch → {service}-pipeline-release → staging → prod
100
+
101
+ substitutions:
102
+ _FF_API_KEY_SECRET: "ff-api-key"
103
+ _DATABASE_URL_SECRET_DEV: "database-url-{service}-dev"
104
+ _DATABASE_URL_SECRET_STAGING: "database-url-{service}-staging"
105
+ _DATABASE_URL_SECRET_PROD: "database-url-{service}-prod"
106
+ _VPC_NETWORK_DEV: "default"
107
+ _VPC_SUBNET_DEV: "default"
108
+ _VPC_NETWORK_PROD: "prod"
109
+ _VPC_SUBNET_PROD: "prod"
110
+
111
+ steps:
112
+ - id: "test-{service}"
113
+ # ... unit tests ...
114
+
115
+ - id: "build-{service}"
116
+ # ... docker build ...
117
+
118
+ - id: "push-{service}"
119
+ # ... docker push ...
120
+
121
+ # Create jobs based on branch
122
+ - id: "create-jobs"
123
+ name: "gcr.io/google.com/cloudsdktool/cloud-sdk"
124
+ waitFor: ["push-{service}"]
125
+ entrypoint: "bash"
126
+ args:
127
+ - "-c"
128
+ - |
129
+ set -e
130
+ if [ "$BRANCH_NAME" = "dev" ]; then
131
+ gcloud run jobs deploy {service}-job-dev --image=... --set-env-vars=ENV=dev
132
+ else
133
+ gcloud run jobs deploy {service}-job-staging --image=... --set-env-vars=ENV=staging
134
+ gcloud run jobs deploy {service}-job-prod --image=... --set-env-vars=ENV=prod
135
+ fi
136
+
137
+ - id: "apply-clouddeploy"
138
+ # ... apply clouddeploy.yaml ...
139
+
140
+ # Create release based on branch
141
+ - id: "create-release"
142
+ name: "gcr.io/google.com/cloudsdktool/cloud-sdk"
143
+ waitFor: ["apply-clouddeploy"]
144
+ entrypoint: "bash"
145
+ args:
146
+ - "-c"
147
+ - |
148
+ set -e
149
+
150
+ # Add timestamp for unique release names on rebuild
151
+ TIMESTAMP=$$(date +%H%M%S)
152
+ # Get commit message for release description
153
+ COMMIT_MSG=$$(git log -1 --pretty=%s | head -c 100)
154
+
155
+ if [ "$BRANCH_NAME" = "dev" ]; then
156
+ PIPELINE="{service}-pipeline-dev"
157
+ RELEASE_NAME="{service}-dev-${SHORT_SHA}-$$TIMESTAMP"
158
+ else
159
+ PIPELINE="{service}-pipeline-release"
160
+ RELEASE_NAME="{service}-release-${SHORT_SHA}-$$TIMESTAMP"
161
+ fi
162
+
163
+ gcloud deploy releases create "$$RELEASE_NAME" \
164
+ --delivery-pipeline="$$PIPELINE" \
165
+ --region=${LOCATION} \
166
+ --description="$$COMMIT_MSG (branch: $BRANCH_NAME)" \
167
+ --skaffold-file=skaffold.yaml \
168
+ --images={service}=${LOCATION}-docker.pkg.dev/${PROJECT_ID}/${REPO}/{service}:${SHORT_SHA}
169
+ ```
170
+
171
+ ## skaffold.yaml
172
+
173
+ ```yaml
174
+ apiVersion: skaffold/v4beta11
175
+ kind: Config
176
+ metadata:
177
+ name: {service}
178
+ build:
179
+ artifacts:
180
+ - image: {service}
181
+ context: .
182
+ docker:
183
+ dockerfile: Dockerfile
184
+ deploy:
185
+ cloudrun:
186
+ projectid: "{{.PROJECT_ID}}"
187
+ region: "{{.LOCATION}}"
188
+ customActions:
189
+ - name: run-migrations
190
+ containers:
191
+ - name: migrate
192
+ image: gcr.io/google.com/cloudsdktool/cloud-sdk:slim
193
+ command: ["/bin/sh", "-c"]
194
+ args: ["gcloud run jobs execute {service}-job-$ENV --args=migrate --region=$CLOUD_DEPLOY_LOCATION --wait"]
195
+ - name: run-seed
196
+ containers:
197
+ - name: seed
198
+ image: gcr.io/google.com/cloudsdktool/cloud-sdk:slim
199
+ command: ["/bin/sh", "-c"]
200
+ args: ["gcloud run jobs execute {service}-job-$ENV --args=seed --region=$CLOUD_DEPLOY_LOCATION --wait"]
201
+ profiles:
202
+ - name: dev
203
+ manifests:
204
+ kustomize:
205
+ paths:
206
+ - deploy/overlays/dev
207
+ verify:
208
+ - name: tests
209
+ container:
210
+ name: tests
211
+ image: gcr.io/google.com/cloudsdktool/cloud-sdk:slim
212
+ command: ["/bin/sh", "-c"]
213
+ args: ["gcloud run jobs execute {service}-job-$ENV --args=test --region=$CLOUD_DEPLOY_LOCATION --wait"]
214
+ - name: staging
215
+ manifests:
216
+ kustomize:
217
+ paths:
218
+ - deploy/overlays/staging
219
+ verify:
220
+ - name: tests
221
+ container:
222
+ name: tests
223
+ image: gcr.io/google.com/cloudsdktool/cloud-sdk:slim
224
+ command: ["/bin/sh", "-c"]
225
+ args: ["gcloud run jobs execute {service}-job-$ENV --args=test --region=$CLOUD_DEPLOY_LOCATION --wait"]
226
+ - name: prod
227
+ manifests:
228
+ kustomize:
229
+ paths:
230
+ - deploy/overlays/prod
231
+ ```
232
+
233
+ ## Cloud Build Triggers Setup
234
+
235
+ ```bash
236
+ # Dev trigger (dev branch → dev env)
237
+ gcloud builds triggers create github \
238
+ --name="{service}-dev" \
239
+ --repo-name="REPO_NAME" \
240
+ --repo-owner="OWNER" \
241
+ --branch-pattern="^dev$" \
242
+ --build-config="backend/{service}/cloudbuild.yaml" \
243
+ --region=$LOCATION
244
+
245
+ # Release trigger (master branch → staging → prod)
246
+ gcloud builds triggers create github \
247
+ --name="{service}-release" \
248
+ --repo-name="REPO_NAME" \
249
+ --repo-owner="OWNER" \
250
+ --branch-pattern="^master$" \
251
+ --build-config="backend/{service}/cloudbuild.yaml" \
252
+ --region=$LOCATION
253
+ ```
254
+
255
+ Note: Both triggers use the same `cloudbuild.yaml` file. The `$BRANCH_NAME`
256
+ variable is automatically set by Cloud Build to detect which branch triggered
257
+ the build.
@@ -0,0 +1,3 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 1AboveIO
@@ -0,0 +1,126 @@
1
+ ---
2
+ name: docker
3
+ description: Docker/Podman container architecture and build patterns. Read when designing or reviewing containerization, Dockerfile structure, multi-stage builds, PyPI mirror support, or docker-compose setup for Python/uv projects.
4
+ ---
5
+
6
+ # Docker Build Patterns
7
+
8
+ ## Overview
9
+
10
+ This skill covers Docker build patterns for Python projects using uv, with support for:
11
+ - Multi-stage builds for smaller images
12
+ - PyPI mirror configuration (for China/corporate mirrors)
13
+ - Podman as drop-in replacement for Docker
14
+ - docker-compose integration
15
+
16
+ ## Makefile Pattern
17
+
18
+ Auto-detect podman or docker, load env vars, and pass build args:
19
+
20
+ ```makefile
21
+ .PHONY: build rebuild
22
+
23
+ # Auto-detect compose tool (prefer podman-compose, fallback to docker compose)
24
+ COMPOSE_CMD := $(shell command -v podman-compose >/dev/null 2>&1 && echo "podman-compose" || echo "docker compose")
25
+ # Export .env vars for build arg substitution (podman-compose doesn't auto-load .env)
26
+ COMPOSE := set -a && . ./.env && set +a && $(COMPOSE_CMD)
27
+
28
+ # Auto-detect container build tool (prefer podman, fallback to docker)
29
+ BUILD_CMD := $(shell command -v podman >/dev/null 2>&1 && echo "podman" || echo "docker")
30
+
31
+ # Load UV_DEFAULT_INDEX from .env for build args
32
+ UV_DEFAULT_INDEX := $(shell grep -E '^UV_DEFAULT_INDEX=' .env 2>/dev/null | cut -d= -f2)
33
+
34
+ build: ## Build Docker image
35
+ $(BUILD_CMD) build --build-arg UV_DEFAULT_INDEX=$(UV_DEFAULT_INDEX) -t app-local:latest .
36
+
37
+ rebuild: ## Rebuild Docker image (no cache)
38
+ $(BUILD_CMD) build --no-cache --build-arg UV_DEFAULT_INDEX=$(UV_DEFAULT_INDEX) -t app-local:latest .
39
+ ```
40
+
41
+ ## Dockerfile Pattern (Multi-stage with uv)
42
+
43
+ ```dockerfile
44
+ # Stage 1: Build dependencies
45
+ FROM python:3.12-slim-bookworm AS builder
46
+
47
+ # PyPI mirror (for China users): e.g., https://mirrors.aliyun.com/pypi/simple/
48
+ ARG UV_DEFAULT_INDEX=
49
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /usr/local/bin/
50
+
51
+ WORKDIR /opt/app
52
+ COPY pyproject.toml uv.lock ./
53
+
54
+ # Install dependencies (creates .venv)
55
+ # If mirror URL provided, create uv.toml with default=true to disable PyPI
56
+ # Note: --frozen uses hardcoded PyPI URLs from lock file, so we omit it when using mirror
57
+ RUN if [ -n "$UV_DEFAULT_INDEX" ]; then \
58
+ mkdir -p /root/.config/uv && \
59
+ printf '[[index]]\nurl = "%s"\ndefault = true\n' "$UV_DEFAULT_INDEX" > /root/.config/uv/uv.toml && \
60
+ echo "Using mirror: $UV_DEFAULT_INDEX" && \
61
+ cat /root/.config/uv/uv.toml && \
62
+ uv sync --no-dev; \
63
+ else \
64
+ uv sync --frozen --no-dev; \
65
+ fi
66
+
67
+ # Stage 2: Runtime
68
+ FROM python:3.12-slim-bookworm
69
+
70
+ RUN useradd -m -d /opt/app -s /bin/bash app
71
+ WORKDIR /opt/app
72
+
73
+ # Copy virtual environment from builder
74
+ COPY --from=builder --chown=app:app /opt/app/.venv /opt/app/.venv
75
+
76
+ ENV PATH="/opt/app/.venv/bin:$PATH"
77
+ USER app
78
+
79
+ COPY --chown=app:app . .
80
+ ```
81
+
82
+ ## docker-compose.yaml Pattern
83
+
84
+ ```yaml
85
+ x-app-common: &app-common
86
+ image: ${APP_IMAGE:-app-local:latest}
87
+ build:
88
+ context: .
89
+ args:
90
+ UV_DEFAULT_INDEX: ${UV_DEFAULT_INDEX:-}
91
+ restart: unless-stopped
92
+ # ... rest of config
93
+ ```
94
+
95
+ ## .env Configuration
96
+
97
+ ```bash
98
+ # PyPI Mirror (for users in China)
99
+ # UV_DEFAULT_INDEX=https://mirrors.aliyun.com/pypi/simple/
100
+ ```
101
+
102
+ ## PyPI Mirror: Why `default = true` is Required
103
+
104
+ `UV_DEFAULT_INDEX` alone doesn't work because:
105
+ 1. It's a lower-priority fallback, not a replacement for PyPI
106
+ 2. `--frozen` uses hardcoded `files.pythonhosted.org` URLs from `uv.lock`
107
+
108
+ Solution: Create `uv.toml` with `[[index]]` and `default = true` to completely disable PyPI.
109
+
110
+ Per [uv docs](https://docs.astral.sh/uv/concepts/indexes/):
111
+ > "marking an index as default will disable the PyPI default index"
112
+
113
+ ## Common Mirrors
114
+
115
+ | Region | URL |
116
+ |--------|-----|
117
+ | China (Aliyun) | `https://mirrors.aliyun.com/pypi/simple/` |
118
+ | China (Tsinghua) | `https://pypi.tuna.tsinghua.edu.cn/simple/` |
119
+ | China (USTC) | `https://pypi.mirrors.ustc.edu.cn/simple/` |
120
+
121
+ ## Podman Notes
122
+
123
+ - Podman is a drop-in replacement for Docker (same CLI)
124
+ - `podman-compose` replaces `docker compose`
125
+ - Podman doesn't auto-load `.env` files, hence the `set -a && . ./.env` pattern in Makefile
126
+ - Rootless by default (better security)
@@ -0,0 +1,3 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 1AboveIO
@@ -0,0 +1,118 @@
1
+ ---
2
+ name: google-cloud
3
+ description: >
4
+ GCP operations covering IAM, IAP, VPC, Secret Manager, Cloud Storage, and
5
+ project management. Use when configuring GCP resources, managing service
6
+ accounts, setting up IAP access, configuring VPC networks, managing secrets,
7
+ or debugging cloud infrastructure.
8
+ ---
9
+
10
+ # Google Cloud Platform (GCP) Skill
11
+
12
+ Reference hub for GCP operations. Use `$PROJECT_ID`, `$REGION`, and
13
+ `$PROJECT_NUMBER` environment variables throughout — set them for your project.
14
+
15
+ ## Quick Commands
16
+
17
+ ```bash
18
+ # Set default project
19
+ gcloud config set project $PROJECT_ID
20
+
21
+ # Set default region
22
+ gcloud config set compute/region $REGION
23
+
24
+ # List enabled APIs
25
+ gcloud services list --enabled --project=$PROJECT_ID
26
+
27
+ # Describe project
28
+ gcloud projects describe $PROJECT_ID
29
+ ```
30
+
31
+ ## Topic Index
32
+
33
+ Load the relevant reference file based on the task:
34
+
35
+ | Task | Reference | When to load |
36
+ |------|-----------|--------------|
37
+ | Service accounts, roles, IAP | [references/iam.md](references/iam.md) | Configuring IAM, creating service accounts, granting roles, setting up IAP |
38
+ | VPC, subnets, firewall rules | [references/vpc.md](references/vpc.md) | Setting up VPC networks, subnets, firewall rules, or debugging connectivity |
39
+ | Secret Manager | [references/secrets.md](references/secrets.md) | Creating, accessing, or granting access to secrets |
40
+ | Cloud Storage (GCS) | [references/gcs.md](references/gcs.md) | Managing buckets, objects, lifecycle policies, or GCS IAM |
41
+ | Project metadata, quotas | [references/project.md](references/project.md) | Checking project config, quotas, billing, or API enablement |
42
+
43
+ ## Scripts
44
+
45
+ Reusable shell scripts in `scripts/`:
46
+
47
+ | Script | Purpose |
48
+ |--------|---------|
49
+ | `scripts/create-sa.sh` | Create a service account with roles |
50
+ | `scripts/gcp-config.sh` | Set up gcloud default config |
51
+ | `scripts/grant-iap.sh` | Grant IAP access to a user or service account |
52
+ | `scripts/setup-secrets.sh` | Create and populate secrets in Secret Manager |
53
+
54
+ ## Common Patterns
55
+
56
+ ### Service Account Token Minting
57
+
58
+ ```bash
59
+ # Mint ID token for service account
60
+ gcloud iam service-accounts get-openid-token-identity \
61
+ $SA_EMAIL \
62
+ --audiences=$AUDIENCE
63
+
64
+ # Sign JWT with service account
65
+ gcloud iam service-accounts sign-jwt /tmp/claims.json /tmp/signed.jwt \
66
+ --iam-account=$SA_EMAIL
67
+ ```
68
+
69
+ ### VPC Network Lookup
70
+
71
+ ```bash
72
+ # List networks
73
+ gcloud compute networks list
74
+
75
+ # List subnets in region
76
+ gcloud compute networks subnets list --region=$REGION
77
+
78
+ # Describe specific subnet
79
+ gcloud compute networks subnets describe $SUBNET --region=$REGION
80
+ ```
81
+
82
+ ### Secret Access
83
+
84
+ ```bash
85
+ # List secrets
86
+ gcloud secrets list --project=$PROJECT_ID
87
+
88
+ # Access latest version
89
+ gcloud secrets versions access latest --secret=$SECRET_NAME
90
+
91
+ # Grant access to service account
92
+ gcloud secrets add-iam-policy-binding $SECRET \
93
+ --member="serviceAccount:$SA_EMAIL" \
94
+ --role="roles/secretmanager.secretAccessor"
95
+ ```
96
+
97
+ ### GCS Operations
98
+
99
+ ```bash
100
+ # List buckets
101
+ gcloud storage buckets list --project=$PROJECT_ID
102
+
103
+ # Upload / download / copy
104
+ gcloud storage cp file.txt gs://$BUCKET_NAME/
105
+ gcloud storage cp gs://$BUCKET_NAME/file.txt ./
106
+ gcloud storage cp gs://$BUCKET_A/file.txt gs://$BUCKET_B/
107
+
108
+ # Set IAM on bucket
109
+ gcloud storage buckets add-iam-policy-binding gs://$BUCKET_NAME \
110
+ --member="serviceAccount:$SA_EMAIL" \
111
+ --role="roles/storage.objectViewer"
112
+ ```
113
+
114
+ ## Related Skills
115
+
116
+ - [cloud-build](../cloud-build/SKILL.md) — Cloud Build → Cloud Run deployments
117
+ - [cloud-deploy](../cloud-deploy/SKILL.md) — Cloud Deploy + Skaffold pipelines
118
+ - [cloud-debug](../cloud-debug/SKILL.md) — Debugging Cloud Build/Deploy failures