客户端 Lua AI 使用探索
RTCC

本文记录 VAS 团队在 Lua 场景下探索 AI 辅助开发的完整实践:从多方案验证到最终确立「模板 + Rules + 指令 + CCD」四层体系(RTCC),以及在缺少模板时的智能进化方案 RTCC Pro。


一、概述

背景

在 AI 时代下,学习使用 AI 不仅是应用新技术,更是一场需要主动拥抱的认知升级。VAS 业务在日常版本开发中,Lua 的使用场景较多,在 Lua 中探索 AI 的使用,有助于提升团队研发效率。

Lua AI 目标
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 等核心组件。
样式复用率高不同需求在实现榜单等功能时,展现出极高的样式复用率,通过统一组件构建。
Lua 逻辑流程
Lua 执行链路:整体流程为二叉树结构,节点独立、无交互依赖
Lua 架构图
Lua 架构图:Business 业务层 → 各独立场景模块

最终方案:RTCC 四层体系

模板化的方案能满足所有特征和需求。最终选用最佳实践,抽离出基础部分作为标准化模块,形成 RTCC 四层体系

R
Rules
规范约束体系
T
Templates
标准化代码模板
C
Commands
自动化执行指令
C
CCD
编码配置文档

模板(Templates)

从最佳实践中抽离基础部分,作为标准化模块。AI 面对类似需求时,参考该标准化模板生成代码,能保证团队使用的一致性、规范化,也能保证代码生成的准确性和可读性。

模板化方案针对三个维度的特征:

规则(Rule)

通过 Rules 规则控制体系统一管理各个维度的规范:

指令(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)转化为可执行的代码生成配置。作为产品需求与技术实现之间的桥梁,通过标准化的配置格式,实现从需求到代码的自动化生成流程。

目标:

执行步骤: Command 解析 CCD → 加载模板 → 注入配置 → 生成代码 → 整合 UI 资源。

RTCC 方案主要适用于 Lua 小需求场景,例如商城、榜单等功能或活动,而非复杂的纯 Lua 大型项目。


四、RTCC Pro 方案

背景: RTCC 实现了代码的高质量转化,但如果没有 templates 该怎么办?

目的: 在 RTCC 的基础上,增加一套机制,能够在缺少模板的情况下自动学习项目代码,或者 MomoKit 相关 API,从而生成符合规范的代码。

问题背景

现有系统的工作流程:

PRD(Figma) --(rules+command)--> CCD --(rules+command+templates)--> 生成代码

核心问题: 如果 templates/ 目录中没有所需的模板,该怎么办?

方案对比

针对"缺少模板"的问题,评估了 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 不执行问题

Rules 不执行问题截图1
Rules 不执行问题截图2

模板审核

团队需要对抽离的模板进行代码审核,保证在结构、功能、语法等层面符合团队使用规范。

复杂 UI 实现效果差

面对复杂的 UI,AI 实现效果差,需要手动 coding。

全新项目使用问题

在没有代码量的新项目中使用结果一般。建议在项目已有一定代码积累(推荐)的情况下使用 RTCC Pro,新项目可先从 RTCC 基础方案开始。