更新底层参数修改规则

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