Commit Graph

103 Commits

Author SHA1 Message Date
DESKTOP-TKLFCPR\ython
38ca09116a feat(homepage): GUARDiA 기능 100가지 이상으로 전면 업데이트
- 기능 카테고리: 5개 → 8개 (AI지능자동화/ITSM핵심/인프라클라우드/보안컴플라이언스/외부연동OCR/공공기관특화/SaaS멀티테넌트/DevOps)
- 총 기능 수: 36개 → 80개+ (카테고리당 6~10개)
- 하이라이트 카드: 12개 → 16개 (RAG검색/Text-to-SQL/OCR/멀티클라우드/CMDB자동발견 추가)
- 히어로 통계: 40+기능 → 754+엔드포인트 / 100+기능
- 섹션 제목: '36가지' → '100가지 이상 핵심 기능'
- 에디션 기능 업데이트: OCR·K8s·멀티클라우드·나라장터·SSO 반영
- 기술 스택: Upstage·AWS·K8s·Jira·Slack·ServiceNow 추가
- SEO: 새 키워드 반영 (RAG·Text-to-SQL·Upstage OCR·나라장터 등)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 19:05:30 +09:00
DESKTOP-TKLFCPR\ython
f3fb1abf9d feat(ocr): Upstage Document AI 연동 — 20개 엔드포인트 + 7종 워크플로우
upstage_ocr.py (8개 엔드포인트):
- /api/ocr/config: API Key 설정 (AES-256-GCM 암호화)
- /api/ocr/parse: 문서 파싱 (PDF/이미지 → 구조화 JSON)
- /api/ocr/extract: 정보 추출 (Key-Value, 스키마 기반)
- /api/ocr/qa: 문서 QA (자연어 질의)
- /api/ocr/batch: 다중 파일 배치
- /api/ocr/history: 처리 이력
- /api/ocr/usage: API 사용량

doc_workflow.py (9개 엔드포인트 — 7종 워크플로우):
- /api/docflow/contract: 나라장터 계약서 → 조달 자동 등록
- /api/docflow/server-spec: 납품서 → CMDB 자동 등록
- /api/docflow/invoice: 청구서 → 과금 연동
- /api/docflow/audit-report: CSAP 보고서 → 준수율
- /api/docflow/incident-report: 장애보고서 → SR 자동 생성
- /api/docflow/meeting-minutes: 회의록 → 액션아이템 SR
- /api/docflow/brand-contract: 현대백화점 등 브랜드 계약서

doc_template.py (5개 엔드포인트):
- 내장 7종 템플릿 (나라장터/납품서/브랜드계약/청구서/장애/CSAP/회의록)
- 커스텀 템플릿 CRUD

DB 모델 (4개): UpstageOCRConfig, OCRHistory, DocWorkflowJob, DocTemplate
ITSM 사이드바: '문서 AI (OCR)' 그룹 추가 (9개 메뉴)
민감 정보 자동 마스킹 (주민번호/카드번호/전화번호)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 18:47:36 +09:00
DESKTOP-TKLFCPR\ython
d76caea5dd feat(harness): Upstage OCR 연동 하네스 — Document AI + 7개 워크플로우
에이전트:
- upstage-ocr-dev: Document Parse/Information Extraction/QA API 엔진
- ocr-workflow-dev: 7개 워크플로우 (계약서/납품서/청구서/감사/장애/회의록/브랜드계약)

오케스트레이터: upstage-ocr-orchestrator
- Upstage API Base URL 연동
- 현대백화점 등 브랜드 계약서 스키마 포함
- 7종 내장 추출 템플릿
- 민감 정보 자동 마스킹
- multimodal.py (온프레미스) 와 보완 관계

API 가이드: references/upstage-api-guide.md
- Document Parse/Extract/QA 요청·응답 구조
- 6개 시나리오별 추출 스키마 (계약서/납품서/청구서/보고서/회의록)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 18:24:26 +09:00
DESKTOP-TKLFCPR\ython
b8faec44e0 feat(advanced): GUARDiA 고급 확장 구현 — 20 routers + 754 endpoints
CMDB 자동 발견 (4개):
- autodiscovery.py: SSH 네트워크 스캔 + CMDB 자동 등록
- snmp_discovery.py: SNMP v2c/v3 장비 자동 발견
- dependency_map.py: 서비스 의존성 자동 매핑 (netstat)
- config_inventory.py: 서버 인벤토리 자동 수집 (SSH)

