---
id: wiki-2026-0508-connect-ai-documentation
title: Connect AI Documentation
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [ConnectAI documentation, AI agent documentation, system docs, SOP, API spec]
duplicate_of: none
source_trust_level: B
confidence_score: 0.83
verification_status: applied
tags: [documentation, ai-agent, sop, api-spec, knowledge-base, project-internal]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
  language: documentation
  applicable_to: [Internal AI Agent Project, SOP, Onboarding]
---

# Connect AI Documentation

## 매 한 줄
> **"매 complex AI 의 readable 의 manual"**. 매 system architecture + SOP + API spec 의 unified. 매 modern: 매 living doc + 매 RAG 의 query-able + 매 AI 의 self-update. 매 [[Codebase_Onboarding_Guide]] 와 의 align.

## 매 핵심 component
1. **System Architecture**: 매 C4 model.
2. **SOP**: 매 step-by-step operation.
3. **API Spec**: 매 OpenAPI / GraphQL schema.
4. **ADR**: 매 decision record.
5. **Glossary**: 매 term.
6. **Runbook**: 매 incident response.
7. **Onboarding**: 매 new dev.

## 매 living doc 의 element
- **CI 의 sync**: 매 stale 의 detect.
- **RAG-queryable**: 매 LLM 의 answer.
- **Code → doc**: 매 generate from source.
- **Multi-format**: markdown + diagram + interactive.

## 매 best practice
- 매 README first.
- 매 Diátaxis (tutorial / how-to / reference / explanation).
- 매 minimum viable doc.
- 매 example > prose.
- 매 versioning.
- 매 link > duplicate.

## 💻 패턴

### Doc-as-code (Mintlify / Docusaurus / Astro)
```
docs/
├── index.mdx
├── architecture.mdx (C4)
├── runbook/
│   ├── incident-database.mdx
│   └── incident-deploy.mdx
├── api/
│   └── (OpenAPI generated)
└── onboarding.mdx
```

### Living doc (CI sync check)
```yaml
- name: Doc drift check
  run: |
    npm run extract-types
    git diff --exit-code docs/api-types.json || \
      (echo "Doc out of sync — regenerate" && exit 1)
```

### RAG over docs
```python
from langchain.vectorstores import Chroma
from langchain.text_splitter import RecursiveCharacterTextSplitter

splitter = RecursiveCharacterTextSplitter(chunk_size=1000)
chunks = splitter.split_documents(load_md_files('docs/'))
vectordb = Chroma.from_documents(chunks, embeddings, persist_directory='./doc-rag')

def ask_doc(question):
    relevant = vectordb.similarity_search(question, k=5)
    return llm.generate(f"Use these docs:\n{relevant}\n\nQuestion: {question}")
```

### OpenAPI generation
```ts
// 매 zod-to-openapi
import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi';
extendZodWithOpenApi(z);

const userSchema = z.object({
  id: z.string().openapi({ example: 'uuid-...' }),
  email: z.string().email().openapi({ example: 'user@example.com' }),
}).openapi('User');
```

## 🔗 Graph
- 응용: [[Codebase_Onboarding_Guide]] · [[Codebase_Maps_and_Interactive_Tours]] · [[ADR]] · [[C4_Model]]
- Adjacent: [[Asset-Specific-Knowledge]] · [[Architecture-Styles]]

## 🤖 LLM 활용
**언제**: 매 internal AI project 의 doc design.
**언제 X**: 매 single-file script.

## ❌ 안티패턴
- **Stale doc**: 매 CI 의 sync 의 X.
- **Single huge file**: 매 navigate 의 X.
- **No examples**: 매 pure prose.
- **Code 의 doc 의 mismatch**: 매 source-of-truth 의 ambiguous.

## 🧪 검증 / 중복
- Verified (Diátaxis, doc-as-code best practice).
- 신뢰도 B.
- Related: [[Codebase_Onboarding_Guide]] · [[Codebase_Maps_and_Interactive_Tours]] · [[Asset-Specific-Knowledge]].

## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — components + 매 doc-as-code / RAG / OpenAPI code |
