电源测试开发一体化技能包(Power Test Dev Suite)
一个技能包集成电源测试上位机开发全链路能力。不依赖其他技能包,内部按领域模块组织,按需加载。
使用方式(渐进加载,省 token)
按问题领域只读取对应模块,禁止一次性读全部 references(违反渐进披露、浪费 token)。
| 问题领域 | 加载模块 | 说明 |
|---|---|---|
| 功能开发总流程 / 九阶段编排 | references/workflow/ |
总指挥工作流(需求→架构→通信→异步→数据→日志→解耦→测试→规范) |
| 代码定位 / 专家路由 / 交接 | references/codebase/ |
索引方法论 + 问题路由表(模块索引/交接文档为项目私有,随项目生成) |
| 设备手册 / SCPI 命令 / 类型识别 | references/manual/ |
手册检索 SOP + 防模糊识别红线 + 官网检索 + 领域设备全景 |
| 领域常识(源/负载/功率/CT/SCPI 语义) | references/domain/ |
常识库 + 常识联动 |
| 数据迁移匹配(原始数据→报告模板,评分制匹配) | references/domain/数据迁移匹配策略.md |
工况解析/评分匹配/基准对齐/单位换算/防覆盖(通用策略,不绑具体用例) |
| 数据提取与分段(逐点序列→工况段→代表值) | references/domain/数据提取与分段策略.md |
多列联合分段/阈值自适应/段长按比例/稳态识别/稳态子集众数/短段退中位数/热机起始段(通用策略,段长/热机时长不一致均稳健) |
| 通信(VISA/CAN/I2C/串口/485/PLC/Modbus) | references/communication/ |
通信类型矩阵 + 传输/协议/异步模式 |
| 数据与配置(config/SQLite/缓存/导出) | references/data-config/ |
配置热加载/存储/导出模式 + 外部数据文件加载(表头/时间列识别/运行时间生成/分片合并) |
| 日志与安全(Hex 帧/AES/审计) | references/logging-security/ |
日志与加密模式 |
| UI 生成与美化(PySide6/Qt/WPF + tkinter 现代浅色) | references/ui-generation/ |
主题/布局/图表 + tkinter_modern_ui.md(ttkbootstrap 浅色主题/Canvas 网格表格/圆角 Tab/卡片化/长文档渲染)+ chart_readability.md(Y 轴行业缩写/同类合并/左右轴自定义) |
| 测试与模拟(Stub/pytest/集成) | references/testing/ |
模拟驱动/测试模式 |
| 代码审查与规范 | references/review/ |
审查清单/编码规范 |
| 架构与接口设计(五层/DI) | references/architecture/ |
接口契约/数据模型/设备控制器模式(缺键防护/pre_前置/模板化) |
代码示例:assets/<模块>/(可运行模板,如 communication/transport/visa_transport.py、communication/protocol/modbus_rtu.py)。
通用工具:scripts/<模块>/(如 codebase/update_index.py 生成索引、manual/_pdf_search.py 检索手册)。
自动化工具链(V1.0.2,一次命令出可用骨架)
| 工具 | 用法 | 产出 |
|---|---|---|
scripts/workflow/scaffold.py |
python scaffold.py <目录> --name 项目名 |
可直接运行的五层架构项目:缺键防护控制器 / pre_ 前置命令 / Stub 模拟 / Hex 双轨日志 / 冒烟测试 / 命令检查 / 配置热加载 |
scripts/devices/generate_device_registry.py |
--interactive 或 --cmd "键:模板" 参数式 |
设备注册表条目代码 + 语义校验(写/查询判定、pre_ 前置、重复表提示),自动去重追加到 registry |
scripts/quality/check_command_semantics.py |
python check_command_semantics.py devices.registry |
命令表语义检查:read_ 须查询、pre_ 须写且有主键、字节级重复表(模板候选)、缺键提示 |
scripts/manual/_pdf_search.py |
见 references/manual/ |
设备手册 PDF 关键词检索 |
闭环用法(新增一台设备 5 分钟):
generate_device_registry.py 生成条目 → 追加 registry → check_command_semantics.py 复查 →
mode=sim 用 Stub 跑通全流程 → 冒烟测试过 → 联机核对 → 完成。
调度原则(按需协同,不设硬性上限)
- 定位类问题:只查项目 module_index(
scripts/codebase/update_index.py生成),不加载任何模块(最省)。 - 修改类问题:按涉及领域加载主责模块 + 必要协同模块(如"UI+通信"→
ui-generation+communication);不设 3 个上限,但遵循"成本护栏"按需加载,不无脑全量。 - 交接类问题:只读项目
references/codebase/handover.md(项目私有)。
成本护栏(Token 预算 / 超时中断 / 止损)
自动化闭环不代表无限消耗;必须遵守以下护栏,避免无效 token 消耗:
- 任务分级预估:接任务先估规模——小任务(定位/单点修复)只加载 1 个模块;中任务(跨层修改)加载主责+必要协同;大任务(新功能/重构)按九阶段逐步推进,每阶段汇报后再继续。
- 渐进加载:references 按需读取;同一问题已读模块不重复读;大文件用搜索/行号定位,禁止全文重复读取。
- 单步超时:命令执行/设备查询/脚本运行设超时(如 VISA query 超时、外部命令超时);长时间操作(打包/扫描)预估耗时并提示,不盲等。
- 重试上限:编译/lint/打包/验证失败修复最多 3 次,仍失败停止并汇报(含已试方案与剩余思路),不再空转。
- 止损原则:同一问题连续 2 次尝试无进展 → 停止探索,汇报已知信息与下一步建议,等用户决策。
- 调度理性:多模块协同只为解决跨领域契约/验证,禁止为"完整"而全量加载;主责模块主导、协同模块只做契约/验证交叉。
自动化闭环(一次对话完成任务)
接收任务后全程自动推进,每阶段主动汇报,仅在以下情况停下询问:
- 需真机验证(无模拟/无硬件无法验证)
- 需用户决策(方案分叉、需求二义、涉及核心文件改动授权)
- 触发成本护栏(重试超限/止损/超时)
流程:需求分析 → 调度模块 → 实现 → 专项验证 → 全局验证(编译/启动/lint/打包冒烟)→ 文档同步 → 汇报。
工业级红线(全模块通用)
- UI 线程禁网:所有通信/耗时操作放后台线程,UI 只经信号/回调更新。
- UI 与业务分离:界面代码不直接调通信/存储,经业务层/服务层。
- 硬编码即犯罪:配置值(超时/地址/路径/量程)从配置文件读取。
- Hex 帧为王:通讯日志双存储 Hex+ASCII;写命令(无
?)用 write 不用 query。 - 资源释放:句柄/连接/socket 用上下文管理器,断开后置 None,失效须校验重开。
- 先模拟后联机:无真机时用 Stub 驱动跑通全流程,
mode: sim|real配置切换。 - 停止标志独立:停止标志不放进被启动流程复用的函数(防"启动即停"回归);长查询阻塞线程时外部中断(VISA clear / 关 socket)。
资源索引
references/<模块>/:各领域知识(渐进加载)assets/<模块>/:可运行代码示例(示例自证可运行,见各文件if __name__ == "__main__")scripts/<模块>/:通用工具(脚手架生成、设备注册表生成、命令检查、索引生成、手册检索等)- 项目私有数据(module_index.md / handover.md / config)不入包,随项目生成。