# inspeximus - Doramagic AI Context Pack

> 定位：安装前体验与判断资产。它帮助宿主 AI 有一个好的开始，但不代表已经安装、执行或验证目标项目。

## 充分原则

- **充分原则，不是压缩原则**：AI Context Pack 应该充分到让宿主 AI 在开工前理解项目价值、能力边界、使用入口、风险和证据来源；它可以分层组织，但不以最短摘要为目标。
- **压缩策略**：只压缩噪声和重复内容，不压缩会影响判断和开工质量的上下文。

## 给宿主 AI 的使用方式

你正在读取 Doramagic 为 inspeximus 编译的 AI Context Pack。请把它当作开工前上下文：帮助用户理解适合谁、能做什么、如何开始、哪些必须安装后验证、风险在哪里。不要声称你已经安装、运行或执行了目标项目。

## Claim 消费规则

- **事实来源**：Repo Evidence + Claim/Evidence Graph；Human Wiki 只提供显著性、术语和叙事结构。
- **事实最低状态**：`supported`
- `supported`：可以作为项目事实使用，但回答中必须引用 claim_id 和证据路径。
- `weak`：只能作为低置信度线索，必须要求用户继续核实。
- `inferred`：只能用于风险提示或待确认问题，不能包装成项目事实。
- `unverified`：不得作为事实使用，应明确说证据不足。
- `contradicted`：必须展示冲突来源，不得替用户强行选择一个版本。

## 它最适合谁

- **正在使用 Claude/Codex/Cursor/Gemini 等宿主 AI 的开发者**：README 或插件配置提到多个宿主 AI。 证据：`README.md` Claim：`clm_0003` supported 0.86

## 它能做什么

- **多宿主安装与分发**（需要安装后验证）：项目包含插件或 marketplace 配置，说明它面向一个或多个 AI 宿主的安装和分发。 证据：`.claude-plugin/marketplace.json`, `.claude-plugin/plugin.json` Claim：`clm_0001` supported 0.86
- **命令行启动或安装流程**（需要安装后验证）：项目文档中存在可执行命令，真实使用需要在本地或宿主环境中运行这些命令。 证据：`README.md`, `packages/adk-inspeximus/README.md`, `packages/langgraph-checkpoint-inspeximus/README.md`, `packages/langgraph-store-inspeximus/README.md` Claim：`clm_0002` supported 0.86

## 怎么开始

- `/plugin marketplace add DanceNitra/inspeximus` 证据：`README.md` Claim：`clm_0004` supported 0.86
- `/plugin install inspeximus@inspeximus` 证据：`README.md` Claim：`clm_0005` supported 0.86
- `pip install inspeximus          # zero required dependencies` 证据：`README.md` Claim：`clm_0006` supported 0.86
- `claude mcp add inspeximus -e INSPEXIMUS_PATH=~/.inspeximus_memory.json -- uvx --from "inspeximus[mcp]" inspeximus-mcp` 证据：`README.md` Claim：`clm_0007` supported 0.86
- `pip install "inspeximus[mcp]"     # the library + the MCP server SDK` 证据：`README.md` Claim：`clm_0008` supported 0.86
- `pip install adk-inspeximus` 证据：`packages/adk-inspeximus/README.md` Claim：`clm_0009` supported 0.86
- `pip install langgraph-checkpoint-inspeximus` 证据：`packages/langgraph-checkpoint-inspeximus/README.md` Claim：`clm_0010` supported 0.86
- `pip install langgraph-store-inspeximus` 证据：`packages/langgraph-store-inspeximus/README.md` Claim：`clm_0011` supported 0.86

## 继续前判断卡

- **当前建议**：先做角色匹配试用
- **为什么**：这个项目更像角色库，核心风险是选错角色或把角色文案当执行能力；先用 Prompt Preview 试角色匹配，再决定是否沙盒导入。

### 30 秒判断

- **现在怎么做**：先做角色匹配试用
- **最小安全下一步**：先用 Prompt Preview 试角色匹配；满意后再隔离导入
- **先别相信**：角色质量和任务匹配不能直接相信。
- **继续会触碰**：角色选择偏差、命令执行、宿主 AI 配置

### 现在可以相信

- **适合人群线索：正在使用 Claude/Codex/Cursor/Gemini 等宿主 AI 的开发者**（supported）：有 supported claim 或项目证据支撑，但仍不等于真实安装效果。 证据：`README.md` Claim：`clm_0003` supported 0.86
- **能力存在：多宿主安装与分发**（supported）：可以相信项目包含这类能力线索；是否适合你的具体任务仍要试用或安装后验证。 证据：`.claude-plugin/marketplace.json`, `.claude-plugin/plugin.json` Claim：`clm_0001` supported 0.86
- **能力存在：命令行启动或安装流程**（supported）：可以相信项目包含这类能力线索；是否适合你的具体任务仍要试用或安装后验证。 证据：`README.md`, `packages/adk-inspeximus/README.md`, `packages/langgraph-checkpoint-inspeximus/README.md`, `packages/langgraph-store-inspeximus/README.md` Claim：`clm_0002` supported 0.86
- **存在 Quick Start / 安装命令线索**（supported）：可以相信项目文档出现过启动或安装入口；不要因此直接在主力环境运行。 证据：`README.md` Claim：`clm_0004` supported 0.86

### 现在还不能相信

- **角色质量和任务匹配不能直接相信。**（unverified）：角色库证明有很多角色，不证明每个角色都适合你的具体任务，也不证明角色能产生高质量结果。
- **不能把角色文案当成真实执行能力。**（unverified）：安装前只能判断角色描述和任务画像是否匹配，不能证明它能在宿主 AI 里完成任务。
- **真实输出质量不能在安装前相信。**（unverified）：Prompt Preview 只能展示引导方式，不能证明真实项目中的结果质量。
- **宿主 AI 版本兼容性不能在安装前相信。**（unverified）：Claude、Cursor、Codex、Gemini 等宿主加载规则和版本差异必须在真实环境验证。
- **不会污染现有宿主 AI 行为，不能直接相信。**（inferred）：Skill、plugin、AGENTS/CLAUDE/GEMINI 指令可能改变宿主 AI 的默认行为。 证据：`.claude-plugin/marketplace.json`, `.claude-plugin/plugin.json`
- **可安全回滚不能默认相信。**（unverified）：除非项目明确提供卸载和恢复说明，否则必须先在隔离环境验证。
- **真实安装后是否与用户当前宿主 AI 版本兼容？**（unverified）：兼容性只能通过实际宿主环境验证。 证据：`.claude-plugin/marketplace.json`, `.claude-plugin/plugin.json`
- **项目输出质量是否满足用户具体任务？**（unverified）：安装前预览只能展示流程和边界，不能替代真实评测。

### 继续会触碰什么

