Releases: CharlotteLiii/knowledge-iteration-system
Release list
v0.4.2 — 如实检测定时任务安装状态
修复「自动化已配置」误导性表述:说明文档与 --list-tasks 现在如实反映系统调度器里的真实安装状态,不再只看配置表的 enabled 字段。
🐛 问题
📚 知识迭代系统说明.md 的「自动化已配置」只读配置表里 task 的 enabled(默认全 True),从不检查系统调度器是否真的装了 → 在未安装的机器上会误报「已配置」。
✅ 修复
跨平台真探测 kis_config.installed_task_keys()
- macOS:
~/Library/LaunchAgents/com.knowledge-iteration.<key>.plist - Linux:crontab
# BEGIN/END knowledge-iteration-system块内的<key>.py - Windows:
schtasks里KnowledgeIteration_* - 探测不了返回 None → 如实标「未知」,不假装
文档如实化
- 说明文档状态行按 已装/启用 数量分四档;任务表新增「已安装」列(✅已装 / ❌未装 / ?未知)
setup_preflight --list-tasks同样加「已安装」列 + 汇总- README 补注「启用≠已安装」
验证
- 已装 9 个 → 「已安装并启用 9 个」+ 全 ✅
- 模拟未装 → 「本机尚未安装任何定时任务」,无误报
对应 PR #10(8a7606b)。
v0.4.1 — 增量卡片 + skill_detector 缓存修复 + catalog 对账 + 文档同步
v0.4.x 收尾:增量化优化 + 隐蔽 bug 修复 + 文档同步。纯优化/修复级,无破坏性变更。
⚡ 增量化优化(PR #8)
clipping_refiner — 提炼卡增量
- 总览报告保持全量(需全局排名/统计),逐篇
提炼_*.md卡改增量:只对新增/内容变化的 clipping 重写,缺失卡自愈补写 - 新增
--reset-cards清卡片 checkpoint
skill_detector — 修缓存失效 + 省 LLM
- 修隐蔽 bug:缓存键原用
hash(content),Python 字符串 hash 受 PYTHONHASHSEED 影响逐进程随机 → 缓存跨运行从不命中,每次全量重调 LLM。改为稳定 md5 - 缓存从只存 s1 扩展到 s1/s2/s3 → 未变化候选完全跳过 LLM 重评估
- EVAL 卡仅在内容变化时重写;README 索引保持全量
kis_catalog — 失效条目对账
- 新增
prune_missing():清除指向已删除/重命名文件的僵尸条目,输入层分类目录.md不再残留死链
保持全量(有意设计)
- quarterly_audit / skill_upgrader / idea_tracker / link_suggester / feedback_loop:全局快照性质,全量才准
重命名
- 技能层索引
README.md→Skill 可行性评估索引.md(创建/更新用新名,自动清理旧文件;quarterly_audit 识别名单同步)
📚 文档同步 v0.4(PR #9)
- vault 说明文档生成器(
kis_config.render_system_intro)补齐增量/分类/onboarding,修正过时的"扫描窗口"与"仅两脚本调 LLM"表述 - README 中/英:自动化任务表 8→9、英文自动化章节从 v0.1 单任务模型重写为 per-task
- workflow-map / architecture:补输入层分类、onboarding、横切子系统架构说明
v0.4.0 — 配置化 taxonomy + 增量 checkpoint + 输入层分类目录 + onboarding
基于 Karpathy 知识库理念的四层知识蒸馏系统。本版(相对 v0.3.5)是一次重构 + 能力增强,四大主题:
✨ 新能力
配置化 taxonomy
- 分类维度 / 类型简写 / 标签规则 / 主题 / 桥接规则全部外置到
scripts/taxonomy.default.json - 用户可在
<vault>/taxonomy.json覆盖:默认深合并,顶层_replace:[段名]做整段替换(彻底重定义分类、不残留默认旧类) clipping_refiner/link_suggester读配置驱动
增量 checkpoint
daily_distill/weekly_review默认只处理自上次运行以来新增/变化的文档- mtime 快筛 + 内容 hash 兜底(对抗云盘刷新 mtime 的误判);漏跑自动补扫、连跑不重叠
--days/--since手动时间窗覆盖(不读写 checkpoint),--reset-checkpoint清状态- 状态存
<vault>/.kis_state.json,日/周各自独立 key
输入层分类目录
- 每日蒸馏时对输入内容多标签分类(复用 taxonomy 的 contentTypes key)
- 关键词后端(默认离线)+ LLM 后端(opt-in、降级安全、只提议不改 taxonomy)
catalog.json数据源 → 渲染输入层分类目录.md(按分类看 / 按文档看双视图)classify.minKeywordHits多标签精准阈值;零命中归「其他」+ 待审队列(不阻塞)--classify=keyword|llm|off控制
Taxonomy onboarding
kis_onboard.py(--status/--template/--validate/--write)非阻塞引导用户声明自己领域的分类- 不声明也能用通用默认
🐛 修复
link_suggesterPYTHONHASHSEED 导致的非确定性- ideas 根路径改为递归扫全树(daily / weekly / idea_tracker 口径一致)
📄 说明
个人 taxonomy.json 与运行时状态文件(.kis_state.json / catalog.json / 待审队列 / 分类目录)均不进仓库(gitignore)。全部能力无网/无 API 也能跑,LLM 一律 opt-in、默认关闭。
v0.3.5 — skill_upgrader 每日自动化
主要改动(PR #4)
- skill_upgrader 加入 per-task 自动化:daily 21:25(紧跟 link_suggester 21:20 后 5min,与 run_all 逻辑顺序一致)。此前 skill_upgrader 没有定时,只能手动或 run_all 时跑。
- feedback_loop 顺延 21:25 → 21:30,保持 5min 错峰。
- TASK_ORDER 在 link_suggester 之后插入 skill_upgrader。
- 自动化任务数 8 → 9(LaunchAgent / plist 计数、命名说明同步)。
顺带同步
- SKILL.md 从 version 0.1.0/phase1 对齐到 0.3.4/phase3(仓库此前落后于安装副本),补齐 per-task 调度、Mode Selection、LLM 路由、Task 表管理等文档。
- kis_config.render_system_intro 从旧 interval 单任务展示 → per-task 动态任务表渲染。
验证
- ast 语法 OK;automation_tasks() 含 9 项、顺序/时间正确;render_system_intro() 正常出表;install_automation.sh --dry-run 读到 9 个任务并生成 com.knowledge-iteration.skill_upgrader LaunchAgent。
注意:SKILL.md frontmatter 仍标 0.3.4(本 release 不改代码,故版本字段未 bump)。
v0.3.4 — per-task automation
🎯 8 个任务,各自独立调度
之前只能装 1 个每日任务(共享 interval)。这版把自动化拆成 8 个独立任务,每个有自己的 schedule 和触发时间。
| 任务 | 默认触发时间 |
|---|---|
daily_distill 每日知识蒸馏 |
每天 21:00 |
idea_tracker 想法成熟度追踪 |
每天 21:05 |
clipping_refiner Clippings 提炼 + 卡片 |
每天 21:10 |
skill_detector Skill 候选检测 |
每天 21:15 |
link_suggester 结构性双链建议 |
每天 21:20 |
feedback_loop 输出反馈回流 |
每天 21:25 |
weekly_review 每周知识复盘 |
每周日 14:00 |
quarterly_audit 季度知识健康审计 |
季度最后一天 12:00 |
每日任务错开 5 分钟,避免同时启动 & LLM API 扎堆,日志也好读。
✨ 新增
交互式安装向导
python3 scripts/setup_preflight.py --ask-tasks
# Y=全按默认装(推荐) / e=逐项编辑 / n=不装非交互 CLI(可脚本化)
python3 scripts/setup_preflight.py --set-task daily_distill=22:30
python3 scripts/setup_preflight.py --disable-task feedback_loop
python3 scripts/setup_preflight.py --set-task-dow weekly_review=1 --set-task weekly_review=15:00
python3 scripts/setup_preflight.py --list-tasks三平台原生调度器
- macOS:每任务一个
com.knowledge-iteration.<task_key>.plist,季度任务用StartCalendarInterval数组精准命中 3/31、6/30、9/30、12/31。 - Linux:crontab 内 BEGIN/END 块,每任务一行;季度任务拆两行
M H 31 3,12 *+M H 30 6,9 *。 - Windows:每任务一个
KnowledgeIteration_<task_key>Scheduled Task;季度用 4 个-Once触发器 + 365 天重复。
日志分离
从 scripts/distill.log → scripts/logs/<task_key>.log / <task_key>.error.log,8 任务 8 份日志。
手动触发(不变)
# macOS
launchctl kickstart -k gui/$(id -u)/com.knowledge-iteration.daily_distill
# Linux / macOS 直接跑脚本
python3 scripts/daily_distill.py --days 2
# Windows
Start-ScheduledTask -TaskName KnowledgeIteration_daily_distill🔧 迁移(v0.1.x → v0.3.4)
- 拉取最新
scripts/ python3 scripts/setup_preflight.py --ask-tasks(或跳过让默认生效)- 重跑对应平台的
install_automation.*—— 会自动 bootout 旧的单任务 LaunchAgent 并装 8 个新的 - 老的
scripts/distill.log不会自动删(也不会再写入),可自行清理
旧配置字段 automation.dailyIntervalDays 保留在 .knowledge-iteration-system.json 里但会被忽略;新安装完全依据 automation.tasks 表。
🧪 验证过
- ✅
--list-tasks默认输出正确 - ✅ CLI 覆盖 hour/minute/dayOfWeek/enabled 全能持久化
- ✅ macOS installer 生成的 plist 包含季度 4-dict 数组
- ✅ Linux installer 生成的 crontab 块含季度 2 行
- ✅ 无效时间 / 未知任务名被 validator 拦截
⚠️ Windows.ps1结构与其它两端对齐,未做本机运行时测试
📎 相关
- PR: #3
- 上一版:v0.1.1 — automation hotfix
- Full changelog: v0.1.1...v0.3.4
v0.3.3 — automation hotfix
Fix: scheduled tasks broke on Python 3.9 fallback
Impact: Anyone who ran bash scripts/install_automation.sh (or the Linux/Windows equivalent) hit a TypeError on the first RunAtLoad / cron tick. The generated task called python3 via bare command name, and in headless scheduler environments (launchd, cron, Task Scheduler) PATH is minimal — on macOS python3 silently resolves to system Python 3.9, which cannot parse PEP 604 union syntax (list[str] | None) used by several workflow scripts.
Fixes
- install_automation.sh / .ps1 / _linux.sh: probe for a Python 3.10+ interpreter (python3.13 → python3.10 → homebrew → framework → py.exe), reject anything below 3.10, resolve
sys.executableto a real absolute path (bypassing pyenv/asdf shims), and write that absolute path into the generated LaunchAgent plist / cron entry / Windows Scheduled Task. - run_all.py: add
from __future__ import annotationsso the runner itself can at least load on Python 3.9 (other workflow scripts still need 3.10+, but this gives a more informative error path). - README / README.en: badge + requirement corrected from Python 3.9+ to 3.10+.
Migration
Re-run the installer for your platform — it will bootout the old task, overwrite the plist/cron/Task, and self-heal:
# macOS
bash scripts/install_automation.sh
# Linux
bash scripts/install_automation_linux.sh
# Windows PowerShell
.\scripts\install_automation.ps1Commits
- 5fde5e9 fix(runner): add future annotations for older Python fallback
- ef0254f fix(install): pin absolute Python 3.10+ interpreter in scheduled tasks
- c140565 docs(readme): require Python 3.10+ (was 3.9)
Full changelog: cfec8c1...v0.1.1
v0.3.2 · Initial public release
🎉 Knowledge Iteration System - 首次公开发布 / Initial public release
四层知识蒸馏系统首次开源,包含完整跨平台工具链。
First open-source release of the four-layer knowledge distillation system, with a complete cross-platform toolchain.
✨ 核心特性 / Highlights
- 13 个 Python 脚本 覆盖每日蒸馏、周报、Clipping 提炼、想法追踪、Skill 检测、链接建议、升级路线图、反馈回流、季度审计
- 跨平台自动化 — macOS LaunchAgent / Linux cron / Windows Task Scheduler
- 可选 LLM 兜底 — 默认关闭;配置 API key(智谱 GLM / OpenAI / DeepSeek)后自动启用
- 9 步全量流水线 — 一条
run_all.py跑完 - 隐私优先 — 本地分析为主,只在明确配置时调用外部 API
- 诚实标注 — AI 补的字段标记为「AI 分析结果」,无法确定则保留「待补充」
- 双语 README — 中文 + English
📦 What's inside
- 13 Python scripts + 3 installation scripts (bash / PowerShell)
- 6 reference docs + 9 markdown templates
- Bilingual README (中文 + English)
- MIT License
🚀 快速开始 / Quick start
git clone https://github.com/CharlotteLiii/knowledge-iteration-system.git
cd knowledge-iteration-system
cp -R scripts /path/to/your/vault/
cp .env.example /path/to/your/vault/.env
cd /path/to/your/vault
python3 scripts/setup_preflight.py --create-missing
python3 scripts/run_all.py详细文档见 README.md / README.en.md。