NL 쿼리 엔진 (3개):
- nlquery.py: Text-to-SQL (SELECT 전용, DML 차단)
- op_assistant.py: Multi-turn 대화형 운영 어시스턴트
- query_history.py: 쿼리 이력·즐겨찾기·공유

구성 드리프트 (3개):
- drift_detection.py: 골든 구성 vs 실제 비교·SR 자동 생성
- golden_config.py: 내장 CSAP 템플릿 + 버전 관리
- auto_remediation.py: 승인 기반 자동 교정 + 롤백

멀티클라우드 (4개):
- multicloud.py: 통합 관제 (NCloud+AWS+KT)
- aws_connector.py: AWS SigV4 직접 서명 연동
- cost_optimizer.py: AI 비용 최적화 권고
- cloud_migration.py: On-prem→K-Cloud 체크리스트

공공기관 특화 (6개):
- narasajang.py: 나라장터 OpenAPI 연동
- public_api_hub.py: data.go.kr KISA·기상청 허브
- isp_support.py: ISP 수립 지원 + AI 보고서
- network_zone.py: 행정망/인터넷망 분리 관리
- k_cloud.py: 정부 K-Cloud 전환 자동화
- e_procurement.py: 전자조달 계약·검수·납품

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 14:33:41 +09:00
DESKTOP-TKLFCPR\ython
3b12791da7 feat(harness): GUARDiA 고급 확장 하네스 — 5개 에이전트 + 오케스트레이터
분석 기반 5개 확장 영역 선정:
1. cmdb-autodiscovery-dev: SSH/SNMP 에이전트리스 자동 발견
2. nlquery-dev: Text-to-SQL + 대화형 운영 어시스턴트
3. config-drift-dev: 골든 구성 vs 실제 비교·자동 교정
4. multicloud-dev: AWS/GCP/NCloud 단일 관제·비용 최적화
5. public-sector-dev: 나라장터·공공API·ISP·K-Cloud

목표: 104개→124개 라우터, 667→764개 엔드포인트
로드맵: advanced-roadmap.md (P0~P3 우선순위 포함)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 06:35:22 +09:00
DESKTOP-TKLFCPR\ython
caa70a608b feat(frontend): 나머지 개발 — ITSM/Manager/Messenger 신규 UI
ITSM static (app.js + index.html):
- 사이드바: AI플랫폼·분석KPI·클라우드·외부연동·SaaS 5개 그룹 추가
- 23개 신규 뷰 핸들러 (rag_search, kpi_dashboard, bi_dashboard, jira_sync 등)
- 액션 헬퍼 함수 20개+ (재계산, 파인튜닝, 보고서 생성, 데이터 기여 등)

Manager 5개 신규 페이지:
- KpiDashboard.tsx: KPI 신호등 대시보드 + 재계산
- BiAnalytics.tsx: SR트렌드·카테고리파이·MTTR·엔지니어워크로드
- BillingManage.tsx: 구독플랜·사용량·청구서 이력
- IntegrationHub.tsx: Jira/Slack/ServiceNow/ERP/Kakao/SSO 탭
- AiPlatform.tsx: AI인사이트·LearningLoop·예측·벤치마킹

Messenger 신규 탭:
- insights.tsx: AI 주간 인사이트 + SLA 예측 + 이상 감지

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 06:24:54 +09:00
DESKTOP-TKLFCPR\ython
fc0ba65e05 feat(expansion): GUARDiA v3 P3 완성 — 13 routers + 14 DB tables
라우터 (667개 엔드포인트, P3 신규 69개):
- multimodal.py:      llava 이미지 분석 + 에러 자동 분류
- learning_loop.py:   Ollama 파인튜닝 + 품질 지표
- ai_insights.py:     주간 인사이트 + 반복 패턴 + 개선 권고
- container_alerts.py: Docker 이상 감지 → SR 자동 생성
- ncloud.py:          NCloud API (서버/LB/스토리지/비용)
- billing.py:         구독 플랜 + 사용량 측정 + 청구서
- servicenow.py:      ServiceNow CMDB/Incident 양방향 연동
- erp_connector.py:   그룹웨어/HR ERP 연동 + 결재 웹훅
- kakao_notify.py:    카카오 알림톡 + 대량 발송
- auto_report.py:     Excel/PDF 보고서 자동 생성·다운로드
- benchmark.py:       기관 간 익명 벤치마킹 (완전 익명화)
- cohort_analysis.py: 도입 코호트 + 리텐션 + 기능 도입률

