live-dev-config
This skill handles code repository linking, cloud hosting setup, and secure credential collection.
bash blocks are POSIX (Git Bash on Windows). Any logic beyond one command/pipe lives in resources/*.js, never in shell control flow. If your Bash tool is cmd.exe or PowerShell, translate each snippet before running it.
1. Provisioning & Project Linking
Configure or verify repository and hosting resources in this order:
| Resource | Skip if | Constraints |
|---|---|---|
| GitHub repo | a remote exists | gh repo create --private --source=. --push, from a repo with ≥1 commit. Repo name defaults to the folder name — ask the user for nothing else. Public only on request. |
| Vercel project | .vercel/project.json |
vercel link --yes — non-interactive. Linking also wires the Vercel↔GitHub integration. |
2. Secure Credential Collection
Ensure that credentials never leak into git history, command-line logs, or shell execution paths.
2.1 Credential collection
Emit .credential-fields.json holding only what this step needs (e.g. service account JSON or specific API keys):
[{ "name": "FIREBASE_SERVICE_ACCOUNT", "label": "Firebase 服務帳戶金鑰",
"help": "Project settings → Service accounts → Generate new private key",
"link": "https://console.firebase.google.com/project/<id>/settings/serviceaccounts/adminsdk" }]
node resources/credential-form.js .credential-fields.json # launch via the TOOL's background mode, NOT a shell `&`
- Credential Form: Starts a 127.0.0.1-only form, opens the browser, writes to the gitignored
.env.localfile, and exits. Relay the URL to the user if the browser does not open automatically. - Manual template fallback: If no browser can open, write
.env.local.templateasKEY_NAME= # description & linkfor the user to fill and save to.env.local. - Command CLI Logins: For CLI logins (
gh auth login,vercel login,firebase login), use each tool's standard device flow.
2.2 Security Guidelines
Never source/eval .env.local, never interpolate credentials into double quotes or <<< (shell expansions could execute code). Extract using read-env-value.js and pipe to stdin:
node resources/read-env-value.js .env.local FIREBASE_SERVICE_ACCOUNT | vercel env add FIREBASE_SERVICE_ACCOUNT production
# or GitHub secrets:
node resources/read-env-value.js .env.local FIREBASE_SERVICE_ACCOUNT | gh secret set FIREBASE_SERVICE_ACCOUNT
Report by key name only: ✅ <KEY> set in Vercel/production / ✅ <KEY> set in GitHub Secrets.