# AiToEarn 기반 AI SNS 수익화 통합 서비스/대시보드 설계 문서

## 0. 분석 기준

이 문서는 README 요약이 아니라 로컬에 받은 두 저장소의 실제 구조와 코드 파일을 기준으로 작성했다.

| 구분 | 기준 경로 | 확인한 역할 |
|---|---|---|
| 웹앱 | `/home/reset980/AiToEarn-source-yikart/project/aitoearn-web` | Next.js 사용자 대시보드, AI 창작, 초안함, 게시 캘린더, 작업 기록, 채널 관리자, 알림/설정 |
| 백엔드 | `/home/reset980/AiToEarn-source-yikart/project/aitoearn-backend` | NestJS API, 계정/채널/발행/콘텐츠/크레딧/알림/API 키/MCP/AI 서비스 |
| Electron | `/home/reset980/AiToEarn-source-yikart/project/aitoearn-electron` | 로컬 앱, 웹뷰 기반 플랫폼 로그인, 게시/댓글/상호작용 자동화, SQLite, 업데이트/백업 |
| 데모 | `/home/reset980/AiToEarn-source-yikart/demo` | 샤오홍슈 서명, 쾌수 인증 데모 |
| 한국어 기준 | `/home/reset980/AiToEarn-source-reset980/README_KO.md`, `src/app/i18n/locales/ko/*` | 한국어 문구와 누락된 영문 번역 확인 |

두 GitHub 저장소의 핵심 코드 트리는 조사 범위에서 사실상 동일했고, `reset980reset980/AiToEarn`에는 한국어 README가 추가되어 있었다.

## 1. 전체 기능 맵

| 대분류 | 실제 역할 | 코드 근거 | 대시보드 반영 |
|---|---|---|---|
| 콘텐츠 수익화 | 브랜드가 프로모션/인터랙션 미션을 만들고 크리에이터가 수락, 게시, 제출, 심사, 정산한다. CPS, CPE, CPM 흐름과 이의 제기를 포함한다. | `task.json`, Electron `src/views/task`, 백엔드 task/finance 계열, `credits/*` | `미션 광장`, `내 미션`, `수입/출금`, `정산 심사` |
| 콘텐츠 제작 | AI 채팅과 에이전트가 이미지, 영상, 카드, 스크립트, 자막, 번역, 편집, 스타일 변환, 초안을 생성한다. | 웹 `ai-social`, `chat`, `draft-box`, 백엔드 `aitoearn-ai/src/core/ai/*`, `agent/*`, `draft-generation/*` | `AI 창작실`, `초안함`, `미디어 라이브러리`, `에이전트 생성 소재` |
| 멀티채널 배포 | 여러 SNS 계정으로 즉시/예약 게시하고, 플랫폼별 파라미터와 게시 상태를 추적한다. | 웹 `accounts`, `PublishDialog`, 백엔드 `channel/publishing/*`, `publish-record/*`, Electron `publish/*` | `게시 캘린더`, `게시 계획`, `게시 기록`, `플랫폼 제한` |
| 참여 운영 | 댓글 조회, AI 답변, 좋아요/저장/팔로우 자동화, 전환 신호 탐지, 브랜드 언급 모니터링을 수행한다. | 백엔드 `channel/engagement/*`, `channel/interact/*`, Electron `reply/*`, `interaction/*`, `autoRun/*` | `댓글 운영`, `AI 답변`, `자동 상호작용`, `전환 신호` |
| 채널/계정 연결 | 플랫폼 계정 인증, 스페이스, 계정 그룹, 프록시/IP 상태, 재인증, MCP 계정 연결을 관리한다. | 웹 `ChannelManager`, `accounts`, 백엔드 `account/*`, `channel/platforms/*`, Electron `account/*` | `채널 계정`, `스페이스`, `인증 상태`, `MCP 연결` |
| 일정/캘린더 | 게시물을 월/주/리스트 형태로 예약하고 대기열/발송됨을 관리한다. | 웹 `CalendarTiming/*`, `account.json`, `publish.ts` | `게시 캘린더`, `오늘 게시`, `대기열` |
| 콘텐츠 마켓/미션 | 작업 탐색, 수락, 작업 생성, 보상/수량/위치 요구사항, 데이터 추적을 다룬다. | `task.json`, Electron `src/views/task`, 백엔드 task/credits/finance 계열 | `미션 광장`, `미션 생성`, `내 미션` |
| AI 에이전트 작업 흐름 | Claude 에이전트 기반 작업 생성, SSE/스트림, 중지, 즐겨찾기, 평가, 공유, 도구 호출 로그를 제공한다. | 백엔드 `agent/*`, 웹 `chat/[taskId]`, `TasksHistoryPageContent.tsx` | `AI 에이전트 작업 대기열`, `작업 기록`, `작업 상세` |
| API 키 / MCP | API 키 생성/목록/삭제, Unified MCP, Account/Content/Publish MCP 도구를 제공한다. | 백엔드 `api-key/*`, `unified-mcp/*`, `account.mcp.controller.ts`, `content.mcp.controller.ts`, `publish.mcp.controller.ts` | `연동 설정`, `MCP/API 키`, `OpenClaw` |
| 설정/관리자 | 프로필, 언어/알림, 모델, 크레딧, 수입/잔액, 브랜드/매장 정보, 법적 페이지를 관리한다. | 웹 `SettingsModal`, `brandInfo.json`, `settings.json`, 백엔드 `user/*`, `notification/*`, `credits/*` | `설정`, `브랜드 정보`, `크레딧`, `알림` |

