Skip to content

Releases: CharlotteLiii/knowledge-iteration-system

v0.4.2 — 如实检测定时任务安装状态

Choose a tag to compare

@CharlotteLiii CharlotteLiii released this 07 Jul 11:32
8a7606b

修复「自动化已配置」误导性表述:说明文档与 --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:schtasksKnowledgeIteration_*
  • 探测不了返回 None → 如实标「未知」,不假装

文档如实化

  • 说明文档状态行按 已装/启用 数量分四档;任务表新增「已安装」列(✅已装 / ❌未装 / ?未知)
  • setup_preflight --list-tasks 同样加「已安装」列 + 汇总
  • README 补注「启用≠已安装」

验证

  • 已装 9 个 → 「已安装并启用 9 个」+ 全 ✅
  • 模拟未装 → 「本机尚未安装任何定时任务」,无误报

对应 PR #10(8a7606b)。

v0.4.1 — 增量卡片 + skill_detector 缓存修复 + catalog 对账 + 文档同步

Choose a tag to compare

@CharlotteLiii CharlotteLiii released this 07 Jul 11:01
8c3f1c0

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.mdSkill 可行性评估索引.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、横切子系统架构说明

对应 PR #8(eea7d36)+ PR #9(8c3f1c0)。

v0.4.0 — 配置化 taxonomy + 增量 checkpoint + 输入层分类目录 + onboarding

Choose a tag to compare

@CharlotteLiii CharlotteLiii released this 07 Jul 10:55
fad1e81

基于 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_suggester PYTHONHASHSEED 导致的非确定性
  • ideas 根路径改为递归扫全树(daily / weekly / idea_tracker 口径一致)

📄 说明

个人 taxonomy.json 与运行时状态文件(.kis_state.json / catalog.json / 待审队列 / 分类目录)均不进仓库(gitignore)。全部能力无网/无 API 也能跑,LLM 一律 opt-in、默认关闭。

对应 PR #7,merge commit fad1e81

v0.3.5 — skill_upgrader 每日自动化

Choose a tag to compare

@CharlotteLiii CharlotteLiii released this 04 Jul 21:05
b62c24d

主要改动(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

Choose a tag to compare

@CharlotteLiii CharlotteLiii released this 04 Jul 18:31
5e840c1

🎯 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.logscripts/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)

  1. 拉取最新 scripts/
  2. python3 scripts/setup_preflight.py --ask-tasks(或跳过让默认生效)
  3. 重跑对应平台的 install_automation.* —— 会自动 bootout 旧的单任务 LaunchAgent 并装 8 个新的
  4. 老的 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 结构与其它两端对齐,未做本机运行时测试

📎 相关

v0.3.3 — automation hotfix

Choose a tag to compare

@CharlotteLiii CharlotteLiii released this 04 Jul 17:45

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.executable to 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 annotations so 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.ps1

Commits

  • 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

Choose a tag to compare

@CharlotteLiii CharlotteLiii released this 04 Jul 12:20

🎉 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