{
  "name": "AI Learn Forge",
  "version": "0.1.0",
  "positioning": "사람을 위한 AI 학습 로드맵과 AI가 활용하기 쉬운 코드 집합소를 함께 운영하는 지식 플랫폼",
  "audiences": [
    "AI 입문자",
    "프롬프트와 LLM을 실무에 쓰려는 운영자",
    "RAG와 Agent를 구현하려는 개발자",
    "정리된 코드와 메타데이터가 필요한 AI 시스템"
  ],
  "codePacks": [
    {
      "id": "rag-pdf-starter",
      "title": "RAG 문서 검색 기본 코드",
      "category": "rag",
      "difficulty": "중급",
      "purpose": "PDF 문서를 벡터DB에 저장하고 질문에 답하는 기본 파이프라인",
      "inputs": ["PDF", "question"],
      "outputs": ["answer", "source_refs"],
      "tags": ["RAG", "VectorDB", "LLM"],
      "license": "MIT",
      "starter": "load_pdf() -> chunk() -> embed() -> retrieve() -> answer()"
    },
    {
      "id": "prompt-template-vault",
      "title": "프롬프트 템플릿 저장소",
      "category": "prompts",
      "difficulty": "입문",
      "purpose": "역할, 출력 형식, 검증 조건을 분리한 프롬프트 템플릿 모음",
      "inputs": ["task", "context", "constraints"],
      "outputs": ["structured_prompt"],
      "tags": ["Prompt", "Template", "Evaluation"],
      "license": "CC BY 4.0",
      "starter": "role + objective + context + constraints + output_schema"
    },
    {
      "id": "agent-workflow-basic",
      "title": "Agent 작업 흐름 기본 코드",
      "category": "agents",
      "difficulty": "중급",
      "purpose": "계획, 도구 호출, 결과 검증을 분리한 에이전트 루프",
      "inputs": ["goal", "tools", "memory"],
      "outputs": ["steps", "final_result"],
      "tags": ["Agent", "Tool Use", "Planning"],
      "license": "MIT",
      "starter": "plan(goal) -> act(tool) -> observe() -> verify()"
    },
    {
      "id": "data-cleaning-kit",
      "title": "데이터 정제 키트",
      "category": "data",
      "difficulty": "초급",
      "purpose": "CSV/JSON 데이터를 학습 가능한 형태로 정규화하고 품질 이슈를 표시",
      "inputs": ["csv", "json"],
      "outputs": ["clean_dataset", "quality_report"],
      "tags": ["Data", "Cleaning", "Schema"],
      "license": "MIT",
      "starter": "profile() -> normalize() -> dedupe() -> export_report()"
    },
    {
      "id": "llm-eval-harness",
      "title": "LLM 평가 하네스",
      "category": "eval",
      "difficulty": "고급",
      "purpose": "답변 품질, 근거성, 형식 준수 여부를 자동으로 평가",
      "inputs": ["questions", "answers", "rubric"],
      "outputs": ["scores", "failure_cases"],
      "tags": ["Eval", "Benchmark", "Rubric"],
      "license": "Apache-2.0",
      "starter": "run_cases() -> score_with_rubric() -> summarize_failures()"
    },
    {
      "id": "cloudflare-ai-worker",
      "title": "Cloudflare AI Worker 예제",
      "category": "agents",
      "difficulty": "중급",
      "purpose": "Cloudflare Workers 위에서 API 엔드포인트와 AI 호출 흐름 구성",
      "inputs": ["request", "env"],
      "outputs": ["json_response"],
      "tags": ["Cloudflare", "Worker", "API"],
      "license": "MIT",
      "starter": "fetch(request, env) -> validate() -> call_model() -> respond()"
    }
  ],
  "labProjects": [
    {
      "title": "문서 검색 AI",
      "description": "PDF와 노트를 업로드하고 질문에 답하는 RAG 챗봇",
      "tags": ["RAG", "VectorDB"]
    },
    {
      "title": "AI 튜터",
      "description": "학습자의 수준을 기억하고 다음 과제를 추천하는 개인 튜터",
      "tags": ["Tutor", "Prompt"]
    },
    {
      "title": "자동화 에이전트",
      "description": "반복 업무를 계획하고 도구를 호출하는 작업 보조 에이전트",
      "tags": ["Agent", "Workflow"]
    },
    {
      "title": "평가 대시보드",
      "description": "모델 답변을 루브릭으로 채점하고 실패 케이스를 모으는 보드",
      "tags": ["Eval", "Dashboard"]
    }
  ],
  "roadmap": [
    {
      "stage": "Phase 01",
      "title": "정적 허브 배포",
      "description": "홈, 학습 카테고리, 코드팩 목록, 매니페스트를 Cloudflare Pages로 배포"
    },
    {
      "stage": "Phase 02",
      "title": "GitHub 저장소 연결",
      "description": "각 코드팩을 실제 저장소 또는 폴더와 연결하고 README 품질 기준 적용"
    },
    {
      "stage": "Phase 03",
      "title": "AI 검색과 추천",
      "description": "코드팩 메타데이터를 벡터화하여 학습 목표별 추천과 질의응답 제공"
    },
    {
      "stage": "Phase 04",
      "title": "실행형 실험실",
      "description": "Cloudflare Workers, D1, R2, Vectorize를 붙여 데모와 평가 결과 저장"
    }
  ]
}
