文档治理工作台

生产级文档检查工具,扩展了Apple的Swift-DocC文档爬取功能,运行自动化治理检查,并将每个符号存储在Pinecone中以进行语义搜索。

  • by andrewyu47
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 andrewyu47/pineapple

使用说明

菠萝:DocOps治理工作台+苹果DocC+Pinecone

一个生产级文档linter扩展到抓取苹果的Swift DocC文档,运行自动治理检查,并将每个符号存储在Pinecone中进行语义搜索。

菠萝 = 松树圆锥体+ 苹果

它的作用

Apple DocC API → Fetcher → Parser → Governance Checks → Violations
                                          ↓
                                    MCP Server (4 tools)
                                          ↓
                                 Pinecone Vector Search
  1. Lints文档 --对散文质量、安全性、术语和特定于DocC的治理进行13次自动检查(缺少描述、平台陈旧、交叉引用错误、苹果公司大写)
  2. 抓取苹果API --通过BFS遍历DocC渲染JSON topicSections 标识符,具有速率限制和缓存功能
  3. 语义搜索 --每个符号都存储在Pinecone中,具有结构化元数据,可通过自然语言查询

快速开始

# Install
pip install -e ".[dev,mcp]"

# Lint a Markdown file
docops lint docs/

# Lint an Apple framework symbol
python -m docops.cli lint-docc avkit --symbol avplayerviewcontroller

# Lint an entire framework
python -m docops.cli lint-docc avkit --max-depth 1 --json

# Run MCP server
python mcp_server.py

# Run all tests (74 original + 26 DocC)
pytest

# Run only offline tests
pytest -m "not network"

# Run only live API assertion tests
pytest -m network

13项治理检查

原始(9个检查,任何Markdown/MediaWiki)

检查 它捕获了什么
passive-voice 被动语音构造
heading-hierarchy 跳过标题级别(h1→ h3)
heading-capitalization 标题不一致
line-length 线路超过配置的最大值
trailing-whitespace 尾随空间
code-block-language 代码块缺少语言标记
terminology 禁止/不正确的术语(词汇表驱动)
credential-exposure AWS密钥、API令牌、文档中的密码
pii-exposure SSN、信用卡、电话号码、电子邮件

DocC特定(4项检查,Apple文档)

检查 它捕获了什么 严重性
docc-missing-description 无摘要的符号 警告
docc-stale-platform 废弃的平台,非常旧 introducedAt 警告
docc-broken-crossref 获取时引用404 错误
docc-terminology 错误的苹果大写字母(swiftui vs swiftui) 信息

MCP服务器(4个AI代理工具)

工具 说明
lint_docc_symbol 连一个苹果DocC符号
lint_docc_framework 抓取并整理整个框架
get_docc_metadata 松果体摄入的结构化元数据
search_docc_symbols 跨缓存符号的关键字搜索

松果集成

DocC符号通过语义嵌入(llama-text-embed-v2)存储在Pinecone中:

Query: "How do I play video in a floating window on iPad?"

Results:
1. Playing video content in a standard user interface  (0.50)
2. AVPictureInPictureController                        (0.40)
3. Adopting Picture in Picture in a Standard Player    (0.34)

用户从未说过“画中画”。语义搜索理解了其含义。

建筑

两条并行管道共享一个公共 ParsedDocument 型号:

Pipeline 1 (Files):     File → BaseParser → ParsedDocument → Checks → Violations
Pipeline 2 (Apple API): HTTP → DoccFetcher → DoccParser → ParsedDocument → Checks → Violations

两条管道使用相同的检查接口。所有13项检查都适用于两者。DocC管道在上面添加了MCP服务器和Pinecone集成。

测试结果

100 passed
├── 74 existing tests (unchanged, all passing)
└── 26 new tests
    ├── 17 API schema validation (live Apple API)
    ├── 3 parser validation
    ├── 2 check validation
    └── 4 fetcher validation

技术

技术 目的
Python 3.10+ 核心语言
Pinecone 用于语义搜索的矢量数据库
FastMCP 用于AI代理集成的MCP服务器
httpx Apple DocC API的HTTP客户端
LangChain linting管道中的语义检查
pytest 使用网络/离线标记进行测试

文档

许可证

麻省理工学院