Commit Graph

25 Commits

Author SHA1 Message Date
zio
5ddd7136a9 feat(ux,system,identity): waves 10-12 + renewal-1 — WISE shell (hamburger/accordion IA), system-mgmt basics (V37), email channel (V36), product identity, home AI hub, demo seed (V38), menu IA, app-QR, product rename
- W10 email: self-hosted Postfix channel (owner-approved) — auction-open contractor notice
  (in-app + email), EDM send (opt-in, cap 500), password-reset mail, mail_log (V36)
- W11 WISE shell: hamburger toggle, single-open accordion, 6-group IA restructure,
  system-mgmt group, KINTEX CI wordmark logo, home charts x3, responsive bottom user area,
  calendar alignment; fixed goScoped links (no /login bounce, hall parsing)
- W12 system-mgmt basics (UIWS parity): dept/company, program registry, role-menu map,
  auth policy, login history, error log, system health, mail/notify config (V37, 10 routes)
- product identity: public landing hero + role value cards + AI pipeline steps; login
  tagline; root gate (unauth -> /public product intro, auth -> /home)
- home AI hub: 5 AI tool cards + NL quick-ask strip (AI visibility)
- menu IA: 13 orphan routes folded in, system-mgmt 5 sub-sections, dead-links 0
- app-QR install page (/app-qr, WISE AppQrCode pattern); EAS build G3-approved
- product rename -> "KINTEX AI 전시·행사시스템" across 4 locales + title
- V38 demo closed-loop seed: codes/programs/depts/companies + booths/leads/approvals/
  invoices/notices, 4 demo accounts — activates home todos/KPIs
- new harnesses: wise-ui alignment (+menu-ia), full renewal (testdata), benchmark (analyst/crawler)
- SPA cache: index.html no-store (instant deploy reflection)
- verified: compileJava, test, tsc -b --force, vite build all EXIT 0

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 15:57:34 +09:00
zio
f6635edb06 feat(home,features,tenant): SCR-HOME landing + 100-feature waves 8-9 + tenant-first PK standard + crawled events (V27-V35)
- SCR-HOME (/home): post-login landing per owner directive — role-based KPI row, banner
  carousel, exhibition poster showcase rail, WISE-pattern month calendar with dynamic
  hall-center filter, role-based my-tasks widget, notices/quick-actions/activity,
  workspace grid, ShellFooter; login now lands on /home (workspace picker absorbed);
  backend /api/home/{todos,showcase,hall-centers,summary}; Stitch mockup harvested and reconciled
- tenant standard (owner directive): tenant id 'KINTEX', tenant_id leads composite PKs
  (V31 conversion with FK-safe UNIQUE(id) preservation; V27/29/30/33/34/35 born compliant);
  JWT tid backward-compat normalization
- crawl: 34 upcoming kintex.com exhibitions with posters + detail enrichment
  (organizer/site/items/description) upserted idempotently (V32)
- wave 8: F100 AI router (Claude->Ollama fallback, AiConfig) + lead AI rescore + CMS AI
  translation; F005/6 booth sales (V27, atomic hold); F035 BOQ + F084 auction fee -> invoice
  (V28); F028 approval workflow (V29, /work/approval)
- wave 9: F041/42/43 logistics tabs (V33); F085 refund rules + F083 tax invoice/report
  (V34, fiscal gates documented); F092 text-to-SQL with 7-step guard + F025 rules chatbot;
  F099 webhook gateway (HMAC inbound, outbound stub) + F052 follow-up EDM trigger (V35)
- verified: compileJava, full test suite, tsc -b --force, vite build all EXIT 0

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 14:11:19 +09:00
zio
9d47f9373f feat(shell,tenant,i18n): wave 7 — MDI tab shell, multitenancy phase 2 (JWT tid + fail-closed guard), i18n sweep 2
- MDI: additive tab layer over existing routing (MdiTabBar + mdiStore, sessionStorage,
  dedup, max 10, keyboard a11y, dark-theme tokens); route tree untouched
