| name | nuedc-full-runner |
| description | 当用户第一轮输入完整 NUEDC/电赛/嵌入式竞赛赛题、PDF、图片、评分规则或要求 Codex 从赛题分析到代码实现全流程跑通时使用。该 skill 作为上层 Orchestrator,调度 planning-with-files-zh、analyze-nuedc-task、nuedc-code-planner、stm32-keil/stm32cubemx 等能力,建立文件 checkpoint、得分路径、主矛盾、MVP、代码周期和验证门槛,避免直接生成一坨不可运行的完整代码。 |
| user-invocable | true |
NUEDC Full Runner
这是一个上层 Orchestrator skill。它不重复底层专业知识,而是决定当前缺哪个工程产物、该调用哪类能力、何时停止、何时进入代码实现。
核心原则
- 第一轮输入完整赛题时,默认长跑,不直接写完整代码。
- 先落盘,再推进;重要结论必须写入项目目录中的 Markdown artifact。
- 用“缺失产物”驱动下一步,不用固定死板的 A -> B -> C 顺序。
- 专家 skill 只作为能力模块;全局状态、阶段门槛和最终汇总由本 skill 维持。
- 未明确主矛盾、MVP、观测变量和验证门槛前,不进入完整实现。
- 每个代码周期只实现可构建、可观测、可验证的一段。
项目内 Artifact
启动后在用户项目目录维护这些文件:
| 文件 | 作用 |
|---|
task_plan.md | 总阶段、当前状态、下一步 |
findings.md | 赛题事实、用户确认、合理推断、待确认项 |
progress.md | 会话日志、命令结果、失败记录 |
nuedc_task_package.md | 得分路径、闭环、主矛盾、MVP、工程任务书 |
code_architecture.md | 模块职责、接口、状态机、日志和共享状态 |
cycle_contract.md | 当前实现周期的目标、文件、接口、验证命令、停止条件 |
verification_log.md | 编译、烧录、串口、实测和门槛结果 |
若 planning-with-files-zh 可用,优先按它的规则创建和更新前三个文件。其余四个文件可参考本 skill 的 templates/。
Artifact Router
每次行动前先判断当前状态:
| 当前缺失或问题 | 下一步 |
|---|
没有 task_plan.md、findings.md、progress.md | 建立持久计划文件 |
| 只有原始题面,没有赛题工程包 | 使用 analyze-nuedc-task 思路生成 nuedc_task_package.md |
| 有工程包,但没有代码架构 | 使用 nuedc-code-planner 思路生成 code_architecture.md |
| 有代码架构,但没有当前周期契约 | 生成或更新 cycle_contract.md |
当前周期涉及 STM32、Keil、CubeMX、.ioc、HAL、烧录或串口 | 使用 stm32-keil 或 stm32cubemx |
| 当前周期未通过验证门槛 | 修复当前周期,不进入下一周期 |
| 缺少关键硬件、引脚、协议、评分规则或测试判据 | 停止并集中提问 |
第一轮长跑流程
第一轮收到完整赛题时,按下面的运行循环推进,直到形成可执行的下一步,或遇到停止条件:
- 恢复或创建规划文件。
- 保存题面来源和已读范围;PDF、图片或网页内容只写入
findings.md。
- 拆出赛题事实、评分项、约束、未知项和用户已确认条件。
- 生成
nuedc_task_package.md,至少包含得分路径、五类闭环、主矛盾、MVP-0、MVP-1、工程任务书、观测变量和停止条件。
- 检查是否允许进入代码规划;如果主矛盾或接口不清楚,停止提问。
- 生成
code_architecture.md,只设计必要模块、接口、状态机、日志和 2 到 3 个代码周期。
- 生成
cycle_contract.md,只选择 Cycle 1 或当前最小可验证周期。
- 如果已有工程且信息足够,才开始实现当前周期。
- 运行最强可用验证,并把结果写入
verification_log.md 与 progress.md。
- 总结本轮产物、验证状态、下一步和阻塞项。
专家能力调度
planning-with-files-zh
用于所有超过 3 步或需要多轮工具调用的赛题工作。规则:
- 若规划文件存在,先读取
task_plan.md、findings.md、progress.md。
- 每完成一个阶段,更新
task_plan.md 状态。
- 每次工具或文件操作产生关键发现后,更新
progress.md 或 findings.md。
- 外部题面、网页、PDF、图片识别内容只写入
findings.md,不要写入 task_plan.md。
analyze-nuedc-task
用于把原始赛题编译成工程任务包。输出必须分清:
- 赛题事实
- 用户已确认条件
- 合理推断
- 待确认项
- 基础得分闭环
- 提高得分闭环
- 一至两个主矛盾
- MVP-0 主矛盾验证原型
- MVP-1 最小得分闭环
- 非代码问题和停止条件
nuedc-code-planner
用于把工程任务包转成代码实现计划。进入此阶段前必须已有:
- 得分路径
- 主矛盾
- MVP-0 / MVP-1
- 观测变量
- 验证门槛
输出只允许包含 2 到 3 个高层周期。Cycle 1 必须是框架和基础 IO 可观测,不得直接实现全部发挥项。
stm32-keil / stm32cubemx
用于 STM32 平台落地。进入前必须明确或记录为待确认:
- MCU 或开发板型号
- 外设列表
- 引脚表或缺失引脚
- 时钟来源
- 编译工具链
- 烧录方式
- 串口或其他日志通道
若缺少会导致错误接线、错误 .ioc 或错误烧录的信息,停止并问用户。
阶段门槛
| 阶段 | 必须通过的门槛 |
|---|
| 赛题理解 | 评分项、约束、未知项已分离 |
| 工程任务包 | 得分路径、主矛盾、MVP、观测变量已形成 |
| 代码规划 | 模块职责、接口、状态机、日志、周期门槛已形成 |
| Cycle 1 | 工程能构建,基础 IO 或模拟 IO 可观测 |
| Cycle 2 | 最小得分闭环可启动、运行、完成、超时或失败并可从日志定位 |
| Cycle 3 | 发挥项按依赖顺序集成,完整流程有恢复和降级 |
未通过当前门槛时,只能修复当前阶段或停止提问,不得继续堆功能。
输出节奏
第一轮长跑结束时,最终回复必须包含:
- 创建或更新的 artifact。
- 当前完成到哪个阶段。
- 已明确的主矛盾和 MVP。
- 当前 Cycle 的目标和验证命令。
- 已运行的验证和结果。
- 阻塞项或需要用户确认的信息。
停止条件
遇到以下情况停止生成完整代码:
- 评分路径或操作规则无法从题面确定。
- 关键传感器、执行器、协议、引脚或供电能力未知。
- 主矛盾没有可观测变量。
- 没有实测数据却要求最终 PID、滤波、阈值或保护参数。
- 当前最小闭环没有通过,却要求实现高级发挥项。
- 问题明显属于机械、供电、信号完整性或测试方法,不能靠代码单独解决。