--- 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]] · [[Software 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 |