## 2. 실제 제품 구조 분석

### 2.1 웹앱

웹앱은 사용자-facing 대시보드다. 실제 주 메뉴는 `src/app/layout/routerData.tsx` 기준으로 `콘텐츠 관리`, `AI 게시`, `작업 기록`, `게시`, `에이전트 소재` 5개가 중심이다. 그러나 모달/숨은 컴포넌트까지 보면 채널 관리자, 플러그인, 알림, 설정, 게시 다이얼로그, 공유 대화, 법적 페이지가 함께 동작한다.

핵심 제품 기능은 AI 창작, 초안함, 게시 캘린더, 작업 기록, 채널 계정 관리다. 보조 기능은 랜딩, 법적 페이지, 알림 설정, 공유 대화, 플러그인 가이드다.

### 2.2 백엔드

백엔드는 두 NestJS 앱으로 나뉜다.

| 앱 | 역할 |
|---|---|
| `aitoearn-server` | 계정, 사용자, 채널, 게시, 콘텐츠, 크레딧, 알림, API 키, Unified MCP, 단축 링크, 릴레이 |
| `aitoearn-ai` | AI 채팅, 이미지/영상 생성, 에이전트 런타임, Draft Generation, Material Adaptation, 모델/가격/로그 |

핵심 제품 기능은 채널 발행, 계정/인증, 콘텐츠/소재, AI 생성, 에이전트 작업, MCP 도구다. 보조 기능은 알림, 크레딧, 사용자 설정, 내부 API, 릴레이, 단축 링크다.

### 2.3 Electron 앱

Electron 앱은 브라우저 자동화와 로컬 실행을 담당한다. SQLite에 계정, 게시 기록, 자동 실행, 댓글/상호작용 기록을 저장하고, 플랫폼 웹뷰 쿠키와 세션을 이용해 더우인, 샤오홍슈, 위챗 채널, 쾌수 등 로컬 실행이 필요한 작업을 처리한다.

핵심 제품 기능은 로컬 계정 로그인, 원클릭 게시, 댓글 관리, AI 댓글 차단/전환, 자동 실행이다. 보조 기능은 백업/복원, 자동 업데이트, 추적 로그, 동영상 커버 추출, 파일 업로드/다운로드다.

### 2.4 핵심/보조 구분

| 구분 | 기능 |
|---|---|
| 핵심 제품 | AI 창작, 초안/소재 관리, 채널 연결, 멀티채널 게시, 게시 캘린더, 미션 마켓, 댓글/참여 운영, 작업 기록 |
| 보조 제품 | 랜딩/웰컴, 법적 페이지, 알림, 프로필, 언어/테마, 자동 업데이트, 백업, 단축 링크 |
| 운영/관리 | API 키, MCP, OpenClaw, 크레딧, 모델 설정, 관리자 심사, 데이터 큐브, 추적 로그 |

## 3. 전체 메뉴 구조

