AgentSkillsCN

thesis-evolution

毕业设计材料自我进化系统。自动追踪代码修改、性能数据更新以及答辩材料的完善,支持自动验证数据准确性、材料完整性检查与版本追踪,持续提升毕业设计材料的质量。

SKILL.md
--- frontmatter
name: thesis-evolution
description: 毕业设计材料自我进化系统。自动追踪代码修改、性能数据更新、答辩材料完善。支持自动验证数据准确性、材料完整性检查、版本追踪。用于持续改进毕业设计材料质量。

毕业设计材料自我进化系统

本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文件

  1. 读取目标SKILL.md文件
  2. 找到合适章节
  3. 添加新内容(遵循现有格式)
  4. 确保无重复内容

步骤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检测到材料错误时:

  1. 识别 - "这个数据与实际测试结果不符"
  2. 验证 - 重新读取源数据或运行测试
  3. 修正 - 自动编辑skill文件
  4. 通知 - "已更新材料以反映最新数据"

修正标记格式

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智能终端的行人检测模块设计