#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

Compare on GitHub

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.

Compare on GitHub

View on GitHubAdd to my skills

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>/
1.4kGitHub stars
69stars in 7 days
1skill in this repository
7commits in 30 days

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

Sep 20, 2026Nov 6, 20261,403

Individual skills in this repository

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 tokens

Always available to the agent

SKILL.md

11,905 tokens

When the skill is activated

Reference documents

51,783 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Start with a verified release
  2. Conversation and progress
  3. Hard rules (never break these)
  4. How the human connects accounts
  5. Troubleshoot, then resume
  6. Flow
  7. More detail (load only what you need)

Scripts executed separately

  • scripts/golive.mjs
  • scripts/install-cli.mjs
  • scripts/install-lib.mjs

Files

  • ../../.claude-plugin/marketplace.jsonasset499 bytes
  • LICENSEasset1,075 bytes
  • SKILL.mdcore51,194 bytes
  • SKILL.mdcore51,194 bytes
  • SKILL.mdcore51,194 bytes
  • THIRD_PARTY_NOTICES.mddoc817 bytes
  • references/cloudflare-dns.mddoc8,084 bytes
  • references/godaddy.mddoc3,949 bytes
  • references/guided.mddoc9,389 bytes
  • references/neon.mddoc4,458 bytes
  • references/netlify.mddoc7,083 bytes
  • references/plan-and-verify.mddoc48,554 bytes
  • references/porkbun.mddoc3,477 bytes
  • references/posthog.mddoc10,450 bytes
  • references/resend.mddoc8,794 bytes
  • references/sentry.mddoc10,941 bytes
  • references/stripe.mddoc13,390 bytes
  • references/supabase.mddoc50,850 bytes
  • references/troubleshooting.mddoc5,291 bytes
  • references/updates.mddoc5,108 bytes
  • references/uptimerobot.mddoc12,637 bytes
  • references/vercel.mddoc13,532 bytes
  • release.jsonasset2,498 bytes
  • scripts/golive.mjsruns1,239,784 bytes
  • scripts/install-cli.mjsruns5,071 bytes
  • scripts/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 GitHub

Skills 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

  1. #688 from Oct 31 to Nov 1
  2. #687 on Nov 2
  3. #688 on Nov 3
  4. #687 on Nov 4
  5. #682 on Nov 5
  6. #683 since Nov 6
32 earlier periods
  1. #921 on Sep 20
  2. #696 on Sep 24
  3. #664 on Sep 25
  4. #657 on Sep 26
  5. #671 on Sep 27
  6. #660 on Sep 28
  7. #672 on Sep 29
  8. #644 on Sep 30
  9. #611 on Oct 1
  10. #615 on Oct 2
  11. #585 on Oct 3
  12. #596 on Oct 4
  13. #601 on Oct 5
  14. #607 from Oct 6 to Oct 7
  15. #636 on Oct 8
  16. #619 on Oct 9
  17. #600 from Oct 10 to Oct 11
  18. #614 on Oct 12
  19. #617 on Oct 13
  20. #630 on Oct 14
  21. #622 on Oct 15
  22. #629 on Oct 16
  23. #612 on Oct 17
  24. #604 on Oct 18
  25. #632 on Oct 19
  26. #642 on Oct 20
  27. #648 on Oct 21
  28. #628 on Oct 22
  29. #623 on Oct 23
  30. #608 on Oct 24
  31. #687 on Oct 25
  32. #690 from Oct 28 to Oct 30

Before you install

Network or broad shell

Automated 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:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/golive/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/golive/scripts/golive.mjs:1 Analysis incomplete: file exceeds text byte budget
  • skills/golive/scripts/golive.mjs:10202 Analysis incomplete: regex work limit reached
Show all 205 signals by file

skills/golive/SKILL.md

  • Access to secretsline 97
    [Credential-related source omitted]
  • Access to secretsline 101
    [Credential-related source omitted]
  • Access to secretsline 111
    [Credential-related source omitted]
  • Access to secretsline 148
    [Credential-related source omitted]
  • Access to secretsline 357
    [Credential-related source omitted]

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

  • Access to secretsline 26
    [Credential-related source omitted]
  • Access to secretsline 89
    [Credential-related source omitted]
  • Access to secretsline 93
    [Credential-related source omitted]
  • Access to secretsline 109
    [Credential-related source omitted]

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 compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/golive/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/golive/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/golive/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard 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.

mikehasa/golive-skill: #683 on hotskills, 1.4k stars

[![mikehasa/golive-skill on hotskills](https://hotskills.dev/badge/mikehasa-golive-skill.svg)](https://hotskills.dev/skill/mikehasa-golive-skill/)