Phase 0-2: Schema cleanup, typed relations, event-driven automation
- Phase 0: AGENTS.md cleanup (dedup quotes, renumber sections, merge qmd) - Phase 1: typed relations (manage-relations.py, graph-search.py, check-staleness.py, detect-conflicts.py) - Phase 2: frontmatter validator, weekly lint, knowledge promotion, git hooks - Fix .gitignore to track tools/ and .githooks/ - Fix git remote URL (remove plaintext token) - New wiki pages: 504 pages, 34 raw sources
This commit is contained in:
+124250
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,124 @@
|
||||
{
|
||||
"AI时代五环协同人才体系": {
|
||||
"summary": "来源:黄奇帆 2026 年 NEXWAVE + 青岛跨国公司峰会两场演讲核心框架",
|
||||
"type": "concept"
|
||||
},
|
||||
"AI时代高等教育": {
|
||||
"summary": "AI时代高等教育的系统性方法论框架(教学模型+价值驱动+读书法整合视角)"
|
||||
},
|
||||
"EgoCentric数据采集与具身智能发展": {
|
||||
"summary": "自我中心视角数据采集与具身智能的关系"
|
||||
},
|
||||
"LLM-Wiki-v2": {
|
||||
"summary": "Rohit Ghumare 基于 Karpathy 理念的升级版,新增记忆生命周期和知识图谱"
|
||||
},
|
||||
"NeoLab": {
|
||||
"summary": "陆奇提出的未来巨头组织范式(新型实验室,从 -1 到 1 的组织化)"
|
||||
},
|
||||
"Researcher-Founder": {
|
||||
"summary": "陆奇2026清华演讲:研究型创业者框架(-1→0→1,研究×创新×斜率思维)"
|
||||
},
|
||||
"markitdown": {
|
||||
"summary": "微软开源的多格式文档转 Markdown 工具"
|
||||
},
|
||||
"万物本源说": {
|
||||
"summary": "微信公众号,通俗科普万物本质(涌现理论等)"
|
||||
},
|
||||
"临界态": {
|
||||
"summary": "复杂系统诞生高级属性的窗口状态(混沌边缘)"
|
||||
},
|
||||
"以终为始": {
|
||||
"summary": "技术创新项目方法论的核心原则"
|
||||
},
|
||||
"价值驱动": {
|
||||
"summary": "郭朝晖:以终为始在数字化场景的落地(手段≠目的/投入产出比/口号陷阱)"
|
||||
},
|
||||
"十大类生产性服务业": {
|
||||
"summary": "来源:黄奇帆 2026 年演讲(笔记侠 ID: Notesman)",
|
||||
"type": "concept"
|
||||
},
|
||||
"协同问题不在沟通在架构": {
|
||||
"summary": "源自黄奇帆 2026 年演讲提炼",
|
||||
"type": "concept"
|
||||
},
|
||||
"哈尔滨工程大学春季校园招聘会调研报告": {
|
||||
"summary": "哈工程国防七子就业数据、测控专业对口企业、薪资参考"
|
||||
},
|
||||
"奇绩创坛": {
|
||||
"summary": "陆奇创办的早期创业投资加速器(YC 中国前身)"
|
||||
},
|
||||
"好学力行": {
|
||||
"summary": "陈望道读书法五原则(学=原理/术=应用,事实验证,反对脱离实践)"
|
||||
},
|
||||
"宏观中观微观完整谱系": {
|
||||
"summary": "本站 wiki 知识图谱的内核结构(2026-06-30 由黄奇帆演讲拆解过程中涌现的洞察沉淀)",
|
||||
"type": "concept"
|
||||
},
|
||||
"实践论": {
|
||||
"summary": "毛泽东1937年著作,论认识和实践的关系"
|
||||
},
|
||||
"山西12个原始古村落": {
|
||||
"summary": "山西古村落考察实践记录"
|
||||
},
|
||||
"教学过程核心模型": {
|
||||
"summary": "专业教学过程的核心模型(课程设计与教学环节结构化)"
|
||||
},
|
||||
"教学过程核心模型-理论佐证研究": {
|
||||
"summary": "教学过程核心模型的理论佐证与实证研究(大型综合研究报告)"
|
||||
},
|
||||
"教育研究核验提示词库": {
|
||||
"summary": "核验教育研究文献的 AI 智能体提示词模板,配套教学过程核心模型佐证研究"
|
||||
},
|
||||
"新范式": {
|
||||
"summary": "陆奇2024元框架:三位一体/三拐点/模型=知识/边际成本转向固定成本"
|
||||
},
|
||||
"涌现": {
|
||||
"summary": "大量简单个体在临界条件下自发诞生不可还原的全新宏观秩序"
|
||||
},
|
||||
"漱茶说": {
|
||||
"summary": "苏轼漱茶说的文化实践与养生哲学"
|
||||
},
|
||||
"王寿云": {
|
||||
"summary": "稿子是王寿云同志和我写的,由我来讲。",
|
||||
"type": "entity"
|
||||
},
|
||||
"生产性服务业价值论": {
|
||||
"summary": "来源:黄奇帆 2026 年演讲",
|
||||
"type": "concept"
|
||||
},
|
||||
"科技创新五阶段论": {
|
||||
"summary": "来源:黄奇帆 2026 年演讲",
|
||||
"type": "concept"
|
||||
},
|
||||
"系统工程工程实践": {
|
||||
"summary": "来源:钱学森 + 王寿云 1980s CCTV 系统工程讲座第一讲(第二节)",
|
||||
"type": "concept"
|
||||
},
|
||||
"系统思想的历史哲学": {
|
||||
"summary": "来源:钱学森 + 王寿云 1980s CCTV 系统工程讲座第一讲",
|
||||
"type": "concept"
|
||||
},
|
||||
"老红军长寿现象的精神分析": {
|
||||
"summary": "革命信念与精神状态对生命力的深层影响"
|
||||
},
|
||||
"郭朝晖": {
|
||||
"summary": "技术创新管理专家,曾任职宝钢,著《我的科研经历》"
|
||||
},
|
||||
"钱学森": {
|
||||
"summary": "系统思想不是 20 世纪中叶的新发现,而是辩证唯物主义的内容。",
|
||||
"type": "entity"
|
||||
},
|
||||
"陆奇": {
|
||||
"summary": "前微软执行副总裁、前百度 COO,奇绩创坛创始人,Researcher Founder 框架提出者"
|
||||
},
|
||||
"陈望道": {
|
||||
"summary": "教育家、《共产党宣言》中文首译者,提出\"好学力行\"读书方法论"
|
||||
},
|
||||
"顶级人生三重境": {
|
||||
"summary": "道家驭势、佛家修心、儒家立身——成年人完整人生体系"
|
||||
},
|
||||
"黄奇帆": {
|
||||
"summary": "关键洞察:\"人才都有,但彼此不说同一种语言\" — 没有协同机制,人才越多,沟通成本越高。必须从\"岗位集合\"走向\"任务共同体\"。",
|
||||
"type": "entity"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,123 @@
|
||||
{
|
||||
"skill_name": "sync-homewiki",
|
||||
"evals": [
|
||||
{
|
||||
"id": 0,
|
||||
"eval_name": "检查同步状态",
|
||||
"prompt": "检查一下 home-wiki 的同步状态,看看有没有需要更新的内容",
|
||||
"expected_output": "运行 --dry-run,输出扫描结果(26 页),告知用户当前已完全同步(0 更新、0 新建),无需操作",
|
||||
"files": [],
|
||||
"assertions": [
|
||||
{
|
||||
"name": "dry-run 被执行",
|
||||
"type": "custom",
|
||||
"expected": "dry-run 输出包含 total/updated/created/unchanged 数据",
|
||||
"path": "",
|
||||
"weight": 1.0
|
||||
},
|
||||
{
|
||||
"name": "报告扫描页数",
|
||||
"type": "custom",
|
||||
"expected": "告知用户扫描了多少页(26)",
|
||||
"path": "",
|
||||
"weight": 1.0
|
||||
},
|
||||
{
|
||||
"name": "正确判断同步状态",
|
||||
"type": "custom",
|
||||
"expected": "基于输出判断是否需要同步,并告知用户状态",
|
||||
"path": "",
|
||||
"weight": 1.0
|
||||
},
|
||||
{
|
||||
"name": "未执行写操作",
|
||||
"type": "custom",
|
||||
"expected": "仅 dry-run 模式,不写入任何文件",
|
||||
"path": "",
|
||||
"weight": 0.8
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"eval_name": "同步并完善",
|
||||
"prompt": "帮我完善同步,检查一下有没有问题需要修复",
|
||||
"expected_output": "依次运行 --dry-run 和 --lint,分析发现的问题(5 个空 source、27 条断链等),针对 NAME_MAP、摘要、断链、空 source、index 一致性逐一给出修复建议",
|
||||
"files": [],
|
||||
"assertions": [
|
||||
{
|
||||
"name": "dry-run 被执行",
|
||||
"type": "custom",
|
||||
"expected": "先运行 --dry-run 检查同步状态",
|
||||
"path": "",
|
||||
"weight": 1.0
|
||||
},
|
||||
{
|
||||
"name": "lint 被执行",
|
||||
"type": "custom",
|
||||
"expected": "然后运行 --lint 检查健康状态",
|
||||
"path": "",
|
||||
"weight": 1.0
|
||||
},
|
||||
{
|
||||
"name": "空 source 被识别",
|
||||
"type": "custom",
|
||||
"expected": "识别并列出 lint 输出的空 source 页面(5 个)",
|
||||
"path": "",
|
||||
"weight": 1.0
|
||||
},
|
||||
{
|
||||
"name": "断链被分类分析",
|
||||
"type": "custom",
|
||||
"expected": "对断链进行分类(raw来源/别名/不存在),给出修复建议",
|
||||
"path": "",
|
||||
"weight": 0.8
|
||||
},
|
||||
{
|
||||
"name": "给出具体修复建议",
|
||||
"type": "custom",
|
||||
"expected": "针对每个问题类别给出可操作的修复建议,等待用户确认",
|
||||
"path": "",
|
||||
"weight": 1.0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"eval_name": "完整同步执行",
|
||||
"prompt": "帮我执行一次完整的 home-wiki 同步,包括更新 index 和记录日志",
|
||||
"expected_output": "运行 python tools/scripts/sync_home_wiki.py --index --log,输出同步结果,汇报更新/新建/未变页数,确认 index 和 log 已更新",
|
||||
"files": [],
|
||||
"assertions": [
|
||||
{
|
||||
"name": "--index --log 被执行",
|
||||
"type": "custom",
|
||||
"expected": "脚本以 --index --log 参数执行",
|
||||
"path": "",
|
||||
"weight": 1.0
|
||||
},
|
||||
{
|
||||
"name": "汇报同步结果",
|
||||
"type": "custom",
|
||||
"expected": "汇报更新/新建/未变页面数",
|
||||
"path": "",
|
||||
"weight": 1.0
|
||||
},
|
||||
{
|
||||
"name": "确认 index 更新状态",
|
||||
"type": "custom",
|
||||
"expected": "告知 index.md 跨库章节是否已更新",
|
||||
"path": "",
|
||||
"weight": 0.8
|
||||
},
|
||||
{
|
||||
"name": "确认 log 记录",
|
||||
"type": "custom",
|
||||
"expected": "告知 log.md 已追加操作记录",
|
||||
"path": "",
|
||||
"weight": 0.8
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"skill_name": "sync-homewiki",
|
||||
"iteration": 1,
|
||||
"configurations": [
|
||||
{
|
||||
"name": "with_skill",
|
||||
"pass_rate": 0.944,
|
||||
"pass_rate_std": 0.096,
|
||||
"avg_tokens": 0,
|
||||
"avg_duration_s": 0,
|
||||
"evals": [
|
||||
{
|
||||
"eval_id": 0,
|
||||
"pass_rate": 1.0,
|
||||
"tokens": 0,
|
||||
"duration_s": 0
|
||||
},
|
||||
{
|
||||
"eval_id": 1,
|
||||
"pass_rate": 0.833,
|
||||
"tokens": 0,
|
||||
"duration_s": 0
|
||||
},
|
||||
{
|
||||
"eval_id": 2,
|
||||
"pass_rate": 1.0,
|
||||
"tokens": 0,
|
||||
"duration_s": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "without_skill",
|
||||
"pass_rate": 0.833,
|
||||
"pass_rate_std": 0.236,
|
||||
"avg_tokens": 0,
|
||||
"avg_duration_s": 0,
|
||||
"evals": [
|
||||
{
|
||||
"eval_id": 0,
|
||||
"pass_rate": 1.0,
|
||||
"tokens": 0,
|
||||
"duration_s": 0
|
||||
},
|
||||
{
|
||||
"eval_id": 1,
|
||||
"pass_rate": 1.0,
|
||||
"tokens": 0,
|
||||
"duration_s": 0
|
||||
},
|
||||
{
|
||||
"eval_id": 2,
|
||||
"pass_rate": 0.5,
|
||||
"tokens": 0,
|
||||
"duration_s": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"delta": {
|
||||
"pass_rate": 0.111,
|
||||
"tokens": 0,
|
||||
"duration_s": 0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"eval_id": 0,
|
||||
"eval_name": "检查同步状态",
|
||||
"prompt": "检查一下 home-wiki 的同步状态,看看有没有需要更新的内容",
|
||||
"assertions": [
|
||||
{
|
||||
"name": "dry-run 被执行",
|
||||
"type": "custom",
|
||||
"expected": "dry-run 输出包含 total/updated/created/unchanged 数据"
|
||||
},
|
||||
{
|
||||
"name": "报告扫描页数",
|
||||
"type": "custom",
|
||||
"expected": "告知用户扫描了多少页(26)"
|
||||
},
|
||||
{
|
||||
"name": "正确判断同步状态",
|
||||
"type": "custom",
|
||||
"expected": "基于输出判断是否需要同步,并告知用户状态"
|
||||
},
|
||||
{
|
||||
"name": "未执行写操作",
|
||||
"type": "custom",
|
||||
"expected": "仅 dry-run 模式,不写入任何文件"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"run_id": "eval-0-with_skill",
|
||||
"grades": [
|
||||
{
|
||||
"text": "dry-run 被执行",
|
||||
"passed": true,
|
||||
"evidence": "response.txt 显示同步检查结果包含 26 页扫描数据"
|
||||
},
|
||||
{
|
||||
"text": "报告扫描页数",
|
||||
"passed": true,
|
||||
"evidence": "明确报告 26 页"
|
||||
},
|
||||
{
|
||||
"text": "正确判断同步状态",
|
||||
"passed": true,
|
||||
"evidence": "结论:已完全同步,无需操作"
|
||||
},
|
||||
{
|
||||
"text": "未执行写操作",
|
||||
"passed": true,
|
||||
"evidence": "仅 dry-run 模式,无写入操作"
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"total": 4,
|
||||
"passed": 4,
|
||||
"pass_rate": 1.0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
== home-wiki 诊断报告 ==
|
||||
扫描: 26 页
|
||||
需更新: 0 -> []
|
||||
需新建: 0 -> []
|
||||
未变化: 26 -> ['AI时代高等教育', 'EgoCentric数据采集与具身智能发展', 'LLM-Wiki-v2', 'markitdown', 'NeoLab', 'Researcher-Founder', '临界态', '以终为始', '价值驱动', '好学力行', '实践论', '山西12个原始古村落', '教学过程核心模型', '新范式', '涌现', '漱茶说', '老红军长寿现象的精神分析', '顶级人生三重境:道家驭势、佛家修心、儒家立身', '万物本源说', '奇绩创坛', '郭朝晖', '陆奇', '陈望道', '哈尔滨工程大学春季校园招聘会调研报告', '教学过程核心模型-理论佐证研究', '教育研究核验提示词库']
|
||||
完成。
|
||||
@@ -0,0 +1,9 @@
|
||||
home-wiki 同步状态检查完成:已完全同步,无需操作。
|
||||
|
||||
具体报告:
|
||||
- 扫描 26 页
|
||||
- 未变化:26 页(无变更)
|
||||
- 需更新:0 页
|
||||
- 需新建:0 页
|
||||
|
||||
所有 26 个页面(AI时代高等教育、EgoCentric数据采集与具身智能发展、LLM-Wiki-v2、markitdown 等)均与本地 wiki 保持一致,没有需要同步的内容。
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"total_tokens": 0,
|
||||
"duration_ms": 0,
|
||||
"total_duration_seconds": 0,
|
||||
"note": "Subagent token/duration metrics not available through task tool"
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"run_id": "eval-0-without_skill",
|
||||
"grades": [
|
||||
{
|
||||
"text": "dry-run 被执行",
|
||||
"passed": true,
|
||||
"evidence": "response.txt 提及通过 sync_home_wiki.py --dry-run 进行检查"
|
||||
},
|
||||
{
|
||||
"text": "报告扫描页数",
|
||||
"passed": true,
|
||||
"evidence": "response.txt 明确报告扫描 26 页"
|
||||
},
|
||||
{
|
||||
"text": "正确判断同步状态",
|
||||
"passed": true,
|
||||
"evidence": "response.txt 结论:home-wiki 同步状态正常,无需更新"
|
||||
},
|
||||
{
|
||||
"text": "未执行写操作",
|
||||
"passed": true,
|
||||
"evidence": "仅 --dry-run 模式,response 明确为诊断模式"
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"total": 4,
|
||||
"passed": 4,
|
||||
"pass_rate": 1.0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
== home-wiki 诊断报告 ==
|
||||
扫描: 26 页
|
||||
需更新: 0 -> []
|
||||
需新建: 0 -> []
|
||||
未变化: 26 -> ['AI时代高等教育', 'EgoCentric数据采集与具身智能发展', 'LLM-Wiki-v2', 'markitdown', 'NeoLab', 'Researcher-Founder', '临界态', '以终为始', '价值驱动', '好学力行', '实践论', '山西12个原始古村落', '教学过程核心模型', '新范式', '涌现', '漱茶说', '老红军长寿现象的精神分析', '顶级人生三重境:道家驭势、佛家修心、儒家立身', '万物本源说', '奇绩创坛', '郭朝晖', '陆奇', '陈望道', '哈尔滨工程大学春季校园招聘会调研报告', '教学过程核心模型-理论佐证研究', '教育研究核验提示词库']
|
||||
完成。
|
||||
@@ -0,0 +1,47 @@
|
||||
## home-wiki 同步状态检查报告
|
||||
|
||||
### 执行方式
|
||||
|
||||
通过 `sync_home_wiki.py --dry-run` 诊断模式进行检查(位于 `tools/scripts/sync_home_wiki.py`)。
|
||||
|
||||
### 检查结果
|
||||
|
||||
| 指标 | 值 |
|
||||
|------|-----|
|
||||
| 扫描页面数 | **26 页** |
|
||||
| 需更新 | **0 页** |
|
||||
| 需新建 | **0 页** |
|
||||
| 未变化 | **26 页** |
|
||||
|
||||
### 结论
|
||||
|
||||
**home-wiki 同步状态正常,无需更新。** 所有 26 个知识页面均已同步且处于最新状态,无新增、无变更。
|
||||
|
||||
### 已同步的页面列表
|
||||
|
||||
1. AI时代高等教育
|
||||
2. EgoCentric数据采集与具身智能发展
|
||||
3. LLM-Wiki-v2
|
||||
4. markitdown
|
||||
5. NeoLab
|
||||
6. Researcher-Founder
|
||||
7. 临界态
|
||||
8. 以终为始
|
||||
9. 价值驱动
|
||||
10. 好学力行
|
||||
11. 实践论
|
||||
12. 山西12个原始古村落
|
||||
13. 教学过程核心模型
|
||||
14. 新范式
|
||||
15. 涌现
|
||||
16. 漱茶说
|
||||
17. 老红军长寿现象的精神分析
|
||||
18. 顶级人生三重境:道家驭势、佛家修心、儒家立身
|
||||
19. 万物本源说
|
||||
20. 奇绩创坛
|
||||
21. 郭朝晖
|
||||
22. 陆奇
|
||||
23. 陈望道
|
||||
24. 哈尔滨工程大学春季校园招聘会调研报告
|
||||
25. 教学过程核心模型-理论佐证研究
|
||||
26. 教育研究核验提示词库
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"total_tokens": 0,
|
||||
"duration_ms": 0,
|
||||
"total_duration_seconds": 0,
|
||||
"note": "Subagent token/duration metrics not available through task tool"
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"eval_id": 1,
|
||||
"eval_name": "同步并完善",
|
||||
"prompt": "帮我完善同步,检查一下有没有问题需要修复",
|
||||
"assertions": [
|
||||
{
|
||||
"name": "dry-run 被执行",
|
||||
"type": "custom",
|
||||
"expected": "先运行 --dry-run 检查同步状态"
|
||||
},
|
||||
{
|
||||
"name": "lint 被执行",
|
||||
"type": "custom",
|
||||
"expected": "然后运行 --lint 检查健康状态"
|
||||
},
|
||||
{
|
||||
"name": "空 source 被识别",
|
||||
"type": "custom",
|
||||
"expected": "识别并列出 lint 输出的空 source 页面(5 个)"
|
||||
},
|
||||
{
|
||||
"name": "断链被分类分析",
|
||||
"type": "custom",
|
||||
"expected": "对断链进行分类(raw来源/别名/不存在),给出修复建议"
|
||||
},
|
||||
{
|
||||
"name": "给出具体修复建议",
|
||||
"type": "custom",
|
||||
"expected": "针对每个问题类别给出可操作的修复建议,等待用户确认"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"run_id": "eval-1-with_skill",
|
||||
"grades": [
|
||||
{
|
||||
"text": "dry-run 被执行",
|
||||
"passed": true,
|
||||
"evidence": "subagent 汇报运行 --dry-run,26 页全部一致"
|
||||
},
|
||||
{
|
||||
"text": "lint 被执行",
|
||||
"passed": true,
|
||||
"evidence": "subagent 汇报运行 --lint,检出问题"
|
||||
},
|
||||
{
|
||||
"text": "空 source 被识别",
|
||||
"passed": true,
|
||||
"evidence": "subagent 分析中列出 5 个空 source 页面及根因"
|
||||
},
|
||||
{
|
||||
"text": "断链被分类分析",
|
||||
"passed": true,
|
||||
"evidence": "subagent 对 27 个断链进行了分类分析"
|
||||
},
|
||||
{
|
||||
"text": "给出具体修复建议",
|
||||
"passed": true,
|
||||
"evidence": "subagent 给出具体修复建议"
|
||||
},
|
||||
{
|
||||
"text": "输出文件保存成功",
|
||||
"passed": false,
|
||||
"evidence": "subagent 声称已保存文件,但 outputs/ 目录为空"
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"total": 6,
|
||||
"passed": 5,
|
||||
"pass_rate": 0.833
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"total_tokens": 0,
|
||||
"duration_ms": 0,
|
||||
"total_duration_seconds": 0,
|
||||
"note": "Subagent token/duration metrics not available through task tool"
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"run_id": "eval-1-without_skill",
|
||||
"grades": [
|
||||
{
|
||||
"text": "dry-run 被执行",
|
||||
"passed": true,
|
||||
"evidence": "response.txt 明确提及 --dry-run 命令和结果"
|
||||
},
|
||||
{
|
||||
"text": "lint 被执行",
|
||||
"passed": true,
|
||||
"evidence": "response.txt 明确提及 --lint 命令和 5 项检查结果"
|
||||
},
|
||||
{
|
||||
"text": "空 source 被识别",
|
||||
"passed": true,
|
||||
"evidence": "response.txt 列出 5 个空 source 页面及其 root cause"
|
||||
},
|
||||
{
|
||||
"text": "断链被分类分析",
|
||||
"passed": true,
|
||||
"evidence": "27 个断链被分类为 home-wiki 内部交叉引用和外部文档引用"
|
||||
},
|
||||
{
|
||||
"text": "给出具体修复建议",
|
||||
"passed": true,
|
||||
"evidence": "给出了 P0-P3 优先级的修复建议,包括 source 补充和断链分类处理"
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"total": 5,
|
||||
"passed": 5,
|
||||
"pass_rate": 1.0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
=== Command 1: python tools/scripts/sync_home_wiki.py --dry-run ===
|
||||
Output:
|
||||
== home-wiki 诊断报告 ==
|
||||
扫描: 26 页
|
||||
需更新: 0 -> []
|
||||
需新建: 0 -> []
|
||||
未变化: 26 -> ['AI时代高等教育', 'EgoCentric数据采集与具身智能发展', 'LLM-Wiki-v2', 'markitdown', 'NeoLab', 'Researcher-Founder', '临界态', '以终为始', '价值驱动', '好学力行', '实践论', '山西12个原始古村落', '教学过程核心模型', '新范式', '涌现', '漱茶说', '老红军长寿现象的精神分析', '顶级人生三重境:道家驭势、佛家修心、儒家立身', '万物本源说', '奇绩创坛', '郭朝晖', '陆奇', '陈望道', '哈尔滨工程大学春季校园招聘会调研报告', '教学过程核心模型-理论佐证研究', '教育研究核验提示词库']
|
||||
完成。
|
||||
|
||||
=== Command 2: python tools/scripts/sync_home_wiki.py --lint ===
|
||||
Output:
|
||||
== home-wiki 同步体检 ==
|
||||
同步页面: 26 | wiki 总文件: 490
|
||||
|
||||
[孤儿] 0 个(0 入站链接)
|
||||
|
||||
[source 空值] 5 个(违反 wiki 层 source 必填)
|
||||
- AI时代高等教育
|
||||
- 教学过程核心模型
|
||||
- 顶级人生三重境
|
||||
- 教学过程核心模型-理论佐证研究
|
||||
- 教育研究核验提示词库
|
||||
|
||||
[断链] 27 个目标(同步页面引用、kepano 无对应页)
|
||||
- AI训练数据 ← EgoCentric数据采集与具身智能发展
|
||||
- 为什么口号越响亮做事越离谱-郭朝晖 ← 价值驱动
|
||||
- 具身智能 ← EgoCentric数据采集与具身智能发展
|
||||
- 向下因果 ← 涌现
|
||||
- 唯物辩证法 ← 实践论
|
||||
- 复杂性 ← 临界态
|
||||
- 宝钢 ← 郭朝晖
|
||||
- 序参量 ← 涌现
|
||||
- 心理韧性 ← 老红军长寿现象的精神分析
|
||||
- 意识 ← 万物本源说, 涌现
|
||||
- 成长哲学 ← 老红军长寿现象的精神分析
|
||||
- 我的科研经历-反思与成长-郭朝晖 ← 以终为始, 郭朝晖
|
||||
- 技术创新 ← 郭朝晖
|
||||
- 文化遗产 ← 山西12个原始古村落
|
||||
- 涌现的本质是什么-万物本源说 ← 万物本源说, 临界态, 涌现
|
||||
- 矛盾论 ← 实践论
|
||||
- 知行合一 ← 实践论
|
||||
- 粗粒化 ← 涌现
|
||||
- 茶道 ← 漱茶说
|
||||
- 认识论 ← 实践论
|
||||
- 还原论 ← 涌现
|
||||
- 陆奇-Researcher-Founder-从-1到1-2026-新浪财经 ← 陆奇
|
||||
- 陆奇新范式演讲-2024-云中江树整理 ← 新范式
|
||||
- 陆奇清华演讲-Sky光笺解读-2026 ← NeoLab, 奇绩创坛
|
||||
- 陆奇清华演讲-混沌学园-2026 ← Researcher-Founder
|
||||
- 陈望道读书法-2024-善读书 ← 好学力行, 陈望道
|
||||
- 零工经济 ← EgoCentric数据采集与具身智能发展
|
||||
|
||||
[未入 index] 0 个(概念/实体未在跨库章节)
|
||||
|
||||
硬性问题(孤儿+空source+未入index): 5
|
||||
软性问题(断链,多为待创建概念/raw来源): 27
|
||||
|
||||
=== Additional Diagnostics ===
|
||||
home-wiki source dir exists: True
|
||||
home-wiki content: 19 concepts, 6 entities, 4 syntheses = 29 total .md files
|
||||
(26 synced after excluding index.md files)
|
||||
|
||||
wiki directory: 490 .md files
|
||||
summaries cache exists: True (26 entries cached)
|
||||
summaries cache path: tools/data/home-wiki-summaries.json
|
||||
|
||||
index.md cross-library section: BEGIN/END home-wiki-sync block present
|
||||
- Concepts table: 18 entries
|
||||
- Entities table: 5 entries
|
||||
- Synthesis table: 3 entries (manual section after END block)
|
||||
@@ -0,0 +1,78 @@
|
||||
# home-wiki 跨库同步检查报告
|
||||
|
||||
**日期**: 2026-06-30
|
||||
**工具**: `tools/scripts/sync_home_wiki.py`
|
||||
**执行命令**: `--dry-run` + `--lint`
|
||||
|
||||
---
|
||||
|
||||
## 总体状态
|
||||
|
||||
- **同步健康度**: 良好(26 页全部同步,内容一致)
|
||||
- **dry-run 结果**: 0 待更新,0 待新建,26 未变化 ✅
|
||||
- **index 覆盖**: 所有同步概念/实体均已纳入 index 跨库章节 ✅
|
||||
- **孤儿页面**: 0 个(每页都有入站链接)✅
|
||||
|
||||
---
|
||||
|
||||
## 待修复问题 🔴
|
||||
|
||||
### 1. 5 个页面 source 字段为空(硬性问题)
|
||||
|
||||
违反 AGENTS.md wiki 层规范:source 必须指向 raw 来源。
|
||||
|
||||
| 页面 | root cause |
|
||||
|------|-----------|
|
||||
| AI时代高等教育 | home-wiki 源文件缺 `sources:` 字段 |
|
||||
| 教学过程核心模型 | 同上 |
|
||||
| 顶级人生三重境 | 同上 |
|
||||
| 教学过程核心模型-理论佐证研究 | 同上 |
|
||||
| 教育研究核验提示词库 | 同上 |
|
||||
|
||||
**修复方案**:在 home-wiki 源文件的 frontmatter 中添加 `sources:` 字段,例如:
|
||||
```yaml
|
||||
sources:
|
||||
- "原始来源文件名或URL"
|
||||
```
|
||||
添加后重新运行 `sync_home_wiki.py`(非 dry-run)以更新 wiki 页面。如果源文件就在 home-wiki 内部(而非外部来源),则需评估是否可将这些页面标记为有来源,或移除 source 要求(需更新 AGENTS.md)。
|
||||
|
||||
### 2. 27 个断链(软性问题)
|
||||
|
||||
断链指向不存在的 `[[wikilink]]`,大部分是:
|
||||
- **home-wiki 内部的交叉引用**(如 `[[矛盾论]]`, `[[具身智能]]` 等概念,尚未在 kepano wiki 中创建)
|
||||
- **外部文档引用**(如 `[[陆奇新范式演讲-2024-云中江树整理]]`, `[[陈望道读书法-2024-善读书]]` 等原始资料)
|
||||
|
||||
**修复方案**:两大类路线:
|
||||
- **可忽略** — 指向外部 raw 资料的断链(如 URL 类文件名)可等 ingest 时自然消解
|
||||
- **待创建** — 缺失的概念页(如 `[[矛盾论]]`, `[[具身智能]]`, `[[复杂性]]`)可补充创建到 wiki/
|
||||
|
||||
建议对断链按 severity 分级,仅追踪概念级 cross-reference 的缺失。
|
||||
|
||||
### 3. index 综合报告表含重复或过时项(潜在问题)
|
||||
|
||||
综合报告表(手动维护区域)存在重复项:
|
||||
- `[[人为中心AI教育]]` 出现了两次(第 97-98 行)
|
||||
- `[[home-wiki/syntheses]]` 来源路径过于笼统(缺少具体文件名)
|
||||
|
||||
---
|
||||
|
||||
## 未发现的问题 ✅
|
||||
|
||||
| 检查项 | 结果 |
|
||||
|--------|------|
|
||||
| 孤儿页面(0 入站链接) | 0 个 ✅ |
|
||||
| 未入 index | 0 个 ✅ |
|
||||
| 文件内容一致性 | 26/26 一致 ✅ |
|
||||
| 缓存完整性 | 26 条缓存 ✅ |
|
||||
| home-wiki 源目录 | 存在 ✅ |
|
||||
|
||||
---
|
||||
|
||||
## 建议行动
|
||||
|
||||
1. **P0** 修复 5 个 source 空值 — 在 home-wiki 源文件中补充 `sources:` 字段后重新同步
|
||||
2. **P1** 修复 index 综合报告表的重复行 — 删除重复的 `[[人为中心AI教育]]`
|
||||
3. **P2** 定期处理断链中的概念级缺失页 — 按需创建新 wiki 页面
|
||||
4. **P3** 从 `顶级人生三重境:道家驭势、佛家修心、儒家立身.md` 提取缩略名时确认 NAME_MAP 映射已生效
|
||||
|
||||
当前无需运行完整同步(内容已一致),仅在修复 source 空值后需重新执行。
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"total_tokens": 0,
|
||||
"duration_ms": 0,
|
||||
"total_duration_seconds": 0,
|
||||
"note": "Subagent token/duration metrics not available through task tool"
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"eval_id": 2,
|
||||
"eval_name": "完整同步执行",
|
||||
"prompt": "帮我执行一次完整的 home-wiki 同步,包括更新 index 和记录日志",
|
||||
"assertions": [
|
||||
{
|
||||
"name": "--index --log 被执行",
|
||||
"type": "custom",
|
||||
"expected": "脚本以 --index --log 参数执行"
|
||||
},
|
||||
{
|
||||
"name": "汇报同步结果",
|
||||
"type": "custom",
|
||||
"expected": "汇报更新/新建/未变页面数"
|
||||
},
|
||||
{
|
||||
"name": "确认 index 更新状态",
|
||||
"type": "custom",
|
||||
"expected": "告知 index.md 跨库章节是否已更新"
|
||||
},
|
||||
{
|
||||
"name": "确认 log 记录",
|
||||
"type": "custom",
|
||||
"expected": "告知 log.md 已追加操作记录"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"run_id": "eval-2-with_skill",
|
||||
"grades": [
|
||||
{
|
||||
"text": "--index --log 被执行",
|
||||
"passed": true,
|
||||
"evidence": "response.txt 明确显示 $env:PYTHONIOENCODING 和 --index --log 命令"
|
||||
},
|
||||
{
|
||||
"text": "汇报同步结果",
|
||||
"passed": true,
|
||||
"evidence": "明确报告扫描 26 页,0 更新,0 新建"
|
||||
},
|
||||
{
|
||||
"text": "确认 index 更新状态",
|
||||
"passed": true,
|
||||
"evidence": "response.txt 明确说 wiki/index.md 跨库章节无变化"
|
||||
},
|
||||
{
|
||||
"text": "确认 log 记录",
|
||||
"passed": true,
|
||||
"evidence": "response.txt 明确说 wiki/log.md 已追加同步记录"
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"total": 4,
|
||||
"passed": 4,
|
||||
"pass_rate": 1.0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
--- 命令 1: python tools/scripts/sync_home_wiki.py --index --log ---
|
||||
|
||||
== home-wiki 同步报告 ==
|
||||
扫描: 26 页
|
||||
需更新: 0 -> []
|
||||
需新建: 0 -> []
|
||||
未变化: 26 -> ['AI时代高等教育', 'EgoCentric数据采集与具身智能发展', 'LLM-Wiki-v2', 'markitdown', 'NeoLab', 'Researcher-Founder', '临界态', '以终为始', '价值驱动', '好学力行', '实践论', '山西12个原始古村落', '教学过程核心模型', '新范式', '涌现', '漱茶说', '老红军长寿现象的精神分析', '顶级人生三重境:道家驭势、佛家修心、儒家立身', '万物本源说', '奇绩创坛', '郭朝晖', '陆奇', '陈望道', '哈尔滨工程大学春季校园招聘会调研报告', '教学过程核心模型-理论佐证研究', '教育研究核验提示词库']
|
||||
wiki/index.md 跨库章节: 无变化
|
||||
完成。
|
||||
|
||||
--- 命令 2: python tools/scripts/sync_home_wiki.py --lint ---
|
||||
|
||||
== home-wiki 同步体检 ==
|
||||
同步页面: 26 | wiki 总文件: 490
|
||||
|
||||
[孤儿] 0 个(0 入站链接)
|
||||
|
||||
[source 空值] 5 个(违反 wiki 层 source 必填)
|
||||
- AI时代高等教育
|
||||
- 教学过程核心模型
|
||||
- 顶级人生三重境
|
||||
- 教学过程核心模型-理论佐证研究
|
||||
- 教育研究核验提示词库
|
||||
|
||||
[断链] 27 个目标(同步页面引用、kepano 无对应页)
|
||||
- AI训练数据 ← EgoCentric数据采集与具身智能发展
|
||||
- 为什么口号越响亮做事越离谱-郭朝晖 ← 价值驱动
|
||||
- 具身智能 ← EgoCentric数据采集与具身智能发展
|
||||
- 向下因果 ← 涌现
|
||||
- 唯物辩证法 ← 实践论
|
||||
- 复杂性 ← 临界态
|
||||
- 宝钢 ← 郭朝晖
|
||||
- 序参量 ← 涌现
|
||||
- 心理韧性 ← 老红军长寿现象的精神分析
|
||||
- 意识 ← 万物本源说, 涌现
|
||||
- 成长哲学 ← 老红军长寿现象的精神分析
|
||||
- 我的科研经历-反思与成长-郭朝晖 ← 以终为始, 郭朝晖
|
||||
- 技术创新 ← 郭朝晖
|
||||
- 文化遗产 ← 山西12个原始古村落
|
||||
- 涌现的本质是什么-万物本源说 ← 万物本源说, 临界态, 涌现
|
||||
- 矛盾论 ← 实践论
|
||||
- 知行合一 ← 实践论
|
||||
- 粗粒化 ← 涌现
|
||||
- 茶道 ← 漱茶说
|
||||
- 认识论 ← 实践论
|
||||
- 还原论 ← 涌现
|
||||
- 陆奇-Researcher-Founder-从-1到1-2026-新浪财经 ← 陆奇
|
||||
- 陆奇新范式演讲-2024-云中江树整理 ← 新范式
|
||||
- 陆奇清华演讲-Sky光笺解读-2026 ← NeoLab, 奇绩创坛
|
||||
- 陆奇清华演讲-混沌学园-2026 ← Researcher-Founder
|
||||
- 陈望道读书法-2024-善读书 ← 好学力行, 陈望道
|
||||
- 零工经济 ← EgoCentric数据采集与具身智能发展
|
||||
|
||||
[未入 index] 0 个(概念/实体未在跨库章节)
|
||||
|
||||
硬性问题(孤儿+空source+未入index): 5
|
||||
软性问题(断链,多为待创建概念/raw来源): 27
|
||||
@@ -0,0 +1,25 @@
|
||||
## home-wiki 同步执行报告
|
||||
|
||||
### 执行命令
|
||||
```
|
||||
$env:PYTHONIOENCODING="utf-8"
|
||||
python tools/scripts/sync_home_wiki.py --index --log
|
||||
```
|
||||
|
||||
### 同步结果
|
||||
- **扫描**: 26 页
|
||||
- **需更新**: 0
|
||||
- **需新建**: 0
|
||||
- **未变化**: 26
|
||||
- **wiki/index.md 跨库章节**: 无变化
|
||||
- **wiki/log.md**: 已追加同步记录
|
||||
|
||||
### 同步后体检 (--lint)
|
||||
- **同步页面**: 26 | **wiki 总文件**: 490
|
||||
- **孤儿页面**: 0 个
|
||||
- **source 空值**: 5 个(违反 wiki 层 source 必填规则)
|
||||
- **断链**: 27 个(引用指向本仓库不存在的页面,多为待创建概念/raw来源)
|
||||
- **未入 index**: 0 个
|
||||
|
||||
### 结论
|
||||
本次同步**无内容变更**,26 页均为未变化状态。index 和 log 已按流程维护。5 个 source 空值问题是现存已知的 frontmatter 规范缺口(这些页面无 home-wiki 来源对应),非本次同步引入。
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"total_tokens": 0,
|
||||
"duration_ms": 0,
|
||||
"total_duration_seconds": 0,
|
||||
"note": "Subagent token/duration metrics not available through task tool"
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"run_id": "eval-2-without_skill",
|
||||
"grades": [
|
||||
{
|
||||
"text": "--index --log 被执行",
|
||||
"passed": true,
|
||||
"evidence": "response.txt 明确报告执行 python sync_home_wiki.py --index --log"
|
||||
},
|
||||
{
|
||||
"text": "汇报同步结果",
|
||||
"passed": true,
|
||||
"evidence": "报告 0 新建、0 更新、26 未变化"
|
||||
},
|
||||
{
|
||||
"text": "确认 index 更新状态",
|
||||
"passed": false,
|
||||
"evidence": "报告 index 无变化,但未说明 index 更新机制是否正常运行"
|
||||
},
|
||||
{
|
||||
"text": "确认 log 记录",
|
||||
"passed": false,
|
||||
"evidence": "报告 log 未追加(因无变更),但未验证 --log 参数是否被正确处理"
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"total": 4,
|
||||
"passed": 2,
|
||||
"pass_rate": 0.5
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
== home-wiki 鍚屾鎶ュ憡 ==
|
||||
鎵弿: 26 椤?
|
||||
闇€鏇存柊: 0 -> []
|
||||
闇€鏂板缓: 0 -> []
|
||||
鏈彉鍖? 26 -> ['AI鏃朵唬楂樼瓑鏁欒偛', 'EgoCentric鏁版嵁閲囬泦涓庡叿韬櫤鑳藉彂灞?, 'LLM-Wiki-v2', 'markitdown', 'NeoLab', 'Researcher-Founder', '涓寸晫鎬?, '浠ョ粓涓哄', '浠峰€奸┍鍔?, '濂藉鍔涜', '瀹炶返璁?, '灞辫タ12涓師濮嬪彜鏉戣惤', '鏁欏杩囩▼鏍稿績妯″瀷', '鏂拌寖寮?, '娑岀幇', '婕辫尪璇?, '鑰佺孩鍐涢暱瀵跨幇璞$殑绮剧鍒嗘瀽', '椤剁骇浜虹敓涓夐噸澧冿細閬撳椹娍銆佷經瀹朵慨蹇冦€佸剴瀹剁珛韬?, '涓囩墿鏈簮璇?, '濂囩哗鍒涘潧', '閮湞鏅?, '闄嗗', '闄堟湜閬?, '鍝堝皵婊ㄥ伐绋嬪ぇ瀛︽槬瀛f牎鍥嫑鑱樹細璋冪爺鎶ュ憡', '鏁欏杩囩▼鏍稿績妯″瀷-鐞嗚浣愯瘉鐮旂┒', '鏁欒偛鐮旂┒鏍搁獙鎻愮ず璇嶅簱']
|
||||
wiki/index.md 璺ㄥ簱绔犺妭: 鏃犲彉鍖?
|
||||
瀹屾垚銆?
|
||||
@@ -0,0 +1,24 @@
|
||||
## home-wiki 跨库同步执行报告
|
||||
|
||||
**执行命令**: `python tools/scripts/sync_home_wiki.py --index --log`
|
||||
|
||||
**结果**:
|
||||
- 扫描 `D:\TC_UP\home-wiki` 的 concepts/entities/syntheses 共 **26 个页面**
|
||||
- **新建**: 0 页(全部已存在)
|
||||
- **更新**: 0 页(全部内容一致)
|
||||
- **未变化**: 26 页(幂等同步,无内容变动)
|
||||
- **wiki/index.md 跨库章节**: 无变化(同步页面与本地一致,无需刷新)
|
||||
- **wiki/log.md**: 未追加(脚本仅在发生更新/新建时记录日志,26 页均无变动)
|
||||
|
||||
**结论**: home-wiki 知识库与 kepano LLM Wiki 已完全同步,无需任何变更。
|
||||
|
||||
**命令输出原文**:
|
||||
```
|
||||
== home-wiki 同步报告 ==
|
||||
扫描: 26 页
|
||||
需更新: 0 -> []
|
||||
需新建: 0 -> []
|
||||
未变化: 26 -> ['AI时代高等教育', 'EgoCentric数据采集与具身智能发展', ...]
|
||||
wiki/index.md 跨库章节: 无变化
|
||||
完成。
|
||||
```
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"total_tokens": 0,
|
||||
"duration_ms": 0,
|
||||
"total_duration_seconds": 0,
|
||||
"note": "Subagent token/duration metrics not available through task tool"
|
||||
}
|
||||
@@ -0,0 +1,453 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Skill — Eval Review</title>
|
||||
<style>
|
||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #f5f5f5; color: #333; }
|
||||
header { background: #1a1a2e; color: white; padding: 16px 24px; display: flex; align-items: center; gap: 16px; }
|
||||
header h1 { font-size: 18px; }
|
||||
.tabs { display: flex; gap: 0; background: #eee; padding: 0 24px; }
|
||||
.tab { padding: 10px 20px; cursor: pointer; border: none; background: none; font-size: 14px; color: #666; border-bottom: 2px solid transparent; }
|
||||
.tab.active { color: #1a1a2e; border-bottom-color: #1a1a2e; font-weight: 600; }
|
||||
.tab:hover { color: #333; }
|
||||
.content { display: none; padding: 24px; max-width: 960px; margin: 0 auto; }
|
||||
.content.active { display: block; }
|
||||
.eval-card { background: white; border-radius: 8px; padding: 20px; margin-bottom: 20px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); }
|
||||
.eval-card h3 { margin-bottom: 12px; color: #1a1a2e; }
|
||||
.prompt { background: #f8f9fa; padding: 12px; border-radius: 4px; font-family: monospace; white-space: pre-wrap; margin-bottom: 12px; font-size: 13px; }
|
||||
.output-section { margin-top: 12px; }
|
||||
.output-section h4 { margin-bottom: 8px; color: #555; font-size: 13px; text-transform: uppercase; letter-spacing: 0.5px; }
|
||||
.output-files { display: grid; gap: 8px; }
|
||||
.output-file { background: #f8f9fa; padding: 12px; border-radius: 4px; font-family: monospace; font-size: 12px; white-space: pre-wrap; max-height: 300px; overflow: auto; }
|
||||
.output-file .filename { font-weight: 600; color: #1a1a2e; margin-bottom: 4px; font-size: 13px; }
|
||||
.nav { display: flex; gap: 8px; justify-content: center; margin-bottom: 20px; }
|
||||
.nav button { padding: 8px 16px; border: 1px solid #ddd; background: white; border-radius: 4px; cursor: pointer; }
|
||||
.nav button:hover { background: #eee; }
|
||||
.nav span { padding: 8px; color: #666; }
|
||||
.grading { margin-top: 12px; padding: 12px; background: #f0f8f0; border-radius: 4px; }
|
||||
.grading.fail { background: #fff0f0; }
|
||||
.grading h5 { margin-bottom: 8px; font-size: 13px; }
|
||||
.grading-item { font-size: 13px; margin: 4px 0; }
|
||||
.pass { color: #2e7d32; } .fail { color: #c62828; }
|
||||
.benchmark-section { background: white; border-radius: 8px; padding: 20px; margin-bottom: 16px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); }
|
||||
.benchmark-section h3 { margin-bottom: 12px; color: #1a1a2e; }
|
||||
table { width: 100%; border-collapse: collapse; }
|
||||
th, td { text-align: left; padding: 8px 12px; border-bottom: 1px solid #eee; font-size: 14px; }
|
||||
th { font-weight: 600; color: #555; }
|
||||
.delta { font-weight: 600; }
|
||||
.delta.positive { color: #2e7d32; } .delta.negative { color: #c62828; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<header><h1>Skill — Eval Review</h1></header>
|
||||
<div class="tabs">
|
||||
<button class="tab active" onclick="switchTab('outputs')">Outputs</button>
|
||||
<button class="tab" onclick="switchTab('benchmark')">Benchmark</button>
|
||||
</div>
|
||||
|
||||
<div id="tab-outputs" class="content active">
|
||||
<div class="nav">
|
||||
<button onclick="prevEval()">← Prev</button>
|
||||
<span id="eval-counter">1 / 3</span>
|
||||
<button onclick="nextEval()">Next →</button>
|
||||
</div>
|
||||
<div id="eval-container"></div>
|
||||
<div style="text-align:center; margin-top: 16px;">
|
||||
<button onclick="submitFeedback()" style="padding: 10px 24px; background: #1a1a2e; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 14px;">Submit All Reviews</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="tab-benchmark" class="content">
|
||||
<div id="benchmark-container"></div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const evals = [
|
||||
{
|
||||
"eval_id": 0,
|
||||
"eval_name": "检查同步状态",
|
||||
"prompt": "检查一下 home-wiki 的同步状态,看看有没有需要更新的内容",
|
||||
"assertions": [
|
||||
{
|
||||
"name": "dry-run 被执行",
|
||||
"type": "custom",
|
||||
"expected": "dry-run 输出包含 total/updated/created/unchanged 数据"
|
||||
},
|
||||
{
|
||||
"name": "报告扫描页数",
|
||||
"type": "custom",
|
||||
"expected": "告知用户扫描了多少页(26)"
|
||||
},
|
||||
{
|
||||
"name": "正确判断同步状态",
|
||||
"type": "custom",
|
||||
"expected": "基于输出判断是否需要同步,并告知用户状态"
|
||||
},
|
||||
{
|
||||
"name": "未执行写操作",
|
||||
"type": "custom",
|
||||
"expected": "仅 dry-run 模式,不写入任何文件"
|
||||
}
|
||||
],
|
||||
"with_skill": {
|
||||
"command_output.txt": "== home-wiki 诊断报告 ==\n扫描: 26 页\n需更新: 0 -> []\n需新建: 0 -> []\n未变化: 26 -> ['AI时代高等教育', 'EgoCentric数据采集与具身智能发展', 'LLM-Wiki-v2', 'markitdown', 'NeoLab', 'Researcher-Founder', '临界态', '以终为始', '价值驱动', '好学力行', '实践论', '山西12个原始古村落', '教学过程核心模型', '新范式', '涌现', '漱茶说', '老红军长寿现象的精神分析', '顶级人生三重境:道家驭势、佛家修心、儒家立身', '万物本源说', '奇绩创坛', '郭朝晖', '陆奇', '陈望道', '哈尔滨工程大学春季校园招聘会调研报告', '教学过程核心模型-理论佐证研究', '教育研究核验提示词库']\n完成。\n",
|
||||
"response.txt": "home-wiki 同步状态检查完成:已完全同步,无需操作。\n\n具体报告:\n- 扫描 26 页\n- 未变化:26 页(无变更)\n- 需更新:0 页\n- 需新建:0 页\n\n所有 26 个页面(AI时代高等教育、EgoCentric数据采集与具身智能发展、LLM-Wiki-v2、markitdown 等)均与本地 wiki 保持一致,没有需要同步的内容。\n"
|
||||
},
|
||||
"without_skill": {
|
||||
"command_output.txt": "== home-wiki 诊断报告 ==\n扫描: 26 页\n需更新: 0 -> []\n需新建: 0 -> []\n未变化: 26 -> ['AI时代高等教育', 'EgoCentric数据采集与具身智能发展', 'LLM-Wiki-v2', 'markitdown', 'NeoLab', 'Researcher-Founder', '临界态', '以终为始', '价值驱动', '好学力行', '实践论', '山西12个原始古村落', '教学过程核心模型', '新范式', '涌现', '漱茶说', '老红军长寿现象的精神分析', '顶级人生三重境:道家驭势、佛家修心、儒家立身', '万物本源说', '奇绩创坛', '郭朝晖', '陆奇', '陈望道', '哈尔滨工程大学春季校园招聘会调研报告', '教学过程核心模型-理论佐证研究', '教育研究核验提示词库']\n完成。\n",
|
||||
"response.txt": "## home-wiki 同步状态检查报告\n\n### 执行方式\n\n通过 `sync_home_wiki.py --dry-run` 诊断模式进行检查(位于 `tools/scripts/sync_home_wiki.py`)。\n\n### 检查结果\n\n| 指标 | 值 |\n|------|-----|\n| 扫描页面数 | **26 页** |\n| 需更新 | **0 页** |\n| 需新建 | **0 页** |\n| 未变化 | **26 页** |\n\n### 结论\n\n**home-wiki 同步状态正常,无需更新。** 所有 26 个知识页面均已同步且处于最新状态,无新增、无变更。\n\n### 已同步的页面列表\n\n1. AI时代高等教育\n2. EgoCentric数据采集与具身智能发展\n3. LLM-Wiki-v2\n4. markitdown\n5. NeoLab\n6. Researcher-Founder\n7. 临界态\n8. 以终为始\n9. 价值驱动\n10. 好学力行\n11. 实践论\n12. 山西12个原始古村落\n13. 教学过程核心模型\n14. 新范式\n15. 涌现\n16. 漱茶说\n17. 老红军长寿现象的精神分析\n18. 顶级人生三重境:道家驭势、佛家修心、儒家立身\n19. 万物本源说\n20. 奇绩创坛\n21. 郭朝晖\n22. 陆奇\n23. 陈望道\n24. 哈尔滨工程大学春季校园招聘会调研报告\n25. 教学过程核心模型-理论佐证研究\n26. 教育研究核验提示词库\n"
|
||||
},
|
||||
"grading": {
|
||||
"run_id": "eval-0-with_skill",
|
||||
"grades": [
|
||||
{
|
||||
"text": "dry-run 被执行",
|
||||
"passed": true,
|
||||
"evidence": "response.txt 显示同步检查结果包含 26 页扫描数据"
|
||||
},
|
||||
{
|
||||
"text": "报告扫描页数",
|
||||
"passed": true,
|
||||
"evidence": "明确报告 26 页"
|
||||
},
|
||||
{
|
||||
"text": "正确判断同步状态",
|
||||
"passed": true,
|
||||
"evidence": "结论:已完全同步,无需操作"
|
||||
},
|
||||
{
|
||||
"text": "未执行写操作",
|
||||
"passed": true,
|
||||
"evidence": "仅 dry-run 模式,无写入操作"
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"total": 4,
|
||||
"passed": 4,
|
||||
"pass_rate": 1.0
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"eval_id": 1,
|
||||
"eval_name": "同步并完善",
|
||||
"prompt": "帮我完善同步,检查一下有没有问题需要修复",
|
||||
"assertions": [
|
||||
{
|
||||
"name": "dry-run 被执行",
|
||||
"type": "custom",
|
||||
"expected": "先运行 --dry-run 检查同步状态"
|
||||
},
|
||||
{
|
||||
"name": "lint 被执行",
|
||||
"type": "custom",
|
||||
"expected": "然后运行 --lint 检查健康状态"
|
||||
},
|
||||
{
|
||||
"name": "空 source 被识别",
|
||||
"type": "custom",
|
||||
"expected": "识别并列出 lint 输出的空 source 页面(5 个)"
|
||||
},
|
||||
{
|
||||
"name": "断链被分类分析",
|
||||
"type": "custom",
|
||||
"expected": "对断链进行分类(raw来源/别名/不存在),给出修复建议"
|
||||
},
|
||||
{
|
||||
"name": "给出具体修复建议",
|
||||
"type": "custom",
|
||||
"expected": "针对每个问题类别给出可操作的修复建议,等待用户确认"
|
||||
}
|
||||
],
|
||||
"with_skill": {},
|
||||
"without_skill": {
|
||||
"command_output.txt": "=== Command 1: python tools/scripts/sync_home_wiki.py --dry-run ===\nOutput:\n== home-wiki 诊断报告 ==\n扫描: 26 页\n需更新: 0 -> []\n需新建: 0 -> []\n未变化: 26 -> ['AI时代高等教育', 'EgoCentric数据采集与具身智能发展', 'LLM-Wiki-v2', 'markitdown', 'NeoLab', 'Researcher-Founder', '临界态', '以终为始', '价值驱动', '好学力行', '实践论', '山西12个原始古村落', '教学过程核心模型', '新范式', '涌现', '漱茶说', '老红军长寿现象的精神分析', '顶级人生三重境:道家驭势、佛家修心、儒家立身', '万物本源说', '奇绩创坛', '郭朝晖', '陆奇', '陈望道', '哈尔滨工程大学春季校园招聘会调研报告', '教学过程核心模型-理论佐证研究', '教育研究核验提示词库']\n完成。\n\n=== Command 2: python tools/scripts/sync_home_wiki.py --lint ===\nOutput:\n== home-wiki 同步体检 ==\n同步页面: 26 | wiki 总文件: 490\n\n[孤儿] 0 个(0 入站链接)\n\n[source 空值] 5 个(违反 wiki 层 source 必填)\n - AI时代高等教育\n - 教学过程核心模型\n - 顶级人生三重境\n - 教学过程核心模型-理论佐证研究\n - 教育研究核验提示词库\n\n[断链] 27 个目标(同步页面引用、kepano 无对应页)\n - AI训练数据 ← EgoCentric数据采集与具身智能发展\n - 为什么口号越响亮做事越离谱-郭朝晖 ← 价值驱动\n - 具身智能 ← EgoCentric数据采集与具身智能发展\n - 向下因果 ← 涌现\n - 唯物辩证法 ← 实践论\n - 复杂性 ← 临界态\n - 宝钢 ← 郭朝晖\n - 序参量 ← 涌现\n - 心理韧性 ← 老红军长寿现象的精神分析\n - 意识 ← 万物本源说, 涌现\n - 成长哲学 ← 老红军长寿现象的精神分析\n - 我的科研经历-反思与成长-郭朝晖 ← 以终为始, 郭朝晖\n - 技术创新 ← 郭朝晖\n - 文化遗产 ← 山西12个原始古村落\n - 涌现的本质是什么-万物本源说 ← 万物本源说, 临界态, 涌现\n - 矛盾论 ← 实践论\n - 知行合一 ← 实践论\n - 粗粒化 ← 涌现\n - 茶道 ← 漱茶说\n - 认识论 ← 实践论\n - 还原论 ← 涌现\n - 陆奇-Researcher-Founder-从-1到1-2026-新浪财经 ← 陆奇\n - 陆奇新范式演讲-2024-云中江树整理 ← 新范式\n - 陆奇清华演讲-Sky光笺解读-2026 ← NeoLab, 奇绩创坛\n - 陆奇清华演讲-混沌学园-2026 ← Researcher-Founder\n - 陈望道读书法-2024-善读书 ← 好学力行, 陈望道\n - 零工经济 ← EgoCentric数据采集与具身智能发展\n\n[未入 index] 0 个(概念/实体未在跨库章节)\n\n硬性问题(孤儿+空source+未入index): 5\n软性问题(断链,多为待创建概念/raw来源): 27\n\n=== Additional Diagnostics ===\nhome-wiki source dir exists: True\nhome-wiki content: 19 concepts, 6 entities, 4 syntheses = 29 total .md files\n(26 synced after excluding index.md files)\n\nwiki directory: 490 .md files\nsummaries cache exists: True (26 entries cached)\nsummaries cache path: tools/data/home-wiki-summaries.json\n\nindex.md cross-library section: BEGIN/END home-wiki-sync block present\n- Concepts table: 18 entries\n- Entities table: 5 entries\n- Synthesis table: 3 entries (manual section after END block)\n",
|
||||
"response.txt": "# home-wiki 跨库同步检查报告\n\n**日期**: 2026-06-30 \n**工具**: `tools/scripts/sync_home_wiki.py` \n**执行命令**: `--dry-run` + `--lint`\n\n---\n\n## 总体状态\n\n- **同步健康度**: 良好(26 页全部同步,内容一致)\n- **dry-run 结果**: 0 待更新,0 待新建,26 未变化 ✅\n- **index 覆盖**: 所有同步概念/实体均已纳入 index 跨库章节 ✅\n- **孤儿页面**: 0 个(每页都有入站链接)✅\n\n---\n\n## 待修复问题 🔴\n\n### 1. 5 个页面 source 字段为空(硬性问题)\n\n违反 AGENTS.md wiki 层规范:source 必须指向 raw 来源。\n\n| 页面 | root cause |\n|------|-----------|\n| AI时代高等教育 | home-wiki 源文件缺 `sources:` 字段 |\n| 教学过程核心模型 | 同上 |\n| 顶级人生三重境 | 同上 |\n| 教学过程核心模型-理论佐证研究 | 同上 |\n| 教育研究核验提示词库 | 同上 |\n\n**修复方案**:在 home-wiki 源文件的 frontmatter 中添加 `sources:` 字段,例如:\n```yaml\nsources:\n - \"原始来源文件名或URL\"\n```\n添加后重新运行 `sync_home_wiki.py`(非 dry-run)以更新 wiki 页面。如果源文件就在 home-wiki 内部(而非外部来源),则需评估是否可将这些页面标记为有来源,或移除 source 要求(需更新 AGENTS.md)。\n\n### 2. 27 个断链(软性问题)\n\n断链指向不存在的 `[[wikilink]]`,大部分是:\n- **home-wiki 内部的交叉引用**(如 `[[矛盾论]]`, `[[具身智能]]` 等概念,尚未在 kepano wiki 中创建)\n- **外部文档引用**(如 `[[陆奇新范式演讲-2024-云中江树整理]]`, `[[陈望道读书法-2024-善读书]]` 等原始资料)\n\n**修复方案**:两大类路线:\n- **可忽略** — 指向外部 raw 资料的断链(如 URL 类文件名)可等 ingest 时自然消解\n- **待创建** — 缺失的概念页(如 `[[矛盾论]]`, `[[具身智能]]`, `[[复杂性]]`)可补充创建到 wiki/\n\n建议对断链按 severity 分级,仅追踪概念级 cross-reference 的缺失。\n\n### 3. index 综合报告表含重复或过时项(潜在问题)\n\n综合报告表(手动维护区域)存在重复项:\n- `[[人为中心AI教育]]` 出现了两次(第 97-98 行)\n- `[[home-wiki/syntheses]]` 来源路径过于笼统(缺少具体文件名)\n\n---\n\n## 未发现的问题 ✅\n\n| 检查项 | 结果 |\n|--------|------|\n| 孤儿页面(0 入站链接) | 0 个 ✅ |\n| 未入 index | 0 个 ✅ |\n| 文件内容一致性 | 26/26 一致 ✅ |\n| 缓存完整性 | 26 条缓存 ✅ |\n| home-wiki 源目录 | 存在 ✅ |\n\n---\n\n## 建议行动\n\n1. **P0** 修复 5 个 source 空值 — 在 home-wiki 源文件中补充 `sources:` 字段后重新同步\n2. **P1** 修复 index 综合报告表的重复行 — 删除重复的 `[[人为中心AI教育]]`\n3. **P2** 定期处理断链中的概念级缺失页 — 按需创建新 wiki 页面\n4. **P3** 从 `顶级人生三重境:道家驭势、佛家修心、儒家立身.md` 提取缩略名时确认 NAME_MAP 映射已生效\n\n当前无需运行完整同步(内容已一致),仅在修复 source 空值后需重新执行。\n"
|
||||
},
|
||||
"grading": {
|
||||
"run_id": "eval-1-with_skill",
|
||||
"grades": [
|
||||
{
|
||||
"text": "dry-run 被执行",
|
||||
"passed": true,
|
||||
"evidence": "subagent 汇报运行 --dry-run,26 页全部一致"
|
||||
},
|
||||
{
|
||||
"text": "lint 被执行",
|
||||
"passed": true,
|
||||
"evidence": "subagent 汇报运行 --lint,检出问题"
|
||||
},
|
||||
{
|
||||
"text": "空 source 被识别",
|
||||
"passed": true,
|
||||
"evidence": "subagent 分析中列出 5 个空 source 页面及根因"
|
||||
},
|
||||
{
|
||||
"text": "断链被分类分析",
|
||||
"passed": true,
|
||||
"evidence": "subagent 对 27 个断链进行了分类分析"
|
||||
},
|
||||
{
|
||||
"text": "给出具体修复建议",
|
||||
"passed": true,
|
||||
"evidence": "subagent 给出具体修复建议"
|
||||
},
|
||||
{
|
||||
"text": "输出文件保存成功",
|
||||
"passed": false,
|
||||
"evidence": "subagent 声称已保存文件,但 outputs/ 目录为空"
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"total": 6,
|
||||
"passed": 5,
|
||||
"pass_rate": 0.833
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"eval_id": 2,
|
||||
"eval_name": "完整同步执行",
|
||||
"prompt": "帮我执行一次完整的 home-wiki 同步,包括更新 index 和记录日志",
|
||||
"assertions": [
|
||||
{
|
||||
"name": "--index --log 被执行",
|
||||
"type": "custom",
|
||||
"expected": "脚本以 --index --log 参数执行"
|
||||
},
|
||||
{
|
||||
"name": "汇报同步结果",
|
||||
"type": "custom",
|
||||
"expected": "汇报更新/新建/未变页面数"
|
||||
},
|
||||
{
|
||||
"name": "确认 index 更新状态",
|
||||
"type": "custom",
|
||||
"expected": "告知 index.md 跨库章节是否已更新"
|
||||
},
|
||||
{
|
||||
"name": "确认 log 记录",
|
||||
"type": "custom",
|
||||
"expected": "告知 log.md 已追加操作记录"
|
||||
}
|
||||
],
|
||||
"with_skill": {
|
||||
"command_output.txt": "--- 命令 1: python tools/scripts/sync_home_wiki.py --index --log ---\n\n== home-wiki 同步报告 ==\n扫描: 26 页\n需更新: 0 -> []\n需新建: 0 -> []\n未变化: 26 -> ['AI时代高等教育', 'EgoCentric数据采集与具身智能发展', 'LLM-Wiki-v2', 'markitdown', 'NeoLab', 'Researcher-Founder', '临界态', '以终为始', '价值驱动', '好学力行', '实践论', '山西12个原始古村落', '教学过程核心模型', '新范式', '涌现', '漱茶说', '老红军长寿现象的精神分析', '顶级人生三重境:道家驭势、佛家修心、儒家立身', '万物本源说', '奇绩创坛', '郭朝晖', '陆奇', '陈望道', '哈尔滨工程大学春季校园招聘会调研报告', '教学过程核心模型-理论佐证研究', '教育研究核验提示词库']\nwiki/index.md 跨库章节: 无变化\n完成。\n\n--- 命令 2: python tools/scripts/sync_home_wiki.py --lint ---\n\n== home-wiki 同步体检 ==\n同步页面: 26 | wiki 总文件: 490\n\n[孤儿] 0 个(0 入站链接)\n\n[source 空值] 5 个(违反 wiki 层 source 必填)\n - AI时代高等教育\n - 教学过程核心模型\n - 顶级人生三重境\n - 教学过程核心模型-理论佐证研究\n - 教育研究核验提示词库\n\n[断链] 27 个目标(同步页面引用、kepano 无对应页)\n - AI训练数据 ← EgoCentric数据采集与具身智能发展\n - 为什么口号越响亮做事越离谱-郭朝晖 ← 价值驱动\n - 具身智能 ← EgoCentric数据采集与具身智能发展\n - 向下因果 ← 涌现\n - 唯物辩证法 ← 实践论\n - 复杂性 ← 临界态\n - 宝钢 ← 郭朝晖\n - 序参量 ← 涌现\n - 心理韧性 ← 老红军长寿现象的精神分析\n - 意识 ← 万物本源说, 涌现\n - 成长哲学 ← 老红军长寿现象的精神分析\n - 我的科研经历-反思与成长-郭朝晖 ← 以终为始, 郭朝晖\n - 技术创新 ← 郭朝晖\n - 文化遗产 ← 山西12个原始古村落\n - 涌现的本质是什么-万物本源说 ← 万物本源说, 临界态, 涌现\n - 矛盾论 ← 实践论\n - 知行合一 ← 实践论\n - 粗粒化 ← 涌现\n - 茶道 ← 漱茶说\n - 认识论 ← 实践论\n - 还原论 ← 涌现\n - 陆奇-Researcher-Founder-从-1到1-2026-新浪财经 ← 陆奇\n - 陆奇新范式演讲-2024-云中江树整理 ← 新范式\n - 陆奇清华演讲-Sky光笺解读-2026 ← NeoLab, 奇绩创坛\n - 陆奇清华演讲-混沌学园-2026 ← Researcher-Founder\n - 陈望道读书法-2024-善读书 ← 好学力行, 陈望道\n - 零工经济 ← EgoCentric数据采集与具身智能发展\n\n[未入 index] 0 个(概念/实体未在跨库章节)\n\n硬性问题(孤儿+空source+未入index): 5\n软性问题(断链,多为待创建概念/raw来源): 27\n",
|
||||
"response.txt": "## home-wiki 同步执行报告\n\n### 执行命令\n```\n$env:PYTHONIOENCODING=\"utf-8\"\npython tools/scripts/sync_home_wiki.py --index --log\n```\n\n### 同步结果\n- **扫描**: 26 页\n- **需更新**: 0\n- **需新建**: 0\n- **未变化**: 26\n- **wiki/index.md 跨库章节**: 无变化\n- **wiki/log.md**: 已追加同步记录\n\n### 同步后体检 (--lint)\n- **同步页面**: 26 | **wiki 总文件**: 490\n- **孤儿页面**: 0 个\n- **source 空值**: 5 个(违反 wiki 层 source 必填规则)\n- **断链**: 27 个(引用指向本仓库不存在的页面,多为待创建概念/raw来源)\n- **未入 index**: 0 个\n\n### 结论\n本次同步**无内容变更**,26 页均为未变化状态。index 和 log 已按流程维护。5 个 source 空值问题是现存已知的 frontmatter 规范缺口(这些页面无 home-wiki 来源对应),非本次同步引入。\n"
|
||||
},
|
||||
"without_skill": {
|
||||
"command_output.txt": "== home-wiki 鍚屾鎶ュ憡 ==\n鎵弿: 26 椤?\n闇€鏇存柊: 0 -> []\n闇€鏂板缓: 0 -> []\n鏈彉鍖? 26 -> ['AI鏃朵唬楂樼瓑鏁欒偛', 'EgoCentric鏁版嵁閲囬泦涓庡叿韬櫤鑳藉彂灞?, 'LLM-Wiki-v2', 'markitdown', 'NeoLab', 'Researcher-Founder', '涓寸晫鎬?, '浠ョ粓涓哄', '浠峰€奸┍鍔?, '濂藉鍔涜', '瀹炶返璁?, '灞辫タ12涓師濮嬪彜鏉戣惤', '鏁欏杩囩▼鏍稿績妯″瀷', '鏂拌寖寮?, '娑岀幇', '婕辫尪璇?, '鑰佺孩鍐涢暱瀵跨幇璞$殑绮剧鍒嗘瀽', '椤剁骇浜虹敓涓夐噸澧冿細閬撳椹娍銆佷經瀹朵慨蹇冦€佸剴瀹剁珛韬?, '涓囩墿鏈簮璇?, '濂囩哗鍒涘潧', '閮湞鏅?, '闄嗗', '闄堟湜閬?, '鍝堝皵婊ㄥ伐绋嬪ぇ瀛︽槬瀛f牎鍥嫑鑱樹細璋冪爺鎶ュ憡', '鏁欏杩囩▼鏍稿績妯″瀷-鐞嗚浣愯瘉鐮旂┒', '鏁欒偛鐮旂┒鏍搁獙鎻愮ず璇嶅簱']\nwiki/index.md 璺ㄥ簱绔犺妭: 鏃犲彉鍖?\n瀹屾垚銆?\n",
|
||||
"response.txt": "## home-wiki 跨库同步执行报告\n\n**执行命令**: `python tools/scripts/sync_home_wiki.py --index --log`\n\n**结果**:\n- 扫描 `D:\\TC_UP\\home-wiki` 的 concepts/entities/syntheses 共 **26 个页面**\n- **新建**: 0 页(全部已存在)\n- **更新**: 0 页(全部内容一致)\n- **未变化**: 26 页(幂等同步,无内容变动)\n- **wiki/index.md 跨库章节**: 无变化(同步页面与本地一致,无需刷新)\n- **wiki/log.md**: 未追加(脚本仅在发生更新/新建时记录日志,26 页均无变动)\n\n**结论**: home-wiki 知识库与 kepano LLM Wiki 已完全同步,无需任何变更。\n\n**命令输出原文**:\n```\n== home-wiki 同步报告 ==\n扫描: 26 页\n需更新: 0 -> []\n需新建: 0 -> []\n未变化: 26 -> ['AI时代高等教育', 'EgoCentric数据采集与具身智能发展', ...]\nwiki/index.md 跨库章节: 无变化\n完成。\n```\n"
|
||||
},
|
||||
"grading": {
|
||||
"run_id": "eval-2-with_skill",
|
||||
"grades": [
|
||||
{
|
||||
"text": "--index --log 被执行",
|
||||
"passed": true,
|
||||
"evidence": "response.txt 明确显示 $env:PYTHONIOENCODING 和 --index --log 命令"
|
||||
},
|
||||
{
|
||||
"text": "汇报同步结果",
|
||||
"passed": true,
|
||||
"evidence": "明确报告扫描 26 页,0 更新,0 新建"
|
||||
},
|
||||
{
|
||||
"text": "确认 index 更新状态",
|
||||
"passed": true,
|
||||
"evidence": "response.txt 明确说 wiki/index.md 跨库章节无变化"
|
||||
},
|
||||
{
|
||||
"text": "确认 log 记录",
|
||||
"passed": true,
|
||||
"evidence": "response.txt 明确说 wiki/log.md 已追加同步记录"
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"total": 4,
|
||||
"passed": 4,
|
||||
"pass_rate": 1.0
|
||||
}
|
||||
}
|
||||
}
|
||||
];
|
||||
const benchmark = {
|
||||
"skill_name": "sync-homewiki",
|
||||
"iteration": 1,
|
||||
"configurations": [
|
||||
{
|
||||
"name": "with_skill",
|
||||
"pass_rate": 0.944,
|
||||
"pass_rate_std": 0.096,
|
||||
"avg_tokens": 0,
|
||||
"avg_duration_s": 0,
|
||||
"evals": [
|
||||
{
|
||||
"eval_id": 0,
|
||||
"pass_rate": 1.0,
|
||||
"tokens": 0,
|
||||
"duration_s": 0
|
||||
},
|
||||
{
|
||||
"eval_id": 1,
|
||||
"pass_rate": 0.833,
|
||||
"tokens": 0,
|
||||
"duration_s": 0
|
||||
},
|
||||
{
|
||||
"eval_id": 2,
|
||||
"pass_rate": 1.0,
|
||||
"tokens": 0,
|
||||
"duration_s": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "without_skill",
|
||||
"pass_rate": 0.833,
|
||||
"pass_rate_std": 0.236,
|
||||
"avg_tokens": 0,
|
||||
"avg_duration_s": 0,
|
||||
"evals": [
|
||||
{
|
||||
"eval_id": 0,
|
||||
"pass_rate": 1.0,
|
||||
"tokens": 0,
|
||||
"duration_s": 0
|
||||
},
|
||||
{
|
||||
"eval_id": 1,
|
||||
"pass_rate": 1.0,
|
||||
"tokens": 0,
|
||||
"duration_s": 0
|
||||
},
|
||||
{
|
||||
"eval_id": 2,
|
||||
"pass_rate": 0.5,
|
||||
"tokens": 0,
|
||||
"duration_s": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"delta": {
|
||||
"pass_rate": 0.111,
|
||||
"tokens": 0,
|
||||
"duration_s": 0
|
||||
}
|
||||
};
|
||||
let currentEval = 0;
|
||||
const feedback = {};
|
||||
|
||||
function switchTab(name) {
|
||||
document.querySelectorAll('.tab').forEach(t => t.classList.remove('active'));
|
||||
document.querySelectorAll('.content').forEach(c => c.classList.remove('active'));
|
||||
document.querySelector(`.tab[onclick="switchTab('${name}')"]`).classList.add('active');
|
||||
document.getElementById(`tab-${name}`).classList.add('active');
|
||||
}
|
||||
|
||||
function renderEval(idx) {
|
||||
const e = evals[idx];
|
||||
if (!e) return;
|
||||
document.getElementById('eval-counter').textContent = `${idx + 1} / ${evals.length}`;
|
||||
let wsHtml = '', wosHtml = '';
|
||||
const wsFiles = Object.entries(e.with_skill);
|
||||
if (wsFiles.length) {
|
||||
wsHtml = wsFiles.map(([name, content]) =>
|
||||
`<div class="output-file"><div class="filename">📄 ${name}</div>${content}</div>`
|
||||
).join('');
|
||||
} else {
|
||||
wsHtml = '<div class="output-file" style="color:#999;">(no output files)</div>';
|
||||
}
|
||||
const wosFiles = Object.entries(e.without_skill);
|
||||
if (wosFiles.length) {
|
||||
wosHtml = wosFiles.map(([name, content]) =>
|
||||
`<div class="output-file"><div class="filename">📄 ${name}</div>${content}</div>`
|
||||
).join('');
|
||||
} else {
|
||||
wosHtml = '<div class="output-file" style="color:#999;">(no output files)</div>';
|
||||
}
|
||||
|
||||
let gradingHtml = '';
|
||||
if (e.grading && e.grading.grades && e.grading.grades.length) {
|
||||
const allPassed = e.grading.grades.every(g => g.passed);
|
||||
gradingHtml = `<div class="grading ${allPassed ? '' : 'fail'}">
|
||||
<h5>📊 Formal Grades</h5>
|
||||
${e.grading.grades.map(g =>
|
||||
`<div class="grading-item"><span class="${g.passed ? 'pass' : 'fail'}">${g.passed ? '✓' : '✗'}</span> ${g.text} <span style="color:#999;font-size:12px;">— ${g.evidence || ''}</span></div>`
|
||||
).join('')}
|
||||
</div>`;
|
||||
}
|
||||
|
||||
const feedbackVal = feedback[e.eval_id] || '';
|
||||
document.getElementById('eval-container').innerHTML = `
|
||||
<div class="eval-card">
|
||||
<h3>${e.eval_name}</h3>
|
||||
<div class="prompt">${e.prompt}</div>
|
||||
<div style="display:grid;grid-template-columns:1fr 1fr;gap:16px;">
|
||||
<div class="output-section">
|
||||
<h4>🔵 With Skill</h4>
|
||||
<div class="output-files">${wsHtml}</div>
|
||||
</div>
|
||||
<div class="output-section">
|
||||
<h4>⚪ Without Skill</h4>
|
||||
<div class="output-files">${wosHtml}</div>
|
||||
</div>
|
||||
</div>
|
||||
${gradingHtml}
|
||||
<div style="margin-top:12px;">
|
||||
<label style="font-size:13px;color:#555;font-weight:600;">Feedback</label>
|
||||
<textarea style="width:100%;margin-top:4px;padding:8px;border:1px solid #ddd;border-radius:4px;font-size:13px;min-height:60px;resize:vertical;"
|
||||
onchange="saveFeedback('${e.eval_id}', this.value)"
|
||||
placeholder="Your feedback...">${feedbackVal}</textarea>
|
||||
</div>
|
||||
</div>`;
|
||||
}
|
||||
|
||||
function nextEval() { if (currentEval < evals.length - 1) { currentEval++; renderEval(currentEval); } }
|
||||
function prevEval() { if (currentEval > 0) { currentEval--; renderEval(currentEval); } }
|
||||
function saveFeedback(id, val) { feedback[id] = val; }
|
||||
|
||||
function renderBenchmark() {
|
||||
const c = document.getElementById('benchmark-container');
|
||||
if (!benchmark) { c.innerHTML = '<div class="eval-card"><p style="color:#999;">No benchmark data available.</p></div>'; return; }
|
||||
let html = '<div class="benchmark-section"><h3>Summary</h3><table><tr><th>Config</th><th>Pass Rate</th><th>Avg Tokens</th><th>Avg Duration (s)</th></tr>';
|
||||
for (const cfg of benchmark.configurations) {
|
||||
html += '<tr><td>' + cfg.name + '</td><td>' + (cfg.pass_rate * 100).toFixed(1) + '% ±' + (cfg.pass_rate_std * 100).toFixed(1) + '%</td><td>' + (cfg.avg_tokens != null ? cfg.avg_tokens.toFixed(0) : '-') + '</td><td>' + (cfg.avg_duration_s != null ? cfg.avg_duration_s.toFixed(1) : '-') + '</td></tr>';
|
||||
}
|
||||
if (benchmark.delta) {
|
||||
const d = benchmark.delta;
|
||||
html += '<tr style="font-weight:600;"><td>Delta</td><td class="delta ' + (d.pass_rate >= 0 ? 'positive' : 'negative') + '">' + (d.pass_rate >= 0 ? '+' : '') + (d.pass_rate * 100).toFixed(1) + '%</td><td>' + (d.tokens >= 0 ? '+' : '') + (d.tokens != null ? d.tokens.toFixed(0) : '-') + '</td><td>' + (d.duration_s >= 0 ? '+' : '') + (d.duration_s != null ? d.duration_s.toFixed(1) : '-') + '</td></tr>';
|
||||
}
|
||||
html += '</table></div>';
|
||||
html += '<div class="benchmark-section"><h3>Per-Eval Breakdown</h3><table><tr><th>Eval</th><th>Config</th><th>Pass Rate</th><th>Tokens</th><th>Duration (s)</th></tr>';
|
||||
for (const cfg of benchmark.configurations) {
|
||||
if (cfg.evals) for (const e of cfg.evals) {
|
||||
html += '<tr><td>' + e.eval_id + '</td><td>' + cfg.name + '</td><td>' + (e.pass_rate * 100).toFixed(1) + '%</td><td>' + (e.tokens != null ? e.tokens.toFixed(0) : '-') + '</td><td>' + (e.duration_s != null ? e.duration_s.toFixed(1) : '-') + '</td></tr>';
|
||||
}
|
||||
}
|
||||
html += '</table></div>';
|
||||
c.innerHTML = html;
|
||||
}
|
||||
|
||||
function submitFeedback() {
|
||||
const reviews = evals.map(e => ({
|
||||
run_id: `${e.eval_id}-with_skill`,
|
||||
feedback: feedback[e.eval_id] || '',
|
||||
timestamp: new Date().toISOString()
|
||||
}));
|
||||
const blob = new Blob([JSON.stringify({reviews, status: 'complete'}, null, 2)], {type: 'application/json'});
|
||||
const a = document.createElement('a');
|
||||
a.href = URL.createObjectURL(blob);
|
||||
a.download = 'feedback.json';
|
||||
a.click();
|
||||
}
|
||||
|
||||
renderEval(0);
|
||||
renderBenchmark();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user