---
title: "Vibe Coding Rescue：修复你用 AI 搭的应用"
canonical: https://wavect.io/zh/services/vibe-coding-rescue/
language: zh
description: "在你的 vibe-coded 应用于生产环境崩溃之前修复它。我们审计并加固来自 Lovable、Bolt、Cursor、Replit 和 Claude Code 的代码：堵住安全漏洞、补齐测试、安全上线。范围固定，资深工程师。"
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

Vibe Code Rescue

# Vibe Coding Rescue：在你用 AI 搭的应用崩溃前修复它

用 Lovable、Bolt、Cursor、Replit 或 Claude Code 搭的，现在在关键处崩了？我们读那份模型自己都没读过的代码，堵住安全和数据漏洞，补上测试，交回一个对真实用户安全的版本。范围固定，资深工程师，绝不为重写而重写。

- 已交付 75+ 产品
- 10+ 年经验
- No-Bullshit 保证

// 01

## vibe-coded 应用会在哪里崩

45% **的 AI 生成代码会引入一个安全漏洞** ([Veracode, 2025](https://www.veracode.com/resources/analyst-reports/2025-genai-code-security-report/))

演示能跑。这就是陷阱。用 Lovable、Bolt、Cursor、Replit 或 Claude Code 搭的应用看着完工了，却恰恰在演示从不看的地方失败：授权、数据访问、支付，以及没人提过的异常路径。修法是已知且乏味的，这正是好消息：

- ✓ - **失效的访问控制。** 用户 A 能读到用户 B 数据的那类 bug：行级安全被关掉、缺少授权检查、任何人都能绕过的客户端鉴权。
- ✓ - **密钥暴露在外。** API 密钥被提交进仓库，预发和生产共用一个数据库，日志泄露令牌和个人数据。
- ✓ - **会说谎的支付。** 在演示里看着没问题、在生产中却悄悄漏钱的 webhook 处理、退款流程和订阅状态。

// 02

## 两种切入方式

Vibe Code 审计

对模型写的、你可能从未看过的代码做一次范围固定的通读。我们梳理架构，按严重程度为每个发现打分，交回一份按优先级排列的清单：该修什么、按什么顺序修。通常几天，且即便你想自己动手修，它也自成一体。

全面救援

我们接手这些发现并动手修：堵住安全和数据漏洞，修好支付与那些没人问过的异常路径，补上一套回归测试，并接好 CI 与监控。你拿回的是一个对真实用户安全的版本，而不是一份满是抱怨的 PDF。

// 03

## 一次救援如何进行

每次合作都走同一条有纪律的路径，这样就不会有东西被误上线，也不会漏掉关键环节。

01

### 审计

我们通读代码库，梳理架构，扫描 AI 工具惯常留下的安全、数据与扩展性缺口。

02

### 分诊

按严重程度排序发现，再对生成的代码给出诚实的保留还是重建判断，而不是反射性地把它丢掉。

03

### 加固

堵住失效的访问控制与泄露的密钥，修好支付与异常路径，让生产与预发真正分开。

04

### 测试

一套回归测试，让下一次 AI 改动不会悄悄弄坏已经能用的东西。

05

### 上线

CI、可观测性与回滚，让你及早看到故障，并能在几秒内撤销一次糟糕的部署。

06

### 交接

运行手册加一次讲解。你拥有并运行它；维护是可选的，不是内置的。

// 04

## 每次救援都包含

诚实的保留还是重建判断

我们不为重写而重写。若生成的代码在结构上扎实，我们加固后继续。若某个模块已无可救药，我们会直说，并规划能修好它的最小重建，而不是按月计费的推倒重来。

交接，而非锁定

每次救援都以文档、测试和一次讲解收尾，让你的团队能运行并扩展它。持续维护是可选项，绝不是我们悄悄埋进去的依赖。

// 05

## 一次救援覆盖什么

完整的生产就绪通检，与我们审视一切 vibe coding 产物时所用的是同一副镜头。

- ✓ - **每个端点上的授权。** 演示从不暴露的那类 bug，逐条路由地检查。
- ✓ - **输入校验与异常路径。** 提示词从没问过的那些情况，在用户发现之前先堵上。
- ✓ - **密钥与环境。** 密钥移出仓库，预发和生产真正分开。
- ✓ - **以关闭态失败的错误处理。** 不把堆栈信息泄露给用户，也不悄悄吞掉故障。
- ✓ - **可观测性与回滚。** 故障发生时你能看到，也能撤销一次糟糕的部署。
- ✓ - **一套回归测试。** 让下一次 AI 改动不会悄悄弄坏已经能用的东西。

// 06

## 我们从这些工具里救援

用其中之一搭的？我们读过它的产物，知道它在哪偷工减料。

Lovable Bolt Cursor Replit v0 Windsurf Claude Code ChatGPT Supabase Firebase Next.js Vercel

// 07

## 我们如何做一次救援

- ✓ - **范围固定，白纸黑字。** 我们按书面的承揽合同工作，并在法律上有义务交付它。没有开着的计时表，也不会在账单开始后范围就漂移。
- ✓ - **保留有用的部分。** AI 生成的代码并非天生就是垃圾。我们加固扎实的部分，只替换真正非走不可的，让你为修复付费，而不是为面子重写付费。
- ✓ - **只用资深工程师。** 读你代码的人已交付生产系统多年，清楚 AI 工具会在哪里偷工减料。没有拿你的代码练手的新手。
- ✓ - **最终归你所有。** 文档、一套回归测试，加一次讲解。目标是让你无需长期依赖我们就能运行这个产品。

从零重建，还是救回你手上的东西？

通常是救回。

彻底重建要花你或许没有的好几个月。多数 vibe-coded 应用需要的是加固，而不是推倒。

// 实证

## 用案例说话，而不是承诺

### [Twinsoft AI](/zh/case-studies/twinsoft-ai/)
- **Status:** 上线
- **Outcome:** 2周 - 到可销售的MVP
- **Summary:** 把 vibe-coded 原型推到企业试点就绪，没有走捷径。
- **Stack:** Python / Flask, LLMs, Terraform

### [PromptID](/zh/case-studies/promptid/)
- **Status:** 上线
- **Outcome:** 6周 - 从零到生产
- **Summary:** AI 原生评估平台，在压缩的市场压力下 6 周内从零到生产。
- **Stack:** NestJS, NextJS, LangChain

### [Hyperstate AI](/zh/case-studies/hyperstate-ai/)
- **Status:** 已关闭
- **Outcome:** GPU 单体 - → 微服务
- **Summary:** 把 GPU 重负载的单体拆成编排化的服务，把自托管 ML 库换成可扩展的替代方案，延迟和成本双降，部署也变成例行公事。
- **Stack:** Python / Django, OpenAI API, Neo4j

这些是精选项目，并非我们的全部作品。自 2018 年以来我们已交付 75+ 款产品。

### 客户怎么说

过去 4 年里与 Wavect 一起建立了多家风投支持的初创公司。 世界一流的团队。他们在探索阶段是出色的思想伙伴，在开发阶段是可靠且可预测的工程师，整体上也是非常棒的合作伙伴。强烈推荐与这个团队合作你的下一个项目。" data-quote-original=" **Built multiple venture-backed startups with Wavect over 4 years.** World class team. They're great thought partners while in discovery, reliable and predictable engineers while in dev, and just generally great guys to work with. Highly highly recommend you work with this team for your next project." data-original-lang=en>

Google

**过去 4 年里与 Wavect 一起建立了多家风投支持的初创公司。** 世界一流的团队。他们在探索阶段是出色的思想伙伴，在开发阶段是可靠且可预测的工程师，整体上也是非常棒的合作伙伴。强烈推荐与这个团队合作你的下一个项目。

查看更多 →

Joseph Miller

已翻译 · 点击查看原文

准时交付所有工作，即使时间紧迫。 专业标准与协作工作关系的完美平衡。" data-quote-original=" **Delivered all work on time, even under tight deadlines.** The perfect balance between professional standards and a collaborative working relationship." data-original-lang=en>

Trustpilot

**准时交付所有工作，即使时间紧迫。** 专业标准与协作工作关系的完美平衡。

查看更多 →

MyDevConnect Team

已翻译 · 点击查看原文

认识 Kevin 是一件非常令人兴奋的事！ 他对自己关注的话题充满热情，是一个愿意走多一步的人。他的思考方式以及他对工作的热忱令人印象深刻。他具备整体视角，不只局限于技术话题。他最大的优势在于：他了解客户的需求，并能在无需多问的情况下理解它们。 他持续掌握最新知识的意愿也体现在日常工作中。鉴于 web3 领域高度动态，这是一种必要，而 Kevin 处理得游刃有余。" data-quote-original=" **Getting to know Kevin was very exciting!** He is burning for his topics and is a guy who is walking the extra mile. His thoughts and passioned approach for the work is absolutely amazing. He has a holistic view and is not stuck in tech topics at all. His huge strength is that he knows the customer's requirements and understands them without needing to ask what they want. Also his will to constantly get to know the latest knowledge is felt in the daily work. Since the web3 area is a highly dynamic one this is a necessity and Kevin is coping with it like a charm." data-original-lang=en>

LinkedIn

**认识 Kevin 是一件非常令人兴奋的事！**他对自己关注的话题充满热情，是一个愿意走多一步的人。他的思考方式以及他对工作的热忱令人印象深刻。他具备整体视角，不只局限于技术话题。他最大的优势在于：他了解客户的需求，并能在无需多问的情况下理解它们。 他持续掌握最新知识的意愿也体现在日常工作中。鉴于 web3 领域高度动态，这是一种必要，而 Kevin 处理得游刃有余。

查看更多 →

Erhard Dinhobl AI System Engineer

已翻译 · 点击查看原文

独立平台评分：5.0/5（Clutch） [查看评价](https://clutch.co/profile/wavect-gmbh#reviews)

[![Clutch Top Software Testing Company in Austria 2026 award for Wavect](/img/awards/clutch-top-software-testing-company-austria-2026_hu_9895124a40a53be7.webp) Clutch 认证 · 2026 Top Software Testing Company in Austria 查看我们的 Clutch 主页](https://clutch.co/profile/wavect-gmbh) [![Clutch Top Software Developers in Austria 2026 award for Wavect](/img/awards/clutch-top-software-developers-austria-2026_hu_1bc9fdf2116cca69.webp) Clutch 认证 · 2026 Top Software Developers in Austria 查看我们的 Clutch 主页](https://clutch.co/profile/wavect-gmbh)

## 常见问题

关于修复 vibe-coded 与 AI 生成应用的诚实回答

### 每周取消具体如何运作？

通过一条消息即可结束任何一周。无通知期、无离场访谈、无附加条款。我们按周开票，你最多承诺当前一周。

### 如果工作没让我惊艳怎么办？

合同里就是这么写的：告诉我们，我们会退还那一周的费用。无需问询、无需争议账单、无需升级电话。唯一规则：退款适用于最近一周。

### 为什么你们不计工时？

因为工时是错误的衡量标准。如果我们以计费工时为优化目标，就不是在为你的成果优化。我们的协议更简单：每一周，我们都赢得下一周。如果做不到，你不付款。我们可以投入零小时或六十小时。重要的是你是否被惊艳。

### 「期望脱离现实」是什么意思？

我们和操盘手合作，不和买彩票的人合作。如果某个要求需要打破物理定律、法律或第三方系统，我们会明说，谈不拢就走人。这个保证是双向的：你可以任何一周解雇我们，我们也可以解雇自己。

### 我该怎么修一个 vibe-coded 应用？

从审计开始，而不是重写。我们对 [vibe-coded](/zh/glossary/vibe-coded-software/) 代码做结构化通读，按严重程度为发现打分，交回一个带测试的已修分支，而不是一份抱怨清单。完整清单见 [vibe-coded 软件审计](/zh/blog/vibe-coded-software-audit/) 和 [我们的生产就绪清单](/zh/blog/vibe-code-production-readiness-checklist/) 。

### Lovable、Bolt 或 Cursor 的代码能直接上生产吗？

通常需要额外工作才行。Veracode 的研究发现 [AI 生成代码](/zh/glossary/ai-generated-code/) 约有 45% 的情况会引入一个安全漏洞，而这些缺口集中在授权、密钥和支付。这些工具做原型很棒；缺的部分要到生产才显现。见 [把 Lovable 或 Cursor 原型带上生产](/zh/blog/lovable-cursor-prototype-to-production/) 。

### 我该救回用 AI 搭的 MVP，还是重建它？

通常是救回。彻底重建要花好几个月，而多数 vibe-coded 应用并不需要；代码往往结构没问题，只是缺了生产层。我们会在审计中给出诚实的保留还是重建判断。我们在 [原样上线 vs 先加固](/zh/compare/ship-vibe-coded-as-is-vs-harden/) 中讲解了这个取舍。

### 一次 vibe code rescue 要多少钱？

范围是固定的。审计通常是几天、按固定价；全面救援在审计之后再定范围，那时我们已确切知道要修什么。开工前你会拿到一份带固定价的书面承揽合同，因此没有开着的计时表。见 [一次 vibe-coded 软件审计要多少钱](/zh/blog/vibe-coded-software-audit-cost/) 。

### 一次 vibe code rescue 要多久？

审计通常几天。全面救援按需要加固或重建的量，一般几周，我们会提前把范围和时间表写下来。关键安全修复优先做，因此风险最高的漏洞会尽早堵上，而不是拖到最后。

### 你们在 vibe-coded 应用里最常发现哪些问题？

失效的访问控制（用户 A 能读到用户 B 数据的 bug）、进了仓库的密钥、预发和生产共用一个数据库，以及看着没问题却漏钱的支付逻辑。我们检查授权、输入校验、密钥、错误处理，并补上一套回归测试。完整细节见 [面向 AI 生成代码的 QA](/zh/blog/qa-for-ai-generated-code/) 。

### 你们也处理 Replit、v0 和 Claude Code 的产物吗？

是的。我们救援用 Lovable、Bolt、Cursor、Replit、v0、Windsurf、Claude Code、ChatGPT 及类似 builder 搭的应用，运行在 Supabase、Firebase、Next.js 和 Vercel 等技术栈上。若你接手了一份代码库、不清楚它是用什么搭的，我们能从代码里判断出来。正在收购一个？见 [对 Lovable、Bolt 或 Replit 应用的尽职调查](/zh/blog/lovable-bolt-replit-app-due-diligence/) 。

// 更多

## 更多 人工智能

### [AI Agents & Products](/zh/services/artificial-intelligence/)

我们做能扛住生产的 AI agent、agentic SaaS 和 LLM 应用，并在 AI 是错的工具时直说。

### [团队 AI 落地](/zh/services/ai-enablement/)

在你自己的团队里落地 AI：工作坊加上在你的基础设施上的全托管搭建。不做摆设。

### [Internet of Things](/zh/services/internet-of-things/)

LoRaWAN 基础设施、多厂商设备集成、解码器与数据管道。只做软件侧，不做固件。

// 了解我们

## 了解我们

长期关系，而非快速收益。

[![博客](/img/services/gtku_blogs_hu_d7e3f659443e93f9.webp) 阅读我们的博客](/zh/blog/overview/) [![No BS Around Tech 播客](/img/services/gtku_podcast_hu_aac94ba51d8a6f9f.webp) No BS Around Tech 播客](/zh/#trust-podcast) [![图集](/img/services/gtknu_gallery_hu_451025d2d15b7558.webp) 感受一下我们的氛围](/zh/#image-gallery)

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/zh/services/vibe-coding-rescue/#service",
      "@type": "Service",
      "areaServed": [
        {
          "@type": "Country",
          "name": "Austria"
        },
        {
          "@type": "Place",
          "name": "Worldwide"
        }
      ],
      "category": "人工智能",
      "description": "在你的 vibe-coded 应用于生产环境崩溃之前修复它。我们审计并加固来自 Lovable、Bolt、Cursor、Replit 和 Claude Code 的代码：堵住安全漏洞、补齐测试、安全上线。范围固定，资深工程师。",
      "name": "Vibe Coding Rescue：在你用 AI 搭的应用崩溃前修复它",
      "provider": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "serviceType": "Vibe Coding Rescue",
      "url": "https://wavect.io/zh/services/vibe-coding-rescue/"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/",
          "name": "首页",
          "position": 1
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/services/overview/",
          "name": "服务",
          "position": 2
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/services/overview/#ai",
          "name": "人工智能",
          "position": 3
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/services/vibe-coding-rescue/",
          "name": "Vibe Coding Rescue",
          "position": 4
        }
      ]
    },
    {
      "@id": "https://wavect.io/zh/services/vibe-coding-rescue/#webpage",
      "@type": "WebPage",
      "description": "在你的 vibe-coded 应用于生产环境崩溃之前修复它。我们审计并加固来自 Lovable、Bolt、Cursor、Replit 和 Claude Code 的代码：堵住安全漏洞、补齐测试、安全上线。范围固定，资深工程师。",
      "inLanguage": "zh",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "mainEntity": {
        "@id": "https://wavect.io/zh/services/vibe-coding-rescue/#service"
      },
      "name": "Vibe Coding Rescue：在你用 AI 搭的应用崩溃前修复它",
      "url": "https://wavect.io/zh/services/vibe-coding-rescue/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "通过一条消息即可结束任何一周。无通知期、无离场访谈、无附加条款。我们按周开票，你最多承诺当前一周。"
      },
      "name": "每周取消具体如何运作？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "合同里就是这么写的：告诉我们，我们会退还那一周的费用。无需问询、无需争议账单、无需升级电话。唯一规则：退款适用于最近一周。"
      },
      "name": "如果工作没让我惊艳怎么办？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "因为工时是错误的衡量标准。如果我们以计费工时为优化目标，就不是在为你的成果优化。我们的协议更简单：每一周，我们都赢得下一周。如果做不到，你不付款。我们可以投入零小时或六十小时。重要的是你是否被惊艳。"
      },
      "name": "为什么你们不计工时？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "我们和操盘手合作，不和买彩票的人合作。如果某个要求需要打破物理定律、法律或第三方系统，我们会明说，谈不拢就走人。这个保证是双向的：你可以任何一周解雇我们，我们也可以解雇自己。"
      },
      "name": "「期望脱离现实」是什么意思？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "从审计开始，而不是重写。我们对 vibe-coded 代码做结构化通读，按严重程度为发现打分，交回一个带测试的已修分支，而不是一份抱怨清单。完整清单见 vibe-coded 软件审计 和 我们的生产就绪清单。"
      },
      "name": "我该怎么修一个 vibe-coded 应用？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "通常需要额外工作才行。Veracode 的研究发现 AI 生成代码 约有 45% 的情况会引入一个安全漏洞，而这些缺口集中在授权、密钥和支付。这些工具做原型很棒；缺的部分要到生产才显现。见 把 Lovable 或 Cursor 原型带上生产。"
      },
      "name": "Lovable、Bolt 或 Cursor 的代码能直接上生产吗？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "通常是救回。彻底重建要花好几个月，而多数 vibe-coded 应用并不需要；代码往往结构没问题，只是缺了生产层。我们会在审计中给出诚实的保留还是重建判断。我们在 原样上线 vs 先加固 中讲解了这个取舍。"
      },
      "name": "我该救回用 AI 搭的 MVP，还是重建它？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "范围是固定的。审计通常是几天、按固定价；全面救援在审计之后再定范围，那时我们已确切知道要修什么。开工前你会拿到一份带固定价的书面承揽合同，因此没有开着的计时表。见 一次 vibe-coded 软件审计要多少钱。"
      },
      "name": "一次 vibe code rescue 要多少钱？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "审计通常几天。全面救援按需要加固或重建的量，一般几周，我们会提前把范围和时间表写下来。关键安全修复优先做，因此风险最高的漏洞会尽早堵上，而不是拖到最后。"
      },
      "name": "一次 vibe code rescue 要多久？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "失效的访问控制（用户 A 能读到用户 B 数据的 bug）、进了仓库的密钥、预发和生产共用一个数据库，以及看着没问题却漏钱的支付逻辑。我们检查授权、输入校验、密钥、错误处理，并补上一套回归测试。完整细节见 面向 AI 生成代码的 QA。"
      },
      "name": "你们在 vibe-coded 应用里最常发现哪些问题？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "是的。我们救援用 Lovable、Bolt、Cursor、Replit、v0、Windsurf、Claude Code、ChatGPT 及类似 builder 搭的应用，运行在 Supabase、Firebase、Next.js 和 Vercel 等技术栈上。若你接手了一份代码库、不清楚它是用什么搭的，我们能从代码里判断出来。正在收购一个？见 对 Lovable、Bolt 或 Replit 应用的尽职调查。"
      },
      "name": "你们也处理 Replit、v0 和 Claude Code 的产物吗？"
    }
  ],
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [
      ".faq-question",
      ".faq-answer"
    ]
  }
}
```
