بنقرة واحدة
luatos-new-project-skill
新建LuatOS项目代码:从零开始生成完整的LuatOS项目。触发条件:用户需要创建全新的LuatOS项目,从零开始编写代码。先分析需求和参考demo,再生成main.lua和功能模块。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
新建LuatOS项目代码:从零开始生成完整的LuatOS项目。触发条件:用户需要创建全新的LuatOS项目,从零开始编写代码。先分析需求和参考demo,再生成main.lua和功能模块。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
LuatOS项目开发公共逻辑:新建/修改LuatOS项目时调用。提供MCP服务器检查、demo分析、代码解耦设计、require验证、文件名规范等通用能力,被new-project和update-project技能引用。
强制AI杜绝摆烂、拒绝敷衍、禁止投降、深度思考、死磕到底,全程高压高质量输出
LuatOS产品知识查询路由:回答合宙产品问题或LuatOS开发问题时调用。触发条件:用户咨询合宙模组/开发板使用、API用法、代码报错、文档查询、问题调试等。先校验产品型号,再路由到code/docs MCP查询。
修改LuatOS项目代码:在已有项目基础上进行修改和扩展。触发条件:用户需要在已有LuatOS项目中添加功能、修改逻辑、修复bug等。先分析现有代码,再进行修改。
Run this project's PC simulator (LuatOS-PC) against the current src/ tree. Use when the user asks to run, launch, simulate, or test the firmware in simulation — e.g. "run the sim", "simulate", "try it in sim", "test src/ in the simulator". Also invoked by the built-in /run skill since the device firmware is not directly runnable.
| name | luatos-new-project-skill |
| description | 新建LuatOS项目代码:从零开始生成完整的LuatOS项目。触发条件:用户需要创建全新的LuatOS项目,从零开始编写代码。先分析需求和参考demo,再生成main.lua和功能模块。 |
本技能用于从零开始创建全新的LuatOS项目,生成完整的项目代码结构和所有功能模块。
必须调用本技能的场景:
引用 luatos-project-common-skill 的 公共流程1:MCP服务器状态检查
IF MCP服务器检查失败 THEN
输出错误信息,终止执行
END
执行规则:
重要:
1. 理解用户的项目需求
2. 识别需要实现的功能模块
3. 确定使用的核心库/扩展库
4. 识别产品型号(若未指定,需询问用户)
引用 luatos-project-common-skill 的 公共流程2:确定参考Demo范围 和 公共流程3:分析相关Demo
引用 luatos-project-common-skill 的 公共流程4:解耦化设计规范
重要规则:
引用 luatos-project-common-skill 的 公共流程7:main.lua模板选择
⚠️ 核心原则(强制遵守):
生成规则:
<项目名> → 替换为实际项目名<功能模块名> → 替换为实际功能模块名[author] → 替换为作者名(可选)[功能描述] → 替换为功能描述禁止事项(绝对禁止):
main.lua代码位置规范:
| 位置 | 允许的内容 |
|---|---|
-- require其他功能模块 之后 | 仅允许 require 语句,require后不要调用功能模块的任何函数 |
sys.run() 之前 | 仅允许 sys.run() |
错误示例(禁止):
-- require其他功能模块
require "xxx_app"
sys.timerLoopStart(...) ← ❌ 功能代码不能放在require之后
sys.run()
正确示例:
-- require其他功能模块
require "xxx_app"
-- 用户代码已结束
sys.run()
main.lua模板:
--[[
@module main
@summary LuatOS用户应用脚本文件入口
@version 1.0
@date 2025.07.28
@author [author]
@usage [功能描述]
]]
-- 必须定义PROJECT和VERSION变量
PROJECT = "<项目名>"
VERSION = "001.999.000"
-- 打印项目信息
log.info("main", PROJECT, VERSION)
-- [可选] 看门狗初始化(根据产品型号选择)
-- ⚠️️ 注意:此代码块根据产品型号动态处理
-- Air1601/1602/6201/8101系列:取消注释,启用看门狗
-- Air700/780/8000系列:删除整个代码块(包括注释)
-- if wdt then
-- wdt.init(9000)
-- sys.timerLoopStart(wdt.feed, 3000)
-- end
-- 如果内核固件支持errDump功能,此处进行配置,【强烈建议打开此处的注释】
-- 因为此功能模块可以记录并且上传脚本在运行过程中出现的语法错误或者其他自定义的错误信息,可以初步分析一些设备运行异常的问题
-- 以下代码是最基本的用法,更复杂的用法可以详细阅读API说明文档
-- 启动errDump日志存储并且上传功能,600秒上传一次
-- if errDump then
-- errDump.config(true, 600)
-- end
-- 使用LuatOS开发的任何一个项目,都强烈建议使用远程升级FOTA功能
-- 可以使用合宙的iot.openluat.com平台进行远程升级
-- 也可以使用客户自己搭建的平台进行远程升级
-- 远程升级的详细用法,可以参考fota的demo进行使用
-- 启动一个循环定时器
-- 每隔3秒钟打印一次总内存,实时的已使用内存,历史最高的已使用内存情况
-- 方便分析内存使用是否有异常
-- sys.timerLoopStart(function()
-- log.info("mem.lua", rtos.meminfo())
-- log.info("mem.sys", rtos.meminfo("sys"))
-- end, 3000)
-- require其他功能模块
require "<功能模块名>"
-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后不要加任何语句!!!!!因为添加的任何语句都不会被执行
根据解耦化设计规范,生成各个功能模块的代码文件:
| 模块类型 | 说明 |
|---|---|
| 应用模块 | 实现具体业务逻辑 |
| 驱动模块 | 硬件接口驱动 |
| 工具模块 | 通用工具函数 |
| 资源文件 | 图片、字体、配置等 |
引用 luatos-project-common-skill 的:
公共流程5:Require验证公共流程6:API正确性验证公共流程6.1:资源文件路径验证额外检查项:
项目目录/
├── main.lua -- 主入口文件
├── readme.md -- 项目说明(可选)
├── [功能模块1].lua -- 功能模块
├── [功能模块2].lua -- 功能模块
└── [资源文件] -- 资源文件