菠萝:DocOps治理工作台+苹果DocC+Pinecone
一个生产级文档linter扩展到抓取苹果的Swift DocC文档,运行自动治理检查,并将每个符号存储在Pinecone中进行语义搜索。
菠萝 = 松树圆锥体+ 苹果
它的作用
Apple DocC API → Fetcher → Parser → Governance Checks → Violations
↓
MCP Server (4 tools)
↓
Pinecone Vector Search- Lints文档 --对散文质量、安全性、术语和特定于DocC的治理进行13次自动检查(缺少描述、平台陈旧、交叉引用错误、苹果公司大写)
- 抓取苹果API --通过BFS遍历DocC渲染JSON
topicSections标识符,具有速率限制和缓存功能 - 语义搜索 --每个符号都存储在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 network13项治理检查
原始(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 | 使用网络/离线标记进行测试 |
文档
- FORPineapple.md --完整的项目故事,ELI5,以及各部分之间的联系
- FORAppleMCP.md --深入探讨Apple DocC集成的技术
- FORDocOps.md --原始工作台架构和设计决策
许可证
麻省理工学院