DB 모델 (14개 신규 테이블):
tb_learning_run, tb_container_alert_{rule,log},
tb_ncloud_config, tb_subscription, tb_invoice,
tb_servicenow_{config,mapping}, tb_erp_config,
tb_kakao_{config,notify_log}, tb_report_{record,schedule},
tb_benchmark_contrib

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 06:06:59 +09:00
DESKTOP-TKLFCPR\ython
09bab3c2ff feat(expansion): GUARDiA v3 P2 — 5 routers + 5 DB tables
라우터 (611개 엔드포인트, P1+P2 75개 신규):
- kubernetes.py: K8s 에이전트리스 관리 (SSH kubectl)
- sso_provider.py: SAML 2.0 / OIDC / OAuth2 통합 인증
- predictive_ops.py: SLA위반·SR급증·서버장애 예측 + Ollama 인사이트
- slack_connector.py: Slack Incoming Webhook + Slash Commands
- white_label.py: 기관별 브랜딩 + CSS 변수 동적 생성

DB 모델 (5개 신규):
tb_k8s_cluster, tb_sso_config, tb_sso_session,
tb_slack_config, tb_tenant_branding

수정: K8sCluster ForeignKey tb_server → tb_server_info

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 05:57:02 +09:00
DESKTOP-TKLFCPR\ython
e7dc273b36 feat(expansion): GUARDiA v3 — 6 P1 routers + 7 DB tables
라우터 (584개 엔드포인트, 신규 39개):
- rag_engine.py: 하이브리드 RAG 검색 (BM25+pgvector+RRF) + Ollama 답변
- jira_sync.py: Jira 양방향 SR 동기화 + 웹훅 수신
- kpi_engine.py: KPI 정의·계산·신호등 + 내장 5개 템플릿
- tenant_portal.py: 테넌트 셀프서비스 포털 + 사용자 초대
- bi_dashboard.py: BI 대시보드 (트렌드·히트맵·퍼널·MTTR)
- autonomous_workflow.py: 조건 기반 자율 워크플로우 엔진

