毕业设计材料自我进化系统
本skill使毕业设计材料能够在开发过程中持续自我完善。
自动 vs 手动触发
重要提示: 某些机制应自动触发,无需用户请求。
自动触发(Claude主动执行)
| 机制 | 何时触发 |
|---|---|
| 性能数据验证 | 运行测试后自动记录FPS、延迟等数据 |
| 代码变更追踪 | Git提交后自动更新代码清单 |
| 文档完整性检查 | 生成新文档后检查是否缺少章节 |
| 答辩材料同步 | 核心数据变化时自动更新答辩PPT素材 |
半自动触发(Claude提议,用户确认)
| 机制 | 何时提议 |
|---|---|
| 材料进化 | 解决重要技术问题后建议添加到文档 |
| Q&A更新 | 遇到新问题时建议添加到答辩Q&A |
手动触发(用户主动请求)
| 机制 | 触发短语 |
|---|---|
| 全面验证 | "验证毕业设计材料" |
| 进度报告 | "生成中期进度报告" |
| 答辩准备检查 | "检查答辩材料完整性" |
会话启动检查(自动执行)
开始毕业设计开发会话时,Claude应自动:
code
1. [ ] 检测Git状态
→ 记录最新提交、代码行数变化
2. [ ] 扫描性能数据文件
→ 读取最新FPS、延迟、成功率等指标
3. [ ] 检查答辩材料版本
→ 确保中期总结、附件等文件最新
4. [ ] 验证代码与文档一致性
→ 代码修改后文档是否同步更新
Claude执行方式: 静默执行,仅在相关问题时提及。
何时进化材料
在开发过程中,以下情况触发材料进化:
| 触发条件 | 目标材料 | 优先级 |
|---|---|---|
| NPU性能优化成功 | performance-tracking | 高 |
| 新增核心代码文件 | code-evidence | 高 |
| 解决编译/部署问题 | defense-prep (Q&A) | 高 |
| 网络配置方案验证 | midterm-report | 中 |
| 文档结构调整 | thesis-evolution | 低 |
进化流程
步骤1: 识别值得记录的知识
问自己:
- •这是关键技术突破吗?(如NPU多核调度)
- •花费了显著时间解决吗?
- •对答辩有帮助吗?
- •文档中是否已记录?
步骤2: 分类知识
code
性能数据更新 → performance-tracking/SKILL.md 代码清单/统计 → code-evidence/SKILL.md 答辩Q&A → defense-prep/SKILL.md 中期报告材料 → midterm-report/SKILL.md 文档结构改进 → thesis-evolution/SKILL.md
步骤3: 格式化贡献
性能数据格式:
markdown
## 测试记录 N: [测试名称] <!-- Evolution: YYYY-MM-DD | 测试环境: RK3588 | 版本: yolo11n_416 --> **测试日期**: 2026-01-10 **模型**: yolo11n_416.rknn **输入**: 416×416 | 指标 | 数值 | 任务书要求 | |------|------|-----------| | 推理延迟 | 25.31ms | - | | 推理FPS | 40 | >30 ✅ | | NPU核心数 | 3核并行 | 多核优化 ✅ |
代码清单格式:
markdown
## 代码文件 N: [文件名] <!-- Evolution: YYYY-MM-DD | 来源: 板端部署 | 功能: NPU推理 --> **文件路径**: src/infer/rknn/RknnEngine.cpp **行数**: 658 **功能**: RKNN推理引擎核心实现 **关键技术**: - NPU多核并行调度 - Letterbox预处理 - 模型加载优化
答辩Q&A格式:
markdown
### Q: [预期问题] <!-- Evolution: YYYY-MM-DD | 来源: 代码审查 | 类型: 技术细节 --> **问题**: 为什么使用416×416而不是640×640输入? **回答要点**: 1. RKNN NPU的Transpose算子限制(16384元素) 2. 640×640超限导致CPU fallback,性能降低167% 3. 416×416保证全NPU执行,达到40 FPS **支撑数据**: - 640×640: 65ms延迟,15 FPS - 416×416: 25.31ms延迟,40 FPS
步骤4: 更新Skill文件
- •读取目标SKILL.md文件
- •找到合适章节
- •添加新内容(遵循现有格式)
- •确保无重复内容
步骤5: 标记进化(不bump版本)
重要: 本地开发不更新版本号,添加进化标记:
markdown
<!-- Evolution: YYYY-MM-DD | 来源: 板端测试 | 作者: 左丞源 -->
将此注释放在新增内容上方。
步骤6: 通过Git提交
bash
# 创建进化分支 git checkout -b evolution/add-npu-performance-data # 提交修改 git add .claude/skills/rk3588-thesis-skills/performance-tracking/SKILL.md git commit -m "evolution: 添加NPU多核性能测试数据" # 推送(如需要) git push origin evolution/add-npu-performance-data
自我修正(自动触发)
当材料内容导致错误时,自动修正。
自动触发: 是 - Claude应在发现错误时自动修正。
触发条件
code
文档中的数据与实际测试不符 → 发现错误 → 自动修正 代码清单与实际文件不一致 → 验证失败 → 自动更新 性能指标记录错误 → 重新测试 → 自动纠正
Claude自动行为
当Claude检测到材料错误时:
- •识别 - "这个数据与实际测试结果不符"
- •验证 - 重新读取源数据或运行测试
- •修正 - 自动编辑skill文件
- •通知 - "已更新材料以反映最新数据"
修正标记格式
markdown
<!-- Correction: YYYY-MM-DD | 原值: 30 FPS | 原因: 测试环境变化 | 新值: 40 FPS -->
示例自我修正
场景: 文档说推理延迟35ms,但最新测试是25.31ms
markdown
## NPU推理性能 <!-- Correction: 2026-01-10 | 原值: 35ms | 原因: 优化后性能提升 | 新值: 25.31ms --> **推理延迟**: 25.31ms @ 416×416输入 **推理FPS**: 40(超过任务书30 FPS要求33%)
自我验证(手动触发)
定期验证材料内容准确性。
验证触发
| 触发条件 | 动作 |
|---|---|
| 用户输入"验证材料" | 全面验证 |
| 性能测试后 | 数据验证 |
| 代码修改后 | 代码清单验证 |
| 答辩前1周 | 完整性验证 |
验证清单
markdown
## 验证报告 ### 性能数据准确性 - [ ] 所有FPS/延迟数据与最新测试一致 - [ ] 模型大小与实际文件匹配 - [ ] 网络吞吐量数据准确 ### 代码清单完整性 - [ ] 所有核心代码文件已列出 - [ ] 行数统计正确 - [ ] Git提交数准确 ### 答辩材料完整性 - [ ] 中期总结三部分全部填写 - [ ] 附件1支撑材料完整 - [ ] 核心数据一致(多处引用) ### 文档链接有效性 - [ ] 所有本地文件路径正确 - [ ] Git仓库链接有效 - [ ] 板端IP地址正确
验证流程
code
┌─────────────────────────────────────────────────────────┐
│ 1. 读取: 加载所有SKILL.md文件 │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 2. 提取: 查找所有数据点 │
│ - 性能指标 │
│ - 代码统计 │
│ - 文件路径 │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 3. 验证: 对比实际数据 │
│ - 运行性能测试 │
│ - 检查文件存在性 │
│ - 统计代码行数 │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 4. 报告: 列出发现的问题 │
│ - 过时数据 │
│ - 缺失文件 │
│ - 不一致描述 │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 5. 修复: 纠正问题(经用户批准) │
└─────────────────────────────────────────────────────────┘
使用反馈(自动触发)
追踪哪些材料在答辩中效果好。
自动触发: 是 - Claude应记录材料使用效果。
反馈标记格式
markdown
<!-- Usage: 引用次数=0 | 答辩有效=0 | 需补充=0 | 最后使用=never --> ## NPU多核并行优化技术
反馈收集流程
code
┌─────────────────────────────────────────────────────────┐
│ 用户准备答辩材料,引用某个技术点 │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ Claude引用skill中的内容 │
│ → 增加: 引用次数 += 1 │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 答辩后反馈: │
│ - 被认可 → 答辩有效 += 1 │
│ - 被质疑 → 需补充 += 1,触发材料完善 │
└─────────────────────────────────────────────────────────┘
Skill文件位置
定位Skills目录
当前skill路径推导:
code
THIS_SKILL_PATH = 这个SKILL.md文件的路径 SKILLS_ROOT = dirname(dirname(THIS_SKILL_PATH)) 示例: THIS_SKILL_PATH = ~/rk-app/.claude/skills/rk3588-thesis-skills/thesis-evolution/SKILL.md SKILLS_ROOT = ~/rk-app/.claude/skills/rk3588-thesis-skills/
目录结构
code
<rk3588-thesis-skills-root>/
├── thesis-evolution/
│ └── SKILL.md ← 本文件(进化机制)
├── code-evidence/
│ └── SKILL.md ← 代码证据收集
├── performance-tracking/
│ └── SKILL.md ← 性能数据追踪
├── defense-prep/
│ └── SKILL.md ← 答辩准备Q&A
└── midterm-report/
└── SKILL.md ← 中期报告生成
核心数据追踪
必须追踪的关键指标
markdown
## 技术指标(实时更新) <!-- Last-Updated: YYYY-MM-DD HH:MM --> | 指标 | 当前值 | 任务书要求 | 达标情况 | |------|--------|-----------|---------| | 代码总量 | 17,429行 | - | ✅ | | Git提交数 | 93次 | - | ✅ | | 模型大小 | 4.3 MB | <5 MB | ✅ 超额 | | 推理速度 | 40 FPS | >30 FPS | ✅ 超额33% | | 推理延迟 | 25.31 ms | - | ✅ 优秀 | | 网络吞吐量 | 912 Mbps | ≥900 Mbps | ✅ 超额 | | 检测类别数 | 80类 | >10类 | ✅ 超额700% | | 传输成功率 | 100% | - | ✅ 完美 | | mAP@0.5 | 61.57% | >90% | ⏳ 待优化 | | 综合完成度 | 93.3% | - | ⭐ S级 |
数据来源追踪
每个数据点必须注明来源:
markdown
**推理延迟: 25.31ms** - 来源: 板端测试(2026-01-08) - 命令: `./dual_nic_demo traffic_video.mp4 yolo11n_416.rknn /tmp/results` - 环境: RK3588, Ubuntu 20.04.6, RKNN Runtime v0.8.2 - 证据: artifacts/board_deployment_success_report.md
答辩材料完整性检查
中期答辩材料清单
markdown
## 必需材料(100%完整) ### 主文档 - [x] 毕业设计中期总结.doc(学校模板) - [x] 第1部分:已完成工作(已填写) - [x] 第2部分:存在问题及解决(准备完毕) - [x] 第3部分:下一步工作(准备完毕) - [x] 附件1:支撑材料(准备完毕) ### 核心支撑材料 - [x] 核心代码包(5文件,17KB) - [x] 完整代码包(22文件,65KB) - [x] Python工具链(6文件,53KB) - [x] 系统架构文档(20KB) - [x] 三终端演示指南(8.7KB) - [x] 中期进度总结(23KB) ### 答辩准备 - [x] 答辩材料清单(11KB) - [x] 填写指南(15KB) - [x] 核心数据速查表 - [ ] PPT草稿(待准备) - [ ] 演示视频(可选)
自动提醒机制
时间触发提醒
markdown
## 答辩倒计时自动提醒 | 剩余时间 | 自动提醒内容 | |---------|-------------| | 7天前 | "答辩1周后,建议开始准备PPT" | | 3天前 | "检查材料完整性,运行验证" | | 1天前 | "最后检查,准备演示环境" | | 答辩当天 | "记住核心数据:4.3MB、40FPS、93.3%" |
数据变化触发提醒
markdown
## 关键数据变化提醒 当以下数据变化时,自动提醒更新相关材料: | 数据变化 | 需要更新的材料 | |---------|---------------| | Git提交数增加 | 代码清单、附件1 | | 性能测试更新 | 性能表格、PPT、中期总结 | | 新增代码文件 | 代码包、文件清单 | | 模型大小变化 | 技术指标表(所有引用处) |
使用示例
场景1: 性能测试后自动更新
markdown
# 用户运行性能测试 ./dual_nic_demo traffic_video.mp4 yolo11n_416.rknn /tmp/results # Claude自动: 1. 检测到性能数据输出 2. 提取FPS、延迟等指标 3. 更新performance-tracking/SKILL.md 4. 检查是否需要同步更新中期总结 5. 通知用户:"已更新性能数据,当前FPS: 40"
场景2: 新增代码文件后自动记录
markdown
# 用户创建新文件 touch src/network/udp_receiver.cpp # Git提交 git add src/network/udp_receiver.cpp git commit -m "feat: add UDP receiver module" # Claude自动: 1. 检测到新文件提交 2. 统计行数、功能 3. 更新code-evidence/SKILL.md 4. 更新代码总量统计 5. 通知用户:"代码清单已更新,当前总行数: 17,500"
场景3: 答辩前完整性检查
markdown
# 用户请求 "检查答辩材料完整性" # Claude执行: 1. 读取所有skill文件 2. 验证所有清单项 3. 检查数据一致性 4. 生成验证报告 5. 列出缺失或需要补充的材料
质量指南
应该添加的内容
- •关键技术突破(NPU优化、网络配置)
- •实际测试数据(有证据支撑)
- •遇到的问题和解决方案
- •答辩可能被问到的问题
不应该添加的内容
- •未验证的猜测
- •重复内容
- •过于细节的调试信息
- •与毕业设计无关的内容
持续改进检查清单
每次开发会话后,考虑:
- • 是否有新的性能数据需要记录?
- • 代码清单是否需要更新?
- • 解决了可能被问到的问题吗?
- • 文档数据与实际一致吗?
- • 答辩材料是否需要补充?
如有任何一项为"是",进化相应的skill!
最后更新: 2026-01-10 版本: 1.0.0 作者: 左丞源(2206041211) 项目: 基于RK3588智能终端的行人检测模块设计