- tenant p2: JWT tid claim with kintex fallback (backward compatible), EventAccessGuard
  cross-tenant 403 (EventTenantMapper + isolation tests), explicit tenant scoping on
  analytics/admin/sysuser aggregates; login threads app_user.tenant_id into tokens
- i18n sweep 2: 17 core+admin screens extracted to 30 namespaces x 4 locales (ko/en/zh/ja),
  zero ko-render regression; P2/P3 sweep list documented
- verified: tsc -b --force, vite build, compileJava, test (75/75) all EXIT 0

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 11:51:00 +09:00
zio
48572d261a feat(nfr,tenant): wave 5+6 — dark theme toggle, i18n (ko/en/zh/ja), multitenancy phase 1 (V26)
- theme: dark palette remap via [data-theme], themeStore persistence, AppShell toggle,
  shared-layer hex -> semantic tokens, focus-ring/reduced-motion/skip-link a11y
- i18n: react-i18next with browser detection + ko fallback; full extraction for public
  site P1-P7 and login/signup/forgot flows; LanguageSwitcher wired in public shell,
  login, and AppShell
- multitenancy: V26 tenant master + tenant_id (event/hall/app_user, DEFAULT 'kintex'),
  TenantContextFilter (X-Tenant-Id -> Host -> default), catalog/hall scoping (zero
  behavior change), /api/admin/tenants GET/POST wired for SCR-A9
- ops(prod): kintex.wise.ai.kr live — nginx vhost on wise host proxying verified dev
  origin + LE TLS; full-stack split deferred (host RAM/disk constraint, see WORK_STATUS)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 10:52:52 +09:00
zio
4049b7c222 feat(backlog): wave 4 — ops real-data, M9 settlement (V24), M1 hall assign+quote (V25), roleCode/nav; fix OTP retry lockout
- fix(security): verifyOtp/enrollVerify consumed the challenge BEFORE code verification —
  one mistyped TOTP burned the session and every retry hit "세션 만료" (live incident).
  Now consume only on success, keep challenge for up to 5 failures (OtpChallengeStoreTest)
- SCR-14 ops: congestion from real check-in aggregates, power from utility orders;
  hardware widgets stay as honest "sensor not connected" empty states
- M9 settlement: /api/settlement (dashboard/invoices/generate/issue/payments), V24 invoice
  tables, server-authoritative amounts (ST_Area x rate + VAT), PG-delegation notice, /settlement UI
- M1 hall assign: /api/halls CRUD + period-overlap conflict (409 with details) + rates-v1.0
  auto-quote, V25 idempotent period columns, /halls board UI
- shared: AuthUser.roleCode (JWT rc claim, additive), AdminGuard precise check, AppShell
  placeholder nav wired via event-context builders, /_styleguide dev-only route

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 10:14:29 +09:00
zio
8a49a68a6a feat(backlog): wave 3 — BI global overview, admin CRUD screens+guard, schedule real-data (V23); fix boot crash
- fix: MyBatis <script> XML violations (AuctionMapper deadline<now(), VisitorMapper <=) that
  crash-looped boot and triggered health rollback; add MapperAnnotationParseTest regression guard
- M16 BI: GET /api/analytics/overview — cross-event revenue, monthly hall utilization,
  exhibitor retention, linear-regression forecast (hall-manager only, no migration)