DB 모델 (7개 신규 테이블):
tb_rag_feedback, tb_jira_config, tb_jira_sync_mapping,
tb_kpi_definition, tb_kpi_value,
tb_auto_workflow_rule, tb_auto_workflow_run

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 00:49:33 +09:00
DESKTOP-TKLFCPR\ython
373ffb9536 feat(harness): GUARDiA expansion harness — 5 domain agents + orchestrator
- cloud-container-dev: K8s/Docker/NCloud 관리
- ai-platform-dev: RAG 강화/자율 워크플로우/멀티모달
- saas-platform-dev: 화이트라벨/구독/기관 온보딩
- enterprise-integrator: Jira/Slack/SSO/ERP 연동
- bi-analytics-dev: KPI 엔진/예측 분석/자동 보고서
- orchestrator: 25개 신규 라우터 P1~P3 로드맵

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 22:25:51 +09:00
DESKTOP-TKLFCPR\ython
e93565be88 feat(cicd): zioinfo-mail CI/CD complete — Jenkins build #9 SUCCESS
- Jenkinsfile: npm build → copy dist → rsync → sudo systemctl
- deploy_server_webhook.py: 6개 repo 지원 (zioinfo-mail 추가)
- sudoers: jenkins → sudo systemctl zioinfo-mail
- Gitea repo: zio/zioinfo-mail 정상 소스

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 22:19:10 +09:00
DESKTOP-TKLFCPR\ython
8ab660cd38 feat: initial zioinfo-mail webmail system 2026-06-01 21:55:48 +09:00
DESKTOP-TKLFCPR\ython
3d5a125b04 fix(zioinfo-mail): fix inbox/sent parsing + surrogate encoding + Sent IMAP APPEND
- mail_parser: _safe() surrogate 문자 제거 → JSON 직렬화 오류 수정
- imap_client: aioimaplib → 동기 imaplib으로 전환 (파싱 안정성)
- smtp_client: aiosmtplib → 동기 smtplib으로 전환 + raw bytes 반환
- main.py: 발송 후 append_to_sent() → Sent 폴더 자동 저장
- MailList: Sent 폴더에서 받는사람 표시 (→ info@...)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 21:50:47 +09:00
DESKTOP-TKLFCPR\ython
d6a251e489 feat(zioinfo-mail): webmail system — FastAPI IMAP/SMTP backend + React 3-panel UI
- Backend: aioimaplib/aiosmtplib proxy, JWT+Fernet auth, 한글 파싱
- Frontend: React 18 + TypeScript, 3-panel layout, DOMPurify HTML 렌더링
- Deploy: nginx:8025, uvicorn:8026, systemd, Gitea repo
- E2E 검증: 로그인  폴더 5개  IMAP  API 

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 21:34:41 +09:00
DESKTOP-TKLFCPR\ython
60be2f9375 feat(harness): zioinfo-mail webmail harness — backend/frontend/infra agents + orchestrator
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 21:19:51 +09:00
DESKTOP-TKLFCPR\ython
19dd2c0c09 feat(harness): system-sync-orchestrator + deploy agents + zioinfo assets
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 21:14:34 +09:00
DESKTOP-TKLFCPR\ython
68956d1dda feat(homepage): GUARDiA features expanded to 36+ with 5-category grid layout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 20:48:57 +09:00
DESKTOP-TKLFCPR\ython
53f34835f1 fix(zioinfo): add /var/www/zioinfo copy step in deploy + restore stash files
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 20:42:12 +09:00
DESKTOP-TKLFCPR\ython
ea51238c1d feat(cicd): complete Jenkins pipeline - plugins, triggers, E2E verified
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 20:28:45 +09:00
DESKTOP-TKLFCPR\ython
f4f5abd65b feat(cicd): sync workspace to repos, fix git ownership and pull strategy
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 20:02:21 +09:00
DESKTOP-TKLFCPR\ython
5561d0d050 feat(cicd): fix webhook server, git URLs, push Jenkinsfiles to all 5 Gitea repos
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 19:55:19 +09:00
DESKTOP-TKLFCPR\ython
28d3ba4836 refactor(cleanup): commit folder reorganization - scripts/, _archive/, docs/ restructure
- Move backend/frontend/messenger/ old paths to _archive/
- Reorganize scripts into scripts/deploy, check, push, setup, misc
- Move docs (pptx, docx) to docs/
- Add .claude agents and skills for fullstack/folder-cleanup harness
- workspace/ projects remain intact

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 19:43:09 +09:00
DESKTOP-TKLFCPR\ython
515604b116 feat(cicd+tests): Jenkins pipeline + unit/integration test suite
CI/CD:
- Jenkinsfile for zioinfo-web/guardia-itsm/guardia-manager/guardia-docs
- Jenkins jobs created (4 repos, pipeline-type)
- Global env vars: ITSM_BASE_URL, GITEA_URL, SERVER_HOST
- ITSM messenger notification in post{} block

Test Harness:
- .claude/agents/unit-tester.md
- .claude/agents/integration-tester.md
- .claude/skills/test-orchestrator/SKILL.md

Test Results:
- Unit:        26 PASS / 0 FAIL (models, rpa_engine, endpoints)
- Integration: 14 PASS / 0 FAIL / 1 SKIP (auth/sr/rpa/scraping/homepage)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 00:22:10 +09:00
DESKTOP-TKLFCPR\ython
24465a2d44 feat(harness): CI/CD pipeline harness for 5-repo automation
Agents (4):
- jenkins-initializer: Jenkins 초기 설정, 플러그인, credentials, job 생성
- pipeline-architect: 5개 시스템별 Jenkinsfile 설계 + 작성
- deploy-scripter: deploy_server.py 업데이트, 배포/롤백 스크립트
- notification-wirer: ITSM 메신저 알림 연동 (빌드 성공/실패)

Skills (2):
- cicd-pipeline-orchestrator: Jenkins→Jenkinsfile→deploy→알림 전체 파이프라인
- jenkinsfile-generator: 5개 시스템 Jenkinsfile 패턴 (zioinfo-web/itsm/manager/messenger/docs)

