#683 by GitHub stars
mikehasa/golive-skill
Take an agent-written app from repo to live production on the user's OWN accounts, with providers they choose (hosting, database, auth, payments, email, domain/DNS). The human connects accounts and approves changes; supported wiring operations run through a local CLI and produce verification evidenc
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/golive/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
8fd3d8e96844 → 8fd3d8e96844
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 8fd3d8e96844
No earlier version was observed for comparison.
Verified commit 8fd3d8e96844c79c500aabaf215d1267fcde08c5
git clone --filter=blob:none --no-checkout https://github.com/mikehasa/golive-skill.git .hotskills/mikehasa-golive-skill && git -C .hotskills/mikehasa-golive-skill checkout --detach 8fd3d8e96844c79c500aabaf215d1267fcde08c5
# Copy each selected skill directory from .hotskills/mikehasa-golive-skill into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/mikehasa/golive-skill.git .hotskills/mikehasa-golive-skill && git -C .hotskills/mikehasa-golive-skill checkout --detach 8fd3d8e96844c79c500aabaf215d1267fcde08c5
# Copy each selected skill directory from .hotskills/mikehasa-golive-skill into .agents/skills/<skill-name>/Heat
8.0- Star growth, last 7 daysAhead of 97% of tracked repositories
- Star growth, last 24 hoursAhead of 97% of tracked repositories
- Rank movement, last 7 daysAhead of 90% of tracked repositories
- Commits, last 30 daysAhead of 73% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- golive
skills/golive
How it works
golive
When your agent uses it
Take an agent-written app from repo to live production on the user's OWN accounts, with providers they choose (hosting, database, auth, payments, email, domain/DNS). The human connects accounts and approves changes; supported wiring operations run through a local CLI and produce verification evidence with explicit limits. Use when the user wants to ship, deploy, go live, launch, publish, or put their app online, or asks to wire up env vars, webhooks, auth settings (signup, email confirmation, password policy), a real signup → confirmation email → login journey, password recovery, account isolation between two users, auth redirects, email DNS or a custom domain.
What it loads into context
Frontmatter
143 tokensAlways available to the agent
SKILL.md
11,905 tokensWhen the skill is activated
Reference documents
51,783 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Start with a verified release
- Conversation and progress
- Hard rules (never break these)
- How the human connects accounts
- Troubleshoot, then resume
- Flow
- More detail (load only what you need)
Scripts executed separately
scripts/golive.mjsscripts/install-cli.mjsscripts/install-lib.mjs
Files
../../.claude-plugin/marketplace.jsonasset499 bytesLICENSEasset1,075 bytesSKILL.mdcore51,194 bytesSKILL.mdcore51,194 bytesSKILL.mdcore51,194 bytesTHIRD_PARTY_NOTICES.mddoc817 bytesreferences/cloudflare-dns.mddoc8,084 bytesreferences/godaddy.mddoc3,949 bytesreferences/guided.mddoc9,389 bytesreferences/neon.mddoc4,458 bytesreferences/netlify.mddoc7,083 bytesreferences/plan-and-verify.mddoc48,554 bytesreferences/porkbun.mddoc3,477 bytesreferences/posthog.mddoc10,450 bytesreferences/resend.mddoc8,794 bytesreferences/sentry.mddoc10,941 bytesreferences/stripe.mddoc13,390 bytesreferences/supabase.mddoc50,850 bytesreferences/troubleshooting.mddoc5,291 bytesreferences/updates.mddoc5,108 bytesreferences/uptimerobot.mddoc12,637 bytesreferences/vercel.mddoc13,532 bytesrelease.jsonasset2,498 bytesscripts/golive.mjsruns1,239,784 bytesscripts/install-cli.mjsruns5,071 bytesscripts/install-lib.mjsruns24,971 bytes
Read SKILL.md
# golive: ship this app to production, on the user's own accounts
Help the agent take an app live on accounts the human owns. The `golive` script handles supported
provider operations after approval and records what its checks establish. The human connects
accounts and handles purchases; app migrations, business flows and guided steps need their own
review. Never turn an infrastructure check into a claim that the entire app works.
```bash
node <this-skill-dir>/scripts/golive.mjs <command> --json
```
`<this-skill-dir>` is the folder containing this SKILL.md. Every command prints one JSON document.
Exit code `2` means "worked, but something needs attention": read the JSON.
View the complete source on GitHubSkills included
- golive
Repository facts
- License
- MIT
- Created
- Sep 23, 2026
- Last pushed
- Oct 11, 2026
- Forks
- 96
- Open issues
- 5
- Project activity
- Active
Rank over the last 12 weeks
Now #683 · best #585 · down 76 in 30 days
- #688 from Oct 31 to Nov 1
- #687 on Nov 2
- #688 on Nov 3
- #687 on Nov 4
- #682 on Nov 5
- #683 since Nov 6
32 earlier periods
- #921 on Sep 20
- #696 on Sep 24
- #664 on Sep 25
- #657 on Sep 26
- #671 on Sep 27
- #660 on Sep 28
- #672 on Sep 29
- #644 on Sep 30
- #611 on Oct 1
- #615 on Oct 2
- #585 on Oct 3
- #596 on Oct 4
- #601 on Oct 5
- #607 from Oct 6 to Oct 7
- #636 on Oct 8
- #619 on Oct 9
- #600 from Oct 10 to Oct 11
- #614 on Oct 12
- #617 on Oct 13
- #630 on Oct 14
- #622 on Oct 15
- #629 on Oct 16
- #612 on Oct 17
- #604 on Oct 18
- #632 on Oct 19
- #642 on Oct 20
- #648 on Oct 21
- #628 on Oct 22
- #623 on Oct 23
- #608 on Oct 24
- #687 on Oct 25
- #690 from Oct 28 to Oct 30
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 3, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 4 notes
skills/golive/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golive/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golive/scripts/golive.mjs:1Analysis incomplete: file exceeds text byte budgetskills/golive/scripts/golive.mjs:10202Analysis incomplete: regex work limit reached
- No broad tool permissions
- 1 dangerous shell commandin 1 file: golive/references/godaddy.md:16
- 123 network referencesin 12 files: golive/scripts/golive.mjs:8143 golive/references/supabase.md:47 golive/references/godaddy.md:14 and 9 more
- 1 obfuscation signalin 1 file: golive/scripts/golive.mjs:2818
- No instruction overrides
- 3 executable scriptsin 3 files: golive/scripts/golive.mjs:1 golive/scripts/install-cli.mjs:1 golive/scripts/install-lib.mjs:1
- 77 references to secretsin 14 files: golive/scripts/golive.mjs:8036 golive/references/supabase.md:18 golive/references/posthog.md:24 and 11 more
- No requests to vote in Hot
Show all 205 signals by file
skills/golive/SKILL.md
skills/golive/references/cloudflare-dns.md
- Access to secretsline 24
[Credential-related source omitted]
skills/golive/references/godaddy.md
- Network accessline 14
2. Preferred sign-in: install the official CLI and log in once. That installer is GoDaddy's own, published on their release page — `curl -fsSL https://github.com/godaddy/cli/releases/latest/download/install.sh | bash` — and the - Network accessline 15
published on their release page — `curl -fsSL https://github.com/godaddy/cli/releases/latest/download/install.sh | bash` — and the **human runs it in their own terminal**: never pipe a vendor script into a shell on their behalf. - Dangerous shell operationline 16
`curl -fsSL https://github.com/godaddy/cli/releases/latest/download/install.sh | bash` — and the - Network accessline 16
`curl -fsSL https://github.com/godaddy/cli/releases/latest/download/install.sh | bash` — and the - Network accessline 47
Official references: [DNS API](https://developer.godaddy.com/en/docs/api-users/domains/manage/dns), - Network accessline 48
[PAT setup](https://developer.godaddy.com/en/docs/api-users/auth), - Network accessline 49
[MCP limits](https://developer.godaddy.com/en/docs/api-users/mcp).
skills/golive/references/neon.md
- Access to secretsline 15
[Credential-related source omitted] - Access to secretsline 16
[Credential-related source omitted] - Network accessline 54
Neon's official [CLI](https://neon.com/docs/reference/neon-cli), - Network accessline 55
[API](https://neon.com/docs/reference/api) and [remote MCP](https://mcp.neon.tech/mcp) are available.
skills/golive/references/netlify.md
- Access to secretsline 9
[Credential-related source omitted] - Access to secretsline 11
[Credential-related source omitted] - Network accessline 17
Choose the exact site and team. `NETLIFY_ACCOUNT_ID` disambiguates teams. Site creation requires a specific approved team ID, a verified current Free plan and available documented site capacity. Paid, legacy Starter, unknown plans or unknow - Network accessline 21
Preview values target `deploy-preview`; production values target `production`. Public values use omitted scopes/Free defaults. Sensitive values remain write-only secrets with `builds`, `functions`, `runtime` scopes. Netlify's official Terra - Network accessline 25
Local Netlify builds see masked non-development secret values. Runtime-only server credentials fit this flow. If the application needs raw secrets during its build, explain the boundary and prepare a separately reviewed remote-build workflo - Network accessline 39
Open the exact project's **Project configuration → General → Visitor access → Project visibility**, and confirm its ID. If Netlify visitor protection blocks the intended public homepage, prepare **Private → Applies to: Previews only** to ex - Network accessline 41
The official Netlify MCP exists, but is not used by the standalone adapter. Keep agent/plugin availability separate from adapter capability. [Netlify Codex/MCP setup](https://docs.netlify.com/build/build-with-ai/agent-setup-guides/set-up-co
skills/golive/references/plan-and-verify.md
- Access to secretsline 456
[Credential-related source omitted] - Network accessline 468
provider lists for the domain and **fails** when they are gone — a zone cleaned up, moved between accounts or restored from a backup leaves the domain reading `verified` while nothing in DNS carries its SPF/DKIM ([#52](https://github.co - Network accessline 469
accounts or restored from a backup leaves the domain reading `verified` while nothing in DNS carries its SPF/DKIM ([#52](https://github.com/mikehasa/golive-skill/issues/52)). It **warns** when a record golive wrote is still inside the 4 - Network accessline 470
carries its SPF/DKIM ([#52](https://github.com/mikehasa/golive-skill/issues/52)). It **warns** when
skills/golive/references/porkbun.md
- Network accessline 8
1. The human opens <https://porkbun.com/account/api>, creates a dedicated API key pair, and - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 12
[Credential-related source omitted] - Network accessline 15
replacement and cancellation. Never put either value in arguments or chat, or inspect the file. 4. Run `doctor`. golive checks the pair without showing values. No CLI or MCP installation is required. The official [Porkbun MCP](https://po - Network accessline 16
4. Run `doctor`. golive checks the pair without showing values. No CLI or MCP installation is required. The official [Porkbun MCP](https://porkbun.com/mcp) is optional and is not how this adapter executes writes. - Network accessline 17
required. The official [Porkbun MCP](https://porkbun.com/mcp) is optional and is not how this - Access to secretsline 44
[Credential-related source omitted]
skills/golive/references/posthog.md
- Access to secretsline 24
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 85
[Credential-related source omitted] - Access to secretsline 86
[Credential-related source omitted] - Access to secretsline 102
[Credential-related source omitted] - Access to secretsline 110
[Credential-related source omitted]
skills/golive/references/resend.md
- Network accessline 10
password itself is write-only); bounce handling remains open. A sending domain's `verified` flag can be stale — a zone cleaned up, moved or restored leaves it reading `verified` with its records gone ([#52](https://github.com/mikehasa/goliv - Network accessline 11
be stale — a zone cleaned up, moved or restored leaves it reading `verified` with its records gone ([#52](https://github.com/mikehasa/golive-skill/issues/52)) — so `email-verified` resolves the records Resend itself lists before passing, an - Network accessline 12
([#52](https://github.com/mikehasa/golive-skill/issues/52)) — so `email-verified` resolves the records - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 25
[Credential-related source omitted] - Access to secretsline 31
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 86
[Credential-related source omitted] - Access to secretsline 94
[Credential-related source omitted]
skills/golive/references/sentry.md
skills/golive/references/stripe.md
- Access to secretsline 71
[Credential-related source omitted]
skills/golive/references/supabase.md
- Access to secretsline 18
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 44
[Credential-related source omitted] - Network accessline 47
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted] - Network accessline 48
https://supabase.com/dashboard/account/tokens with the permissions below. On macOS, run - Access to secretsline 49
[Credential-related source omitted] - Network accessline 59
If using the **explicit-token alternative for an existing throwaway project**, choose only that project and a short expiry. Stage 1 permissions, using the [current Supabase UI labels](https://supabase.com/docs/guides/platform/personal-acces - Network accessline 60
the [current Supabase UI labels](https://supabase.com/docs/guides/platform/personal-access-tokens): - Access to secretsline 86
[Credential-related source omitted] - Network accessline 113
lists projects again and adopts the one new project with that name in that org, keeping the password it sent. If none appears, it fails and asks you to check `https://supabase.com/dashboard/org/<org>` before re-running (a re-run adopts - Network accessline 114
password it sent. If none appears, it fails and asks you to check `https://supabase.com/dashboard/org/<org>` before re-running (a re-run adopts it by name once it appears). Then it waits until the project is healthy (usually 1–3 minutes - Network accessline 115
`https://supabase.com/dashboard/org/<org>` before re-running (a re-run adopts it by name once it - Network accessline 350
`docs/VALIDATION.md`. What that run cannot show: the click in the inbox (golive never reads one), and whether the message was ever delivered — its HTTP 200s are the provider accepting the send, and the run's sending domain was the subject o - Network accessline 351
whether the message was ever delivered — its HTTP 200s are the provider accepting the send, and the run's sending domain was the subject of [#52](https://github.com/mikehasa/golive-skill/issues/52). A separate `verify` still skips the check - Network accessline 352
run's sending domain was the subject of [#52](https://github.com/mikehasa/golive-skill/issues/52). - Network accessline 433
vars; golive doesn't write them. - **Don't push `supabase/config.toml` to production blindly.** It usually has `site_url = "http://127.0.0.1:3000"` and localhost redirects; pushing that breaks sign-in. - Network accessline 434
- **Don't push `supabase/config.toml` to production blindly.** It usually has `site_url = "http://127.0.0.1:3000"` and localhost redirects; pushing that breaks sign-in. - **Transaction pooler (port 6543)** has no prepared statements: Pris - Network accessline 435
`site_url = "http://127.0.0.1:3000"` and localhost redirects; pushing that breaks sign-in. - Access to secretsline 448
[Credential-related source omitted]
skills/golive/references/uptimerobot.md
- Network accessline 7
official API contract behind it (checked 2026-10-03) — nothing here is an observed live result. The API surface encoded is UptimeRobot's **v2** API (uptimerobot.com/api/legacy): form-encoded POSTs to `https://api.uptimerobot.com/v2/getAccou - Network accessline 8
API surface encoded is UptimeRobot's **v2** API (uptimerobot.com/api/legacy): form-encoded POSTs to `https://api.uptimerobot.com/v2/getAccountDetails`, `getMonitors` (paginated by `offset`/`limit`/`total`, page max 50; `monitors=<id>` filte - Network accessline 9
`https://api.uptimerobot.com/v2/getAccountDetails`, `getMonitors` (paginated by - Access to secretsline 12
[Credential-related source omitted] - Access to secretsline 28
[Credential-related source omitted] - Access to secretsline 113
[Credential-related source omitted]
skills/golive/references/vercel.md
- Network accessline 23
approved scope is bound to the plan; changing it requires a new plan and explicit approval. 2. **Token (alternative to `vercel login`, not to the CLI).** The human creates a **team-scoped token with an expiry** at https://vercel.com/acco - Network accessline 24
2. **Token (alternative to `vercel login`, not to the CLI).** The human creates a **team-scoped token with an expiry** at https://vercel.com/account/tokens. On macOS, run `credentials --prompt VERCEL_TOKEN --json` so they enter it in - Network accessline 25
https://vercel.com/account/tokens. On macOS, run `credentials --prompt VERCEL_TOKEN --json` so - Access to secretsline 89
[Credential-related source omitted]
skills/golive/release.json
- Network accessline 4
"version": "0.1.0-alpha.9", "source": { "repository": "https://github.com/mikehasa/golive-skill", - Network accessline 5
"source": { "repository": "https://github.com/mikehasa/golive-skill", "ref": "v0.1.0-alpha.9" - Network accessline 6
"repository": "https://github.com/mikehasa/golive-skill",
skills/golive/scripts/golive.mjs
- Executable scriptline 1
#!/usr/bin/env node - Possible obfuscationline 2818
const str4 = atob(src.replace(/[\n\r]/g, "")); - Access to secretsline 8036
[Credential-related source omitted] - Access to secretsline 8039
[Credential-related source omitted] - Access to secretsline 8076
[Credential-related source omitted] - Access to secretsline 8078
[Credential-related source omitted] - Access to secretsline 8079
[Credential-related source omitted] - Access to secretsline 8081
[Credential-related source omitted] - Access to secretsline 8082
[Credential-related source omitted] - Access to secretsline 8089
[Credential-related source omitted] - Access to secretsline 8100
[Credential-related source omitted] - Access to secretsline 8118
[Credential-related source omitted] - Access to secretsline 8124
[Credential-related source omitted] - Access to secretsline 8125
[Credential-related source omitted] - Access to secretsline 8126
[Credential-related source omitted] - Access to secretsline 8127
[Credential-related source omitted] - Access to secretsline 8128
[Credential-related source omitted] - Access to secretsline 8129
[Credential-related source omitted] - Access to secretsline 8137
[Credential-related source omitted] - Network accessline 8143
import { join as join9 } from "node:path"; function tokenHelp() { return `At https://supabase.com/dashboard/account/tokens, create a token scoped to the existing project and the operations needed (API Keys and API Key Secrets Read to reve - Network accessline 8144
function tokenHelp() { return `At https://supabase.com/dashboard/account/tokens, create a token scoped to the existing project and the operations needed (API Keys and API Key Secrets Read to reveal keys; Auth Config Read to inspect auth, - Network accessline 8145
return `At https://supabase.com/dashboard/account/tokens, create a token scoped to the existing project and the operations needed (API Keys and API Key Secrets Read to reveal keys; Auth Config Read to inspect auth, plus Auth Config and Proj - Access to secretsline 8171
[Credential-related source omitted] - Network accessline 8206
const msg = e instanceof Error ? e.message : String(e); if (/command not found|ENOENT/.test(msg)) { throw new SupabaseError(`${what}: the supabase CLI is not installed and SUPABASE_ACCESS_TOKEN is not set. Either install the CLI ( - Network accessline 8207
if (/command not found|ENOENT/.test(msg)) { throw new SupabaseError(`${what}: the supabase CLI is not installed and SUPABASE_ACCESS_TOKEN is not set. Either install the CLI (https://supabase.com/docs/guides/cli) and ${LOGIN_HELP} (pre - Network accessline 8208
[Credential-related source omitted] - Access to secretsline 8208
[Credential-related source omitted] - Network accessline 8241
init_credentials(); init_supabase_credentials(); API = "https://api.supabase.com/v1"; - Network accessline 8242
init_supabase_credentials(); API = "https://api.supabase.com/v1"; TOKEN_ENV = "SUPABASE_ACCESS_TOKEN"; - Network accessline 8243
API = "https://api.supabase.com/v1"; - Access to secretsline 8244
[Credential-related source omitted] - Access to secretsline 8354
[Credential-related source omitted] - Access to secretsline 8382
[Credential-related source omitted] - Access to secretsline 8385
[Credential-related source omitted] - Network accessline 8493
return null; } return ref4 ? { ref: ref4, url: `https://${ref4}.supabase.co` } : null; - Network accessline 8494
} return ref4 ? { ref: ref4, url: `https://${ref4}.supabase.co` } : null; } - Network accessline 8495
return ref4 ? { ref: ref4, url: `https://${ref4}.supabase.co` } : null; - Network accessline 8525
isCaptcha = (code, detail) => /captcha|challenge/i.test(`${code ?? ""} ${detail}`); confirmedOf = (u) => Boolean(str(u.email_confirmed_at) ?? str(u.confirmed_at)); base = (ref4) => `https://${ref4}.supabase.co/auth/v1`; - Network accessline 8526
confirmedOf = (u) => Boolean(str(u.email_confirmed_at) ?? str(u.confirmed_at)); base = (ref4) => `https://${ref4}.supabase.co/auth/v1`; } - Network accessline 8527
base = (ref4) => `https://${ref4}.supabase.co/auth/v1`; - Access to secretsline 8573
[Credential-related source omitted] - Access to secretsline 8589
[Credential-related source omitted] - Access to secretsline 8593
[Credential-related source omitted] - Network accessline 8735
} function notAdoptable(p, home) { if (p.status && PAUSED.has(p.status)) return `it is paused (status ${p.status}); restore it at https://supabase.com/dashboard/project/${p.id} first (restoring a free project costs nothing)`; - Network accessline 8736
function notAdoptable(p, home) { if (p.status && PAUSED.has(p.status)) return `it is paused (status ${p.status}); restore it at https://supabase.com/dashboard/project/${p.id} first (restoring a free project costs nothing)`; if (p.status - Network accessline 8737
if (p.status && PAUSED.has(p.status)) return `it is paused (status ${p.status}); restore it at https://supabase.com/dashboard/project/${p.id} first (restoring a free project costs nothing)`; - Network accessline 8738
if (p.status && BROKEN.has(p.status)) return `it is not usable (status ${p.status}); check it at https://supabase.com/dashboard/project/${p.id}`; - Network accessline 8773
async function ensureUsable(ctx, p) { if (p.status && PAUSED.has(p.status)) { throw new SupabaseError(`Supabase project ${p.name} (${p.id}) is paused (status ${p.status}). Restore it at https://supabase.com/dashboard/project/${p.id} ( - Network accessline 8774
if (p.status && PAUSED.has(p.status)) { throw new SupabaseError(`Supabase project ${p.name} (${p.id}) is paused (status ${p.status}). Restore it at https://supabase.com/dashboard/project/${p.id} (free for free projects), wait until it i - Network accessline 8775
throw new SupabaseError(`Supabase project ${p.name} (${p.id}) is paused (status ${p.status}). Restore it at https://supabase.com/dashboard/project/${p.id} (free for free projects), wait until it is active, then re-run.`); - Network accessline 8776
} if (p.status && BROKEN.has(p.status)) { throw new SupabaseError(`Supabase project ${p.name} (${p.id}) is not usable (status ${p.status}). Check it at https://supabase.com/dashboard/project/${p.id}, or choose another project.`); - Network accessline 8777
if (p.status && BROKEN.has(p.status)) { throw new SupabaseError(`Supabase project ${p.name} (${p.id}) is not usable (status ${p.status}). Check it at https://supabase.com/dashboard/project/${p.id}, or choose another project.`); } - Network accessline 8778
throw new SupabaseError(`Supabase project ${p.name} (${p.id}) is not usable (status ${p.status}). Check it at https://supabase.com/dashboard/project/${p.id}, or choose another project.`); - Network accessline 8805
async function freeOrg(ctx, tok) { const slugs = await orgSlugs(ctx, tok); if (!slugs.length) throw new SupabaseError("This Supabase account has no organization. Create one at https://supabase.com/dashboard/new, then re-run."); - Network accessline 8806
const slugs = await orgSlugs(ctx, tok); if (!slugs.length) throw new SupabaseError("This Supabase account has no organization. Create one at https://supabase.com/dashboard/new, then re-run."); const free = await freeOrgs(ctx, tok, slugs - Network accessline 8807
if (!slugs.length) throw new SupabaseError("This Supabase account has no organization. Create one at https://supabase.com/dashboard/new, then re-run."); - Network accessline 8809
if (!free.length) { throw new SupabaseError( `Every Supabase organization here (${slugs.join(", ")}) is on a paid plan, so a new project may cost money (about $10/month of compute). golive will not create it: create the project yo - Network accessline 8810
throw new SupabaseError( `Every Supabase organization here (${slugs.join(", ")}) is on a paid plan, so a new project may cost money (about $10/month of compute). golive will not create it: create the project yourself at https://supaba - Network accessline 8811
`Every Supabase organization here (${slugs.join(", ")}) is on a paid plan, so a new project may cost money (about $10/month of compute). golive will not create it: create the project yourself at https://supabase.com/dashboard/new, then sele - Network accessline 8812
); } if (free.length > 1) throw new SupabaseError(`Several free Supabase organizations (${free.join(", ")}); create the project in the one you want at https://supabase.com/dashboard/new, then select it.`); - Network accessline 8813
} if (free.length > 1) throw new SupabaseError(`Several free Supabase organizations (${free.join(", ")}); create the project in the one you want at https://supabase.com/dashboard/new, then select it.`); return free[0]; - Network accessline 8814
if (free.length > 1) throw new SupabaseError(`Several free Supabase organizations (${free.join(", ")}); create the project in the one you want at https://supabase.com/dashboard/new, then select it.`); - Network accessline 8834
status = await projectStatus(ctx, ref4); if (status === "ACTIVE_HEALTHY") return; if (BROKEN.has(status) || status === "REMOVED" || PAUSED.has(status)) throw new SupabaseError(`Supabase project ${ref4} failed to start (status ${stat - Network accessline 8835
if (status === "ACTIVE_HEALTHY") return; if (BROKEN.has(status) || status === "REMOVED" || PAUSED.has(status)) throw new SupabaseError(`Supabase project ${ref4} failed to start (status ${status}). Check it at https://supabase.com/dashbo - Network accessline 8836
if (BROKEN.has(status) || status === "REMOVED" || PAUSED.has(status)) throw new SupabaseError(`Supabase project ${ref4} failed to start (status ${status}). Check it at https://supabase.com/dashboard/project/${ref4}.`); - Network accessline 8869
const why = sameName2.map((p) => `${p.id}: ${notAdoptable(p, home)}`).join("; "); throw new SupabaseError( `A Supabase project named "${name3}" already exists but golive won't adopt it automatically (${why}). Ask the human which p - Network accessline 8870
throw new SupabaseError( `A Supabase project named "${name3}" already exists but golive won't adopt it automatically (${why}). Ask the human which project to use: to use it, run \`init --project db=<ref>\` and \`plan\` again; to get a - Network accessline 8871
`A Supabase project named "${name3}" already exists but golive won't adopt it automatically (${why}). Ask the human which project to use: to use it, run \`init --project db=<ref>\` and \`plan\` again; to get a new project instead, pick anot - Network accessline 8892
if (!found) { const msg = e instanceof Error ? redact(e.message).slice(0, 300) : "unknown error"; throw new SupabaseError(`Creating the Supabase project did not complete (${msg}) and no new project "${name3}" is listed in ${org} - Network accessline 8893
const msg = e instanceof Error ? redact(e.message).slice(0, 300) : "unknown error"; throw new SupabaseError(`Creating the Supabase project did not complete (${msg}) and no new project "${name3}" is listed in ${org} yet. Check https:// - Network accessline 8894
throw new SupabaseError(`Creating the Supabase project did not complete (${msg}) and no new project "${name3}" is listed in ${org} yet. Check https://supabase.com/dashboard/org/${org} before re-running; a re-run adopts it by name if it appe - Access to secretsline 8929
[Credential-related source omitted] - Access to secretsline 8930
[Credential-related source omitted] - Access to secretsline 8931
[Credential-related source omitted] - Access to secretsline 8936
[Credential-related source omitted] - Access to secretsline 8938
[Credential-related source omitted] - Access to secretsline 8939
[Credential-related source omitted] - Access to secretsline 9013
[Credential-related source omitted] - Access to secretsline 9017
[Credential-related source omitted] - Network accessline 9033
const wantsKeys = requestedKeys === void 0 || requestedKeys.some((k) => k === "supabase.publishableKey" || k === "supabase.secretKey"); const out = { "supabase.url": `https://${ref4}.supabase.co`, - Network accessline 9034
const out = { "supabase.url": `https://${ref4}.supabase.co`, ...wantsKeys ? pickKeys(await listKeys(ctx, ref4)) : {}, - Network accessline 9035
"supabase.url": `https://${ref4}.supabase.co`, - Network accessline 9234
[Credential-related source omitted] - Network accessline 9235
if (schema && schema !== "public") headers["Accept-Profile"] = schema; const res = await ctx.http({ url: `https://${ref4}.supabase.co/rest/v1/${encodeURIComponent(table)}?select=*&limit=1`, headers }); const rows3 = res.status === 200 & - Network accessline 9236
const res = await ctx.http({ url: `https://${ref4}.supabase.co/rest/v1/${encodeURIComponent(table)}?select=*&limit=1`, headers }); - Network accessline 9243
[Credential-related source omitted] - Network accessline 9244
if (schema && schema !== "public") headers["Accept-Profile"] = schema; const res = await ctx.http({ url: `https://${ref4}.supabase.co/rest/v1/${encodeURIComponent(table)}?select=*&limit=1`, headers }); const rows3 = res.status === 200 & - Network accessline 9245
const res = await ctx.http({ url: `https://${ref4}.supabase.co/rest/v1/${encodeURIComponent(table)}?select=*&limit=1`, headers }); - Access to secretsline 9271
[Credential-related source omitted] - Network accessline 9433
init_http(); init_secret(); STRIPE_API = "https://api.stripe.com"; - Network accessline 9434
init_secret(); STRIPE_API = "https://api.stripe.com"; MODE_KEY_ENV = { live: "STRIPE_LIVE_SECRET_KEY", test: "STRIPE_TEST_SECRET_KEY" }; - Network accessline 9435
STRIPE_API = "https://api.stripe.com"; - Network accessline 9538
} if (res.status !== 200) { return { ok: false, howToFix: `Could not reach Stripe with the ${m}-mode key in ${source} (HTTP ${res.status}). Check your network and https://status.stripe.com, then re-run.` }; - Network accessline 9539
if (res.status !== 200) { return { ok: false, howToFix: `Could not reach Stripe with the ${m}-mode key in ${source} (HTTP ${res.status}). Check your network and https://status.stripe.com, then re-run.` }; } - Network accessline 9540
return { ok: false, howToFix: `Could not reach Stripe with the ${m}-mode key in ${source} (HTTP ${res.status}). Check your network and https://status.stripe.com, then re-run.` }; - Network accessline 9863
access: "public", tag: "alpha", registry: "https://registry.npmjs.org/" - Network accessline 9864
tag: "alpha", registry: "https://registry.npmjs.org/" }, - Network accessline 9865
registry: "https://registry.npmjs.org/" - Network accessline 9867
repository: { type: "git", url: "https://github.com/mikehasa/golive-skill.git" - Network accessline 9868
type: "git", url: "https://github.com/mikehasa/golive-skill.git" } - Network accessline 9869
url: "https://github.com/mikehasa/golive-skill.git" - Network accessline 9874
var PRODUCT_NAME = "golive"; var PRODUCT_VERSION = package_default.version; var PUBLIC_REPOSITORY = "https://github.com/mikehasa/golive-skill"; - Network accessline 9875
var PRODUCT_VERSION = package_default.version; var PUBLIC_REPOSITORY = "https://github.com/mikehasa/golive-skill"; var RELEASE_SCHEMAS = { config: 1, state: 1, approval: 1 }; - Network accessline 9876
var PUBLIC_REPOSITORY = "https://github.com/mikehasa/golive-skill"; - Network accessline 10015
import { dirname as dirname2, isAbsolute, join as join2 } from "node:path"; import { randomUUID } from "node:crypto"; var UPDATE_METADATA_URL = "https://raw.githubusercontent.com/mikehasa/golive-skill/main/skills/golive/release.json"; - Network accessline 10016
import { randomUUID } from "node:crypto"; var UPDATE_METADATA_URL = "https://raw.githubusercontent.com/mikehasa/golive-skill/main/skills/golive/release.json"; var TTL = 24 * 60 * 60 * 1e3; - Network accessline 10017
var UPDATE_METADATA_URL = "https://raw.githubusercontent.com/mikehasa/golive-skill/main/skills/golive/release.json"; - Network accessline 10168
import { dirname as dirname3, isAbsolute as isAbsolute2, join as join3, parse, relative, resolve as resolve2, sep } from "node:path"; var PRODUCT = "golive"; var REPOSITORY = "https://github.com/mikehasa/golive-skill"; - Network accessline 10169
var PRODUCT = "golive"; var REPOSITORY = "https://github.com/mikehasa/golive-skill"; var MAX_FILE = 16 * 1024 * 1024; - Network accessline 10170
var REPOSITORY = "https://github.com/mikehasa/golive-skill";
skills/golive/scripts/install-cli.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/golive/scripts/install-lib.mjs
- Executable scriptline 1
Executable file - Network accessline 7
export const PRODUCT = 'golive'; export const REPOSITORY = 'https://github.com/mikehasa/golive-skill'; - Network accessline 8
export const REPOSITORY = 'https://github.com/mikehasa/golive-skill'; - Network accessline 210
} else { if (!isRef(ref)) fail('Select an immutable v-prefixed public version tag with --ref.'); const base = `https://raw.githubusercontent.com/mikehasa/golive-skill/${encodeURIComponent(ref)}/skills/${PRODUCT}/`; - Network accessline 211
if (!isRef(ref)) fail('Select an immutable v-prefixed public version tag with --ref.'); const base = `https://raw.githubusercontent.com/mikehasa/golive-skill/${encodeURIComponent(ref)}/skills/${PRODUCT}/`; const bytes = await fetchB - Network accessline 212
const base = `https://raw.githubusercontent.com/mikehasa/golive-skill/${encodeURIComponent(ref)}/skills/${PRODUCT}/`;
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
No combined signals at this commit.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/golive/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/golive/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/golive/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/golive/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/mikehasa-golive-skill/)