"매 complex AI 의 readable 의 manual". 매 system architecture + SOP + API spec 의 unified. 매 modern: 매 living doc + 매 RAG 의 query-able + 매 AI 의 self-update. 매 Codebase_Onboarding_Guide 와 의 align.
매 핵심 component
System Architecture: 매 C4 model.
SOP: 매 step-by-step operation.
API Spec: 매 OpenAPI / GraphQL schema.
ADR: 매 decision record.
Glossary: 매 term.
Runbook: 매 incident response.
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).
- name:Doc drift checkrun:| npm run extract-types
git diff --exit-code docs/api-types.json || \
(echo "Doc out of sync — regenerate" && exit 1)
RAG over docs
fromlangchain.vectorstoresimportChromafromlangchain.text_splitterimportRecursiveCharacterTextSplittersplitter=RecursiveCharacterTextSplitter(chunk_size=1000)chunks=splitter.split_documents(load_md_files('docs/'))vectordb=Chroma.from_documents(chunks,embeddings,persist_directory='./doc-rag')defask_doc(question):relevant=vectordb.similarity_search(question,k=5)returnllm.generate(f"Use these docs:\n{relevant}\n\nQuestion: {question}")
OpenAPI generation
// 매 zod-to-openapi
import{extendZodWithOpenApi}from'@asteasolutions/zod-to-openapi';extendZodWithOpenApi(z);constuserSchema=z.object({id: z.string().openapi({example:'uuid-...'}),email: z.string().email().openapi({example:'user@example.com'}),}).openapi('User');