CLAUDE.md: CI/CD 하네스 포인터 등록

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 00:04:16 +09:00
DESKTOP-TKLFCPR\ython
c1ae173a9f refactor(paths): update all path references after workspace reorganization
CLAUDE.md: directory structure updated (itsm/->workspace/guardia-itsm/, etc.)
repo-splitter.md: subtree split prefixes updated to workspace/ paths
repo-split-orchestrator/SKILL.md: split target paths updated

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 23:57:45 +09:00
DESKTOP-TKLFCPR\ython
777e027553 refactor(structure): move app -> workspace/guardia-messenger
Permission denied on git mv, used robocopy instead.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 23:53:57 +09:00
DESKTOP-TKLFCPR\ython
cfe2901a55 refactor(structure): consolidate all projects under workspace/
- itsm/    -> workspace/guardia-itsm/
- manager/ -> workspace/guardia-manager/
- app/     -> workspace/guardia-messenger/
- manual/  -> workspace/guardia-docs/

workspace/zioinfo-web/ unchanged.
git mv preserves full commit history.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 23:50:56 +09:00
DESKTOP-TKLFCPR\ython
dd34a7f97a feat(harness): workspace reorganization harness
Agents: workspace-mover, path-updater, integrity-checker
Skill: workspace-reorganize-orchestrator (pipeline)
CLAUDE.md: harness pointer registered

Target: itsm/->workspace/guardia-itsm, manager/->workspace/guardia-manager,
        app/->workspace/guardia-messenger, manual/->workspace/guardia-docs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 23:49:57 +09:00
DESKTOP-TKLFCPR\ython
4af3453bde feat(repo-split): mono->5 independent Gitea repos + docs
- repos/ created: zioinfo-web, guardia-itsm, guardia-manager, guardia-messenger, guardia-docs
- GitHub(origin) remote removed
- Gitea webhooks registered for 4 repos (port 9999)
- .gitignore: repos/ added
- manual/43_레파지토리_구조_가이드.md: new guide
- CLAUDE.md: repo separation harness pointer added

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 23:43:50 +09:00
DESKTOP-TKLFCPR\ython
f77bb91c0c feat(harness): repo separation harness for Gitea-only workflow
Agents:
- repo-splitter: git subtree split -> C:\GUARDiA\repos\ 독립 repo 생성
- gitea-publisher: Gitea repo 생성 + push + GitHub remote 제거
- cicd-wirer: webhook 4개 + deploy_server.py 업데이트
- doc-updater: CLAUDE.md + 매뉴얼 43번 신규 작성

Skill:
- repo-split-orchestrator: 전체 파이프라인 (Phase 0-4 + 검증 체크리스트)

CLAUDE.md: 하네스 포인터 등록

Target repos:
- zio/zioinfo-web (기존)
- zio/guardia-itsm (기존)
- zio/guardia-manager (신규)
- zio/guardia-messenger (신규)
- zio/guardia-docs (신규, manual/)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 22:30:08 +09:00
DESKTOP-TKLFCPR\ython
e697e0a672 feat(screenshots): Manager dashboard real screenshots + GuardiaDetail update
Manager screenshots (Variant design applied):
- manager_01_login.png: login page
- manager_02_dashboard.png: main dashboard (SR charts, sidebar)
- manager_03_servers.png: server list
- manager_04_scraping.png: scraping bot management
- manager_05_deployments.png: deployment history

GuardiaDetail.jsx:
- Manager section screenshots updated to real captured files
- 07_manager_* -> manager_0N_* (actual filenames)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 21:52:21 +09:00
DESKTOP-TKLFCPR\ython
8171ba9ff9 fix(multi): header logo dark + Manager login JSON + Jenkinsfile manual exclude
Header.jsx:
- logo: zioinfo-logo.png -> zioinfo-logo-dark.png (dark header background)

GuardiaDetail.jsx:
- 12 features (RPA, scraping, DR, CSAP, NL commands added)
- 44 bot commands (vs 19 before)
- Tech stack: Vector DB section added

Jenkinsfile (root + zioinfo-web):
- sparse checkout: exclude manual/ from Jenkins build
- only frontend/ and backend/ checked out

Manager useAuth.ts:
- login: form-encoded -> JSON (ITSM accepts JSON only)

