본문으로 건너뛰기
cccskills
무료GitHub에 공개

poc-deploy

Give a pocs/ app a Cloudflare Workers preview deploy so a PR returns a testable staging URL (auth-working). Use when wiring a POC for previews, or when "build X as a poc" needs to end at a clickable link. For launched apps/ apps use the /deploy skill instead.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구Cloudflare
설치 방법 보기

포함된 파일(1)

  • SKILL.md6.4 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

POC preview deploy

Makes the endpoint of a POC a live, testable Cloudflare Workers preview URL — the goal of epic #265. A POC lives in pocs/<name> (safe-to-break incubator; see root CLAUDE.md). This skill gives it a deploy workflow so every PR that touches the POC deploys an isolated, auto-provisioned staging env and posts the preview URL on the PR.

For launched apps/ apps (production counterpart, two-domain deploy) use the /deploy skill instead — this one is the lighter, staging-only POC path.

How it works

PR touches pocs/<name>/** (POC has a deploy.config.json)  →  deploy-pocs.yml (generic; detects
   the changed/dispatched opted-in POCs)  →  deploy-app.yml (reusable, workspace: pocs, enable-review: true)
   →  build (cloudflare_module, NUXT_PUBLIC_CROUTON_REVIEW=true) → wrangler deploy --env staging
   →  auto-provision id-less D1/KV → sync review bridge secrets → sync ids → remote D1 migrate
   →  sticky PR comment: 🚀 <name> staging deployed: <url> + overlay usage instructions

Review overlay is ON by default for all POC staging deploys (#596). deploy-pocs.yml passes enable-review: true to deploy-app.yml, so every POC preview is built with NUXT_PUBLIC_CROUTON_REVIEW=true (the @fyit/crouton-devtools overlay + source stamper + /api/_feedback bridge). The PR comment includes overlay usage instructions. For the bridge to post 🎯 Preview feedback comments, set the NUXT_CROUTON_REVIEW_GITHUB_APP_* repo-level secrets (see writeups/setup/review-bridge-token-setup.md); the overlay still renders without them.

One generic workflow, no per-POC file (#481). There is a single committed .github/workflows/deploy-pocs.yml; a POC opts in with pocs/<name>/deploy.config.json (which the agent pipeline can push — it's under pocs/, not .github/workflows/, which needs the workflows scope the bot lacks). Do not generate a per-POC deploy-<name>.yml.

  • The reusable deploy-app.yml takes a workspace input (apps default, or pocs) — that's the only thing that lets a pocs/ app reuse the same pipeline as apps/.
  • The preview is stable at https://<name>.pmcp.dev (the #133 staging domain), so BETTER_AUTH_URL is predictable and auth works on the preview.

Wire a POC for previews

  1. Scaffold the POC first (it must exist at pocs/<name> with a wrangler.jsonc that has an env.staging block: id-less <name>-staging-db + route <name>.pmcp.dev, and cf:staging in its package.json — the app scaffold produces these, mirroring apps/velo).

    Add cf:version alongside cf:staging (#1836). The mode: version dispatch — immutable side-by-side previews — runs the POC's own cf:version, and nothing generates it: a POC wired for deploy but missing it fails the dispatch. Copy the POC's own cf:staging and swap wrangler deploy for wrangler versions upload, dropping the id-sync and migrate steps (a version upload activates nothing, so there's no DB to migrate). Mirror that POC's script, not a template — loop-station, for one, prepares data first and skips inject-wrangler-env. deploy-pocs.yml now fails fast and tells you if it's missing.

  2. Generate + commit the initial D1 migrations. Collections are not migrated by crouton config/crouton init, so a fresh POC has none — and the deploy's remote-migrate step then fails with "No migrations present". Use the db-migrations build-first workaround: NITRO_PRESET=node-server nuxt build until .nuxt/hub/db/schema.mjs appears → pnpm db:generate → commit pocs/<name>/server/db/migrations/sqlite/**. (Don't skip this — it's the step that bit library-catalog, #457.)
  3. Opt the POC in — config only, NO workflow file:
    pnpm poc:scaffold-deploy <name>      # → pocs/<name>/deploy.config.json  (NOT a workflow file)
    
    It writes pocs/<name>/deploy.config.json ({ stagingUrl, layerPackages }), read by the shared deploy-pocs.yml.
  4. Open a PR touching pocs/<name>/** (e.g. the deploy.config.json + migrations). deploy-pocs.yml — which must be on the PR's base branch (an epic branch must carry it; see #481) — auto-fires → CI deploys the staging Worker and posts the preview URL. First deploy auto-provisions D1/KV. (workflow_dispatch(app=<name>) also works if the token has actions scope.)

Auth on a fresh preview (so it's testable)

A freshly deployed Worker has no users. To make the preview testable with auth, the POC's seed script provisions a known admin against the remote D1 (run it post-deploy, or have CI do it), and the admin creds are handed back alongside the URL. (Self-registration on the preview also works if the POC enables it.) See the per-app seed/shots scripts.

Requirements / gotchas

  • CI-only: real Cloudflare deploys run in GitHub Actions — the CLOUDFLARE_ACCOUNT_ID + CLOUDFLARE_API_TOKEN repo secrets must exist (same as the apps/ deploys), and the token needs account Workers/D1/KV and zone Workers-Routes/DNS edit for the <name>.pmcp.dev custom domain. There are no CF creds in the dev sandbox; you cannot produce the URL locally — open the PR and let CI do it, then babysit to green.
  • Staging only. No production block — pocs are previews. Promote pocs/<name> → apps/<name> and use /deploy for production.
  • Worker secrets (e.g. BETTER_AUTH_SECRET) persist across deploys; set them once via WORKER_SECRETS_JSON (an Environment secret) or wrangler secret bulk --env staging.
  • The POC opts in via pocs/<name>/deploy.config.json (re-run pnpm poc:scaffold-deploy <name> to refresh it). The generic deploy-pocs.yml is shared — never add a per-POC workflow file. For a pull_request deploy to fire, that workflow must be present on the PR's base branch (cut/refresh epic branches from current main so they carry it — #500/WS3).
  • Migrations must be committed (pocs/<name>/server/db/migrations/sqlite/**) before the deploy, or the remote-migrate step fails — see step 2.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

a11y

무료

Accessibility review for Vue surfaces — the code-cleaning analog of /code-review and /simplify, pointed at WCAG/ARIA. Reviews just your diff (or a package/file), rates findings by severity, and either comments inline on the PR (--comment) or applies the safe fixes for you (--fix). Steers the depth-aware `a11y` subagent. Use when asked to "check accessibility", "a11y this", "audit ARIA/keyboard", or run /a11y.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

FriendlyInternet/nuxt-crouton102026년 10월 18일 업데이트

ask-human

무료

Emit a blocking question the owner can read in ~10 seconds and answer in one reply — the scannable, recommendation-first handoff every agent posts when it hits a fork it can't own. Leads with the one decision + a recommendation, carries the 🤖 provenance header, doubles as the

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

FriendlyInternet/nuxt-crouton102026년 10월 18일 업데이트

audit

무료

Audit packages for documentation completeness, detect drift between code and docs, and maintain documentation quality across the monorepo. Use when checking package docs, running audits, or reviewing documentation health.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

FriendlyInternet/nuxt-crouton102026년 10월 18일 업데이트

Author a placeable layout block that looks right at ANY pane size. The one hard rule — size to the PANE with container queries (@container), never the viewport — plus list/form playbooks and the sizing contract (minWidth etc.) the viability metric reads. Use when adding/converting a croutonLayoutBlocks block, or when a block overflows/breaks in a narrow pane.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

FriendlyInternet/nuxt-crouton102026년 10월 18일 업데이트

When a bug or regression is reported, the FIRST step — before fixing — is to research how and when it was introduced (git archaeology), then record that finding on the tracking issue/PR. Use the moment a bug, error, broken build, or "this used to work" is reported, before writing a fix. Produces a first-bad-commit (or "not a code regression") note you paste onto the issue.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

FriendlyInternet/nuxt-crouton102026년 10월 18일 업데이트

commit

무료

Smart, granular git commits following monorepo conventions. Analyzes changes, filters to session-relevant files, groups by intent, and uses conventional commit format. Use when committing code changes.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

FriendlyInternet/nuxt-crouton102026년 10월 18일 업데이트

FriendlyInternet의 스킬 모두 보기

이 스킬의 문제 신고