```text
종합 현황
  - 홈
  - 오늘의 작업
  - 알림/주의 항목
  - 채널 상태
  - 수익화 요약

콘텐츠 제작
  - AI 창작실
  - 채팅 작업 상세
  - 초안함
  - 미디어 라이브러리
  - 에이전트 생성 소재
  - 생성 기록

배포 운영
  - 게시 캘린더
  - 게시 계획
  - 게시 기록
  - 플랫폼별 제한
  - 플러그인 게시 상태

수익화 마켓
  - 미션 광장
  - 내가 수락한 미션
  - 내가 게시한 미션
  - 미션 생성
  - 심사/이의 제기
  - 수입/출금

참여 운영
  - 댓글함
  - AI 답변
  - 자동 상호작용
  - 전환 신호
  - 브랜드 모니터링
  - 자동 실행 기록

채널/계정
  - 채널 계정
  - 스페이스
  - 인증 상태
  - 프록시/IP 상태
  - MCP 계정 연결

연동/설정
  - API 키
  - MCP 서버
  - OpenClaw
  - AI 모델
  - 크레딧
  - 알림 설정
  - 브랜드/매장 정보
  - 관리자
```

## 4. 페이지 맵

| 페이지 | 목적 | 들어갈 기능 |
|---|---|---|
| 종합 현황 | 운영자가 오늘 처리할 전체 상태를 본다. | KPI, 최근 작업, 채널 상태, 수익화, 제작/배포, 미션, 알림, 에이전트 대기열 |
| AI 창작실 | 콘텐츠 요청을 에이전트에게 맡긴다. | 프롬프트, 업로드, 모델, 진행 상태, 도구 호출, 작업 중지, 초안 저장 |
| 작업 상세 | 에이전트 실행 결과와 대화를 이어간다. | 메시지, 워크플로우, 게시 상세, 평가, 공유, 이어서 대화 |
| 초안함 | 생성/업로드 콘텐츠를 게시 가능한 초안으로 관리한다. | 초안 그룹, 카드, 상세, 일괄 선택, 플랫폼 제한, AI 일괄 생성 |
| 미디어 라이브러리 | 이미지/영상 원본과 AI 소재를 관리한다. | 그룹, 업로드, 삭제, 미리보기, 기본 이미지/영상 그룹 |
| 게시 캘린더 | 여러 플랫폼 게시 일정을 계획한다. | 월/주 보기, 리스트 보기, 예약, 드래그 이동, 채널/플랫폼 필터 |
| 게시 계획/기록 | 게시 대기열과 발송 결과를 추적한다. | 대기, 발송됨, 실패, 재시도, 원문 보기, 게시 상세 |
| 미션 광장 | 수익화 작업을 탐색하고 수락한다. | 검색, 필터, 보상, 플랫폼, 모집, 마감, 수락 |
| 내 미션 | 수락/게시한 작업을 관리한다. | 제출, 심사, 승인, 정산, 이의 제기, 성과 데이터 |
| 댓글 운영 | 댓글과 반응 작업을 처리한다. | 댓글 목록, AI 답변, 좋아요/저장/팔로우, 자동 실행, 신호 필터 |
| 채널 계정 | 계정과 인증 상태를 관리한다. | 채널 추가, 스페이스, 재인증, 계정 삭제, MCP 연결 |
| 연동 설정 | API/MCP/OpenClaw와 운영 설정을 관리한다. | API 키, MCP 키, 모델, 크레딧, 알림, 브랜드 정보 |

## 5. 홈 대시보드 구조

| 영역 | 표시 내용 | 액션 |
|---|---|---|
| KPI 카드 | 예상 정산, 게시 대기, 에이전트 실행, 주의 채널 | 상세 화면 이동 |
| 최근 작업 | AI 생성, 게시, 미션, 댓글 작업의 최신 상태 | 작업 열기, 중지, 재시도 |
| 채널 상태 | 플랫폼별 온라인/오프라인/인증 만료/플러그인 필요 | 채널 추가, 재인증, 전체 상태 확인 |
| 수익화 현황 | CPS/CPE/CPM 진행률, 출금 처리율, 심사 대기 | 내 미션, 출금, 이의 제기 |
| 제작/배포 현황 | 아이디어, 제작, 검수, 배포, 정산 단계별 건수 | 초안함, 캘린더 이동 |
| 미션/마켓 현황 | 신규 미션, 수락 가능 미션, 마감 임박, 제출 대기 | 미션 수락, 제출 |
| 알림/주의 항목 | 인증 만료, 크레딧 부족, 필수값 누락, 정산 심사 | 즉시 조치 |
| AI 에이전트 대기열 | 생성/편집/번역/게시/댓글 작업 상태 | 작업 상세, 취소, 이어서 대화 |

