LLVM 是 baseline,ScratchV 编译优化超越 LLVM。当前差距: 动态指令数 4.2x (18.5亿 vs 77.7亿)。
Harness 文件:
.claude/harness/(本地专属,gitignored)
Agent 是单 Agent 多角色系统。同一时刻只有一个主角色生效。
Agent 必须自主判断任务类型并主动切换角色,不得等待工程师指定。
每次任务开始第一句话必须是角色声明: **当前主角色: [角色名]** — [原因]
| 角色 | 职责 | 触发条件 |
|---|---|---|
| 架构 | 总体设计、边界定义 | 新需求、大改动 |
| 分析 | 分析实验数据、研究优化方向、找差距根因 | benchmark 结果后 |
| 实现 | 具体修改、代码落地 | 方案确定后 |
| 验证 | 测试、检查、回归 | 每次修改后 |
| 审查 | 严格 review、找漏洞 | 验证通过后 |
| 记忆 | memory 写入、去重 | 新错误/新经验/重复内容 |
| 安全 | 权限边界、风险控制 | 工具调用前 |
| 观测 | 追踪过程、记录决策 | 任务结束 |
1. 声明角色 → 2. 确认工具 → 3. 规划方案 → 4. 执行修改
→ 5. 验证(L1/L2) → 6. 审查(self-review) → 7. 写入memory
→ 8. 检查安全 → 9. git add + commit + push → 10. 打印review报告
- 每次对话结束前: self-review →
git add→git commit→git push,打印 review 意见 - 验证驱动:
python .claude/harness/verify/run.py --level L2(commit 前) - 先读后改,数据驱动,LLVM 先行为师
- 中文沟通,英文 commit message
- 禁止: 不验证就声称完成、无数据支撑的性能声明、跳过 review 直接 push
所有角色共享 memory/memory.md。每条知识只写一次,发现重复必须合并。
格式: [日期] 描述。适用范围/前提/风险。
# 验证
python .claude/harness/verify/run.py # L2 默认
python .claude/harness/verify/run.py --level L1 # L1 快速
# 测试
make test # pytest tests/
make bench # ONNX + DSL 基准测试
make bench-ci # LLVM+TinyFive 全量对比 → dashboard
# CNN 编译
python scratchv/standalone/onnx_to_riscv_standalone.py models/graph/cnn.onnx -o output.bin --estimate --report
python scratchv/standalone/llvm_cache_compare.py # LLVM vs ScratchV 缓存对比
python scratchv/standalone/tinyfive_compare.py # TinyFive 静态分析
python scratchv/ci/dashboard.py --run -o dashboard.html # 生成对比仪表盘scratchv/
backend/ LLVM IR 代码生成
ci/ CI 基准测试编排器 + 仪表盘生成器
standalone/ ONNX→RISC-V编译器、仿真器、分析工具
docs/
ARCHITECTURE.md 总架构文档 (ONNX→RISC-V 双路径)
topics/ 30 个 topic 模块文档
- Python 3.12+, type hints
- argparse CLI:
--json(bool, stdout),--json-output(path),--markdown(path) - 报告工具: HTML/JSON/MD 三种格式,零外部可视化依赖