- M18 admin: users/roles/codes/menus CRUD screens consuming live system APIs, AdminGuard on all
  /admin/* routes, landing module shortcuts; A8 rulesets confirmed already live-wired
- SCR-15 schedule: V23 (category/est_visitors backfill), hall-utilization + calendar APIs,
  screen switched to real data with offline fallback
- QA: replace text check glyph with IconCheck SVG
- verified: compileJava, test (incl. mapper parse), tsc -b --force, vite build all EXIT 0

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 09:44:44 +09:00
zio
335b9aa8a4 fix(frontend): add missing checkin.css — vite build failed on server (unresolved import)
CheckinDeskPage.tsx imported ./checkin.css that was never written (session cut mid-wave);
tsc -b passes without CSS resolution so only the server vite build caught it, failing
deploys 08:49/09:09. Local vite build verified.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 09:21:46 +09:00
zio
c6f3a8d916 feat(domains): second-wave hardening — auction scoring, visitor check-in/lead engine, CMS versions/media/public (V21)
- M15 auction: scoring/quotation calc + unit tests, screens/auction local API as canonical client
- M10 visitor: check-in desk (SCR-31, /visitors/checkin route+nav), QR token + checkin_at,
  lead exhibitor/consent/note, check-in/search/stats/badge-reissue/lead-create/CSV export
  (masked PII only, RBAC-guarded, @Audited) + rule-based lead scoring engine
- M17 CMS: content version history, media library, public CMS API (/api/public/cms), HtmlSanitizer
- Flyway repair: extensions appended to already-applied V17/V19 split into V21 (checksum-safe), V17/V19 restored
- verified: compileJava, test, tsc -b all EXIT 0

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 09:09:14 +09:00
zio
2854f068ed feat(domains): Phase D slices — auction, visitor/leads, CMS, public site, docs/logistics/marketing (V14~V20)
- Backend modules: auction (M15), visitor+lead scoring (M10), cms (M17), publicsite, document/milestone (M6), logistics dock reservation (M8), marketing campaign/sponsorship (M12), admin ruleset APIs
- Flyway V14~V20 schemas for the above
- Frontend: API clients wired (cms/marketing/public/visitor) + admin module pages refreshed
- Verified: gradlew compileJava SUCCESS, tsc -b clean

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 08:49:50 +09:00
zio
d949f322d2 feat(frontend): port 25 Stitch screens — domain modules, admin, public site
- SCR-22/23/25 docs·milestones/report-authoring/dock-reservation (M6/M8, sample)
- SCR-26/27/29/38 auction list/detail/award + contractor dashboard (M15, sample,
  sealed-bid masking + registered-vendor-only UI rules)
- SCR-30/32/33/34 visitor registration/lead scoring/EDM/sponsorship (M10/M12,
  sample, PII masked)
- SCR-35/36/37 CMS workflow/microsite builder/multilingual (M17, sample)
- SCR-A5/A6 audit log + system settings wired to live backend (PageResponse,
  secret masking); A8 ruleset viewer (static v1.1 snapshot), A9 tenants (sample)
- SCR-P1~P7 public marketing site with self-contained PublicShell (no auth,
  sample data, PG delegation notice, no card input)
- App routes + AppShell nav (도메인 모듈 group); tsc -b clean; QA PASS

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 05:26:29 +09:00
zio
89bf2ce30d fix(mybatis): quote camelCase SQL aliases — PG folds unquoted identifiers to lowercase
PostgreSQL lowercases unquoted aliases (AS userId -> userid), so every
Map-returning @Select lost its camelCase keys at runtime: secure login
always returned UNAUTHORIZED (passwordHash null), login-slide imageUrl/
sortOrder null, and the new aggregation APIs would have returned 0/null.
Quoted 191 aliases across 22 mappers (text blocks verbatim, string
literals escaped), matching the proven UserMapper.xml convention.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 04:06:56 +09:00
zio
a657f9516a fix(security): legacy /api/auth/login bypassed lockout and OTP enforcement
Delegate legacy login to TwoFactorService.secureLogin so the legacy path
inherits login-failure lockout and OTP policy. OTP-required accounts get
OTP_REQUIRED (no token, no challenge token) and must use /login/secure.
Web UI already uses secureLogin; mobile scaffold (uncommitted track) must
adopt the 2FA flow for staff roles.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 03:55:13 +09:00
zio
8509787016 fix(frontend): server tsc -b errors + missing pieces
- NotificationCenterPage: toast node was never rendered (toasts invisible + TS6133 on server tsc -b)
- ReportPage: Tooltip formatter param typed number, recharts expects ValueType|undefined
- vite.config: /uploads dev proxy (login slide images) — missed in 1de3b9b
- design.md v2.1.1: all 84 screens Stitch status reconciled 64-row update (via designer)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 03:48:06 +09:00
zio
16bfb238c1 feat: real-data aggregation APIs + TOTP 2FA hardening + work screens (SCR-39~48)
- Aggregation packages: analytics/dashboard/ops/admin/catalog (+V13 indexes)
- TOTP 2FA: SecretCipher(AES-256-GCM), V12 migration, OTP enroll/challenge UI, OTP_ENFORCE env
- Common work screens SCR-39~48 wired to work/* contracts (gaps disabled+tooltip)
- M2 booth overlap check (BOOTH_OVERLAP, compliance-v1.1) + 8 unit test classes
- QA PASS (boundary cross-check), backend test + frontend tsc green

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 03:26:47 +09:00
zio
1de3b9b269 feat: login slide CMS + G2B RFP doc + 4 report decks + SCR-31 screen
- Login page: 5-image auto-rotation slides (latest-first) with admin CRUD (upload, caption, active toggle, RBAC + audit log), V11 seed migration
- docs: G2B-style RFP (74 requirements, tech 90/price 10, prototype demo 32pt)
- Deliverables: execution plan (25s), kickoff (13s), interim (15s), final (25s) report decks
- Stitch: SCR-31 check-in kiosk screen HTML

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 01:00:35 +09:00
zio
6c9891c7e2 feat: mobile harness + design v2.1 (84 screens) + PLANNING v3.1 + deliverables + Stitch screens
- Harness: kintex-mobile-dev agent + kintex-mobile-orchestrator skill (WISE mobile ref, Stitch-first design rule, dual app targets B2B/B2C)
- design.md v2.1: full 84-screen inventory (web 51 / admin 10 / public 8 / mobile 15) with Stitch prompts incl. ticketing (SCR-P7/P8, M14/M15)
- PLANNING v3.1: unified account + split signup tracks (2FA required for staff, light signup/guest for visitors), one codebase / two app targets
- Deliverables: dev plan (21s), user/operator/developer guides (17/14/15s), program spec (44s, 65 programs, 8 flowcharts), DA (DB design 14s + table spec xlsx 35 tables/299 cols)
- Benchmark: ticketing-app-benchmark.md (7 apps) -> IMPLEMENTATION_BACKLOG Phase F (14 items)
- Stitch: 23 generated screens saved (mobile 10, admin 6, web core 5, ticket 2)
- mobile/: Expo scaffold (SDK 51, expo-router, secure store JWT)
- frontend: SCR-13~17 QA fixes, icons.tsx, kintexEvents, V10 seed migration
- ci/: KINTEX CI logo assets

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 23:31:45 +09:00
zio
4cee6c1f66 feat(frontend): 신규 5화면 SCR-13~17 — 경영분석·현장운영·전시일정·관리자·스타일가이드
- design.md v1.3: SCR-13~17 매핑·상세 스펙 순증 (기존 SCR-01~12 무수정)
- React 이식 5화면 + Recharts 도입 + chartColors(§1 토큰)·shared.css 공통 프리미티브
- App.tsx 라우트 5종 + AppShell NavLink 배선 (신규 4항목, /_styleguide 네비 비노출)
- QA: tsc 위양성 교정(tsconfig.app 기준)·미사용 import 제거 → tsc/vite build EXIT 0
- reviewer: 배포 가능(Critical/Major 0) — Minor 티켓 BACKLOG 등재, R15-01 홀 필터 배선 즉시 수정
- docs: UNDEVELOPED_BACKLOG.md 신설(세션 미개발 통합) + WORK_STATUS 갱신
- stitch: 재취득 4화면 + component_guide 2종 + _icons 7종

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 21:56:28 +09:00
zio
e41553ba59 feat(frontend): Stitch 디자인 전면 반영 + 로그인 인증 UI
- Booth Design Studio(SCR-06) Stitch 정합 + 4샷 그리드·Before/After
- 신규 8화면(참가업체홈·배치안비교·유틸신청·규정리포트·승인큐·검수상세 + 모바일 M1/M2) + App 라우트
- 로그인 인증 UI(회원가입·비번찾기/초기화·아이디기억·비번강도) + 번들 이미지 25장(워터마크 상시)
- 로컬 rollup win32 크래시로 vite는 서버빌드 신뢰(tsc 통과·에이전트 vite EXIT 0 확인)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-11 20:51:34 +09:00
zio
7c830ddea0 feat(auth): 공개 인증 엔드포인트 — 회원가입·비밀번호 찾기/초기화 + V9
- POST /api/auth/register(BCrypt·중복 EMAIL_TAKEN·초대코드 best-effort event_member)
- POST /api/auth/password/forgot(사용자 열거 방지·항상 200·OTP 해시 저장 10분 1회성)
- POST /api/auth/password/reset(코드 검증·시도제한·비번 갱신·잠금 리셋)
- V9: password_reset 테이블 + app_user.company_name(V1~V8 불변·멱등)
- SecurityConfig permitAll 3경로, 비번/코드/해시/스택트레이스 미노출. 기존 auth/2FA/M2~M5 불변

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-11 20:23:54 +09:00
zio
4e9ec42444 fix(login): 좌측 히어로 이미지 + KINTEX CI 로고 반영 + Stitch 14화면 재취득
- 로그인 좌측 브랜드 패널: Stitch 디자인의 전시홀 히어로 이미지(public/brand/login-hero.jpg) + 블루/하단 그라디언트 오버레이(가독성) — '이미지 없어 썰렁' 해소
- 우측 로그인 카드 로고: KINTEX CI 워드마크(ci/CI_JPG → public/brand/kintex-wordmark.jpg)
- Stitch 프로젝트(9385904003821333054) 14화면 code.html 최신 재취득(screen.png는 gitignore)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-11 20:08:59 +09:00
zio
63386b62aa fix(devops): 백엔드 미배포 근본수정 — deploy_kintex.sh 단일 빌드 진실원 + SIGPIPE 검증 버그
증상: push 후 프론트만 배포, 백엔드 jar 스테일(V6 고정, V7/V8 미적용).
근본원인 3종:
1) deploy_kintex.sh가 백엔드 빌드 안 함(복사만) → 이제 프론트+백엔드 직접 빌드(단일 진실원)
2) gradlew mode 100644(비실행) → git +x(100755) + sh ./gradlew(실행권한 불요)
3) jar 검증 'unzip -l | grep -q'가 set -o pipefail 하에서 grep 조기종료→unzip SIGPIPE(141)
   →메인클래스 발견에도 오탐 실패→die→jar 미복사. → grep -q 제거(전량 소비) + 선택 tail(파이프 조기종료 회피)

- deploy_server kintex 블록: npm/gradle/verify 개별단계 제거 → git pull → deploy_kintex.sh(빌드+배포) → health
- Jenkinsfile: 동일 스크립트 위임(경로 함정 회피, WORKSPACE 일치)
- 서버 /opt/zioinfo/deploy_server.py 반영·재시작 완료(백업)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-11 19:44:30 +09:00
zio
89d59d3093 feat(phase-b): WISE 공통/시스템관리 레이어 + 2FA/OTP + MDI 셸 표준
공통레이어(PLANNING §5B, WISE/UIWS 이식):
- 인증강화 2FA: TotpService(RFC6238)·OTP 등록/검증/초기화·로그인 실패 잠금·admin 비번 env 주입(admin123 시드 없음). 기존 JWT/RBAC 무수정, security 패키지 레이어만 추가
- 시스템관리: 사용자·역할/권한·공통코드·메뉴·시스템설정·감사(@Audited AOP). SystemAccessGuard(전역 ADMIN/홀매니저) — EventAccessGuard와 직교 이중 RBAC
- 공통 업무기능: worklog·schedule·message·notice·opinion·meeting·report·notification(단일 채널)·stats·search
- 스키마 V7(시스템관리·보안)·V8(공통 업무모듈) 멱등, V1~V6 불변

design.md v1.2: MDI 셸 표준 §2.7(탭바·다중문서·상태보존·세션복원·단축키·역할별)
CLAUDE.md: G1·G2 게이트 해소 반영

backend gradlew build·frontend tsc EXIT 0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-11 19:23:02 +09:00
zio
a963c69141 feat(impl): M2~M5 배선(501→200) + 프론트 화면 4종
backend: M2 배치/규정검증(PostGIS)·M3 설계·M4 배선/견적·M5 RenderJob + 인증(login/workspaces/accept-invite) 매퍼 배선으로 501 해소. M2 자동배치 3안 생성→선택/병합→규정 재검증. 계약 확장(Violation 좌표·LayoutDto.hall·AutoLayoutOption.booths, additive NON_NULL). 신규 HallMapper·UtilityOrderMapper(기존 테이블). gradlew build 통과.

frontend: SCR-02 대시보드·SCR-06 설계스튜디오(4샷+Before/After)·SCR-07 배선뷰(적/청/녹)·SCR-12 갤러리 + CompareSlider(reroomai)·WiringCanvas. tsc/vite build EXIT 0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-11 18:37:26 +09:00
zio
eccbeb1337 feat(v2.0): Phase A 아키텍처 + WISE 개발문서 + PM/PMO + DB 계층 + 프론트 착수
- 거버넌스: kintex-pm·dev-pm·pmo 에이전트
- Phase A 아키텍처 5종: docs/architecture/{app,system,tech,data,network}.md (성문화·NFR·SRID0 공간표준·M16 스타스키마·보안영역)
- WISE(UIWS) 참조 개발문서 6종: README·DEVELOPMENT_GUIDE·ENV_SETUP·COMMON_CODES·API_GUIDE·BUILD_DEPLOY
- DB 계층: PostGIS 스키마 V1~V6(홀·트렌치 가정그리드·GiST) + MyBatis 매퍼 5종(ST_* 공간쿼리) + Flyway. gradlew build SUCCESS
- 프론트 착수: React/Vite 스캐폴드 + design.md 토큰 + SCR-01 로그인·SCR-03 부스 에디터. tsc/vite build EXIT 0
- R-T1 수정: 나노바나나 워커 큐키 kintex:renderjob:queue 통일(백엔드 정합, silent no-op 방지)
- 도메인/게이트: G2 해소(dev kintex.zioinfo.kr·prod kintex.wise.ai.kr), CLAUDE.md 로스터 20종

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-11 18:10:01 +09:00
zio
9987d958db feat(v2.0): 자동전시시스템 하네스 재구성 + PLANNING v2.0 + 백엔드 스캐폴드 + 평면도 자산
PLANNING v2.0: 자동전시시스템 재정의, 6역할 웹/모바일 분리, 도메인 M10~M18(옥션 M15·관람객 M10·마케팅/공개사이트 M12·BI M16(운영사 ROI 포함)·CMS M17·관리자 M18), WISE/UIWS 공통·시스템관리 레이어 §5B(2FA OTP), 옥션/견적서/역경매, M2/M3 3안 생성→선택/병합. design.md v1.1(Stitch 정합·SCR 매핑).

하네스 재구성: 전문 에이전트 17종(아키텍트 AA·SA·TA·DA·NA / 공통 common-dev / 코어 backend·frontend·db / 도메인 bidding·visitor·cms·bi·admin / AI ai-dev·visualizer / QA·devops) + kintex-impl-orchestrator v2.0(Phase A~E) + IMPLEMENTATION_BACKLOG v2.0 + CLAUDE.md.

백엔드 스캐폴드: Spring Boot 3.2.5(com.zioinfo.kintex) + JWT/RBAC + WebSocket + 버전형 룰엔진 + M2~M5 컨트롤러(M3 사전검증·M4 견적·M5 RenderJob 실구현, 공간경로 501 대기). compileJava SUCCESS.

자산: 평면도 JPG 15장 + 매니페스트(R4 트렌치·CAD 해소). CAD 93MB·build는 gitignore.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-11 17:32:40 +09:00