## 6. 페이지별 상세 설계

### 6.1 종합 현황

| 항목 | 설계 |
|---|---|
| 목적 | 전체 운영 병목을 한 화면에서 파악한다. |
| 기능 | KPI, 작업 대기열, 채널 상태, 수익화, 알림, 파이프라인 |
| UI | KPI 카드, 상태 칩, 작업 타임라인, 막대 그래프, 빠른 버튼 |
| 액션 흐름 | 이상 항목 확인 → 재인증/충전/필수값 보완 → 작업 상세 이동 |
| 연결 | AI 창작실, 게시 캘린더, 내 미션, 채널 계정 |

### 6.2 AI 창작실

| 항목 | 설계 |
|---|---|
| 목적 | 한 문장 요청으로 콘텐츠 제작 흐름을 시작한다. |
| 기능 | 프롬프트, 이미지/영상 업로드, 에이전트 task 생성, SSE/폴링, 작업 중지, 초안 저장 |
| UI | 채팅 입력, 도구 호출 로그, 비용 표시, 소재 미리보기, 진행 상태 |
| 액션 흐름 | 요청 입력 → 생성/편집/번역 도구 실행 → 결과 확인 → 초안 저장 또는 게시 |
| 연결 | 작업 상세, 초안함, 에이전트 생성 소재, 크레딧 |

### 6.3 초안함/미디어 라이브러리

| 항목 | 설계 |
|---|---|
| 목적 | 생성/업로드 소재를 플랫폼별 게시 가능한 형태로 정리한다. |
| 기능 | 소재 그룹, 미디어 그룹, 업로드, AI 생성 결과, 플랫폼 제한, 일괄 삭제 |
| UI | 탭, 검색, 필터, 카드, 상세 모달, 선택 바 |
| 액션 흐름 | 그룹 생성 → 소재 업로드/생성 → 플랫폼 선택 → 제한 확인 → 게시 예약 |
| 연결 | AI 창작실, 게시 캘린더, 미션 생성 |

### 6.4 게시 캘린더/게시 기록

| 항목 | 설계 |
|---|---|
| 목적 | 멀티 플랫폼 게시 일정을 조정하고 실패를 복구한다. |
| 기능 | 캘린더, 리스트, 예약/즉시 게시, 게시 기록, 실패 재시도 |
| UI | 월/주 캘린더, 채널 상단바, 게시 카드, 필터, 상태 칩 |
| 액션 흐름 | 콘텐츠 선택 → 계정 선택 → 플랫폼 필수값 입력 → 예약/게시 → 기록 추적 |
| 연결 | 채널 계정, 초안함, 게시 상세 |

### 6.5 미션 광장/내 미션

| 항목 | 설계 |
|---|---|
| 목적 | 콘텐츠 수익화를 실제 작업 단위로 운영한다. |
| 기능 | 작업 탐색, 작업 생성, 수락, 제출, 심사, 정산, 이의 제기, 출금 |
| UI | 작업 카드, 고급 필터, 상태 탭, 성과 표, 증빙 업로드 |
| 액션 흐름 | 미션 검색 → 수락 → 게시 → 링크/스크린샷 제출 → 심사 → 정산/출금 |
| 연결 | 게시 캘린더, 수입/출금, 브랜드 정보 |

### 6.6 댓글/참여 운영

| 항목 | 설계 |
|---|---|
| 목적 | 댓글 응답과 반응 작업을 자동화해 전환 기회를 놓치지 않는다. |
| 기능 | 댓글 수집, AI 답변, 좋아요/저장/팔로우, 전환 신호, 자동 실행 기록 |
| UI | 댓글 표, 신호 배지, AI 답변 제안, 자동화 설정, 실행 로그 |
| 액션 흐름 | 채널 선택 → 댓글 수집 → 신호 필터 → 답변 검수 → 자동 실행 |
| 연결 | 채널 계정, 데이터 센터, AI 창작실 |

### 6.7 채널 계정

