joecattt/tain
GitHub: joecattt/tain
TAIN 是一个将代码仓库压缩为字节稳定语义架构模型的反射引擎,通过 MCP 服务器为 AI agent 和团队提供诚实、可验证的代码结构地图。
Stars: 0 | Forks: 0
# TAIN
```
╔══════════════════════════════════════╗
║ ████████╗ █████╗ ██╗███╗ ██╗ ║
║ ╚══██╔══╝██╔══██╗██║████╗ ██║ ║
║ ██║ ███████║██║██╔██╗ ██║ ║
║ ██║ ██╔══██║██║██║╚██╗██║ ║
║ ██║ ██║ ██║██║██║ ╚████║ ║
║ ╚═╝ ╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝ ║
║ the silver behind the glass ║
╚══════════════════════════════════════╝
```
**Tain** *(n.)* — 镜子的银色背衬;让倒影成为可能的那一层。
Tain 是一个反射引擎:将其指向任何代码仓库,它就会将代码库压缩成一个体积小巧、规范且
语义化的模型——即一个 `project.mirror` 文件——该文件捕获的是*架构*
而非文本。代码成为缓存;反射成为地图。
```
Application → Tain → { hubs, layers, concepts, coverage, integrity } → project.mirror
```
## 为什么
- **AI agent 在结构上是盲目的。** 它们在每次会话中都会重新读取你的代码仓库,
在文本上消耗大量 token,而它们真正需要的是地图。Tain 通过 MCP 将多 MB 代码库的
约 100 KB 反射结果(压缩率 50–70 倍)提供给它们,并带有优先校验的握手过程。
- **人类在架构上是盲目的。** 你的团队*认为*是核心的模块
通常并不是。在我们的首次真实测试中,Tain 颠覆了这张地图:实际的 #1 枢纽
(fan-in 为 148)完全超出了团队所持有的所有静态假设。
- **大多数分析工具都在自信地撒谎。** Tain 在每次
反射中都会提供一份覆盖率账本:它解析了多少条依赖边,以及具体是哪些
import spec 无法解析。它绝不会把 99.9% 向上取整为 100。
## 快速开始(零依赖,无需构建步骤,Node ≥ 18)
```
git clone https://github.com/joecattt/tain
cd your-project
node /path/to/tain/mirror-engine/src/cli.js report .
```
或者将其作为 MCP 服务器接入你的 AI 编辑器:
```
claude mcp add tain -- node /path/to/tain/mirror-engine/src/cli.js mcp
```
## 包含内容
| | |
|---|---|
| [`mirror-engine/`](mirror-engine/) | 反射引擎:`scan` · `reflect` · `stats` · `report` · `diff` · `verify` · `mcp` · `badge` |
| [`mirror-chaos/`](mirror-chaos/) | 对抗性测试固件套件 —— 六个结构性炸弹(动态导入、别名幻象、ReDoS 诱饵、symlink 循环),引擎必须能够幸存 |
亮点:
- **字节稳定的序列化** —— 规范排序,易失字段置于尾部,因此
LLM 的 prompt-cache 前缀能够在重生成后留存
- **三向枢纽分类法** —— 领域枢纽 vs. 基础设施网关 vs.
垃圾抽屉;`mirror diff` 将 fan-in 的转移标记为*演进*或*退化 (REGRESSION)*
- **完整性哈希** —— 对稳定前缀进行 sha256 校验;`mirror verify` 会告知你
(以及你的 agent)地图是否仍然与实际领域相符
- **诚实账本** —— 每次反射都会报告它*无法*解析的内容
## 理念
软件的历史是一系列关于事实来源的变迁:开关 → 汇编 →
高级文本 → 分布式版本图。Tain 押注于下一个阶段:**将语义图
作为事实来源,而将源代码视为一种可能的渲染结果。** 每一项
设计决策都遵循一条规则:*绝不捏造。* 遗漏的边会被记入
覆盖率账本;而捏造的边将会出现在某人的事故报告中。
## 出处
由 **Dreams Over Dollars Foundation** 创建。基于 MIT 许可协议 —— 尽管拿去用,
fork 它,将它指向你最丑陋的代码仓库。
标签:AI辅助编程, MCP协议, MITM代理, 云安全监控, 代码分析, 代码大模型, 凭证管理, 文档结构分析, 架构分析, 自定义脚本, 静态分析