- **角色选择偏差**：用户对任务应该由哪个专家角色处理的判断。 原因：选错角色会让 AI 从错误专业视角回答，浪费时间或误导决策。
- **命令执行**：包管理器、网络下载、本地插件目录、项目配置或用户主目录。 原因：运行第一条命令就可能产生环境改动；必须先判断是否值得跑。 证据：`README.md`, `packages/adk-inspeximus/README.md`, `packages/langgraph-checkpoint-inspeximus/README.md`, `packages/langgraph-store-inspeximus/README.md`
- **宿主 AI 配置**：Claude/Codex/Cursor/Gemini/OpenCode 等宿主的 plugin、Skill 或规则加载配置。 原因：宿主配置会改变 AI 后续工作方式，可能和用户已有规则冲突。 证据：`.claude-plugin/marketplace.json`, `.claude-plugin/plugin.json`
- **本地环境或项目文件**：安装结果、插件缓存、项目配置或本地依赖目录。 原因：安装前无法证明写入范围和回滚方式，需要隔离验证。 证据：`.claude-plugin/marketplace.json`, `.claude-plugin/plugin.json`, `README.md`, `packages/adk-inspeximus/README.md` 等
- **宿主 AI 上下文**：AI Context Pack、Prompt Preview、Skill 路由、风险规则和项目事实。 原因：导入上下文会影响宿主 AI 后续判断，必须避免把未验证项包装成事实。

### 最小安全下一步

- **先跑 Prompt Preview**：先用交互式试用验证任务画像和角色匹配，不要先导入整套角色库。（适用：任何项目都适用，尤其是输出质量未知时。）
- **只在隔离目录或测试账号试装**：避免安装命令污染主力宿主 AI、真实项目或用户主目录。（适用：存在命令执行、插件配置或本地写入线索时。）
- **先备份宿主 AI 配置**：Skill、plugin、规则文件可能改变 Claude/Cursor/Codex 的默认行为。（适用：存在插件 manifest、Skill 或宿主规则入口时。）
- **安装后只验证一个最小任务**：先验证加载、兼容、输出质量和回滚，再决定是否深用。（适用：准备从试用进入真实工作流时。）

### 退出方式

- **保留安装前状态**：记录原始宿主配置和项目状态，后续才能判断是否可恢复。
- **准备移除宿主 plugin / Skill / 规则入口**：如果试装后行为异常，可以把宿主 AI 恢复到试装前状态。
- **保留原始角色选择记录**：如果输出偏题，可以回到任务画像阶段重新选择角色，而不是继续沿着错误角色推进。
- **记录安装命令和写入路径**：没有明确卸载说明时，至少要知道哪些目录或配置需要手动清理。
- **如果没有回滚路径，不进入主力环境**：不可回滚是继续前阻断项，不应靠信任或运气继续。

## 哪些只能预览

- 解释项目适合谁和能做什么
- 基于项目文档演示典型对话流程
- 帮助用户判断是否值得安装或继续研究

## 哪些必须安装后验证

- 真实安装 Skill、插件或 CLI
- 执行脚本、修改本地文件或访问外部服务
- 验证真实输出质量、性能和兼容性

## 边界与风险判断卡

- **把安装前预览误认为真实运行**：用户可能高估项目已经完成的配置、权限和兼容性验证。 处理方式：明确区分 prompt_preview_can_do 与 runtime_required。 Claim：`clm_0012` inferred 0.45
- **宿主 AI 插件或 Skill 规则冲突**：新规则可能改变用户现有宿主 AI 的工作方式。 处理方式：安装前先检查插件 manifest 和 Skill 文件，必要时隔离测试。 证据：`.claude-plugin/marketplace.json`, `.claude-plugin/plugin.json` Claim：`clm_0013` supported 0.86
- **命令执行会修改本地环境**：安装命令可能写入用户主目录、宿主插件目录或项目配置。 处理方式：先在隔离环境或测试账号中运行。 证据：`README.md`, `packages/adk-inspeximus/README.md`, `packages/langgraph-checkpoint-inspeximus/README.md`, `packages/langgraph-store-inspeximus/README.md` Claim：`clm_0014` supported 0.86
- **待确认**：真实安装后是否与用户当前宿主 AI 版本兼容？。原因：兼容性只能通过实际宿主环境验证。
- **待确认**：项目输出质量是否满足用户具体任务？。原因：安装前预览只能展示流程和边界，不能替代真实评测。
- **待确认**：安装命令是否需要网络、权限或全局写入？。原因：这影响企业环境和个人环境的安装风险。

## 开工前工作上下文

### 加载顺序

- 先读取 how_to_use.host_ai_instruction，建立安装前判断资产的边界。
- 读取 claim_graph_summary，确认事实来自 Claim/Evidence Graph，而不是 Human Wiki 叙事。
- 再读取 intended_users、capabilities 和 quick_start_candidates，判断用户是否匹配。
- 需要执行具体任务时，优先查 role_skill_index，再查 evidence_index。
- 遇到真实安装、文件修改、网络访问、性能或兼容性问题时，转入 risk_card 和 boundaries.runtime_required。

### 任务路由

- **多宿主安装与分发**：先说明这是安装后验证能力，再给出安装前检查清单。 边界：必须真实安装或运行后验证。 证据：`.claude-plugin/marketplace.json`, `.claude-plugin/plugin.json` Claim：`clm_0001` supported 0.86
- **命令行启动或安装流程**：先说明这是安装后验证能力，再给出安装前检查清单。 边界：必须真实安装或运行后验证。 证据：`README.md`, `packages/adk-inspeximus/README.md`, `packages/langgraph-checkpoint-inspeximus/README.md`, `packages/langgraph-store-inspeximus/README.md` Claim：`clm_0002` supported 0.86

### 上下文规模

- 文件总数：255
- 重要文件覆盖：40/255
- 证据索引条目：79
- 角色 / Skill 条目：22

### 证据不足时的处理

- **missing_evidence**：说明证据不足，要求用户提供目标文件、README 段落或安装后验证记录；不要补全事实。
- **out_of_scope_request**：说明该任务超出当前 AI Context Pack 证据范围，并建议用户先查看 Human Manual 或真实安装后验证。
- **runtime_request**：给出安装前检查清单和命令来源，但不要替用户执行命令或声称已执行。
- **source_conflict**：同时展示冲突来源，标记为待核实，不要强行选择一个版本。

## Prompt Recipes

### 适配判断

- 目标：判断这个项目是否适合用户当前任务。
- 预期输出：适配结论、关键理由、证据引用、安装前可预览内容、必须安装后验证内容、下一步建议。

```text
请基于 inspeximus 的 AI Context Pack，先问我 3 个必要问题，然后判断它是否适合我的任务。回答必须包含：适合谁、能做什么、不能做什么、是否值得安装、证据来自哪里。所有项目事实必须引用 evidence_refs、source_paths 或 claim_id。
```

### 安装前体验

- 目标：让用户在安装前感受核心工作流，同时避免把预览包装成真实能力或营销承诺。
- 预期输出：一段带边界标签的体验剧本、安装后验证清单和谨慎建议；不含真实运行承诺或强营销表述。