| 항목 | 설계 |
|---|---|
| 목적 | 게시 가능한 계정 상태를 유지한다. |
| 기능 | 채널 추가, 스페이스, OAuth/플러그인 인증, 계정 정렬, MCP 키 연결 |
| UI | 플랫폼 선택 모달, 계정 표, 스페이스 트리, 인증 상태 칩 |
| 액션 흐름 | 스페이스 선택 → 플랫폼 인증 → 계정 동기화 → 게시 가능 상태 확인 |
| 연결 | 게시 캘린더, MCP/API 키, OpenClaw |

### 6.8 연동/설정

| 항목 | 설계 |
|---|---|
| 목적 | AI와 외부 도구, 과금, 브랜드 운영 설정을 관리한다. |
| 기능 | API 키, MCP, OpenClaw, 모델, 크레딧, 알림, 브랜드/매장 정보, 프로필 |
| UI | 설정 탭, 키 목록, 사용 기록, 지갑/출금 표, 브랜드 이미지 관리 |
| 액션 흐름 | 키 발급 → 계정 연결 → 모델 선택 → 크레딧 충전 → 알림/브랜드 설정 |
| 연결 | AI 창작실, 미션 생성, 채널 계정 |

## 7. 기능 분류

| 기준 | 기능 |
|---|---|
| 반드시 있어야 하는 핵심 기능 | 종합 현황, AI 창작, 초안함, 미디어 라이브러리, 채널 연결, 게시 캘린더, 게시 기록, 미션/정산, 댓글 운영, 설정 |
| 있으면 좋은 확장 기능 | 트렌드 레이더, 브랜드 모니터링 고도화, QR 아트, 자동 리포트, 모바일 앱 관리, 대시보드 위젯 커스터마이징 |
| AiToEarn 특화 기능 | 수익 미션 마켓, CPS/CPE/CPM 정산, OpenClaw 돈벌기 작업, MCP 게시 도구, Electron 로컬 자동화 |
| 일반화 가능한 기능 | 멀티채널 SNS 관리, AI 작업 큐, 소재 라이브러리, 게시 캘린더, 알림, API 키, 크레딧/사용량 |

## 8. 구현 우선순위

| 단계 | 목표 | 포함 기능 |
|---|---|---|
| MVP 1단계 | 화면 검토와 IA 검증 | 종합 현황, 기능 맵, 메뉴 구조, 페이지 맵, 한국어 문구, 채널/작업/수익 목업 |
| 2단계 확장 | 실제 서비스 운영 흐름 연결 | 채널 API, 게시 API, AI 작업 기록, 초안/미디어, 미션 수락/제출, 댓글 AI 답변, 크레딧 |
| 최종 전체 버전 | AiToEarn 전체 기능 통합 | OpenClaw/MCP, Electron 자동화, 플랫폼별 데이터 큐브, 관리자 심사/정산, 브랜드/오프라인 매장 솔루션 |

## 9. 한국어 UI 네이밍 제안

### 9.1 메뉴명

| 원 기능 | 제안 메뉴명 |
|---|---|
| Dashboard | 종합 현황 |
| AI Publish / AI Social | AI 창작실 |
| Content Management / Draft Box | 초안함 |
| 에이전트 Assets | 에이전트 생성 소재 |
| Publish / Accounts | 게시 캘린더 |
| Task Square / Gold Rush Square | 미션 광장 |
| My Tasks | 내 미션 |
| Engage / Interaction | 댓글 운영 |
| Channel Manager | 채널 계정 |
| Settings | 설정 |

### 9.2 버튼명

| 상황 | 버튼명 |
|---|---|
| 새 AI 작업 | 새 작업 만들기 |
| 채널 연결 | 채널 추가 |
| 인증 만료 | 재인증 |
| 게시 예약 | 예약 게시 |
| 즉시 게시 | 지금 게시 |
| 초안 저장 | 초안 저장 |
| 미션 수락 | 미션 수락 |
| 작업 제출 | 작업 제출 |
| 심사 이의 | 이의 제기 |
| 출금 | 출금 신청 |
| API 키 생성 | API 키 만들기 |
| MCP Key 생성 | MCP 키 만들기 |

### 9.3 상태값

| 영문/원문 | 한국어 |
|---|---|
| pending | 대기 중 |
| running / processing | 진행 중 |
| requiresAction | 조치 필요 |
| completed / success | 완료 |
| failed | 실패 |
| publishing | 게시 중 |
| published | 게시 완료 |
| unpublished | 게시 대기 |
| approved | 승인됨 |
| rejected | 거절됨 |
| settled | 정산 완료 |
| disputed | 이의 신청 중 |
| online/offline | 온라인/오프라인 |
| auth expired | 인증 만료 |

