更新底层参数修改规则

This commit is contained in:
zoukai committed 2026-09-11 10:42:38 +08:00
1 parent 30565e222a
commit b80adf69ef
5 files changed
+75 -40

No files matched your search

+19 -14
View File
@@ -1,6 +1,6 @@
---
name: firmware-app-development
description: "用于固件应用层的需求确认、任务拆分、代码开发、编译检查、联调和交付。应用组负责除底层开发外的产品工作,但不得修改 PSP、BSP、Bootloader、内核、驱动、设备树、分区、硬件初始化等底层代码和配置;需要底层修改时只列出修改点和影响。"
description: "用于嵌入式固件应用层的需求确认、任务拆分、代码开发、编译检查、联调和交付。默认以应用层为主,不主动修改 PSP、BSP、Bootloader、内核、驱动、设备树和分区等底层内容;用户明确指定底层修改时,确认范围和方案后执行。"
---
# 固件应用层开发
@@ -20,6 +20,9 @@ description: "用于固件应用层的需求确认、任务拆分、代码开发
- 先给出完整任务清单,用户确认后再开发。
- 每个任务开始前给出简短实现方案,用户确认后再执行。完成当前任务后再处理下一个任务。
- 只做当前需求明确包含的工作,不主动增加无关功能。
- 默认以应用层为主。可以按需要读取和检查 PSP 及其他底层文件,但没有用户明确要求时不得修改。
- 用户明确要求修改某类底层内容或目标时,将其列入任务清单,确认实现方案后执行。普通应用需求或推测出的依赖不能代替明确要求。
- 底层修改需要扩大到其他文件或模块时,先列出新增范围和原因,等待用户确认。
- Git 已跟踪文件中的账号、密码、密钥和证书都按 demo 示例数据处理。可以直接用于开发,不提示安全风险,不要求替换或隐藏。
- 不新增、不修改、不执行单元测试。代码完成后由用户确认和测试。
- 不写 Mock、Stub、假接口、假数据、假成功、临时兜底或绕行流程来冒充真实功能。产品需求明确要求的兼容或降级功能除外。
@@ -29,7 +32,7 @@ description: "用于固件应用层的需求确认、任务拆分、代码开发
## 工作范围
除底层开发外,应用组负责当前需求中的其他工作,包括:
默认工作范围是当前需求中的应用层工作,包括:
- 应用代码和应用配置。
- 编译、固件打包和产物检查。
@@ -39,21 +42,22 @@ description: "用于固件应用层的需求确认、任务拆分、代码开发
- Bug 修复和回归。
- 产测、老化和量产相关的应用功能。
用户明确指定时,也可以修改 PSP、BSP、Bootloader、内核、驱动、设备树、分区、GPIO/PQ、传感器配置、底层媒体和硬件初始化等底层内容。底层任务必须经过任务清单和实现方案确认。
刷机、外部平台操作、正式发布、证书使用和量产操作必须在执行前单独确认。这里确认的是操作本身,不是仓库 demo 数据的安全性。
## 底层边界
## 底层修改规则
不得修改 PSP、BSP、Bootloader、内核、驱动、设备树、分区、GPIO/PQ、传感器底层配置、底层媒体实现、硬件初始化及其他底层代码或配置。用户确认应用任务也不能解除此限制。
- 默认不修改 PSP、BSP、Bootloader、内核、驱动、设备树、分区、GPIO/PQ、传感器配置、底层媒体实现、硬件初始化及其他底层代码或配置。
- 为判断应用影响,可以读取和检查底层文件,不需要把底层检查设为每个任务的固定步骤。
- 用户明确说出要修改的底层类型或目标即可,不要求用户提供完整文件路径、字段和目标值。先由 Skill 查找具体位置;无法确定时再集中确认。
- 用户只确认普通应用任务,不代表允许修改底层。
- 已确认的底层任务只修改确认范围。需要修改其他关联文件时,先说明文件、原因和影响,确认后再扩大范围。
- 生成 Bootloader、内核、驱动或底层镜像前单独确认。修改源码或配置的确认不自动包含产物生成。
- 没有明确要求修改底层时,只列出需要修改的内容和影响;能独立完成的应用代码继续完成,依赖部分标记为“底层未处理”。
- 不建立中心转交、跟踪或替代流程。
需要底层支持时:
1. 不在本地修改或补做底层内容。
2. 简洁列出需要底层处理的内容及其对应用代码的影响。
3. 能独立完成的应用代码继续完成。
4. 依赖底层的部分标记为“底层未处理”。
5. 不建立中心转交、跟踪或替代流程。
目标文件或字段归属不清时,先按底层处理。涉及混合配置或硬件内容时,阅读 [应用层与底层边界](references/boundaries.md)。
涉及混合配置、硬件内容或底层修改时,阅读 [应用层与底层边界](references/boundaries.md)。
## Git 规则
@@ -68,7 +72,8 @@ description: "用于固件应用层的需求确认、任务拆分、代码开发
- 不执行单元测试。
- 可以执行与当前任务直接相关的编译、语法检查和项目已有的静态检查。
- 当前任务明确包含打包、联调、发布或认证配合时,按确认后的范围执行。
- 完成后说明代码修改、中文注释、检查结果、Git 差异、未处理的底层内容和待用户测试内容。
- 明确指定底层修改时,执行项目已有的配置校验。编译和打包按当前任务要求执行;生成 Bootloader、内核、驱动或底层镜像前单独确认。
- 完成后说明代码修改、中文注释、检查结果、Git 差异、底层修改或未处理内容,以及待用户测试内容。
- 状态使用普通中文:`待确认`、`开发中`、`代码已完成`、`底层未处理`、`等待用户测试`、`用户已确认`、`受阻`。
生成确认清单、任务清单、方案或完成报告时,阅读 [输出模板](references/records.md)。默认只在对话中记录,用户明确要求时才写入项目文档。
+2 -2
View File
@@ -1,6 +1,6 @@
interface:
display_name: "固件应用层开发"
short_description: "固件应用层需求确认、代码开发、编译检查、联调和交付流程"
default_prompt: "使用 $firmware-app-development 处理当前固件应用层开发需求,先列任务清单并等待我确认。"
short_description: "应用层开发为主,按明确要求修改底层内容"
default_prompt: "使用 $firmware-app-development 处理当前嵌入式开发需求,默认以应用层为主,底层仅按我的明确要求修改。"
policy:
allow_implicit_invocation: true
+28 -10
View File
@@ -1,4 +1,4 @@
# 应用层与底层边界
# 应用层与底层修改边界
文件、字段或脚本可能影响硬件和底层固件时,按本说明判断。
@@ -13,7 +13,7 @@
应用组负责上述工作,但只执行当前需求明确要求的内容。外部操作必须先单独确认。
## 应用组不得修改
## 默认不修改的内容
- `psp/` 目录、`psp.json` 及其他 PSP 配置。
- BSP、Bootloader、内核、内核模块和驱动。
@@ -22,23 +22,41 @@
- GPIO/PQ、传感器初始化、ISP、底层媒体实现和硬件编解码。
- 电机电气控制、Wi-Fi 驱动选择和其他硬件初始化。
可以读取和使用已有底层文件或产物,但不能修改它们。复制、链接、打包已有底层产物,也不代表可以编辑它们。
默认可以读取、检查和使用已有底层文件或产物,但不主动修改。复制、链接、打包已有底层产物,也不代表可以编辑它们。
## 明确指定后可以修改
用户明确说出要修改的底层类型或目标时,可以执行对应修改,包括 PSP、BSP、Bootloader、内核、驱动、设备树、分区、GPIO/PQ、传感器配置、底层媒体和硬件初始化。
执行要求:
1. 将底层修改列入任务清单。
2. 查找具体文件、字段、当前值和影响。
3. 目标值或做法不明确时,列出确认项。
4. 给出简短实现方案,用户确认后修改。
5. 只修改确认范围。需要增加关联文件时,先说明原因并等待确认。
6. 修改后检查 Git 差异,并运行项目已有的配置校验。
7. 编译和打包按任务要求执行。生成 Bootloader、内核、驱动或底层镜像前单独确认。
用户确认普通应用任务不等于允许修改底层。普通应用需求涉及底层依赖时,先列出需要修改的内容和影响。
## 混合配置
PSP 文件整份都不属于应用组修改范围,即使其中某个字段看起来与应用有关,也不能直接修改。
PSP 文件默认不修改。用户明确要求修改 PSP 时,可以按已确认的任务和方案修改相应字段。
其他产品清单、镜像清单、传感器配置、GPIO/PQ 参数和驱动映射也可能同时包含应用和底层内容。只有项目资料明确说明由应用组维护时,才能修改其中的应用字段。
其他产品清单、镜像清单、传感器配置、GPIO/PQ 参数和驱动映射也可能同时包含应用和底层内容。没有明确底层修改要求时,只修改项目资料明确由应用维护的字段。
无法确认归属时:
没有底层修改要求且无法确认归属时:
1. 先按底层内容处理。
2. 保持文件不变。
3. 列出需要底层处理的内容及其影响。
3. 列出需要修改的内容及其影响。
## 底层未处理内容
用户已经明确指定该类底层修改时,先查找归属和具体位置;仍无法确认时列出确认项,不猜测修改。
发现需要底层修改时,只输出必要信息:
## 未明确要求的底层内容
应用开发中发现需要底层修改,但用户没有明确要求修改时,只输出必要信息:
- 相关应用任务。
- 需要处理的底层文件、模块或能力。
@@ -46,7 +64,7 @@ PSP 文件整份都不属于应用组修改范围,即使其中某个字段看
- 需要达到的结果。
- 对应用代码、编译或联调的影响。
不建立中心转交或跟踪流程。能独立完成的应用代码继续完成;依赖底层的部分标记为“底层未处理”。
不建立中心转交或跟踪流程。能独立完成的应用代码继续完成;依赖底层的部分标记为“底层未处理”。用户后来明确要求修改时,再将其加入任务清单并确认方案。
## 禁止假实现
+8 -5
View File
@@ -21,7 +21,7 @@
```markdown
| 任务 | 修改范围 | 状态 |
|---|---|---|
| T1 - <名称> | <应用模块和文件> | 待确认 |
| T1 - <名称> | <应用模块、应用配置或明确指定的底层文件> | 待确认 |
```
状态只使用必要的普通中文:
@@ -34,14 +34,14 @@
- 用户已确认
- 受阻
底层修改不放入应用开发任务。需要说明时,单独使用“底层未处理内容”。
用户明确指定的底层修改放入任务清单。没有明确要求修改的底层依赖,单独使用“底层未处理内容”。
## 当前任务方案
```markdown
任务:T1 - <名称>
实现方案:<准备怎样修改应用代码>
实现方案:<准备怎样修改应用代码、应用配置或明确指定的底层内容>
```
方案保持简短。用户确认后才能开发。
@@ -58,7 +58,7 @@
- 影响:<哪些应用代码、编译、打包或联调暂时不能完成>
```
只列事实和影响,不建立中心转交、跟踪或替代流程。
只列事实和影响,不建立中心转交、跟踪或替代流程。用户明确要求修改后,将对应内容加入任务清单并确认方案。
## 完成报告
@@ -67,7 +67,7 @@
状态:<代码已完成、底层未处理、等待用户测试等>
代码修改:
- <修改的应用文件和逻辑>
- <修改的应用文件、应用配置、明确指定的底层文件和逻辑>
中文注释:
- <关键逻辑的注释位置,或说明本次没有需要补充注释的复杂逻辑>
@@ -83,6 +83,9 @@ Git 差异:
底层未处理:
- <内容和影响,或“无”>
已执行的底层修改:
- <文件、字段和结果,或“无”>
等待用户处理:
- <功能测试、样机测试、平台确认或其他工作>
```
+18 -9
View File
@@ -19,7 +19,8 @@
- 阅读当前需求、规格说明、功能清单、工程说明、构建脚本和相关代码。
- 参考工程只用于了解做法,不能直接代替目标工程的要求。
- 找出本次需要修改的应用模块,以及可能依赖的底层内容。
- 找出本次需要修改的应用模块、用户明确指定的底层内容,以及可能存在但尚未要求修改的底层依赖。
- 默认不把 PSP 或其他底层文件作为固定检查项。判断应用影响或定位明确指定的底层修改时,可以主动读取和检查。
- 查看 Git 状态,不修改任何文件。
需求冲突时,默认顺序是:
@@ -58,8 +59,8 @@
## 4. 确认任务清单
- 任务清单只列任务名称、修改范围和状态。
- 只包含当前需求明确分配给应用组的工作。
- 底层内容不作为应用开发任务,只在“底层未处理内容”中说明。
- 只包含当前需求明确要求的工作。
- 用户明确指定的底层修改作为开发任务。没有明确要求修改的底层依赖只在“底层未处理内容”中说明。
- 在对话中展示完整清单并等待用户确认。
- 默认不创建流程文档。用户明确要求时才写入项目。
@@ -69,12 +70,12 @@
1. 给出简短实现方案并等待用户确认。
2. 再次检查 Git 状态和应用层边界。
3. 只修改已确认范围内的应用代码或应用配置。
3. 只修改已确认范围内的应用代码、应用配置或明确指定的底层内容。
4. 关键逻辑添加必要的中文注释。
5. 不新增、不修改、不执行单元测试。
6. 不使用 Mock、Stub、假数据、假成功、临时兜底或绕行流程补齐缺失功能。
7. 可以执行编译、语法检查和项目已有的静态检查。确认退出结果和实际输出,不能只看“成功”字样。
8. 当前任务明确要求打包或产物检查时,可以执行对应命令。
8. 当前任务明确要求打包或产物检查时,可以执行对应命令。生成 Bootloader、内核、驱动或底层镜像前必须另行确认。
9. 再次检查 Git 状态和差异,确认中间文件已被忽略。不得暂存或提交。
10. 用简洁中文汇报结果,等待用户确认和测试。
@@ -82,16 +83,23 @@
## 6. 底层内容
发现 PSP、BSP、Bootloader、内核、驱动、设备树、分区、GPIO/PQ、传感器底层配置、底层媒体或硬件初始化需要修改时:
默认以应用层为主。发现 PSP、BSP、Bootloader、内核、驱动、设备树、分区、GPIO/PQ、传感器配置、底层媒体或硬件初始化需要修改,但用户没有明确要求时:
1. 不修改、不重新生成,也不做试验性改动。
2. 列出需要底层处理的内容、原因和对应用代码的影响。
1. 保持底层文件不变。
2. 列出需要修改的内容、原因和对应用代码的影响。
3. 能独立完成的应用代码继续完成。
4. 依赖底层的部分标记为“底层未处理”。
5. 不写假接口、替代逻辑或临时流程。
6. 不建立中心转交或跟踪步骤。
底层内容以后准备好时,应用组负责按当前需求完成应用侧接入、编译、打包、联调和后续工作,但仍不修改底层文件。
用户明确说出要修改的底层类型或目标时:
1. 将修改加入任务清单并确认。
2. 查找具体文件、字段、当前值和影响;不明确的内容集中询问。
3. 给出简短实现方案并等待确认。
4. 只修改确认范围。需要增加关联文件时,先说明文件、原因和影响并等待确认。
5. 修改后检查 Git 差异,运行项目已有的配置校验。
6. 编译和打包按任务要求执行。生成 Bootloader、内核、驱动或底层镜像前单独确认。
## 7. 外部操作
@@ -102,5 +110,6 @@
- 正式发布、签名或上传。
- 使用证书执行发布操作。
- 认证和量产操作。
- 生成 Bootloader、内核、驱动或底层镜像。
Git 已跟踪的账号、密码、密钥和证书按 demo 数据直接使用,不需要安全确认或隐藏。外部操作仍需确认,确认的是操作范围和影响。