Manuals:
- 41_zio서버_DB_연결정보.md
- 42_zio서버_소프트웨어_구성도.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 21:36:48 +09:00
DESKTOP-TKLFCPR\ython
7c0472b989 feat(guardia-page): update to v2.0 features + manuals + Jenkins exclude
GuardiaDetail.jsx:
- FEATURES: 8 -> 12 (RPA봇, 스크랩핑, DR, CSAP, 자연어명령 추가)
- BOT_COMMANDS: 19 -> 44 (스크랩봇, CI/CD, PMS, 보안, 디자인 명령어 추가)
- TECH_STACK: Vector DB(pgvector/ChromaDB/LangChain), 자동화봇 추가

Jenkinsfile:
- sparse checkout: manual/ 폴더 체크아웃 제외 (배포 대상 아님)
- workspace/zioinfo-web/Jenkinsfile 동일 적용

Manuals:
- manual/41_zio서버_DB_연결정보.md: PostgreSQL/Gitea/Ollama/ChromaDB/SMTP/SSH
- manual/42_zio서버_소프트웨어_구성도.md: 전체 SW 구성도 + 아키텍처

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 21:10:36 +09:00
DESKTOP-TKLFCPR\ython
7c3db88f74 chore: add deploy scripts to gitignore, update assets 2026-05-31 20:46:30 +09:00
DESKTOP-TKLFCPR\ython
bf357b29ff docs(app): update store guide with screenshot paths and regen instructions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 20:42:11 +09:00
DESKTOP-TKLFCPR\ython
32ebe12eaa fix(app): icon 1024x1024 + store screenshots + Variant design
Icons:
- icon.png: 2359x1922 (wrong) -> 1024x1024 square (Expo/iOS requirement)
- adaptive-icon.png: fixed to 1024x1024 transparent foreground

Store Screenshots (8 files):
- Play Store: 1080x1920 (4 screens: login/dashboard/sr/chat)
- App Store 6.7inch: 1290x2796 (4 screens)

Design (Variant colors):
- login: navy #001530 bg, cyan button, logo badge
- dashboard: stat cards with top color bar + icon box
- Config.ts: accent #4f6ef7 -> #00A0C8(cyan)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 20:41:19 +09:00
DESKTOP-TKLFCPR\ython
e47f91b6cf feat(app): Messenger app Variant design applied
Config.ts:
- COLORS: accent #4f6ef7 -> #00A0C8(cyan), primary #003366(navy)
- gnbBg: deeper navy #001530

_layout.tsx:
- TabBar: elevated shadow, cyan active tint, bolder label

index.tsx (Dashboard):
- StatCard: top color bar + icon box (screenshot9 pattern)
- Header: deep navy gradient rounded bottom
- QuickBtn: bg-light card style
- Section: deeper shadow, navy title

