客户端 Lua AI 使用探索
RTCC
本文记录 VAS 团队在 Lua 场景下探索 AI 辅助开发的完整实践:从多方案验证到最终确立「模板 + Rules + 指令 + CCD」四层体系(RTCC),以及在缺少模板时的智能进化方案 RTCC Pro。
一、概述
背景
在 AI 时代下,学习使用 AI 不仅是应用新技术,更是一场需要主动拥抱的认知升级。VAS 业务在日常版本开发中,Lua 的使用场景较多,在 Lua 中探索 AI 的使用,有助于提升团队研发效率。
目标
核心目标是通过自动化工具链,实现从产品需求文档(PRD)到 Lua 代码的智能转化,以及从设计工具(如 Figma)到 UI 代码的自动生成。
二、工程要求
在实施过程中,高度关注团队协作所需的工程要素,确保系统的稳定性、代码的一致性、可读性、维护性以及扩展性。
| 要求 | 说明 |
|---|---|
| 规范化 | 建立统一的代码规范、开发流程和文档标准,确保 AI 生成的代码符合项目要求(代码规范、流程规范、文档规范)。 |
| 易用性 | 降低使用门槛,实现零配置或最小配置即可使用,提供指令交互方式(PRD 一键转代码、Figma 一键转代码、批量处理)。 |
| 准确性 | 确保 AI 生成的代码准确理解需求,正确实现功能,减少人工修正工作(语义理解、上下文感知、错误检测)。 |
| 拓展性 | 提供灵活的扩展机制,支持自定义规则、插件和集成,适应不同项目需求(模板简易生成、规则简易拓展、配置开放)。 |
| 智能化 | 利用 AI 技术实现智能决策和自动化处理,减少人工干预(智能决策、自动选择最佳代码模式)。 |
| 自主决策 | AI 能够基于上下文和规则做出合理的代码生成决策,选择最优实现方案(多种方案对比、冲突解决)。 |
| 自主行动 | AI 不仅能够生成代码,还能执行相关操作,如文件创建、测试数据配置、入口文件配置等。 |
三、方案设计
多方案验证尝试
组内不同的人员,按照各自的方式探索 AI 在 Lua 中的使用,归纳出以下三种初始方案:
✅ 模板 + Rules
- 快速生成:设计稿到代码只需几分钟
- 架构一致:所有代码遵循相同 MVC 架构
- AI 分析:自动生成对应数据结构和 UI
❌ 局限
- 描述差异:不同开发者描述方式不同
- 控制力弱:没有可控的 plan 流程
- 易用性弱:需要窗口描述需求
✅ 模板 + Rules + 脚本
- 脚本化:命令直接,不受个体差异影响
- 批量生成:快速生成多个类似页面
❌ 局限
- 初次使用需了解系统使用方式
- 脚本维护成本
- 生产差异:没有规范的输入源
✅ 示例 + Rules + 对话
- 配置简单:不需要准备模板/脚本
- 实时迭代:发现问题立即修复
- 灵活性高:可生成任何结构
❌ 局限
- 控制力弱:每次流程不固定
- 上下文限制:超长对话丢失上下文
- 风格统一依赖规则文档
Lua 使用特性
通过梳理 Lua 的使用特点,明确了方案选择的依据:
| 特性 | 说明 |
|---|---|
| 功能独立 | 每个 Lua 页面只负责实现单一特定功能,自包含的完整单元,不依赖任何外部上下文或其它页面状态。 |
| 逻辑简单 | 整体流程基本是二叉树执行链路,基于预设判断条件分流,节点之间完全独立,无任何交互或依赖。 |
| 场景独立 | 每个需求在 Lua 层面都是独立场景,场景间完全隔离,具备高度的模块化和内聚性。 |
| 组件规范 | 采用标准化的组件规范:ListView、CollectionView、ViewPage、Segment 等核心组件。 |
| 样式复用率高 | 不同需求在实现榜单等功能时,展现出极高的样式复用率,通过统一组件构建。 |
最终方案:RTCC 四层体系
模板化的方案能满足所有特征和需求。最终选用最佳实践,抽离出基础部分作为标准化模块,形成 RTCC 四层体系:
模板(Templates)
从最佳实践中抽离基础部分,作为标准化模块。AI 面对类似需求时,参考该标准化模板生成代码,能保证团队使用的一致性、规范化,也能保证代码生成的准确性和可读性。
模板化方案针对三个维度的特征:
- 语言层面:Lua 语法特性、特定桥接(bridge)、封装库(ROC 等)、折叠屏适配
- 要求层面:规范化、准确性、易用性
- 需求特征层面:功能独立、场景独立、组件规范、样式高复用
规则(Rule)
通过 Rules 规则控制体系统一管理各个维度的规范:
- 模版规范:生成规范(命名、元数据、分类)、识别规范(匹配机制)
- 编码规范:命名规范、布局约束(margin、setGravity 等)、特定语法规范(for 循环、size 获取、timeout、toast 等)
- 文件规范:代码存放目录、引用路径、入口文件配置
- 输入规范:文档格式约束、PRD 结构约束、Figma 输出结构约束
指令(Command)
Commands 执行标准化流程,把所有节点串联起来,满足规范化、自主行动、简易性的要求,保证团队内工程化使用的一致性。
设计原则:
- 规范化:所有团队成员遵循相同的命令调用规范,输出格式保持一致
- 自主行动:智能路由,根据输入参数自动识别需要执行的命令
- 易用性:单个命令完成复杂工作流程,友好的进度提示和状态反馈
- 功能独立:每个命令只负责一个特定功能,支持链式调用和组合
sequenceDiagram
participant User as 用户
participant Cursor as Cursor
participant Command as 具体命令
participant Templates as 模板
participant Rules as 规则
participant AI as AI
participant Output as 输出
User->>Cursor: 输入命令及参数
Cursor->>Command: 调用命令实现
Command->>Command: 执行Plan
Command->>Command: 识别input
Command->>Templates: 选择模板
Command->>Rules: 执行规范
Command->>AI: 调用AI
AI->>AI: 调用MCP
AI->>Output: 输出结果
编码配置文档(CCD)
Code Config Document(CCD)是一个结构化的技术配置文档,用于将产品需求文档(PRD)转化为可执行的代码生成配置。作为产品需求与技术实现之间的桥梁,通过标准化的配置格式,实现从需求到代码的自动化生成流程。
目标:
- 需求结构化:将 PRD 中的需求进行逻辑拆分和功能模块化
- 模板映射:为每个功能块匹配对应的代码生成模板
- 配置管理:统一管理代码中的可变信息(类名、URL、参数等)
- 资源整合:支持 UI 资源的输入和管理(图片、Figma 设计稿等)
- 执行指导:为 Command 工具提供清晰的执行指令和逻辑路径
执行步骤: Command 解析 CCD → 加载模板 → 注入配置 → 生成代码 → 整合 UI 资源。
RTCC 方案主要适用于 Lua 小需求场景,例如商城、榜单等功能或活动,而非复杂的纯 Lua 大型项目。
四、RTCC Pro 方案
背景: RTCC 实现了代码的高质量转化,但如果没有 templates 该怎么办?
目的: 在 RTCC 的基础上,增加一套机制,能够在缺少模板的情况下自动学习项目代码,或者 MomoKit 相关 API,从而生成符合规范的代码。
问题背景
现有系统的工作流程:
PRD(Figma) --(rules+command)--> CCD --(rules+command+templates)--> 生成代码
核心问题: 如果 templates/ 目录中没有所需的模板,该怎么办?
- 用户需要生成一个"列表页"
- 但
templates/中没有list_controller_template.lua - 传统流程中断,无法生成代码
方案对比
针对"缺少模板"的问题,评估了 7 种方案:
| 方案 | 思路 | 优点 | 缺点 | 推荐 |
|---|---|---|---|---|
| 方案1 基于 MomoKit API 文档 |
读取 API 文档根据接口定义生成代码 | API 是标准的、完整的;不依赖项目代码质量 | 缺少最佳实践;不知道项目编码规范和业务逻辑处理模式 | ⭐ |
| 方案2 基于项目现有代码 |
使用 codebase_search 搜索项目中的相似实现,学习并生成代码 |
学习项目实际编码风格;包含最佳实践;符合项目规范 | 需要找到合适的参考代码;项目初期可能参考代码不足 | ⭐⭐ |
| 方案3 混合智能方案 |
结合方案1和方案2:项目代码(风格/规范)+ MomoKit API(验证正确性) | 结合两方案优点;更灵活健壮;API 用法经过验证 | 实现相对复杂;需同时维护两个数据源 | ⭐⭐⭐⭐⭐ |
| 方案4 自动提取和演进模板 |
扫描项目代码→聚类分析→自动生成模板→验证优化→版本管理,持续完善模板库 | 自动化;动态更新;基于真实代码;持续完善 | 需要项目已有一定代码量;聚类分析需要一定计算 | ⭐⭐⭐⭐⭐ |
| 方案5 智能推荐 + 交互式生成 |
引导式对话 + 智能推荐参考代码 | 精准匹配;学习成本低;灵活组合 | 需要交互,不适合自动化场景 | ⭐⭐⭐⭐ |
| 方案6 代码库知识图谱 |
构建项目代码的知识图谱,智能推荐最佳组合 | 全局视角;智能推荐;一致性保证 | 实现复杂度高;需大量数据;维护成本高 | ⭐⭐⭐⭐⭐ |
| 方案7 渐进式模板生成 |
每次生成代码时,询问是否保存为模板 | 对用户透明;自动完善模板库 | 需多次交互;初期效果有限 | ⭐⭐⭐ |
通过组合多个方案的优势,构建了一个智能、自动化、可持续演进的代码生成系统。系统不仅能快速生成高质量代码,还能不断从项目中学习和完善,真正实现「越用越快、越用越好」。
五、RTCC vs RTCC Pro 流程对比
RTCC 执行流程
┌─────────────────────────────────────────────────────────────┐
│ RTCC 方案流程 │
└─────────────────────────────────────────────────────────────┘
📋 步骤1:准备输入
PRD/Figma 设计稿
↓
@generate_pr
【指令】.cursor/commands/generate_pr.md
↓
生成 CCD(Code Config Document)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔨 步骤2:代码生成
@generate_code code_templates/inputs/{module}_{page}.md
↓
检查是否有现成模板?
├─ 有 ✅ → 使用模板生成(快速、高质量)
│ 【应用规则】
│ - @syntax_rules, @naming_rules
│ - @layout_rules, @component_rules
│ ↓
│ 生成代码完成 ✅
│
└─ 没有 ⚠️ → 手动处理路径(问题路径)
├──→ AI 尝试猜测如何实现
│ ❌ 没有参考代码搜索机制
│ ❌ 没有继承关系验证
│ - 可能使用错误的 API
│ - 代码质量不稳定
│
└──→ 生成代码质量不佳
❌ 核心问题:
1. 没有系统化的参考代码搜索机制
2. 无法自动识别最佳参考代码
3. 无法验证参考代码的正确性
4. 无法将优质代码沉淀为模板
RTCC Pro 执行流程
┌─────────────────────────────────────────────────────────────┐
│ RTCC Pro 方案 │
└─────────────────────────────────────────────────────────────┘
📋 步骤1:准备输入(同 RTCC)
PRD/Figma 设计稿 → @generate_pr → 生成 CCD
🔨 步骤2:代码生成(智能增强)
检查是否有现成模板?
├─ 有 ✅ → 使用模板生成(快速路径,同 RTCC)
│
└─ 没有 ⭐ → 智能搜索流程(Pro)
↓
┌───────────────────────────────┐
│ 步骤2.1:智能搜索项目代码 │
│ - codebase_search 语义搜索 │
│ - 多维度搜索,自动去重排序 │
│ - 找到 3-5 个最佳参考 │
└───────────────────────────────┘
↓
┌───────────────────────────────┐
│ 步骤2.2:智能分析和推荐 │
│ - 读取参考代码的类定义 │
│ - 验证继承关系 ⭐ │
│ Controller 必须是 MLController
│ Cell 优先选择 MLView │
│ - 计算匹配度得分 │
└───────────────────────────────┘
↓
┌───────────────────────────────┐
│ 步骤2.3:用户交互选择(可选) │
│ - 展示分析结果和推荐理由 │
└───────────────────────────────┘
↓
┌───────────────────────────────┐
│ 步骤2.4:规范化代码生成 ⭐ │
│ - @syntax_rules Lua语法规范 │
│ - @naming_rules 命名规范 │
│ - @layout_rules 布局规范 │
│ - @component_rules 组件规范 │
│ - @code_search_rules 初始化 │
│ - @test_data_rules 测试数据 │
└───────────────────────────────┘
↓
┌───────────────────────────────┐
│ 步骤2.5:自动提取模板 ⭐ │
│ - 询问用户是否保存为模板 │
│ - 提取模板骨架 │
│ - 更新 template_config.json │
│ - 下次直接使用模板 ✨ │
└───────────────────────────────┘
✅ 核心优势:
1. 智能搜索,自动找到最佳参考
2. 验证继承关系,避免使用错误的参考 ⭐
3. 规范化生成,质量稳定
4. 自动沉淀,模板库持续演进
5. 一次投入,长期受益
整体流程概览
📋 输入:PRD/Figma 设计稿
↓
┌───────────────────────────────────┐
│ 步骤1:@generate_pr │
│ - 智能分析设计稿 │
│ - 推断模块名、页面类型、功能需求 │
│ - 提取 UI、数据字段、布局 │
│ - 生成 CCD (Code Config Document) │
└───────────────────────────────────┘
↓
📄 输出:code_templates/inputs/{module}_{page}.md
↓
检查模板?
├─ 有 ✅ → 使用模板生成(快速路径)
│ 【应用 syntax/naming/layout/component 规范】
│ 3秒生成高质量代码 ✅
│
└─ 没有 → 智能搜索流程(Pro)⭐
├─ 智能搜索参考代码(3-5 秒)
├─ 验证继承关系 ⭐ 核心创新
│ Controller 必须是 MLController
│ Cell 优先选择 MLView
├─ 智能推荐最佳匹配
├─ 规范化代码生成
└─ 自动提取模板 ⭐ 下次复用
↓
生成高质量代码 + 保存为模板 ✨
六、待优化问题
Rules 不执行问题
模板审核
团队需要对抽离的模板进行代码审核,保证在结构、功能、语法等层面符合团队使用规范。
复杂 UI 实现效果差
面对复杂的 UI,AI 实现效果差,需要手动 coding。
全新项目使用问题
在没有代码量的新项目中使用结果一般。建议在项目已有一定代码积累(推荐)的情况下使用 RTCC Pro,新项目可先从 RTCC 基础方案开始。