### 9.4 빈 화면 문구

| 화면 | 문구 |
|---|---|
| 작업 기록 | 아직 작업 기록이 없습니다. 한 문장으로 첫 콘텐츠를 만들어 보세요. |
| 채널 계정 | 연결된 채널이 없습니다. 게시하려면 채널을 먼저 추가하세요. |
| 미션 광장 | 조건에 맞는 미션이 없습니다. 필터를 조정해 보세요. |
| 에이전트 소재 | AI 에이전트가 생성한 이미지와 동영상이 여기에 표시됩니다. |
| 게시 계획 | 예약된 게시물이 없습니다. 초안함에서 게시 일정을 추가하세요. |
| 댓글 운영 | 수집된 댓글이 없습니다. 채널과 기간을 선택해 댓글을 불러오세요. |

### 9.5 오류/알림 문구

| 상황 | 문구 |
|---|---|
| 인증 만료 | 채널 인증이 만료되었습니다. 다시 인증한 뒤 게시를 진행하세요. |
| 크레딧 부족 | 크레딧이 부족해 작업이 일시 중지되었습니다. 충전 후 이어서 진행할 수 있습니다. |
| 필수값 누락 | 플랫폼 필수 입력값이 누락되었습니다. 제목, 설명, 해시태그를 확인하세요. |
| 플러그인 미설치 | 이 플랫폼은 플러그인 게시가 필요합니다. 플러그인을 설치하고 인증하세요. |
| 게시 실패 | 게시에 실패했습니다. 계정 상태와 플랫폼 제한을 확인한 뒤 재시도하세요. |
| 미션 제출 실패 | 작업 제출에 실패했습니다. 링크와 증빙 이미지를 다시 확인하세요. |

## 10. 구현 시 참고해야 할 기술 포인트

| 영역 | 포인트 |
|---|---|
| 웹 라우팅 | 실제 웹 주 메뉴는 5개지만, 전체 제품 관점에서는 미션/정산/댓글/연동을 독립 메뉴로 승격해야 한다. |
| 플랫폼 제한 | `platConfig.ts`, `publishConfig.ts`의 제목/본문/이미지/토픽 제한을 화면 검수 로직의 기준으로 삼아야 한다. |
| 게시 상태 | 웹 서버 발행과 Electron 플러그인 발행을 같은 게시 기록 안에서 구분 표시해야 한다. |
| 에이전트 상태 | AI 작업은 `대기 중 → 진행 중 → 조치 필요 → 완료/실패` 공통 상태로 정규화해야 한다. |
| 크레딧/정산 | AI 사용 크레딧과 미션 정산/출금은 같은 금전성 영역이지만 회계 이벤트가 다르므로 화면 탭을 분리한다. |
| MCP/OpenClaw | API 키와 MCP 키는 계정 연결 범위가 중요하다. 키 상세에서 연결된 채널을 반드시 보여준다. |
| Electron 연동 | 로컬 웹뷰 쿠키, 프록시, 자동 실행 상태는 보안/실패 가능성이 높으므로 홈 알림으로 노출한다. |
| 한국어 품질 | `task.json` 등 일부 한국어 파일에 영어가 남아 있어 최종 제품에서는 문구 사전을 별도로 정비해야 한다. |
| 보안 | 데모 파일에 secret 형태의 값이 보이므로 운영 코드로 승격하지 말고 서버 보관 방식으로 바꿔야 한다. |
| 관찰성 | 게시/댓글/AI 생성은 실패 원인이 다양하므로 작업 로그, 플랫폼 응답, 재시도 가능 여부를 함께 저장한다. |

## 11. 구현 산출물

이 문서의 화면 검토용 구현은 `/home/reset980/aisns-dashboard`에 있다.

| 파일 | 역할 |
|---|---|
| `index.html` | 한국어 통합 대시보드 화면 |
| `styles.css` | 업무형 대시보드 스타일 |
| `app.js` | KPI, 기능 맵, IA, 페이지 상세, 문구 제안 렌더링 |
| `assets/*` | AiToEarn 원본 발표 이미지와 로고 |

