内容
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="assets/banner-dark.png">
<img src="assets/banner.png" alt="Quiz_wiki" width="100%">
</picture>
</p>
# 工具列表
*也称为: quiz wiki · llmwiki quiz · Quiz_wiki — 为你提供间隔重复的测验,用于复习自己的过去决策。*
## 介绍
无论是什么项目,无论使用什么终端(默认/ tmux / iTerm2)或编码代理(Claude Code · Codex · OpenCode),
项目特定的LLM知识都会**复合**。
一个LLM维护的项目wiki,适用于代理环境 —
它从工作记录中获取信息,并将劳动力分成 **事实 = 无人值守 / 判断 = 人工存在**。
并且循环也会对人类关闭 — 一个每日的遗忘曲线测验(`/wiki-quiz`)可以像模型上下文一样保持你对自己决策的记忆。
结构是 **两层** — 每个会话的 *日志簿* (时间轴:`2_milestone`·`3_decision`·`4_insight`)+ 每个概念的 *主题百科全书* (`5_topic`,主题轴·原位巩固)。两者都仅从原始记录中重新导出(没有wiki→wiki)。
引擎是一个 **本地库** — SQLite索引·确定性 lint · 引用/交叉引用图 · 内容哈希增量 —
在上面有 **自动捕获守护进程 + 记录复合 + 劳动力分割(事实 = AI / 判断 = 人工)+ 人类侧记忆测验(`/wiki-quiz`)**。
**不需要MCP注册。**
核心思想 — 一个LLM维护的项目wiki,而人类只进行导航 —
来自 [Andrej Karpathy的LLM-wiki笔记](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f)。
该笔记是唯一的外部参考:这里的设计和代码是原创的。
## 复合循环
| 阶段 | 内容 | 自动? | 实现 |
|------|------|:---:|------|
| **捕获** | 每个会话的记录 → 中央队列 | ✔ | `src/daemon/watch.ts` (终端/配置文件无关) |
| **压缩(更新)** | 队列 → 该仓库的 `docs/wiki/` **日志层** (增量追加) | 1 命令 | `/wiki-fast` (当前会话,快速)· `/wiki-deep` (积压,深入)+ `src/engine/update.ts` |
| **巩固** | 日志 → 每个概念的 **主题百科全书** `5_topic/` (原位合并·原始重新接地) | 1 命令 | `/wiki-fast` (当前会话)· `/wiki-deep` (空白·重新压缩)+ `src/engine/consolidate.ts` |
| **阅读** | 冷启动注入 + 每回合相关页面指针 | ✔ | `hooks/sessionstart-inject.sh` · `hooks/userpromptsubmit-inject.sh` (Claude Code;Codex/OpenCode → `adapters/`) |
| **测验(人类记忆)** | wiki的判断层 → 每日粒度间隔重复测验 **针对人类** (`6_quiz/` 记录 — 永远不会被索引/搜索;冷启动显示到期计数行) | 1 命令 | `/wiki-quiz` + `src/engine/quiz.ts` (`quiz-status`·`quiz-next`·`quiz-record`) |
| **自我修复** | 结构(孤立·陈旧·悬空)= 确定性 `lint` / 语义(矛盾·陈旧声明·缺失概念)= 生成式 `review` (自动同步 — 引擎门控节奏 `--if-due`,默认 7d·作用域+缓存)→ 缺陷进入 `gaps` 的自闭队列 (`0_review/gap-queue.md`) | 1 命令 → 自动 | `lint`·`review`·`gaps` (`src/engine/{lint,review,gaps}.ts`) |
### 人类记忆循环(`/wiki-quiz`)
其他阶段都让 **模型** 落地;这一阶段让 **人类** 保持敏锐。
劳动力分割留下恰好一个不可委托的职责 — 方向 + 矛盾判断 — 而这种判断会随着人类对自己过去决策的记忆而衰减。
`/wiki-quiz` 在wiki的判断层(方向 > 决策 > 见解·主题 > 里程碑,最新优先)上运行几分钟的主动回忆:
引擎根据每日粒度的遗忘曲线确定性地调度(盒子 1·3·7·16·35·60 天;错误/跳过 → 回到 1 天;一个项目在一天内永远不会被问两次),
会话作者和精华评分问题温暖,基于页面。
错误答案第二天会立即返回。
记录生活在 `docs/wiki/6_quiz/` (账本 + 每日会话笔记)—
**人类专属层,不被索引/搜索/冷启动**,
所以LLM永远不会吸收自己的测验输出:严格的单向,wiki → 人类。
测验会话 **预先编写在一个批次中**:
引擎挑选到期项目,会话读取这些页面并一次性写入所有问题,
所以回答一个问题会立即显示下一个问题 — 没有每个问题的等待时间。
会话大小为 `llmwiki.config.toml` 中的 `[quiz]` 问题(默认 **3**,通过参数如 `/wiki-quiz 5` 提升,引擎上限 **7** — 人们跳过测验不会强化任何东西)。
### 证据随页面流动(页面格式 v3)
像 `[^s1]: <session>.jsonl` 这样的引用指向一个记录,
它存在于 **一台机器** 上 —
所以队友可以阅读你的结论但无法理解其背后的依据。
v3 将 1-2 行证据本身放在脚注下的缩进连续行上:
```markdown
- 我们保留了日志层,并在其上添加了主题层 [^s1]
[^s1]: 3bd9cac5-….jsonl
> [2026-06-29 14:02 user] "保留日志原样并在其上分层 — 替换它是有风险的"
```
脚注定义行与之前保持字节不变(四个解析器读取它,其中一个是防止队友引用错误的)。
摘录来自 `llmwiki excerpt` — **逐字、长度上限、机密筛选**,
因为原材料是会话记录,这些记录通常包含凭证。
判断主张引用人类;事实主张带有机器工具记录。
Lint 验证引用确实出现在记录 **及其可读位置**,
并在克隆位置不可读时保持沉默 — "无法检查" 绝不能读作 "错误"。
摘录不被纳入搜索索引和主题页面预算,
因此添加证据不会影响检索质量或文本空间。
### 自我修复流程(仅限人类填写)
在结账时 (`/wiki-fast`) 和深入传递时 (`/wiki-deep`):
① 确定性 `lint` (结构)→ ② 生成式 `review` (语义 — 自动运行,通过 `--if-due`,但 **引擎强制执行节奏** (默认 7 天,`LLMWIKI_REVIEW_INTERVAL_DAYS`);
输入范围限定为最近 + 标签邻居页面,如果没有更改则跳过;
深入传递无条件运行。
③ *缺失概念·后续问题* `review` 表面由 `gaps` 堆叠到 **跟踪队列**。
一旦有人 **处理该主题一次,或 `/wiki-deep` 深入传递填充它**,
并且 **自动关闭** 如果 `review` 连续两次未能显示它。
换句话说,wiki 会 **告诉你缺少什么** — 人类仅提供填写它的判断。
不会 **自动生成缺陷** — 因此不会从薄弱证据中发明页面。
## 结构
```
setup.sh 一键式集成(路径无关:doctor→daemon→hooks·commands→index)
src/ TypeScript 引擎(Bun 运行时,内置 bun:sqlite — 零 node_modules·构建)
cli.ts CLI 分发器:init·index·reindex·refs·lint·search·update-*·skeleton·autoupdate·consolidate·topics·ingest·register-transcript·review·gaps·distill-verify·git-rules·overview·reconcile·doctor·context·digest·context-audit·config·conventions·migrate·quiz-*·bench·compare-arm·compare-verdict
engine/
schema.sql 每个仓库索引模式(文档·块·FTS5·引用)
db.ts WikiIndex:索引(content_hash 增量)·搜索·图 · 过时
chunker.ts FTS 分块(~512 tokens) refs.ts 引用·链接 → 图形边
lint.ts 结构完整性检查(确定性) review.ts 语义 lint(生成式·自动同步·作用域+不变缓存)
gaps.ts 审查缺陷(缺失概念·后续问题)→ 自闭队列 0_review/gap-queue.md(LLM-free;2 次缺席后关闭)
quiz.ts 人类记忆循环 — 遗忘曲线调度 + 优先级选择 + 6_quiz/quiz-ledger.md(LLM-free;/wiki-quiz 作者·评分温暖)
overview.ts 概览入口点归一化(Recent Updates→日志指针·预算警告,LLM-free·幂等)
synthesis.ts 确定性关系合成 + 主题视图(标签集群·巩固缺陷,`topics`)— LLM-free·可再生(`digest`/`topics`+冷启动主干)
extract.ts 记录增量提取(水印) update.ts 日志层编排
autoupdate.ts 无人值守事实更新(写入→二次验证→ lint 门控)
consolidate.ts 日志→主题百科全书(5_topic)整合(写入→独立 VERIFY(添加声明)→落地→ lint,独立水印)
source.ts 记录源抽象(发现/探测/解析适配器 — 适配器无关)
sources/ claude.ts(claude-jsonl) · codex.ts(Codex 滚动,包括 .zst) · opencode.ts(OpenCode SQLite→导出) · plain.ts(任意文件下拉)
ingest.ts 单文件压缩,无守护进程(`llmwiki ingest` — 下拉源)
capture.ts 中央捕获队列(.state/capture.db,source_kind) doctor.ts 接线检查
config.ts 团队约定 — llmwiki.config.toml + configs/*.toml 每个仓库解析器(应用前缀;零配置 = 股票结构;单个源提示/规则从渲染)
migrate.ts 重新构建 wiki 到配置(dry-run 默认·链接重写·.schema-version·漂移检测)
daemon/
watch.ts 捕获守护进程(扫描 sources() — 默认 Claude 配置文件记录)
wire.ts 钩子·命令接线(~/.claude* + $CLAUDE_CONFIG_DIR)
list-pending-repos.ts 仅打印队列中的待处理仓库(用于调度器)
daemon/ install.sh (launchd/systemd/cron 自动检测) + autoupdate-*.sh (无人值守事实传递)
hooks/ sessionstart-inject.sh (冷启动) · userpromptsubmit-inject.sh (每回合指针)
adapters/ codex/ (原生钩子 hooks.json 模板) · opencode/ (单文件插件)
skill/ wiki-fast(快速会话结账)·wiki-deep(定期深入传递)·wiki-ask·wiki-quiz(人类记忆)(/commands)
examples/ sample-wiki/ — 一个完成的 wiki 示例(只读说明)。未被引擎索引(IGNORE_DIRS)。 **不要复制** — 真正的 wiki 在每个项目的 docs/wiki 下自动生成。参见 examples/README.md
tests/ bun:test 套件(chunker·refs·lint·extract·capture·db·source·review-scope·overview·gaps·quiz·migrations)— `bun test`
package.json·tsconfig.json Bun 元数据(用于类型检查;运行时直接执行 .ts)
```
存储原理: **捕获队列 = 中央(`<clone>/.state/capture.db`)/ 内容 = 每个仓库的 `docs/wiki/` (协址,markdown = 真相源)/ 索引 = `<repo>/.llmwiki/index.db` (可再生)。
## 先决条件
| | 需要 | 备注 |
|---|---|---|
| **Bun ≥ 1.1** | ✔ 需要 | 单个二进制文件(`curl -fsSL https://bun.sh/install \| bash`)。直接运行 `.ts`,并且 `bun:sqlite` 捆绑 FTS5 — 零构建·`node_modules`。运行引擎和 `bun test` 无需安装;仅 `bun run typecheck` (tsc)需要一次性 `bun install` (仅开发)。
| **LLM CLI** | 仅用于生成式传递 | 捕获·读取注入·`/wiki-*`·`ingest` (仅捕获,队列待处理更新)无需它。`autoupdate·review` 和 `ingest` 的合并调用 LLM CLI,因此它们需要一个 — 默认 `claude -p` ([安装](https://docs.claude.com/en/docs/claude-code/setup)),或将 `LLMWIKI_LLM_CMD` 指向不同的 CLI/提供程序。
| **OS** | macOS / Linux | macOS=launchd, Linux=systemd (`--user`),如果 systemd 不可用,则回落到 cron+nohup。守护进程详细信息见 [`daemon/README.md`](daemon/README.md) |
### 适配器·OS 说明(Claude Code / Codex / Windows)
- **Claude Code**:`git clone … && ./setup.sh` → 完成。捕获·读取注入·`/wiki-*` 均自动连接。
- **Codex (OpenAI)**:捕获是自动的 — 守护进程监视 `$CODEX_HOME/sessions/**/*.jsonl[.zst]` (默认 `~/.codex`,当前/旧格式/压缩格式)通过适配器。**读取注入在最近的 Codex (0.142.0 验证) 上是原生的**:复制 `adapters/codex/hooks.json.example` → `$CODEX_HOME/hooks.json` 并信任它一次(交互式 `codex` → "信任所有");相同的 `sessionstart-inject.sh`/`userpromptsubmit-inject.sh` 脚本直接运行。对于 **生成式传递** (autoupdate/review),如果您没有 claude CLI,请将 `LLMWIKI_LLM_CMD` 指向您自己的 CLI(例如 codex)。
- **OpenCode**:捕获读取其 SQLite 会话存储;通过 `adapters/opencode/` 中的单文件插件进行读取注入(`experimental.chat.system.transform`,在 1.3.0 上验证)。设置 `LLMWIKI_ROOT` 为克隆路径。
- **Windows**:Bun·`bun:sqlite` 原生运行且路径匹配规范化反斜杠。但是,原生 Windows 需要(a)**Git Bash** 用于 `.sh` 脚本,和(b)手动 **Task Scheduler/NSSM** 注册,因为没有 launchd/systemd/cron 用于守护进程。→ **建议 WSL2** (launchd→systemd·bash·路径均无修改;这也符合官方 Claude Code·Codex 推荐)。
## 安装 / 使用
**将此仓库克隆到任意位置,任意名称,并运行 `./setup.sh` 一次** — 这使其成为该机器的引擎。
所有接线(守护进程·钩子·CLI·`/wiki-*` 命令)均 **从克隆位置本身派生**,
因此不需要像 `~/llmwiki` 这样的固定路径(克隆文件夹可以有任意名称)。
仅需 Bun,`.ts` 通过 `bun` 直接运行,无需额外依赖(无需 bundle·build 步骤)。
```bash
# 0) 克隆引擎(一次,每个机器)- 位置/名称无关
git clone https://github.com/suwonleee/llmwiki
cd llmwiki
# 1) 一次性安装 — doctor → 捕获守护进程(OS 自动检测)→ SessionStart 钩子 + /wiki-* 命令 → 索引 → doctor
./setup.sh # 幂等:安全地重新运行移动克隆或拉取引擎更新
# 2) 仅需工作 — 会话在任意文件夹/终端自动捕获
# 在另一个项目中使用时,从该文件夹:
# bun <clone>/src/cli.ts init|index|search|lint <repo>
# 3) 结账/清理会话(在该仓库中)
/wiki-fast # FAST 结账(每次会话):仅限当前会话 + 5_topic + L0 + lint — 分钟,O(会话)(温暖,人类存在)
/wiki-deep # 定期 DEEP 传递(每天结束/每周):排空积压 + 语义审查 + 缺陷队列 + 重凝结超大主题页面。延迟是无损的(不可变记录·耐用水印/队列)
/wiki-quiz # 人类记忆循环(结账后 / 当冷启动显示评论到期时):~5 间隔重复问题您自己的决策·方向 — 错误答案第二天返回
```
> 要运行各个步骤:`bun <clone>/src/cli.ts doctor` · `bash <clone>/daemon/install.sh` ·
> `bun <clone>/src/daemon/wire.ts`. 恢复:`install.sh --uninstall` · `wire.ts --revert`.
## 配置(环境变量)— 提供者·模型·CLI 无关
生成阶段(自动更新/审查)默认使用 `claude -p` + 最新 Claude 模型,但所有内容都可以通过环境变量交换(无需任何配置,行为与默认设置相同):
| 环境变量 | 默认值 | 用途 |
| --- | --- | --- |
| `LLMWIKI_MODEL_HEAVY` | `claude-opus-4-8` | 推理层 — 验证(对抗门)· 审查(语义检查) |
| `LLMWIKI_MODEL_LIGHT` | `claude-sonnet-5` | 草稿层 — 编写(页面生成) |
| `CLAUDE_CONFIG_DIR` | (Claude 代码标准) | 如果设置,该目录也被识别为 Claude 配置文件 — 钩子连线(wire)· 捕获(claude 源代码)· 医生都遵循它。 |
| `LLMWIKI_LLM_CMD` | `claude -p {prompt} --model {model} --disallowedTools …` | LLM 调用命令模板。 `{prompt}`·`{model}` 按令牌替换(无 shell 解析)。如果 `{prompt}` 为空,则通过 stdin 发送提示。对于需要引号的多词值,请使用 JSON 数组(`["my-llm","--q","{prompt}"`)。任何 CLI 都有效 — Codex·`llm`·ollama 等。 |
| `LLMWIKI_LANG` | `en` | 冷启动操作规则/标题的语言。韩语使用 `ko`。(wiki 正文保持不变 — 仅 UI 副本切换。) |
| `LLMWIKI_SEARCH_RELAX` | (开启) | 设置 `off` 以禁用宽松召回回退 — 当自然语言查询严格 AND 匹配 0 行时,搜索会重试一次,将相同术语 OR 连接( trigram 安全,Unicode/CJK 感知,无停用词列表)。A/B 测量的 kill switch。 |
| `LLMWIKI_MAX_SOURCE_BYTES` | `262144` (256KB) | SOURCE 文件的每文件内容上限。较大的文件(多 MB yaml/json 固定装置)仅注册元数据 — 按名称可查找,但不进行全文索引。Wiki 页面除外。保持索引紧凑,搜索在 fixture-heavy 仓库中快速,无质量变化。 |
| `LLMWIKI_REVIEW_MAX_PAGES` | `80` | 单次 `review` 传递的输入上限。如果 wiki 超过此限制,则仅审查最近 + 标签邻近页面(以避免提示溢出)。 |
| `LLMWIKI_REVIEW_INTERVAL_DAYS` | `7` | `review --if-due` 的节奏门 — 仅当自上次提交审查以来经过了这么多天时,它才会运行(否则它会在 ~0.03s 内确定性跳过)。默认情况下,使快速结账的审查成本为零。 |
| `LLMWIKI_TOPIC_BUDGET` | `10000` | `5_topic` 页面上 `topic-oversize` 建议警告的字符预算 — 超出预算,深度传递会从其引用的转录中重写页面,由 `distill-verify` 控制(引文集不能缩小)。 |
| `LLMWIKI_OVERVIEW_BUDGET` | `8000` | overview.md 的字符预算,当 `overview --normalize` 警告(监视入口点膨胀)。 |
| `LLMWIKI_L0_BUDGET` | `1600` | 冷启动 L0(当前状态)的字符 **标准**。注入 **从不剪切**:超标准页面会注入整个页面,并附加一行通知(敦促下一次结账修剪);`oversized-l0` lint 从 1.25 倍警告。 |
将每个层级提升到“最新顶级模型刚刚发布”,或交换非 Anthropic 模型/端点。
**与平台无关的读取**:`bun <clone>/src/cli.ts context <repo>` 打印冷启动上下文,`... turn-context <repo>` (钩子 stdin JSON 或 `--prompt`)打印每转相关页面指针(≤3 行,无声除非自信)。Claude Code 自动连接两者(SessionStart·UserPromptSubmit 钩子);最近的 Codex 可以原生运行相同的钩子脚本(`adapters/codex/`),OpenCode 通过一个文件插件(`adapters/opencode/`)。其他平台调用相同命令从 AGENTS.md/a 启动提示。每转注入是一种渐进增强 — 冷启动 + `search` 基线在所有地方都相同。
## 团队使用(共享一个项目的 wiki)
Solo 是默认的,不需要任何配置 — 以下所有内容都是附加的,对于单个用户是无声的。
当多人合作一个项目时,每个人都运行自己的本地引擎(自己的捕获守护进程,自己的队列),并将 **他们自己的会话** 缩减到共享的 `docs/wiki/`;共享使用普通的 git。引擎为你做的事情:
- **脚手架安全**:骨架确保 `.gitignore` (`.llmwiki/` — 派生索引从不提交)和 `.gitattributes` (`docs/wiki/log.md merge=union` — 并发追加合并干净,而不是冲突)。
- **归属**:无人值守的写入会在页面的 frontmatter 中标记 `author:` (来自 git `user.name`);`0_review` 问题可以携带 `owner: <name>`,冷启动将其显示为 `[→ name]`,因此队友会跳过不是他们的问题。
- **队友引用**:引用另一个机器的转录的脚注自我修复 — 每个干净的引用 `.jsonl` 在索引重建时都注册为虚拟源(转录无论如何都会旋转),因此队友的引用永远不会破坏你的 `lint` 门控。格式错误的引用仍然会出错。
- **连续性**:冷启动会在你的克隆落后于源时打印一行(队友可能合并了上下文 — 在启动前拉取)。
- **审查流程**:像代码一样对待 wiki 提交 — 相同的分支,相同的 PR;PR 审查 *是* AI 编写页面的手动门控。如果 `gap-queue.md`/`overview.md` 发生冲突,请取任意一方并重新运行 `llmwiki gaps` / `llmwiki overview --normalize` (它们收敛);永远不要手动合并它们生成的正文。
- **`current-state.md` (L0)冲突**:取任意一方都是安全的 — 下一次 `/wiki-fast` 刷新步骤会从 wiki 状态重新派生 Now/Next 并收敛。优先选择双方 **Next** 项目的并集(永远不会丢失待处理操作)。
- **相同的 `5_topic` 页面,并发追加**:保留 **双方的项目**。主题页面通过格式规则是累加的(现有行是不可变的;合并仅添加),因此并集始终是正确的合并。
## 团队约定 — `llmwiki.config.toml` (可选)
股票分类结构(`0_review · 1_direction · 2_milestone · 3_decision · 4_insight · 5_topic`)是内置的默认结构 — **没有配置文件,字节不会发生变化** (渲染的提示/规则通过测试固定在历史文本上)。要运行不同的团队格式,请将 `llmwiki.config.example.toml` 复制到克隆根目录下的 `llmwiki.config.toml`,并声明您的类别:
```toml
[[category]]
dir = "1_goal" # docs/wiki 下的文件夹
domain = "goal" # 前置 matter 域路由到此处
review = "human" # human → 0_review 队列 · 模型 → 强模型裁决
guide = "季度目标;更改需要人工签名。"
```
- **单一真相来源**:WRITE 提示、冷启动操作规则和 `llmwiki conventions <repo>` (`/wiki-*` 技能依赖于此)都从此文件中渲染 — 没有重复的散文会漂移。
- **每个仓库的配置** (可选):在 `<clone>/configs/` 下放置多个 `*.toml` 文件。具有顶级 `applies_to = ["<folder>", ...]` 的文件管理这些文件夹及其下的所有内容(段安全前缀,最特定的匹配优先,`~` 展开);没有 `applies_to` 的文件是所有仓库的默认配置(规范:`configs/default.toml`)。优先级:命名匹配 → `configs/` 默认 → 根目录 `llmwiki.config.toml` → 内置默认值。匹配使用会话钩子传递的路径(`CLAUDE_PROJECT_DIR`/cwd)。
- **检查**,使用 `llmwiki config [workspace]` — 显示选择了哪个文件以及为什么(验证;无效或不可读的文件会安全地回退并警告,永远不会破坏会话)。
- **重组现有的 wiki**,使用 `llmwiki migrate <repo>` (干运行)→ `--commit`:文件夹重命名,并重写每个 wikilink/相对链接,更新前置 matter `domain:`,并标记 `.schema-version`。从不自动运行 — 冷启动仅检测漂移(双向:wiki 比您的引擎配置新,或配置比 wiki 新),并建议。
- **团队分发**:将配置提交到团队的引擎分支;成员 `git pull`,一个人运行 `migrate`,结果通过 PR 合并,如同其他更改。
- **兼容性纪律**:在具有 lint 警告和 `migrate` 步骤的弃用窗口后,永远不会静默删除配置键。
## 回归测量(引擎开发工具 — 永远不是日常循环的一部分)
- **`llmwiki bench <repo>`** — 确定性检索基准(零 LLM,在毫秒内运行)。 `<repo>/docs/wiki/.bench/golden.toml` (每个仓库 ≤20,任意语言)中的黄金查询集 → 搜索任意命中 `r@k` + 转上下文指针命中/沉默(当转上下文保持沉默时,拒绝查询是正确的 — 结构性,语言中立)。通过 `--tune-only` / `--sealed` 进行种子调谐/密封分割(调谐 = 自由迭代;每次查看密封结果都会削弱它作为回归保护 — 仅最终检查)。
- **`llmwiki compare-arm <repo> --corpus <dir> --label <name>`** → **`llmwiki compare-verdict A.json B.json`** — 冻结语料库 A/B:为每个配置/git 状态构建隔离的临时 wiki,然后用顺序门控(回归块优先 → 保留/采用/未决定,零 LLM)判断两个标记结果。仅在提示/模型更改时运行。
## 原则
- 转录 = 原始且不可变(仅引用,无 wiki→wiki 重新派生)。增量 = 只处理超过水印的内容。
- 事实 = AI 自动 / 裁判(决策 Why·What·Alt·direction)= 人类(`status: draft` 标志)。
- git markdown = 单一真相来源。提交 = 在单个作者身份下(仓库所有者)。
- 不过度工程:少于 100k 令牌,无需向量 DB·RAG(索引.md 导航足够)。
## 许可证
[Apache License 2.0](LICENSE) 2026 suwonleee.
连接信息
猜你喜欢
暂无推荐服务器