{"id":51332797,"url":"https://github.com/releaseworks/lovable-skill","last_synced_at":"2026-07-02T00:04:31.408Z","repository":{"id":368396614,"uuid":"1284927158","full_name":"releaseworks/lovable-skill","owner":"releaseworks","description":"Releaseworks.ai skill for Lovable","archived":false,"fork":false,"pushed_at":"2026-06-30T11:08:07.000Z","size":24,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-30T12:21:29.543Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/releaseworks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-30T10:16:31.000Z","updated_at":"2026-06-30T11:08:13.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/releaseworks/lovable-skill","commit_stats":null,"previous_names":["releaseworks/lovable-skill"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/releaseworks/lovable-skill","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/releaseworks%2Flovable-skill","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/releaseworks%2Flovable-skill/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/releaseworks%2Flovable-skill/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/releaseworks%2Flovable-skill/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/releaseworks","download_url":"https://codeload.github.com/releaseworks/lovable-skill/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/releaseworks%2Flovable-skill/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35027347,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-01T02:00:05.325Z","response_time":130,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-07-02T00:04:27.476Z","updated_at":"2026-07-02T00:04:31.400Z","avatar_url":"https://github.com/releaseworks.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# releaseworks\n\nThe **Releaseworks Agent Skill** (skill name: `releaseworks`) connects a Lovable\nproject to **Releaseworks AI** — *the safety net behind every great Lovable\nbuild* — and manages the integration end to end, both initial setup and ongoing\nuse. Releaseworks gives a Lovable project four things; this skill wires up the\nparts that need project access:\n\n- **Set up Backup + Monitoring** — link the project for around-the-clock uptime\n  **Monitoring** **and** deploy the `rw-backup` Supabase Edge function for\n  vault-grade **Backups** (every version, row, and asset; export/restore; 30-day\n  retention), in one task.\n- **Send the codebase for App Health \u0026 Architecture** — package the codebase and\n  send it through the project's `rw-sync` Edge function (which holds the\n  credentials and relays the upload), so the script needs no Releaseworks secret.\n  Releaseworks then scans it for security/performance/readability issues (**App\n  Health**) and maps how the app fits together (**Architecture**). Re-run any time\n  to refresh both.\n- **Remove** — uninstall the integration (delete the function + secrets).\n\nThe skill is executed by the Lovable agent — Lovable has access to the project's\nSupabase, so it creates the function, sets secrets, and deploys. Releaseworks\nitself never touches the customer's database.\n\n## Setup flow\n\nThe user copies a short setup prompt from Releaseworks (Settings → Connect\nLovable) that contains a `link_token` and tells Lovable to run this skill.\nLovable then follows the **Setup** steps in [`SKILL.md`](SKILL.md):\n\n1. Collect the project's id / name / primary domain.\n2. `POST /api/public/hooks/link-project` → links the project and returns the\n   backup credentials (`source_id`, `token`, `public_key`, `callback_url`,\n   `callback_token`).\n3. Write `supabase/functions/rw-backup/*` from [`assets/rw-backup/`](assets/rw-backup).\n4. Set Supabase secrets `RW_SOURCE_ID`, `RW_TOKEN`, `RW_PUBLIC_KEY`.\n5. Deploy `rw-backup` with JWT verification disabled.\n6. `POST` the deployed URL to `callback_url` → Releaseworks records it and runs\n   the first verification backup.\n\nThe only secret the user handles is the short-lived `link_token`. The per-source\n`token` flows machine-to-machine into Supabase secrets and is never committed.\n\nOngoing actions (sending code, removing the integration) are separate sections in\n[`SKILL.md`](SKILL.md) and reuse the same per-project config.\n\n## What's in here\n\n```\nSKILL.md            the agent instructions (the skill itself)\nscripts/            deterministic shell scripts for the HTTP API calls (curl + jq)\nassets/rw-backup/   Edge function Releaseworks pulls backups from (verbatim)\nassets/rw-sync/     Edge function that relays codebase uploads (verbatim)\nreference/          vendored edge-function contract (the interface spec)\ntest/               conformance.sh — drift checks for the assets + SKILL.md\n```\n\nThe HTTP calls the skill makes (linking the project, reporting the function URL)\nare encapsulated in `scripts/` rather than free-form requests, so they behave\nidentically every run: strict bash, JSON built/validated with `jq`, non-zero exit\nwith the error on any HTTP failure. The scripts require `curl` and `jq`.\n\nThis repo **owns the `rw-backup` Edge function source**. The\n[`ai2p-backend`](https://github.com/releaseworks/ai2p-backend) repo owns the\n**interface** — [`reference/edge-function-contract.md`](reference/edge-function-contract.md)\nis vendored from there. `test/conformance.sh` fails if the bundled function or\nSKILL.md drifts from the contract (canonical signing string, headers, DER→raw\nP-256 signatures, the three secret names, the ±300s window, the JWT guardrail).\n\n## Development\n\nNo toolchain — it's bash scripts, Deno Edge-function assets, and markdown. Run\nthe drift checks with:\n\n```bash\n./test/conformance.sh\n```\n\nThe `assets/` files are **Deno** Edge-function code (they import from `https://…`\nand use `Deno.*`); they're shipped verbatim.\n\n## Delivery\n\nPublished as an installable Agent Skill (agentskills.io-style). If a host can't\ninstall skills yet, `SKILL.md` is written to double as a self-contained prompt:\nits steps are explicit enough to paste directly, with the Edge-function source\nfetched from this repo's `assets/rw-backup/`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freleaseworks%2Flovable-skill","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freleaseworks%2Flovable-skill","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freleaseworks%2Flovable-skill/lists"}