tuanvtanrakutei/sms-legacy-investigation-kit
GitHub: tuanvtanrakutei/sms-legacy-investigation-kit
面向遗留 Microsoft Access/VBA 与 SQL Server 系统的六阶段多 agent 调查工具包,通过安全的提取流程和确定性模块规划生成可追溯的系统文档与演示输出。
Stars: 0 | Forks: 0
# SMS 遗留系统调查工具包
[](LICENSE)
[](specifications/package.json)
一个有据可查的遗留 Microsoft Access 应用程序(`.mdb`、`.accdb` 和 `.adp`)调查工具包,用于调查连接到 SQL Server 的此类应用。它将强制性的六阶段高级系统分析师工作流与安全的 Access 提取、确定性的模块规划、provider 中立的多 agent 编排、Graphify 集成、独立的 QA 以及可直接用于演示的输出结合在一起。
版本 2.1.2 已打包并完成了合成冒烟测试。实时的 Access/ADP 提取、实时的 SQL Server 访问以及 A01 回归语料库被刻意排除在公共测试基线之外。
## 它能产出什么
- 阶段 1 — 数据理解
- 阶段 2 — 界面与表单分析
- 阶段 3 — 逻辑与处理
- 阶段 4 — 工作流重构
- 阶段 5 — 文档整合
- 阶段 6 — 综合
- 证据与可追溯性记录
- E2E Trace HTML
- Boundary Map HTML
- 英语、日语或越南语的演示输入以及 PPTX 输出
## 核心设计
```
Immutable sources
-> Access/build-context extraction
-> deterministic component index
-> hierarchical module tree
-> leaf-first, affected-module task fan-out
-> sequential Phase 1-6 publication gates
-> independent QA
-> E2E / Boundary / Presentation rendering
```
只有协调者才能合并证据并发布规范输出。源专家可以在隔离的运行和模块范围内并发工作。
## 安全边界
- 绝不直接打开原始 Access 数据库;可执行的提取过程使用经过哈希校验的快照。
- 绝不执行来自 `compile_commands.json` 的 `command` 或 `arguments` 值。
- 绝不提交生产数据库、凭据、DSN、连接密钥、客户文档或调查运行记录。
- 除非应用清单和用户明确要求包含对比,否则将当前的替代实现视为被排除项。
- 将 Graphify 视为辅助基础设施,而不是证据或六阶段契约的替代品。
## 环境要求
必需项:
- Python 3.10 或更高版本;CI 使用 Python 3.11。
- 支持协调者/worker 执行的文件系统和 agent runtime。
条件项:
- 用于 MDB/ACCDB 提取的 Microsoft Access/ACE 和 Windows PowerShell。
- 用于 ADP 提取的兼容遗留 Access 环境。
- 仅在授权实时 SQL 访问时才需要 `pyodbc` 和 Microsoft SQL Server ODBC 驱动程序。
- 仅在请求的输出需要时,才要求具备 Graphify、电子表格、文档、演示文稿、OCR 和浏览器功能。
本工具未安装、导入或内嵌 CodeWiki。V2.1 独立实现了选定的架构模式:组件索引、层级分解、叶子优先排序、会话隔离以及受影响模块刷新。
## 快速开始
克隆或下载仓库,进入其根目录,并验证该包:
```
cd sms-legacy-investigation-kit
py -3.11 -m pip install -r requirements-dev.txt
py -3.11 scripts/validate_structure.py --package .
py -3.11 -m pytest -q
```
初始化隔离的应用工作区:
```
py -3.11 scripts/init_app.py `
--root D:\investigations `
--app-id A03 `
--name-en "A03 Legacy Application" `
--runtime generic
```
编辑生成的 `manifest.yaml`,将授权的源文件放入声明的文件夹中,并运行预检:
```
py -3.11 scripts/preflight.py `
--package . `
--runtime generic `
--manifest D:\investigations\A03\manifest.yaml
```
## 预处理 pipeline
在不复制或打开数据库的情况下执行 Access 预检:
```
py -3.11 scripts/extract_access.py `
--database `
--database-id `
--output-dir /extracted/access `
--dry-run
```
然后规范化可选的构建上下文并构建模块计划:
```
py -3.11 scripts/parse_compilation_database.py --input --output /extracted/build-context/compile_commands.normalized.json
py -3.11 scripts/build_component_index.py --app-root
py -3.11 scripts/build_module_plan.py --component-index /extracted/component-index.json --output-dir /extracted/module-plan
```
创建不可变的运行和感知模块的任务:
```
py -3.11 scripts/create_run.py --app-root --runtime generic
py -3.11 scripts/create_tasks.py --package . --run
```
阅读 [SKILL.md](SKILL.md) 以了解规范的 agent 流程,阅读 [Access 提取指南](references/access-extraction-guide.md) 了解 runtime 安全保障,以及阅读[编排指南](references/orchestration-guide.md)了解多 agent 执行方式。
## 源与忽略策略
- `.gitignore` 控制仓库追踪。
- `.graphifyignore` 控制 Graphify 输入。
- 每个应用工作区中的 `.investigationignore` 控制不可变的源清单。
这些策略是刻意保持独立的。被忽略的清单条目会与其匹配规则一同记录,而不是被静默省略。
## 贡献与安全
在提交更改之前,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。请勿在公开 issue 中报告漏洞或意外的敏感数据暴露;请遵循 [SECURITY.md](SECURITY.md)。
## 许可证与致谢
采用 [Apache License 2.0](LICENSE) 授权。Copyright 2026 Vo Ta Tuan。
有关归属和架构鸣谢,请参阅 [NOTICE](NOTICE) 和 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)。
标签:AI合规, SQL Server, VBA, 多智能体, 工作流自动化, 系统分析, 网络分析, 逆向工具, 遗留系统