@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,312 @@
1
+ # VPC Configuration
2
+
3
+ VPC networks, subnets, and firewall rules for GCP infrastructure.
4
+
5
+ ## Network Operations
6
+
7
+ ### List Networks
8
+
9
+ ```bash
10
+ # All networks in project
11
+ gcloud compute networks list
12
+
13
+ # With details
14
+ gcloud compute networks list --format="table(name,subnetMode,autoCreateSubnetworks)"
15
+ ```
16
+
17
+ ### Create Network
18
+
19
+ ```bash
20
+ # Custom subnet mode (recommended)
21
+ gcloud compute networks create $NAME \
22
+ --subnet-mode=custom \
23
+ --mtu=1460 \
24
+ --bgp-routing-mode=regional
25
+
26
+ # Legacy (auto-create subnets)
27
+ gcloud compute networks create $NAME \
28
+ --subnet-mode=legacy \
29
+ --auto-create-subnetworks
30
+ ```
31
+
32
+ ### Delete Network
33
+
34
+ ```bash
35
+ gcloud compute networks delete $NAME
36
+ ```
37
+
38
+ ---
39
+
40
+ ## Subnet Operations
41
+
42
+ ### List Subnets
43
+
44
+ ```bash
45
+ # All subnets in region
46
+ gcloud compute networks subnets list --region=us-central1
47
+
48
+ # In specific network
49
+ gcloud compute networks subnets list \
50
+ --filter="network:$NETWORK" \
51
+ --region=us-central1
52
+ ```
53
+
54
+ ### Create Subnet
55
+
56
+ ```bash
57
+ gcloud compute networks subnets create $SUBNET \
58
+ --network=$NETWORK \
59
+ --region=us-central1 \
60
+ --range=$IP_RANGE \
61
+ --purpose=REGIONAL_MANAGED_PROXY \
62
+ --enable-flow-logs \
63
+ --logging-flow-sampling=0.5 \
64
+ --logging-metadata=include-all
65
+ ```
66
+
67
+ ### Describe Subnet
68
+
69
+ ```bash
70
+ gcloud compute networks subnets describe $SUBNET \
71
+ --region=us-central1 \
72
+ --format="yaml(ipCidrRange,purpose,privateIpGoogleAccess,secondaryIpRanges)"
73
+ ```
74
+
75
+ ---
76
+
77
+ ## Cloud Run with VPC
78
+
79
+ ### Deploy Cloud Run with VPC
80
+
81
+ ```bash
82
+ gcloud run deploy $SERVICE \
83
+ --image=$IMAGE \
84
+ --region=us-central1 \
85
+ --network=$NETWORK \
86
+ --subnet=$SUBNET
87
+ ```
88
+
89
+ ### Update Existing Service VPC
90
+
91
+ ```bash
92
+ gcloud run services update $SERVICE \
93
+ --region=us-central1 \
94
+ --network=$NETWORK \
95
+ --subnet=$SUBNET
96
+ ```
97
+
98
+ ### Cloud Run Job with VPC
99
+
100
+ ```bash
101
+ gcloud run jobs create $JOB \
102
+ --image=$IMAGE \
103
+ --region=us-central1 \
104
+ --network=$NETWORK \
105
+ --subnet=$SUBNET
106
+
107
+ # Update existing job
108
+ gcloud run jobs update $JOB \
109
+ --region=us-central1 \
110
+ --network=$NETWORK \
111
+ --subnet=$SUBNET
112
+ ```
113
+
114
+ ---
115
+
116
+ ## Cloud SQL Connection Standard
117
+
118
+ **1Above standard:** Connect via direct VPC + private IP. Do NOT use Cloud SQL Auth Proxy (`--add-cloudsql-instances`).
119
+
120
+ ### Connection string format
121
+
122
+ ```
123
+ postgresql://<user>:<password>@<PRIVATE_IP>:5432/<database>?sslmode=no-verify&connect_timeout=5
124
+ ```
125
+
126
+ ### Cloud SQL instance private IPs (GCP project: cosmic-heaven-479306-v5)
127
+
128
+ | Instance | Private IP |
129
+ |----------|------------|
130
+ | ai-dev | 10.58.0.11 |
131
+
132
+ ### Cloud Run deploy flags
133
+
134
+ ```bash
135
+ --network=default \
136
+ --subnet=default \
137
+ --vpc-egress=private-ranges-only
138
+ # Do NOT add: --add-cloudsql-instances
139
+ ```
140
+
141
+ ### Why sslmode=no-verify?
142
+
143
+ `ai-dev` has `requireSsl: true` + `TRUSTED_CLIENT_CERTIFICATE_REQUIRED`.
144
+ `sslmode=no-verify` encrypts the connection without requiring client certificates — consistent with all existing services (a1-research-dev, etc.).
145
+
146
+ ### Reference service
147
+
148
+ Check `a1-research-dev` DATABASE_URL in Secret Manager as the canonical example.
149
+
150
+ ---
151
+
152
+ ## VPC Connectors (Serverless VPC Access)
153
+
154
+ ### Create VPC Connector
155
+
156
+ ```bash
157
+ gcloud compute networks vpc-access connectors create $CONNECTOR \
158
+ --region=us-central1 \
159
+ --network=$NETWORK \
160
+ --range=$IP_RANGE
161
+ ```
162
+
163
+ ### List VPC Connectors
164
+
165
+ ```bash
166
+ gcloud compute networks vpc-access connectors list --region=us-central1
167
+ ```
168
+
169
+ ### Use Connector with Cloud Run
170
+
171
+ ```bash
172
+ gcloud run services update $SERVICE \
173
+ --region=us-central1 \
174
+ --vpc-connector=$CONNECTOR
175
+ ```
176
+
177
+ ---
178
+
179
+ ## Firewall Rules
180
+
181
+ ### List Firewall Rules
182
+
183
+ ```bash
184
+ # All rules
185
+ gcloud compute firewall-rules list
186
+
187
+ # For specific network
188
+ gcloud compute firewall-rules list --filter="network:$NETWORK"
189
+
190
+ # With details
191
+ gcloud compute firewall-rules describe $RULE
192
+ ```
193
+
194
+ ### Create Firewall Rule
195
+
196
+ ```bash
197
+ # Allow SSH from anywhere (dev only)
198
+ gcloud compute firewall-rules create allow-ssh \
199
+ --network=$NETWORK \
200
+ --allow=tcp:22 \
201
+ --source-ranges=0.0.0.0/0 \
202
+ --target-tags=$TAG
203
+
204
+ # Allow internal traffic
205
+ gcloud compute firewall-rules create allow-internal \
206
+ --network=$NETWORK \
207
+ --allow=tcp,udp,icmp \
208
+ --source-ranges=$IP_RANGE \
209
+ --direction=INGRESS
210
+
211
+ # Allow health checks
212
+ gcloud compute firewall-rules create allow-health-check \
213
+ --network=$NETWORK \
214
+ --allow=tcp:80,tcp:443 \
215
+ --source-ranges=35.191.0.0/16,130.211.0.0/22 \
216
+ --target-tags=$TAG
217
+ ```
218
+
219
+ ---
220
+
221
+ ## Private Google Access
222
+
223
+ ### Check if Subnet Has Private Google Access
224
+
225
+ ```bash
226
+ gcloud compute networks subnets describe $SUBNET \
227
+ --region=us-central1 \
228
+ --format="value(privateIpGoogleAccess)"
229
+ ```
230
+
231
+ ### Enable Private Google Access on Subnet
232
+
233
+ ```bash
234
+ gcloud compute networks subnets describe $SUBNET \
235
+ --region=us-central1 \
236
+ --set-private-ip-google-access
237
+ ```
238
+
239
+ ---
240
+
241
+ ## Shared VPC (Host Project)
242
+
243
+ ### List Shared VPC Networks
244
+
245
+ ```bash
246
+ gcloud compute shared-vpc list-host-projects
247
+ gcloud compute networks list --project=$HOST_PROJECT
248
+ ```
249
+
250
+ ### Enable Shared VPC on Service Project
251
+
252
+ ```bash
253
+ gcloud compute projects enable-shared-vpc $SERVICE_PROJECT
254
+
255
+ # Attach service project to host
256
+ gcloud compute shared-vpc associated-projects add $SERVICE_PROJECT \
257
+ --host-project=$HOST_PROJECT
258
+ ```
259
+
260
+ ---
261
+
262
+ ## VPC Peering
263
+
264
+ ### Create VPC Peering
265
+
266
+ ```bash
267
+ # From network A
268
+ gcloud compute networks peerings create $PEERING_NAME \
269
+ --network=$NETWORK_A \
270
+ --peer-project=$PROJECT_B \
271
+ --peer-network=$NETWORK_B \
272
+ --export-custom-routes \
273
+ --import-custom-routes
274
+ ```
275
+
276
+ ### List Peerings
277
+
278
+ ```bash
279
+ gcloud compute networks peerings list --network=$NETWORK
280
+ ```
281
+
282
+ ---
283
+
284
+ ## Useful Queries
285
+
286
+ ### Find Subnet by IP Range
287
+
288
+ ```bash
289
+ gcloud compute networks subnets list \
290
+ --filter="ipCidrRange:$IP_RANGE" \
291
+ --regions=us-central1
292
+ ```
293
+
294
+ ### Find Resources Using Specific Network
295
+
296
+ ```bash
297
+ # Cloud Run services
298
+ gcloud run services list \
299
+ --filter="metadata.annotations.run.googleapis.com/network-name:$NETWORK"
300
+
301
+ # Cloud Run jobs
302
+ gcloud run jobs list \
303
+ --filter="metadata.annotations.run.googleapis.com/network-name:$NETWORK"
304
+ ```
305
+
306
+ ### Check VPC Flow Logs Status
307
+
308
+ ```bash
309
+ gcloud compute networks subnets describe $SUBNET \
310
+ --region=us-central1 \
311
+ --format="value(logConfig.enable)"
312
+ ```
@@ -0,0 +1,36 @@
1
+ #!/bin/bash
2
+ # Create Service Account with Standard Roles
3
+ # Usage: ./create-sa.sh [sa-name] [display-name] [roles...]
4
+
5
+ set -e
6
+
7
+ SA_NAME="${1:-my-sa}"
8
+ DISPLAY_NAME="${2:-$SA_NAME}"
9
+ PROJECT_ID="${PROJECT_ID:-your-project-id}"
10
+
11
+ # Optional roles (default: cloudsql.client, secretmanager.secretAccessor)
12
+ shift 2
13
+ ROLES=("${@:-roles/cloudsql.client roles/secretmanager.secretAccessor)}")
14
+
15
+ SA_EMAIL="${SA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
16
+
17
+ echo "Creating Service Account: $SA_NAME"
18
+ echo "Email: $SA_EMAIL"
19
+ echo "Roles: ${ROLES[*]}"
20
+
21
+ # Create SA
22
+ gcloud iam service-accounts create "$SA_NAME" \
23
+ --display-name="$DISPLAY_NAME" \
24
+ --project=$PROJECT_ID
25
+
26
+ # Grant roles
27
+ for ROLE in "${ROLES[@]}"; do
28
+ echo "Granting $ROLE..."
29
+ gcloud projects add-iam-policy-binding $PROJECT_ID \
30
+ --member="serviceAccount:$SA_EMAIL" \
31
+ --role="$ROLE"
32
+ done
33
+
34
+ echo ""
35
+ echo "Service Account created successfully!"
36
+ echo "Email: $SA_EMAIL"
@@ -0,0 +1,31 @@
1
+ #!/bin/bash
2
+ # Project: ${PROJECT_ID:-your-project-id}
3
+ # Region: us-central1
4
+
5
+ set -e
6
+
7
+ # Colors for output
8
+ RED='\033[0;31m'
9
+ GREEN='\033[0;32m'
10
+ YELLOW='\033[1;33m'
11
+ NC='\033[0m'
12
+
13
+ log_info() { echo -e "${GREEN}[INFO]${NC} $1"; }
14
+ log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
15
+ log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
16
+
17
+ # Configuration
18
+ PROJECT_ID="${PROJECT_ID:-your-project-id}"
19
+ PROJECT_NUMBER="${PROJECT_NUMBER:-your-project-number}"
20
+ REGION="us-central1"
21
+
22
+ # Set project
23
+ gcloud config set project $PROJECT_ID
24
+
25
+ # Validate project
26
+ if ! gcloud projects describe $PROJECT_ID &>/dev/null; then
27
+ log_error "Project $PROJECT_ID not accessible"
28
+ exit 1
29
+ fi
30
+
31
+ log_info "Project $PROJECT_ID configured successfully"
@@ -0,0 +1,41 @@
1
+ #!/bin/bash
2
+ # Grant IAP Access to Service Account
3
+ # Usage: ./grant-iap-access.sh [service-account-email] [backend-service-name]
4
+
5
+ set -e
6
+
7
+ SA_EMAIL="${1:-e2e-runner@${PROJECT_ID:-your-project-id}.iam.gserviceaccount.com}"
8
+ BACKEND_SERVICE="${2:-my-backend-service}"
9
+ PROJECT_ID="${PROJECT_ID:-your-project-id}"
10
+
11
+ echo "Granting IAP access to: $SA_EMAIL"
12
+ echo "Backend service: $BACKEND_SERVICE"
13
+
14
+ # Grant IAP access on backend service
15
+ gcloud iap web add-iam-policy-binding \
16
+ --project=$PROJECT_ID \
17
+ --resource-type=backend-services \
18
+ --service=$BACKEND_SERVICE \
19
+ --member="serviceAccount:$SA_EMAIL" \
20
+ --role="roles/iap.httpsResourceAccessor"
21
+
22
+ echo ""
23
+ echo "IAP access granted successfully!"
24
+ echo ""
25
+ echo "Next: Use signed JWT to access IAP-protected service:"
26
+ echo ""
27
+ cat << 'EOF'
28
+ SERVICE_URL="https://${BACKEND_SERVICE}-${HASH}-uc.a.run.app"
29
+ SIGNER_SA="signer-sa@${PROJECT_ID}.iam.gserviceaccount.com"
30
+
31
+ NOW="$(date +%s)"
32
+ cat > /tmp/iap-jwt.json <<JSON
33
+ {"iss":"${SIGNER_SA}","sub":"${SIGNER_SA}","aud":"${SERVICE_URL}/*","iat":${NOW},"exp":$((NOW+600))}
34
+ JSON
35
+
36
+ gcloud iam service-accounts sign-jwt /tmp/iap-jwt.json /tmp/iap-jwt.jwt \
37
+ --iam-account="${SIGNER_SA}"
38
+
39
+ TOKEN="$(cat /tmp/iap-jwt.jwt)"
40
+ curl -i "${SERVICE_URL}/" -H "Authorization: Bearer ${TOKEN}"
41
+ EOF
@@ -0,0 +1,48 @@
1
+ #!/bin/bash
2
+ # Setup Secrets for Service
3
+ # Usage: ./setup-secrets.sh [service-name]
4
+
5
+ set -e
6
+
7
+ SERVICE_NAME="${1:-my-service}"
8
+ PROJECT_ID="${PROJECT_ID:-your-project-id}"
9
+ ENVIRONMENTS=("dev" "staging" "prod")
10
+
11
+ for ENV in "${ENVIRONMENTS[@]}"; do
12
+ SECRET_NAME="${SERVICE_NAME}-database-url-${ENV}"
13
+
14
+ echo "Creating secret: $SECRET_NAME"
15
+
16
+ # Create secret (ignore if exists)
17
+ gcloud secrets create "$SECRET_NAME" \
18
+ --replication-policy="automatic" \
19
+ --project=$PROJECT_ID 2>/dev/null || true
20
+
21
+ # Add version placeholder (user should update with actual value)
22
+ echo -n "postgresql://user:pass@host/${SERVICE_NAME}-${ENV}" | \
23
+ gcloud secrets versions add "$SECRET_NAME" \
24
+ --data-file=- \
25
+ --project=$PROJECT_ID
26
+ done
27
+
28
+ # Create shared secret key
29
+ SHARED_SECRET="${SERVICE_NAME}-shared-secret"
30
+ echo "Creating shared secret: $SHARED_SECRET"
31
+
32
+ gcloud secrets create "$SHARED_SECRET" \
33
+ --replication-policy="automatic" \
34
+ --project=$PROJECT_ID 2>/dev/null || true
35
+
36
+ # Generate random key
37
+ openssl rand -hex 32 | \
38
+ gcloud secrets versions add "$SHARED_SECRET" \
39
+ --data-file=- \
40
+ --project=$PROJECT_ID
41
+
42
+ echo ""
43
+ echo "Secrets created successfully!"
44
+ echo ""
45
+ echo "Grant access to Cloud Run SA:"
46
+ echo " gcloud secrets add-iam-policy-binding ${SERVICE_NAME}-database-url-dev \\"
47
+ echo " --member=\"serviceAccount:${PROJECT_ID}-run@developer.gserviceaccount.com\" \\"
48
+ echo " --role=\"roles/secretmanager.secretAccessor\""
@@ -0,0 +1,3 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 1AboveIO
@@ -0,0 +1,138 @@
1
+ ---
2
+ name: mergify
3
+ description: "Mergify merge-queue config, rules, PR delivery, and queue status. Use whenever a merge queue is involved — including plain-sounding asks about one PR ('watch #123 till it merges', 'where is #412 in the queue', 'checks are green, get it merged'): a `gh pr view`/`gh pr checks` poll cannot see a dequeue, so these need `mergify queue show` and the bundled watcher, never hand-rolled polling. Also: authoring or debugging `.mergify.yml`, queue rules, merge protections, batch size, the GitHub ruleset making merges queue-only; enqueue policy (`@mergifyio queue` vs `auto_merge_conditions`); a push dequeuing a queued PR; bypass actors; freezing a branch. Failures: a PR stuck, queued but never merging, or merged unqueued; CI green on GitHub but unmet in Mergify; a batch going red or bisecting; a check missing rather than failing. Outranks the vendor mergify-* command skills. NOT for GitHub Actions authoring (cloud-build), a failing CI job (cloud-debug), or GCP deploy pipelines (cloud-deploy)."
4
+ ---
5
+
6
+ # Mergify Merge Queue
7
+
8
+ Merge queue setup that defaults to **held**: a PR merges only when someone
9
+ explicitly enqueues it, batches of 3 are tested together, and the branch is kept
10
+ fresh against base.
11
+
12
+ **This file is an index.** The doctrine lives in `references/`, one file per
13
+ lane, because agents read skills partially — with an explicit `limit`, or by
14
+ skimming until the content looks familiar — and anything below that cutoff is
15
+ not deprioritized, it is *absent*. Keeping this file short means the routing
16
+ survives a partial read even when the detail does not. That failure is why the
17
+ file is shaped this way: an agent asked to watch a PR read the old 469-line
18
+ version with `limit: 200`, never reached a single line about `dequeued`,
19
+ hand-rolled its own shell watcher, and reported a queued PR as dequeued.
20
+
21
+ So: **find your task below, then read that row's target.** Do not work from this
22
+ page alone — it deliberately does not contain enough to act on.
23
+
24
+ ## Routing
25
+
26
+ | Your task | Read | The rule you must not miss |
27
+ |---|---|---|
28
+ | **Get an open or just-pushed PR merged** | [`references/watch-contract.md`](references/watch-contract.md#enqueue-before-you-watch) | Enqueue, *then* watch — the watch never enqueues, so a watch started on a PR nothing will enqueue can only end `STALLED`. A push to an already-queued PR dequeues it (`pull-request-updated`): the verdict is stale, re-validate before re-enqueuing. Several ready at once? Enqueue them together — next row. |
29
+ | **Deliver several ready PRs at once (a stack, an epic's units, a burst)** | [`references/watch-contract.md`](references/watch-contract.md#batch-delivery--enqueue-the-whole-ready-set-together) | Enqueue the whole ready set **together**, then watch: PRs riding one batch cost one CI run, and a red batch bisects to the culprit while the rest carry on. "If possible" is the point — a lone PR, or stragglers still waiting on review/CI/conflict, never hold the batch window open. |
30
+ | Author or change `.mergify.yml` | [`references/configuration.md`](references/configuration.md) | [Rule 1](#rule-1--fetch-the-docs-before-writing-config): never write config from memory; finish with `validate` **and** `simulate`. |
31
+ | **Watch a PR through the queue** | [`references/watch-contract.md`](references/watch-contract.md) | **[Rule 2](#rule-2--never-hand-roll-a-watcher): run the bundled watcher, never hand-roll one.** A watch observes a *progression*, not one state. |
32
+ | Check status — "where is my PR?", "why is it stuck?" | [`references/diagnosis.md`](references/diagnosis.md#querying-pr-and-queue-status) | `mergify queue show <PR> -v` names the single blocking condition; nothing else in the toolchain does. `gh pr checks` is CI truth, never queue truth — and a one-off read of the `queued`/`dequeued` labels is neither. |
33
+ | A PR merged without ever being queued | [`references/branch-protection.md`](references/branch-protection.md) | A required status check does **not** make the queue mandatory. Only the `update` rule does. |
34
+ | Set up, audit, freeze, or protect a branch | [`references/configuration.md`](references/configuration.md#setup-checklist), then [`references/branch-protection.md`](references/branch-protection.md) | Bypass is granted per *ruleset*, never per rule — so Mergify bypasses the required check too. |
35
+ | A batch keeps going red, bisects, or hangs on a check | [`references/traps.md`](references/traps.md) | An *absent* check reads as permanently unmet. That is not the same as failing. |
36
+ | Something broke and you want the known landmines | [`references/traps.md`](references/traps.md) | Each one has been hit in production; skim it before debugging from first principles. |
37
+
38
+ **Templates** — both required. The `.mergify.yml` decides what the queue *does*;
39
+ the ruleset is what stops anyone bypassing the queue entirely.
40
+
41
+ - [`assets/templates/mergify.yml`](assets/templates/mergify.yml) — copy to the
42
+ repo root as `.mergify.yml` and fill in the placeholders.
43
+ - [`assets/templates/ruleset.json`](assets/templates/ruleset.json) — the GitHub
44
+ branch ruleset that makes the queue mandatory.
45
+
46
+ **Scripts** — run these rather than reimplementing what they do:
47
+
48
+ | Script | Use |
49
+ |---|---|
50
+ | [`scripts/watch-pr-delivery.mjs`](scripts/watch-pr-delivery.mjs) | Watch an enqueued PR to a terminal verdict. See [Rule 2](#rule-2--never-hand-roll-a-watcher). |
51
+ | [`scripts/audit.mjs`](scripts/audit.mjs) | Audit a `.mergify.yml` against this skill's defaults — the shape `config validate` cannot check. |
52
+
53
+ ## Non-Negotiable Rules
54
+
55
+ Three rules, two of them on this page rather than in a reference because they
56
+ prevent a *silent* failure — the config looks valid, the watcher looks like it
57
+ is working — and the third because it is the delivery default batching depends
58
+ on. A reader who takes nothing else from this skill should take all three.
59
+
60
+ ### Rule 1 — Fetch the docs before writing config
61
+
62
+ The schema changes and options get deprecated, so do not write `.mergify.yml`
63
+ from memory:
64
+
65
+ ```bash
66
+ curl -s https://docs.mergify.com/mergify-configuration-schema.json -o /tmp/mergify-schema.json
67
+ ```
68
+
69
+ Reference pages: `https://docs.mergify.com/merge-queue/rules`,
70
+ `/merge-queue/batches`, `/merge-protections/setup`, `/commands`. Full index at
71
+ `https://docs.mergify.com/llms.txt`.
72
+
73
+ Then always finish with both:
74
+
75
+ ```bash
76
+ mergify config validate # schema check
77
+ mergify config simulate https://github.com/<owner>/<repo>/pull/<n> # behaviour check
78
+ ```
79
+
80
+ `validate` catches typos. `simulate` catches the config being *valid but wrong*
81
+ — which is the failure mode that actually costs hours.
82
+
83
+ ### Rule 2 — Never hand-roll a watcher
84
+
85
+ Watching a PR through the queue means running
86
+ [`scripts/watch-pr-delivery.mjs`](scripts/watch-pr-delivery.mjs). Writing your
87
+ own `gh pr view` polling snippet — in shell, in a background-task command, in
88
+ anything — is refused, not merely discouraged.
89
+
90
+ The reason is that **a watch tracks a progression, not a state.** The verdict
91
+ depends on what the watcher has *already seen*: absent queue membership means
92
+ "not admitted yet" before queue entry and "dequeued" after it, and no single
93
+ snapshot distinguishes them. So the watcher must carry `seenQueued`, process-local
94
+ `everActive` (membership observed *this* run — `--seen-queued` alone is only a
95
+ resume hint and must not invent that observation), a re-read counter,
96
+ readable-vs-absent, and a change clock across every poll. A background runner that
97
+ re-runs a command each tick and reads its exit code is a stateless predicate
98
+ evaluator with nowhere to keep any of that — the shape is wrong before the code is.
99
+
100
+ ```bash
101
+ node ~/.agents/skills/mergify/scripts/watch-pr-delivery.mjs \
102
+ --repo <owner/repo> \
103
+ --pr <number>
104
+ ```
105
+
106
+ Enqueue first — the watch never enqueues, so on a manual-delivery repo a watch
107
+ started on an unqueued PR can only end `STALLED`. Full state machine, the
108
+ `queued`/`dequeued` label semantics, the `"queued": true` JSON-shape trap, the
109
+ dequeue-reason routing table, and how to read the `phases` progression:
110
+ [`references/watch-contract.md`](references/watch-contract.md).
111
+
112
+ ### Rule 3 — Enqueue the whole ready set together
113
+
114
+ Batch mode only pays when the PRs are **in the queue together**, and only the
115
+ deliverer controls that. When several PRs against the same base are ready — a
116
+ stack, an epic's independently-shippable units, a burst of related edits —
117
+ enqueue them all in one pass, then watch them together. One batch CI run for N
118
+ PRs; a red batch bisects to the culprit and the rest carry on. Serial delivery —
119
+ enqueue, watch to merge, then enqueue the next — quietly buys N batches for
120
+ work that could have ridden one, and is never faster. "If possible" is the
121
+ escape hatch, not the rule: a lone PR, or PRs still waiting on review/CI/
122
+ conflict, never hold the batch window open. Mechanics and the grouping rule
123
+ (what Mergify actually batches together) live in
124
+ [`references/watch-contract.md`](references/watch-contract.md#batch-delivery--enqueue-the-whole-ready-set-together).
125
+
126
+ ## Related Skills
127
+
128
+ - [cloud-build](../cloud-build/SKILL.md) — the CI the queue gates on
129
+ - [cloud-debug](../cloud-debug/SKILL.md) — when the CI job itself is failing
130
+ - [resolve-issues](../../engineering/resolve-issues/SKILL.md) — consumes this skill's delivery
131
+ watch contract when it delivers merge-ready PRs through Mergify
132
+ - `mergify-config`, `mergify-merge-queue`, `mergify-merge-protections`, `mergify-ci`,
133
+ `mergify-stack` (vendor plugin skills) — reference for raw CLI invocation. They document
134
+ *how to call* the commands; this skill decides *what the config should say* and owns the
135
+ GitHub-side enforcement. On any conflict, this skill wins — it encodes decisions the
136
+ vendor docs are neutral about (held-by-default enqueue, batch 3, the `update`-rule
137
+ ruleset, the traps in `references/traps.md`).
138
+