login.tsx:
- Background: deep navy #001530
- Card: white + strong shadow
- Button: solid cyan with shadow
- Label: cyan uppercase

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 20:25:47 +09:00
DESKTOP-TKLFCPR\ython
6fffc03074 feat(design): ITSM+Manager Variant style applied
ITSM (style.css):
- CSS tokens: indigo -> cyan(#00A0C8)+navy(#003366) palette
- Background: deeper navy (#001020, #001530, #001e3c)
- Sidebar active: cyan left bar + light bg (not full gradient)
- Buttons: solid cyan, rounded
- Logo icon: navy-to-cyan gradient

Manager (React):
- GNB: white header, navy branding, cyan badge
- Sidebar: white bg, cyan active border + light bg, navy text
- StatCard: cyan top bar, light blue icon box (screenshot9 pattern)
- AppLayout: navy page title

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 20:18:22 +09:00
DESKTOP-TKLFCPR\ython
7839d9724c feat(design-harness): GUARDiA ITSM+Manager UI overhaul harness
Agents:
- itsm-ui-refactor: dark theme CSS token overhaul (navy+cyan)
- manager-ui-refactor: light theme React component styling

Skills:
- guardia-design-orchestrator: parallel pipeline orchestrator
- itsm-design-overhaul: style.css token/sidebar/card/button/table guide
- manager-design-overhaul: Sidebar/GNB/StatCard/DataTable/Dashboard guide

Reference: C:/GUARDiA/screenshot (Variant design, #003366/#005A8C/#00A0C8)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 19:50:58 +09:00
DESKTOP-TKLFCPR\ython
e72b0914d8 feat(ci): dark bg logo - text white, logo mark unchanged
- make_dark_logo.py: PIL 이미지 처리 (상단 검정 텍스트 + 하단 진한 파랑 텍스트 → 흰색)
- 로고 마크(파랑/회색 큐브)는 원본 유지
- Company.jsx: 다크 배경용 이미지를 zioinfo-logo-dark.png로 변경 (filter 제거)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 19:45:26 +09:00
DESKTOP-TKLFCPR\ython
b4f9bcfc6b feat(design): Variant UI style applied - layout maintained
Based on Variant ZIO Complete Website design (screenshot1-13):
- tokens.css: color palette (#003366, #005A8C, #00A0C8), Pretendard font, 4px grid
- global.css: section-label-v, section-title-v, v-card, v-stats-section, btn-v-*
- Home.jsx: SVG icons for Business cards, Variant-style section labels, dark navy KPI section
- Common.css: page-hero improved (navy gradient), section labels cyan, sub-nav refined

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 19:18:25 +09:00
DESKTOP-TKLFCPR\ython
df375c83c0 feat(design-harness): UI overhaul harness + /design bot command
Agents:
- ui-scout: Playwright MCP + Variant(variant.com/community) visual capture
- design-system-architect: unified design tokens (CSS vars / RN StyleSheet)
- component-refactor-engineer: per-system component refactoring
- visual-qa-tester: before/after screenshot comparison

Skills:
- ui-overhaul-orchestrator: E2E pipeline (capture->tokens->refactor->QA)
- playwright-visual-capture: Playwright MCP + Variant workflow
- design-token-system: tokens.css with Pretendard, 4px grid, brand colors
- component-refactor: Button/Card/Badge patterns for 4 systems

Bot: /design capture|variant|tokens|homepage|itsm|manager|app|qa|ab

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 18:15:13 +09:00
DESKTOP-TKLFCPR\ython
1d1737f27b feat(harness): homepage CMS harness for DB content management
Agents:
- content-analyst: scan static content, design JPA entities
- content-db-engineer: implement Entity/Repo/Controller/Hook
- admin-ui-builder: implement AdminXxx.jsx + sidebar + routes

Skills:
- homepage-cms-orchestrator: E2E pipeline orchestrator
- content-db-engineer: Spring Boot + React implementation guide
- admin-ui-builder: AdminHistory.jsx pattern reference

CLAUDE.md: homepage project context + harness pointer

Next DB targets: Reference, FAQ, Partner, KpiStat, CeoGreeting, OrgDept

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 18:02:16 +09:00
DESKTOP-TKLFCPR\ython
8d1168f50c feat(history): company history DB management + admin CRUD
- CompanyHistory JPA entity (tb_company_history)
- CompanyHistoryRepository
- GET /api/history: DB-based grouped history (year + items[])
- Admin CRUD: GET/POST/PUT/DELETE /api/admin/history
- DataInitializer: 35 history items seeded from 2000 to 2026
- Company.jsx: useHistory() hook -> API fetch with fallback
- AdminHistory.jsx: year-grouped timeline CRUD UI
- AdminLayout: 회사 연혁 menu added

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 17:52:02 +09:00
DESKTOP-TKLFCPR\ython
1c1411f9cb feat(screenshots): Playwright 실제 화면 캡처 + GuardiaDetail 업데이트
- Playwright 자동화로 ITSM 로그인/대시보드 + 홈페이지 11개 페이지 캡처
- GuardiaDetail.jsx ITSM 섹션: itsm_02_dashboard.png / itsm_01_login.png 적용

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 17:40:02 +09:00
DESKTOP-TKLFCPR\ython
592566440c feat(messenger): natural language command parser (NL Command)
- core/nl_command.py: Ollama LLM + rule-based fallback
- POST /api/messenger/bot/nl: new NL endpoint
- /bot/command: NL fallback when no command matches
- 9/10 rule tests PASS

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 17:07:11 +09:00
DESKTOP-TKLFCPR\ython
57d521e9bf fix(homepage): white screen fix + login message + vibe coding manual
- useMemberAuth: return null to loading spinner
- MemberOnly: add login/register message
- manual/40: vibe coding guide (closed/open network)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 16:55:19 +09:00
DESKTOP-TKLFCPR\ython
4aafbaee41 feat(scraping): 웹 스크랩핑 봇 전체 구현 + 하네스 구성
[하네스]
- agents/scraping-bot.md: 스크랩 봇 에이전트
- skills/scraping-orchestrator/SKILL.md: E2E 워크플로우

[ITSM Backend]
- models.py: ScrapingTarget + ScrapingResult ORM + Pydantic 스키마
- core/scraping_engine.py: BeautifulSoup 기반 비동기 스크래퍼
- routers/scraping.py: 13개 API (타겟 CRUD + run + 게시/삭제/원복 + 통계)
- routers/messenger.py: !scrap 봇 명령어 6종 + scrap_published 이벤트
- main.py: scraping 라우터 등록

[Manager UI]
- ScrapingManager.tsx: 결과 목록/상세/게시/삭제/원복 + 타겟 관리
- Sidebar.tsx: 🕷️ 스크랩핑 봇 메뉴 추가
- App.tsx: /scraping 라우트 추가

[테스트 결과 - 전체 통과]
- T1 타겟 등록 OK
- T2 즉시 스크랩: zioinfo.co.kr → DRAFT
- T3 결과 목록 조회 OK
- T4 게시: DRAFT → PUBLISHED + 메신저 알림
- T5/T6/T7 두번째 스크랩 → 삭제 → 원복 OK
- T8 통계: draft:1, published:1, deleted:0
- T9 !scrap list 봇 명령어 OK
- T10 !scrap status 봇 명령어 OK

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 16:52:49 +09:00
DESKTOP-TKLFCPR\ython
c6b28c1584 feat(rpa): RPA 엔진 개선 — 스키마 필터링·라우터 스캔·영속 저장·크론 연동
[개선 내용]
1. 스키마 필터링: Out/Response/Data 제외 → Create/Update/In만 학습
   - 140개 스키마 → 73개 입력 스키마, 1357개 → 672개 규칙 (노이즈 제거)
2. 라우터 자동 스캔: routers/*.py AST 파싱 → 엔드포인트-스키마 정확 매핑
3. 영속 저장: rpa_rules.json → 서비스 재시작 시 자동 복구
4. 서비스 시작 자동 학습: 규칙 파일 없을 때 즉시 학습
5. APScheduler 연동: schedule(cron) 설정 시 자동 크론 등록/해제
6. /api/rpa/status: 시스템 현황 요약 엔드포인트 추가
7. /api/rpa/validations/schemas: 스키마별 필드 수 조회
8. /api/rpa/tasks/{id}/toggle: 작업 활성/비활성 토글

[테스트 결과 - 전체 통과]
- T1 RPA 상태: 73 endpoints, 672 rules, 자동 학습 확인
- T4 dry_run 정상: validation_errors=[] ✓
- T5 오류 감지: 4개 오류 정확 (title 필수·enum 2개·requested_by 필수)
- T6 작업 등록: APScheduler 크론 등록 포함
- T7 등록 작업 실행: DRY_RUN_OK ✓
- T8 이력 조회: status 필터 정상

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 16:19:52 +09:00
DESKTOP-TKLFCPR\ython
81d16f77c5 feat(rpa): GUARDiA ITSM RPA 봇 기능 구현 + 하네스 구성
[하네스]
- agents/validation-learner.md: 소스 AST 파싱 validation 학습 에이전트
- agents/rpa-bot.md: 학습 규칙 참조 자동화 실행 에이전트
- skills/rpa-orchestrator/SKILL.md: RPA E2E 워크플로우 스킬
- skills/rpa-validation/SKILL.md: 소스 기반 validation 학습 스킬

[구현]
- core/rpa_engine.py: ValidationLearner(AST 파서) + RPAValidator + RPAExecutor
- routers/rpa.py: 11개 API 엔드포인트
  POST /api/rpa/validations/learn   — models.py AST 파싱 → 1357개 규칙 학습
  GET  /api/rpa/validations         — 학습 규칙 조회 (119 endpoints)
  POST /api/rpa/tasks               — RPA 작업 등록
  POST /api/rpa/execute             — 즉시 실행 (validation + API 호출)
  GET  /api/rpa/executions          — 실행 이력

[테스트 결과]
- validation 학습: 140개 스키마 / 1357개 규칙 / 119개 엔드포인트
- WRONG_TYPE → enum 오류 감지 정확
- 필수 필드 누락 → validation 오류 상세 반환
- 실행 이력 조회 정상

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 16:10:41 +09:00