```text
请把 inspeximus 当作安装前体验资产，而不是已安装工具或真实运行环境。

请严格输出四段：
1. 先问我 3 个必要问题。
2. 给出一段“体验剧本”：用 [安装前可预览]、[必须安装后验证]、[证据不足] 三种标签展示它可能如何引导工作流。
3. 给出安装后验证清单：列出哪些能力只有真实安装、真实宿主加载、真实项目运行后才能确认。
4. 给出谨慎建议：只能说“值得继续研究/试装”“先补充信息后再判断”或“不建议继续”，不得替项目背书。

硬性边界：
- 不要声称已经安装、运行、执行测试、修改文件或产生真实结果。
- 不要写“自动适配”“确保通过”“完美适配”“强烈建议安装”等承诺性表达。
- 如果描述安装后的工作方式，必须使用“如果安装成功且宿主正确加载 Skill，它可能会……”这种条件句。
- 体验剧本只能写成“示例台词/假设流程”：使用“可能会询问/可能会建议/可能会展示”，不要写“已写入、已生成、已通过、正在运行、正在生成”。
- Prompt Preview 不负责给安装命令；如用户准备试装，只能提示先阅读 Quick Start 和 Risk Card，并在隔离环境验证。
- 所有项目事实必须来自 supported claim、evidence_refs 或 source_paths；inferred/unverified 只能作风险或待确认项。

```

### 角色 / Skill 选择

- 目标：从项目里的角色或 Skill 中挑选最匹配的资产。
- 预期输出：候选角色或 Skill 列表，每项包含适用场景、证据路径、风险边界和是否需要安装后验证。

```text
请读取 role_skill_index，根据我的目标任务推荐 3-5 个最相关的角色或 Skill。每个推荐都要说明适用场景、可能输出、风险边界和 evidence_refs。
```

### 风险预检

- 目标：安装或引入前识别环境、权限、规则冲突和质量风险。
- 预期输出：环境、权限、依赖、许可、宿主冲突、质量风险和未知项的检查清单。

```text
请基于 risk_card、boundaries 和 quick_start_candidates，给我一份安装前风险预检清单。不要替我执行命令，只说明我应该检查什么、为什么检查、失败会有什么影响。
```

### 宿主 AI 开工指令

- 目标：把项目上下文转成一次对话开始前的宿主 AI 指令。
- 预期输出：一段边界明确、证据引用明确、适合复制给宿主 AI 的开工前指令。

```text
请基于 inspeximus 的 AI Context Pack，生成一段我可以粘贴给宿主 AI 的开工前指令。这段指令必须遵守 not_runtime=true，不能声称项目已经安装、运行或产生真实结果。
```

## 角色 / Skill 索引

- 共索引 22 个角色 / Skill / 项目文档条目。

- **inspeximus**（project_doc）："We have inspected" — the medieval charter that recites an earlier one word for word and attests it unaltered. The self-correcting memory layer for AI agents. 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`README.md`
- **MemoryAgentBench — Conflict Resolution, inspeximus eval**（project_doc）：MemoryAgentBench — Conflict Resolution, inspeximus eval 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`bench/README.md`
- **inspeximus examples**（project_doc）：Runnable, copy-paste examples. Each is self-contained and needs only pip install inspeximus . 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`examples/README.md`
- **inspeximus probes — runnable memory-reliability tests**（project_doc）：inspeximus probes — runnable memory-reliability tests 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`probes/README.md`
- **inspeximus — launch site**（project_doc）：A single-page marketing site for inspeximus https://github.com/DanceNitra/inspeximus : a zero-dependency memory layer and MCP server for AI agents. Dark, precise, with a scroll-driven 3D "memory ledger" narrative. 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`site/README.md`
- **MemOps: what happened when inspeximus's correction layer was measured against a keep-everything store**（project_doc）：MemOps: what happened when inspeximus's correction layer was measured against a keep-everything store 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`benchmarks/memops/README.md`
- **n8n template — AI agent with self-correcting memory inspeximus**（project_doc）：n8n template — AI agent with self-correcting memory inspeximus 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`examples/n8n/README.md`
- **adk-inspeximus**（project_doc）：A Google ADK https://github.com/google/adk-python memory service backed by inspeximus https://github.com/DanceNitra/inspeximus . 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`packages/adk-inspeximus/README.md`
- **langgraph-checkpoint-inspeximus**（project_doc）：A LangGraph checkpointer backed by inspeximus https://pypi.org/project/inspeximus/ . 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`packages/langgraph-checkpoint-inspeximus/README.md`
- **langgraph-store-inspeximus**（project_doc）：A LangGraph BaseStore backed by inspeximus https://pypi.org/project/inspeximus/ — a drop-in for InMemoryStore that also remembers what a value used to be. 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`packages/langgraph-store-inspeximus/README.md`
- **The EU AI Act compliance-evidence layer for AI-agent memory**（project_doc）：The EU AI Act compliance-evidence layer for AI-agent memory 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/AI_ACT.md`
- **Use it from the shell: the inspeximus CLI 1.12.4**（project_doc）：Use it from the shell: the inspeximus CLI 1.12.4 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/API.md`
- **inspeximus — Compliance Control Mapping**（project_doc）：inspeximus — Compliance Control Mapping 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/COMPLIANCE.md`
- **Framework integrations**（project_doc）：inspeximus drops into the major agent frameworks as their native memory type , so an agent gets value-ranked recall plus correction-integrity a corrected fact does not resurrect on a later read without changing its code. Each adapter lives under inspeximus.integrations. and is an opt-in extra — import inspeximus stays zero-dependency, and the framework is imported lazily only when you use its adapter. 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/INTEGRATIONS.md`
- **The second brain thinking layer**（project_doc）：Optional add-on — a separate MCP server that reasons over a folder of Markdown notes. Click to expand. 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/SECOND_BRAIN.md`
- **Changelog**（project_doc）：All notable changes to inspeximus inspeximus . Format loosely follows Keep a Changelog; versioning is semver MAJOR = stable/breaking, MINOR = features, PATCH = fixes . 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`CHANGELOG.md`
- **inspeximus MCP — registry listing pack**（project_doc）：inspeximus MCP — registry listing pack 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`MCP_LISTINGS.md`
- **Security model**（project_doc）：Honest scope: inspeximus has had a first internal security pass 2026-07-13 , not a formal third-party pentest. This document states what inspeximus defends, what it does not, and the known residual footguns — so you can decide what to rely on. If you find an issue, open a GitHub issue or security advisory. 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`SECURITY.md`
- **Inspeximus**（project_doc）：A persistent DocumentStore with a correction channel — supersede, revert, and receipted erasure 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`haystack_integration_inspeximus.md`
- **Agent-memory integrity benchmark open, cross-system, run-it-yourself**（project_doc）：Agent-memory integrity benchmark open, cross-system, run-it-yourself 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`probes/INTEGRITY_BENCHMARK.md`
- **Probe spec — erasure completeness & revert exactness on MemOps data**（project_doc）：Probe spec — erasure completeness & revert exactness on MemOps data 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`benchmarks/memops/ERASURE_REVERT_SPEC.md`
- **Pre-registration — inspeximus on MemOps internal diagnostic**（project_doc）：Pre-registration — inspeximus on MemOps internal diagnostic 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`benchmarks/memops/PREREGISTRATION.md`

## 证据索引

- 共索引 79 条证据。

- **inspeximus**（documentation）："We have inspected" — the medieval charter that recites an earlier one word for word and attests it unaltered. The self-correcting memory layer for AI agents. 证据：`README.md`
- **MemoryAgentBench — Conflict Resolution, inspeximus eval**（documentation）：MemoryAgentBench — Conflict Resolution, inspeximus eval 证据：`bench/README.md`
- **inspeximus examples**（documentation）：Runnable, copy-paste examples. Each is self-contained and needs only pip install inspeximus . 证据：`examples/README.md`
- **inspeximus probes — runnable memory-reliability tests**（documentation）：inspeximus probes — runnable memory-reliability tests 证据：`probes/README.md`
- **inspeximus — launch site**（documentation）：A single-page marketing site for inspeximus https://github.com/DanceNitra/inspeximus : a zero-dependency memory layer and MCP server for AI agents. Dark, precise, with a scroll-driven 3D "memory ledger" narrative. 证据：`site/README.md`
- **MemOps: what happened when inspeximus's correction layer was measured against a keep-everything store**（documentation）：MemOps: what happened when inspeximus's correction layer was measured against a keep-everything store 证据：`benchmarks/memops/README.md`
- **n8n template — AI agent with self-correcting memory inspeximus**（documentation）：n8n template — AI agent with self-correcting memory inspeximus 证据：`examples/n8n/README.md`
- **adk-inspeximus**（documentation）：A Google ADK https://github.com/google/adk-python memory service backed by inspeximus https://github.com/DanceNitra/inspeximus . 证据：`packages/adk-inspeximus/README.md`
- **langgraph-checkpoint-inspeximus**（documentation）：A LangGraph checkpointer backed by inspeximus https://pypi.org/project/inspeximus/ . 证据：`packages/langgraph-checkpoint-inspeximus/README.md`
- **langgraph-store-inspeximus**（documentation）：A LangGraph BaseStore backed by inspeximus https://pypi.org/project/inspeximus/ — a drop-in for InMemoryStore that also remembers what a value used to be. 证据：`packages/langgraph-store-inspeximus/README.md`
- **Plugin**（structured_config）：{ "name": "inspeximus", "version": "1.25.0", "description": "Self-correcting memory for Claude Code. Facts you correct stay corrected, deletions leave a signed receipt, and storing something never calls a model.", "author": { "name": "Rastislav Drahos", "url": "https://github.com/DanceNitra" }, "homepage": "https://github.com/DanceNitra/inspeximus", "repository": "https://github.com/DanceNitra/inspeximus", "license": "MIT", "keywords": "memory", "mcp", "agent-memory", "supersession", "erasure", "provenance" , "mcpServers": { "inspeximus": { "command": "uvx", "args": "--from", "inspeximus mcp ", "inspeximus-mcp" , "env": { "INSPEXIMUS PATH": "${CLAUDE PROJECT DIR}/.inspeximus/memory.json" }… 证据：`.claude-plugin/plugin.json`
- **Package**（package_manifest）：{ "name": "inspeximus-site", "private": true, "version": "1.1.0", "type": "module", "scripts": { "dev": "vite", "build": "vite build", "preview": "vite preview" }, "dependencies": { "gsap": "^3.12.5", "lenis": "^1.1.14", "three": "^0.169.0" }, "devDependencies": { "typescript": "^5.6.3", "vite": "^5.4.10", "@types/three": "^0.169.0" } } 证据：`site/package.json`
- **Marketplace**（structured_config）：{ "name": "inspeximus", "owner": { "name": "Rastislav Drahos", "url": "https://github.com/DanceNitra" }, "metadata": { "description": "Self-correcting memory for coding agents — corrections stick, deletions are provable, and nothing calls a model on the write path.", "version": "1.0.0" }, "plugins": { "name": "inspeximus", "source": "./", "description": "Persistent memory for Claude Code that corrects itself: write a new value for a fact and the old one is retired, revert puts it back, and forget leaves a signed, content-free receipt. Deterministic and zero-dependency — no LLM call when storing, so the same input always produces the same store.", "version": "1.25.0", "author": { "name": "Ra… 证据：`.claude-plugin/marketplace.json`
- **License**（source_file）：Copyright c 2026 Agora autonomous research organization 证据：`LICENSE`
- **The EU AI Act compliance-evidence layer for AI-agent memory**（documentation）：The EU AI Act compliance-evidence layer for AI-agent memory 证据：`docs/AI_ACT.md`
- **Use it from the shell: the inspeximus CLI 1.12.4**（documentation）：Use it from the shell: the inspeximus CLI 1.12.4 证据：`docs/API.md`
- **inspeximus — Compliance Control Mapping**（documentation）：inspeximus — Compliance Control Mapping 证据：`docs/COMPLIANCE.md`
- **Framework integrations**（documentation）：inspeximus drops into the major agent frameworks as their native memory type , so an agent gets value-ranked recall plus correction-integrity a corrected fact does not resurrect on a later read without changing its code. Each adapter lives under inspeximus.integrations. and is an opt-in extra — import inspeximus stays zero-dependency, and the framework is imported lazily only when you use its adapter. 证据：`docs/INTEGRATIONS.md`
- **The second brain thinking layer**（documentation）：Optional add-on — a separate MCP server that reasons over a folder of Markdown notes. Click to expand. 证据：`docs/SECOND_BRAIN.md`
- **01 Basics**（source_file）：m = Inspeximus "memory.json" 证据：`examples/01_basics.py`
- **02 Correction And Erasure**（source_file）：m = Inspeximus ⋮---- before = len m.items res = m.forget where=lambda r: "alice@example.com" in r "text" ⋮---- erased = m.forget subject "customer-88", request id="gdpr-req-001" 证据：`examples/02_correction_and_erasure.py`
- **03 Semantic Recall**（source_file）：def my embed text: str ⋮---- v = 0.0 32 ⋮---- norm = sum x x for x in v 0.5 or 1.0 ⋮---- m = Inspeximus embed=my embed ⋮---- q = "how many db connections can we open" 证据：`examples/03_semantic_recall.py`
- **Replaying the SAME ground is an echo — corroboration counts DISTINCT novel grounds, not repeated emissions.**（source_file）：def main ⋮---- m = Inspeximus path=None ; m.echo guard = True ⋮---- r1 = m.observe "someone claims it's Berlin", key="svc/region", object="Berlin", support= "slack-msg-8842" ⋮---- Replaying the SAME ground is an echo — corroboration counts DISTINCT novel grounds, not repeated emissions. r2 = m.observe "Berlin again", key="svc/region", object="Berlin", support= "slack-msg-8842" ⋮---- A SECOND, independent ground corroborates - the record reopens for review it is NOT auto-changed . r3 = m.observe "Berlin, per the infra audit", key="svc/region", object="Berlin", support= "audit-2026-Q3" ⋮---- hit = m.recall "svc/region", k=3 0 ⋮---- Steward closes it. keep current = false alarm; reaffirm prior… 证据：`examples/05_review_trigger.py`
- **07 Witness Pool**（source_file）：STORE ID = "acme-prod-memory" ⋮---- def main ⋮---- m = Inspeximus path=None, receipts=True ⋮---- anchor = m.anchor ⋮---- witnesses = Witness for in range 3 allow = w.public for w in witnesses ⋮---- out = collect cosignatures STORE ID, anchor, witnesses v = Inspeximus.verify cosigned anchor anchor, out "cosignatures" , allow, threshold=2 ⋮---- anchor2 = m.anchor out2 = collect cosignatures STORE ID, anchor2, witnesses ⋮---- forked = dict anchor2 ; forked "writes tip" = "f0rged" + anchor2 "writes tip" 6: ⋮---- out3 = collect cosignatures STORE ID, forked, witnesses ⋮---- v3 = Inspeximus.verify cosigned anchor forked, out3 "cosignatures" , allow, threshold=2 证据：`examples/07_witness_pool.py`
- **--- after the agent rewrites using the replacements, it comes back clean ---**（source_file）：def main ⋮---- mem = Inspeximus path=None ⋮---- generated = hits = check code mem, generated ⋮---- --- after the agent rewrites using the replacements, it comes back clean --- fixed = 证据：`examples/08_code_guard.py`
- **09 Audit Bundle**（source_file）：def main ⋮---- m = Inspeximus path=None, receipts=True ⋮---- bundle = build bundle m ⋮---- res = verify bundle bundle ⋮---- forged = dict bundle ⋮---- res2 = verify bundle forged 证据：`examples/09_audit_bundle.py`
- **Init**（source_file）：all = 证据：`inspeximus/__init__.py`
- **Audit Bundle**（source_file）：BUNDLE KIND = "inspeximus.audit bundle/1" ⋮---- def bundle hash bundle: dict - str ⋮---- def content free writes store - list ⋮---- def content free tombstones store - list ⋮---- out = ⋮---- rec = {k: t.get k for k in "seq", "memory id", "ts", "request id", "prev", "hash" } ⋮---- def build bundle store, expected pubkey: str None = None, sign=None - dict ⋮---- anchor = store.anchor sign=sign bundle = { ⋮---- def rewalk records: list, kind: str - tuple str, int ⋮---- prev = GENESIS ⋮---- core = Inspeximus. chain core r, kind ⋮---- prev = r.get "hash" ⋮---- def verify bundle bundle: dict, witnesses: list None = None, threshold: int = 1 - dict ⋮---- def ok msg : checks.append msg def bad msg :… 证据：`inspeximus/audit_bundle.py`
- **audit-verify needs only the bundle file — never open a store that would create one as a side effect .**（source_file）：def embedder ⋮---- url = os.environ.get "INSPEXIMUS EMBED URL", "" .strip ⋮---- model = os.environ.get "INSPEXIMUS EMBED MODEL", "text-embedding-3-small" .strip key = os.environ.get "INSPEXIMUS EMBED KEY", "" .strip ⋮---- def embed text: str ⋮---- body = json.dumps {"model": model, "input": text} .encode headers = {"Content-Type": "application/json"} ⋮---- req = urllib.request.Request url, data=body, headers=headers ⋮---- def store path, persist vectors: bool = False, receipts: bool = False ⋮---- p = path or os.environ.get "INSPEXIMUS PATH" or "inspeximus memory.json" ⋮---- receipts = True ⋮---- st = Inspeximus path=p, embed= embedder , persist vectors=persist vectors, receipts=receipts ⋮--… 证据：`inspeximus/cli.py`
- **Code Guard**（source_file）：PREFIX = "code::symbol::" ⋮---- def key name: str - str ⋮---- def reason from rec: dict - str ⋮---- t = rec.get "text" or "" ⋮---- def deprecate symbol store, old: str, new: str, reason: str = "" - dict ⋮---- """Record that code symbol old was replaced by new a keyed supersession -- deterministic, no LLM . old / new are identifiers as they appear in code old fn , Client.connect , LEGACY FLAG . A later deprecation of the same old supersedes the replacement. Returns the recorded deprecation.""" old = str old .strip new = str new .strip ⋮---- text = f"{old} was replaced by {new}" + f": {reason}" if reason else "" ⋮---- def symbol status store, name: str - dict ⋮---- rec = store. current active… 证据：`inspeximus/code_guard.py`
- **Compliance**（source_file）：CONTROLS = ⋮---- def compliance report store, expected pubkey: str None = None - dict ⋮---- anchor = store.anchor gov = store.governance report expected pubkey sup = store.supersession report n writes = anchor.get "n writes" or 0 n tomb = anchor.get "n tombstones" or 0 n sup = sup.get "superseded total" or 0 receipts on = bool getattr store, "receipts enabled", False ⋮---- live = {"write receipts": n writes, "erasures": n tomb, "superseded": n sup} ⋮---- controls = ⋮---- count = live.get live key if live key else None ⋮---- status = "needs receipts" ⋮---- status = "available" ⋮---- status = "evidence" ⋮---- n receipts = len getattr store, " receipts", has content = any r.get "status" == "ac… 证据：`inspeximus/compliance.py`
- **--- universal-executor detection 1.2.0 -------------------------------------------------------------------**（source_file）：np = None ⋮---- HAVE ED = True ⋮---- HAVE ED = False ⋮---- HAVE AEAD = True ⋮---- HAVE AEAD = False ⋮---- INSPEXIMUS ENC MAGIC = b"INSP\x01" ⋮---- def new encryption key - bytes ⋮---- def derive key passphrase: str, salt: bytes - bytes ⋮---- def encrypt blob key: bytes, plaintext: bytes, salt: bytes - bytes ⋮---- nonce = os.urandom 12 header = INSPEXIMUS ENC MAGIC + salt + nonce ct = AESGCM key .encrypt nonce, plaintext, header ⋮---- def parse enc header blob: bytes ⋮---- def decrypt blob key: bytes, blob: bytes - bytes ⋮---- GENESIS = "0" 64 ⋮---- def canon obj - bytes ⋮---- def sha256 hex b: bytes - str ⋮---- def new receipt keypair ⋮---- sk = Ed25519SK.generate ⋮---- def new source keypa… 证据：`inspeximus/core.py`
- **Deletion Manifest**（source_file）：HAVE ED = True ⋮---- HAVE ED = False ⋮---- GENESIS = "0" 64 ⋮---- def canon obj - bytes ⋮---- def sha256 b - str ⋮---- class ErasureTarget ⋮---- name = "unnamed-target" ⋮---- def erase self, subject: str - dict ⋮---- def still recoverable self, subject: str, values - bool ⋮---- class DeletionManifest ⋮---- def init self, sign sk hex: str None = None, pubkey hex: str None = None ⋮---- def register self, target: ErasureTarget - "DeletionManifest" ⋮---- prev = GENESIS entries = ⋮---- res = t.erase subject or {} erased = int res.get "erased", 0 recoverable = bool t.still recoverable subject, values err = None ⋮---- e = {"target": t.name, "erased": erased, "still recoverable": recoverable, ⋮----… 证据：`inspeximus/deletion_manifest.py`
- **Erasure Auditor**（source_file）：class StoreProbe ⋮---- name = "unnamed-store" kind = "generic" ⋮---- def recover self, subject: str, values - dict ⋮---- class TextStoreProbe StoreProbe ⋮---- kind = "text" ⋮---- def init self, name: str, texts ⋮---- def recover self, subject, values ⋮---- blob = " \n ".join self. get or .lower hits = v for v in values if re.search r" ? 0 and frac 0 ⋮---- class ErasureAuditor ⋮---- def init self ⋮---- def register self, probe: StoreProbe - "ErasureAuditor" ⋮---- audit = self.audit subject, values, probe kwargs receipt = { ⋮---- def audit self, subject: str, values, probe kwargs - dict ⋮---- results = ⋮---- r = p.recover subject, values, {k: v for k, v in probe kwargs.items ⋮---- r = p.recov… 证据：`inspeximus/erasure_auditor.py`
- **── GOVERNANCE / INTEGRITY tools the surface a serious buyer checks — previously absent from the MCP ──────**（source_file）：def make embedders ⋮---- url = os.environ.get "INSPEXIMUS EMBED URL", "" .strip ⋮---- model = os.environ.get "INSPEXIMUS EMBED MODEL", "text-embedding-3-small" .strip key = os.environ.get "INSPEXIMUS EMBED KEY", "" .strip ⋮---- def embed text: str, prefix: str = "" ⋮---- body = json.dumps {"model": model, "input": prefix + text} .encode headers = {"Content-Type": "application/json"} ⋮---- req = urllib.request.Request url, data=body, headers=headers ⋮---- PATH = os.environ.get "INSPEXIMUS PATH", "inspeximus memory.json" ⋮---- RECEIPTS = os.environ.get "INSPEXIMUS RECEIPTS", "" .strip .lower in "1", "true", "yes", "on" ⋮---- MEM = Inspeximus PATH, embed= EMB DOC, embed query= EMB QUERY, embed… 证据：`inspeximus/mcp_server.py`
- **Witness Pool**（source_file）：def public from secret secret hex: str - str ⋮---- sk = Ed25519PrivateKey.from private bytes bytes.fromhex secret hex ⋮---- class Witness ⋮---- def init self, secret hex: str None = None, state path: str None = None ⋮---- public = public from secret secret hex ⋮---- def persist self - None ⋮---- d = os.path.dirname os.path.abspath self. state path or "." ⋮---- def cosign self, store id: str, anchor: dict - tuple str, str ⋮---- prior = self. last.get str store id sig = witness cosign self. secret, anchor, prior anchor=prior ⋮---- def last head self, store id: str - dict None ⋮---- def collect cosignatures store id: str, anchor: dict, witnesses - dict ⋮---- def http witness url: str, timeout:… 证据：`inspeximus/witness_pool.py`
- **Witness Server**（source_file）：def make handler witness: Witness ⋮---- class Handler BaseHTTPRequestHandler ⋮---- def send self, code: int, obj: dict ⋮---- body = json.dumps obj .encode ⋮---- def do GET self ⋮---- def do POST self ⋮---- n = int self.headers.get "Content-Length" or 0 body = json.loads self.rfile.read n or b"{}" ⋮---- def log message self, a : quiet by default ⋮---- w = Witness secret hex=secret hex, state path=state path httpd = ThreadingHTTPServer host, port , make handler w ⋮---- def main ⋮---- ap = argparse.ArgumentParser description="inspeximus reference witness server" ⋮---- a = ap.parse args 证据：`inspeximus/witness_server.py`
- **give the judge the FULL memory state get all , not just search top-k — isolates the integrity**（source_file）：env = {} ⋮---- line = line.strip ⋮---- OPENAI KEY = env.get "OPENAI API KEY", "" ⋮---- ENTS = "cache region", "osaka", "malmo" , "primary shard", "delta7", "sigma2" , REVERTS = "go back to what we had for the {e}.", "revert that last {e} change.", "undo the {e} correction.", ⋮---- def openai chat prompt, model="gpt-4o-mini", temp=0.0 ⋮---- body = json.dumps {"model": model, "messages": {"role": "user", "content": prompt} , ⋮---- r = urllib.request.urlopen urllib.request.Request ⋮---- def wilson k, n, z=1.96 ⋮---- p = k / n d = 1 + z z / n c = p + z z / 2 n h = z p 1 - p / n + z z / 4 n n 0.5 ⋮---- def judge current entity, context text, A, B ⋮---- prompt = f"Here are an agent's stored memor… 证据：`probes/integrity_bench_revert.py`
- **Agent-framework integrations inspeximus.integrations. — opt-in; the core library stays zero-dependency.**（source_file）：build-system requires = "setuptools =61" build-backend = "setuptools.build meta" 证据：`pyproject.toml`
- **Crewai**（source_file）：class InspeximusStorage ComplianceMixin ⋮---- store = Inspeximus path=path, embed=embed, receipts=receipts ⋮---- def save self, value: Any, metadata: Optional Dict str, Any = None - None ⋮---- metadata = dict metadata or {} text = value if isinstance value, str else str value ⋮---- key = metadata.pop "key", None obj = metadata.pop "object", None tags = self. tag extra tags = metadata.pop "tags", None ⋮---- hits = self.store.recall query, k=limit or out: List Dict str, Any = ⋮---- score = h.get "score" ⋮---- def reset self - None ⋮---- ids = r "id" for r in list getattr self.store, "items", 证据：`inspeximus/integrations/crewai.py`
- **Langchain**（source_file）：class InspeximusRetriever BaseRetriever, ComplianceMixin ⋮---- k: int = 5 store: Any = None ⋮---- def get relevant documents self, query: str, , run manager=None - List Document ⋮---- hits = self.store.recall query, k=self.k or ⋮---- def add self, text: str, key: Optional str = None, kw: Any - None ⋮---- class InspeximusChatMessageHistory BaseChatMessageHistory, ComplianceMixin ⋮---- def init self, session id: str, path: str None = None, store: Any = None, embed=None ⋮---- @property def messages self - List BaseMessage ⋮---- rows = self.store.recall self. tag, k=1000, where={"tags": {"$contains": self. tag}} \ rows = sorted rows, key=lambda r: r.get "ts", 0 ⋮---- out = ⋮---- def add message… 证据：`inspeximus/integrations/langchain.py`
- **Langgraph**（source_file）：b = lambda x: base64.b64encode x .decode ub = lambda s: base64.b64decode s.encode ⋮---- def dt ts: float - datetime ⋮---- class InspeximusStore BaseStore, ComplianceMixin ⋮---- store = Inspeximus path=path, receipts=receipts ⋮---- @staticmethod def mkey namespace: tuple str, ... , key: str - str ⋮---- def active self, namespace, key ⋮---- mk = self. mkey namespace, key rows = r for r in self.store.items if r.get "status" == "active" and r.get "meta" or {} .get "mkey" == mk ⋮---- def to item self, rec - Item ⋮---- m = rec.get "meta" or {} ⋮---- def batch self, ops - list ⋮---- results: list = ⋮---- rec = self. active op.namespace, op.key ⋮---- mk = self. mkey op.namespace, op.key ⋮---- ids =… 证据：`inspeximus/integrations/langgraph.py`
- **Init**（source_file）：all = "InspeximusMemoryService", "register" 证据：`packages/adk-inspeximus/adk_inspeximus/__init__.py`
- **Pyproject**（source_file）：build-system requires = "setuptools =61" build-backend = "setuptools.build meta" 证据：`packages/adk-inspeximus/pyproject.toml`
- **Init**（source_file）：all = "InspeximusSaver" version = "0.1.0" 证据：`packages/langgraph-checkpoint-inspeximus/langgraph/checkpoint/inspeximus/__init__.py`
- **langgraph/ and langgraph/checkpoint/ carry no init .py on purpose: they are PEP 420 namespace**（source_file）：build-system requires = "setuptools =61" build-backend = "setuptools.build meta" 证据：`packages/langgraph-checkpoint-inspeximus/pyproject.toml`
- **Init**（source_file）：all = "InspeximusStore" version = "0.1.0" 证据：`packages/langgraph-store-inspeximus/langgraph/store/inspeximus/__init__.py`
- **Pyproject**（source_file）：build-system requires = "setuptools =61" build-backend = "setuptools.build meta" 证据：`packages/langgraph-store-inspeximus/pyproject.toml`
- **Changelog**（documentation）：All notable changes to inspeximus inspeximus . Format loosely follows Keep a Changelog; versioning is semver MAJOR = stable/breaking, MINOR = features, PATCH = fixes . 证据：`CHANGELOG.md`
- **inspeximus MCP — registry listing pack**（documentation）：inspeximus MCP — registry listing pack 证据：`MCP_LISTINGS.md`
- **Security model**（documentation）：Honest scope: inspeximus has had a first internal security pass 2026-07-13 , not a formal third-party pentest. This document states what inspeximus defends, what it does not, and the known residual footguns — so you can decide what to rely on. If you find an issue, open a GitHub issue or security advisory. 证据：`SECURITY.md`
- **Table of Contents**（documentation）：Table of Contents - Overview overview - Installation installation - Usage usage - License license 证据：`haystack_integration_inspeximus.md`
- **Agent-memory integrity benchmark open, cross-system, run-it-yourself**（documentation）：Agent-memory integrity benchmark open, cross-system, run-it-yourself 证据：`probes/INTEGRITY_BENCHMARK.md`
- **Probe spec — erasure completeness & revert exactness on MemOps data**（documentation）：Probe spec — erasure completeness & revert exactness on MemOps data 证据：`benchmarks/memops/ERASURE_REVERT_SPEC.md`
- **Pre-registration — inspeximus on MemOps internal diagnostic**（documentation）：Pre-registration — inspeximus on MemOps internal diagnostic 证据：`benchmarks/memops/PREREGISTRATION.md`
- **Control Rawiter**（structured_config）：{ "ok": true, "rows": { "row": 0, "facts": 455, "n": 50, "raw iterative": 0.14 }, { "row": 1, "facts": 2310, "n": 50, "raw iterative": 0.12 }, { "row": 2, "facts": 4580, "n": 50, "raw iterative": 0.14 }, { "row": 3, "facts": 18332, "n": 50, "raw iterative": 0.08 } } 证据：`bench/_control_rawiter.json`
- **Diag Cr2 Result**（structured_config）：{ "ok": true, "rows": { "row": 0, "facts": 455, "keyed facts": 430, "keys": 276, "n": 30, "keyed top1": 0.0, "keyed top3": 0.133, "gold is a latest value": 0.967 }, { "row": 1, "facts": 2310, "keyed facts": 2144, "keys": 1360, "n": 30, "keyed top1": 0.033, "keyed top3": 0.067, "gold is a latest value": 0.9 }, { "row": 2, "facts": 4580, "keyed facts": 4243, "keys": 2673, "n": 30, "keyed top1": 0.033, "keyed top3": 0.1, "gold is a latest value": 0.967 } } 证据：`bench/_diag_cr2_result.json`
- **Diag Cr Result**（structured_config）：{ "ok": true, "rows": { "row": 0, "facts": 455, "n": 30, "lex single": 0.433, "sem single": 0.433, "lex iter": 0.433, "sem iter": 0.533 }, { "row": 1, "facts": 2310, "n": 30, "lex single": 0.133, "sem single": 0.267, "lex iter": 0.167, "sem iter": 0.267 }, { "row": 2, "facts": 4580, "n": 30, "lex single": 0.267, "sem single": 0.3, "lex iter": 0.3, "sem iter": 0.367 } } 证据：`bench/_diag_cr_result.json`
- **Results Cr Sweep**（structured_config）：{ "ok": true, "model": "deepseek-v4-flash", "hops": 2, "k": 15, "rows": { "row": 0, "facts": 455, "n": 50, "base full": 0.8, "inspeximus single": 0.28, "inspeximus iterative": 0.72 }, { "row": 1, "facts": 2310, "n": 50, "base full": 0.26, "inspeximus single": 0.08, "inspeximus iterative": 0.52 }, { "row": 2, "facts": 4580, "n": 50, "base full": 0.32, "inspeximus single": 0.06, "inspeximus iterative": 0.42 }, { "row": 3, "facts": 18332, "n": 50, "base full": "N/A context exceeds window ", "inspeximus single": 0.08, "inspeximus iterative": 0.38 } } 证据：`bench/results_cr_sweep.json`
- **Property Benchmark.Result**（structured_config）：{ "n properties": 8, "passed": 8, "results": { "supersession returns current": { "metric": "current@1", "value": 1.0, "baseline": 0.0, "pass": true, "note": "inspeximus keyed vs naive keep-all" }, "revert restores prior": { "metric": "restored@1", "value": 1.0, "baseline": null, "pass": true, "note": "" }, "erasure reconstructibility": { "metric": "leak rate", "value": 0.0, "baseline": null, "pass": true, "note": "content gone from items + recall" }, "poison trusted only": { "metric": "truth@1", "value": 1.0, "baseline": 0.0, "pass": true, "note": "trusted only vs default recall, adaptive attacker" }, "noop dedup": { "metric": "new records on restate", "value": 0, "baseline": null, "pass":… 证据：`benchmarks/property_benchmark.result.json`
- 其余 19 条证据见 `AI_CONTEXT_PACK.json` 或 `EVIDENCE_INDEX.json`。

## 宿主 AI 必须遵守的规则

- **把本资产当作开工前上下文，而不是运行环境。**：AI Context Pack 只包含证据化项目理解，不包含目标项目的可执行状态。 证据：`README.md`, `bench/README.md`, `examples/README.md`
- **回答用户时区分可预览内容与必须安装后才能验证的内容。**：安装前体验的消费者价值来自降低误装和误判，而不是伪装成真实运行。 证据：`README.md`, `bench/README.md`, `examples/README.md`

## 用户开工前应该回答的问题

- 你准备在哪个宿主 AI 或本地环境中使用它？
- 你只是想先体验工作流，还是准备真实安装？
- 你最在意的是安装成本、输出质量、还是和现有规则的冲突？

## 验收标准

- 所有能力声明都能回指到 evidence_refs 中的文件路径。
- AI_CONTEXT_PACK.md 没有把预览包装成真实运行。
- 用户能在 3 分钟内看懂适合谁、能做什么、如何开始和风险边界。

---

## Doramagic Context Augmentation

下面内容用于强化 Repomix/AI Context Pack 主体。Human Manual 只提供阅读骨架；踩坑日志会被转成宿主 AI 必须遵守的工作约束。

## Human Manual 骨架

使用规则：这里只是项目阅读路线和显著性信号，不是事实权威。具体事实仍必须回到 repo evidence / Claim Graph。

宿主 AI 硬性规则：
- 不得把页标题、章节顺序、摘要或 importance 当作项目事实证据。
- 解释 Human Manual 骨架时，必须明确说它只是阅读路线/显著性信号。
- 能力、安装、兼容性、运行状态和风险判断必须引用 repo evidence、source path 或 Claim Graph。

- **项目概览、安装与快速上手**：importance `high`
  - source_paths: README.md, pyproject.toml, inspeximus/__init__.py, inspeximus/core.py, examples/01_basics.py
- **核心内存操作、超取代与代码守护**：importance `high`
  - source_paths: inspeximus/core.py, inspeximus/code_guard.py, examples/02_correction_and_erasure.py, examples/03_semantic_recall.py, examples/08_code_guard.py
- **可验证擦除、合规证据与审计包**：importance `high`
  - source_paths: inspeximus/erasure_auditor.py, inspeximus/deletion_manifest.py, inspeximus/audit_bundle.py, inspeximus/witness_pool.py, inspeximus/witness_server.py
- **框架集成、MCP 服务器与基准测试**：importance `high`
  - source_paths: inspeximus/mcp_server.py, inspeximus/cli.py, inspeximus/integrations/__init__.py, inspeximus/integrations/langgraph.py, inspeximus/integrations/crewai.py

## Repo Inspection Evidence / 源码检查证据

- repo_clone_verified: true
- repo_inspection_verified: true
- repo_commit: `24968aefec04591528a341f9600d4d9f54226eb4`
- inspected_files: `Dockerfile`, `README.md`, `pyproject.toml`, `docs/AI_ACT.md`, `docs/API.md`, `docs/COMPLIANCE.md`, `docs/INTEGRATIONS.md`, `docs/SECOND_BRAIN.md`, `examples/01_basics.py`, `examples/02_correction_and_erasure.py`, `examples/03_semantic_recall.py`, `examples/04_encryption.py`, `examples/05_review_trigger.py`, `examples/06_gdpr_erasure_receipt.py`, `examples/07_langgraph_memory.py`, `examples/07_witness_pool.py`, `examples/08_code_guard.py`, `examples/09_audit_bundle.py`, `examples/10_compliance_overlay.py`, `examples/README.md`

宿主 AI 硬性规则：
- 没有 repo_clone_verified=true 时，不得声称已经读过源码。
- 没有 repo_inspection_verified=true 时，不得把 README/docs/package 文件判断写成事实。
- 没有 quick_start_verified=true 时，不得声称 Quick Start 已跑通。

## Doramagic Pitfall Constraints / 踩坑约束

这些规则来自 Doramagic 发现、验证或编译过程中的项目专属坑点。宿主 AI 必须把它们当作工作约束，而不是普通说明文字。

### Constraint 1: 可能修改宿主 AI 配置

- Trigger: 项目面向 Claude/Cursor/Codex/Gemini/OpenCode 等宿主，或安装命令涉及用户配置目录。
- Host AI rule: 列出会写入的配置文件、目录和卸载/回滚步骤。
- Why it matters: 安装可能改变本机 AI 工具行为，用户需要知道写入位置和回滚方法。
- Evidence: capability.host_targets | https://github.com/DanceNitra/inspeximus | host_targets=mcp_host, claude_code, claude
- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。

### Constraint 2: 能力判断依赖假设

- Trigger: README/documentation is current enough for a first validation pass.
- Host AI rule: 将假设转成下游验证清单。
- Why it matters: 假设不成立时，用户拿不到承诺的能力。
- Evidence: capability.assumptions | https://github.com/DanceNitra/inspeximus | README/documentation is current enough for a first validation pass.
- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。

### Constraint 3: 维护活跃度未知

- Trigger: 未记录 last_activity_observed。
- Host AI rule: 补 GitHub 最近 commit、release、issue/PR 响应信号。
- Why it matters: 新项目、停更项目和活跃项目会被混在一起，推荐信任度下降。
- Evidence: evidence.maintainer_signals | https://github.com/DanceNitra/inspeximus | last_activity_observed missing
- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。

- Trigger: no_demo
- Evidence: downstream_validation.risk_items | https://github.com/DanceNitra/inspeximus | no_demo; severity=medium
- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。

### Constraint 5: 存在评分风险

- Trigger: no_demo
- Why it matters: 风险会影响是否适合普通用户安装。
- Evidence: risks.scoring_risks | https://github.com/DanceNitra/inspeximus | no_demo; severity=medium
- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。

### Constraint 6: 来源证据：Integrity benchmark local-only command requires missing server/.env and still needs OpenAI judge

- Trigger: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Integrity benchmark local-only command requires missing server/.env and still needs OpenAI judge
- Why it matters: 可能影响授权、密钥配置或安全边界。
- Evidence: community_evidence:github | https://github.com/DanceNitra/inspeximus/issues/1 | 来源讨论提到 python 相关条件，需在安装/试用前复核。
- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。

### Constraint 7: issue/PR 响应质量未知

- Trigger: issue_or_pr_quality=unknown。
- Host AI rule: 抽样最近 issue/PR，判断是否长期无人处理。
- Why it matters: 用户无法判断遇到问题后是否有人维护。
- Evidence: evidence.maintainer_signals | https://github.com/DanceNitra/inspeximus | issue_or_pr_quality=unknown
- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。

### Constraint 8: 发布节奏不明确

- Trigger: release_recency=unknown。
- Host AI rule: 确认最近 release/tag 和 README 安装命令是否一致。
- Why it matters: 安装命令和文档可能落后于代码，用户踩坑概率升高。
- Evidence: evidence.maintainer_signals | https://github.com/DanceNitra/inspeximus | release_recency=unknown
- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。
