diff --git a/refer_landing_page/app/_components/ProjectPageViewControls.tsx b/refer_landing_page/app/_components/ProjectPageViewControls.tsx index df481de..f68a33a 100644 --- a/refer_landing_page/app/_components/ProjectPageViewControls.tsx +++ b/refer_landing_page/app/_components/ProjectPageViewControls.tsx @@ -1,6 +1,6 @@ "use client"; -import React, { useEffect, useState, useRef } from "react"; +import React, { useEffect, useState } from "react"; interface ProjectPageViewControlsProps { slugs: string[]; diff --git a/refer_landing_page/app/page.tsx b/refer_landing_page/app/page.tsx index 84e8fd9..ee4bfce 100644 --- a/refer_landing_page/app/page.tsx +++ b/refer_landing_page/app/page.tsx @@ -7,21 +7,9 @@ import { publications, patents } from "../content/publications"; const PILLARS = [ { no: "01", - en: "Agent Core Engineering", - ko: "AI 에이전트 3대 핵심 엔지니어링", - theme: "vermillion" as const, - topics: [ - "프롬프트 엔지니어링 (System Prompt Optimization)", - "맥락 엔지니어링 (Dynamic Context & Memory Packaging)", - "하네스 엔지니어링 (Agent Control Loop & Sandbox Isolation)", - ], - desc: "AI 에이전트의 구동 성능과 안전성을 좌우하는 프롬프트·맥락·하네스 3대 핵심 엔지니어링 기술을 연구합니다.", - }, - { - no: "02", en: "Extensibility & Protocol", ko: "AI Agent 기능 확장 프로토콜", - theme: "cobalt" as const, + theme: "vermillion" as const, topics: [ "Model Context Protocol (MCP) 서버/클라이언트 아키텍처", "SKILL 도구 캡슐화 및 재사용 패키징", @@ -30,10 +18,10 @@ const PILLARS = [ desc: "에이전트가 외부 도구 및 시스템과 표준화된 방식으로 연동할 수 있도록 MCP와 SKILL 패키징 기술을 개발합니다.", }, { - no: "03", + no: "02", en: "Multi-Agent Systems", ko: "멀티 에이전트 협업 및 오케스트레이션", - theme: "vermillion" as const, + theme: "cobalt" as const, topics: [ "HERDR 백그라운드 프로세스 컨테이너 격리 제어", "crewAI 기반 역할 분담 및 태스크 위임 체계", @@ -42,10 +30,10 @@ const PILLARS = [ desc: "다중 에이전트 환경에서 독립적인 역할 분담과 선순환 오케스트레이션을 보장하는 자율 협업 플랫폼을 연구합니다.", }, { - no: "04", + no: "03", en: "Interoperability Standards", ko: "에이전트 상호운용성 개방형 표준", - theme: "cobalt" as const, + theme: "vermillion" as const, topics: [ "Agent-to-Agent (A2A) 프로토콜 규격 정의 및 검증", "Agent Communication Protocol (ACP) 메시지 교환 규격", @@ -54,10 +42,10 @@ const PILLARS = [ desc: "서로 다른 프레임워크 기반의 에이전트 간의 상호운용성을 보장하는 국제 표준 개방형 통신 프로토콜을 구현합니다.", }, { - no: "05", + no: "04", en: "High-Performance Backbone", ko: "AIoT & 고성능 통신 백본", - theme: "vermillion" as const, + theme: "cobalt" as const, topics: [ "gRPC / QUIC 양방향 스트리밍 에이전트 백본 통신", "Protocol Buffers (Protobuf) 직렬화 통신 최적화", @@ -89,8 +77,8 @@ export default function HomePage() {
AI 에이전트 네트워크 연구실(ANL)은 에이전트 엔지니어링, MCP/SKILL 아키텍처, - 멀티 에이전트 오케스트레이션, A2A/ACP 개방형 표준, gRPC/QUIC 고성능 통신 백본의 - 5대 연구 기둥을 중심으로 지능형 자율 에이전트 네트워크를 연구합니다. + 멀티 에이전트 오케스트레이션, A2A/ACP 개방형 표준 및 고성능 통신 백본의 + 4대 핵심 연구 분야를 중심으로 지능형 자율 에이전트 네트워크를 연구합니다.
{/* Metrics Row (Derived from data array, AC-13) */} diff --git a/refer_landing_page/content/projects.ts b/refer_landing_page/content/projects.ts index e4abee0..63d5e2a 100644 --- a/refer_landing_page/content/projects.ts +++ b/refer_landing_page/content/projects.ts @@ -40,56 +40,6 @@ export const researchProjects: ResearchProject[] = [ "standardsOrg": "IEC TC100", "period": "2018 ~ Present", "deliverables": [ - { - "title": "Multimedia Systems and Equipment for Metaverse - Part 1: Genaral", - "ref": "IEC TR 63614-1 (May 2026)", - "status": "TR" - }, - { - "title": "Multimedia Systems and Equipment for Metaverse - Part 2: Classification", - "ref": "IEC TS 63614-2 (May 2026)", - "status": "TS" - }, - { - "title": "Multimedia Systems and Equipment for Metaverse - Part 3: Gap Analysis", - "ref": "IEC TR 63614-3 (March 2026)", - "status": "TR" - }, - { - "title": "Multimedia Systems and Equipment for Metaverse - Part 4: AI Use Cases", - "ref": "IEC WDTR 63614-4 (In Progress)", - "status": "InProgress" - }, - { - "title": "User's QoE for Multimedia Conference Services - Part 1: General", - "ref": "IEC TR 63478-1 (November 2023)", - "status": "TR" - }, - { - "title": "User's QoE for Multimedia Conference Services - Part 2: Requirments", - "ref": "IEC IS 63478-2 (October 2025)", - "status": "IS" - }, - { - "title": "User's QoE for Multimedia Conference Services - Part 3: Measurement Methods", - "ref": "IEC CDV 63478-3 (In Progress)", - "status": "InProgress" - }, - { - "title": "Infotainment Services for Public Vehicles (PVIS) - Part 1: General", - "ref": "IEC TR 63479-1 (November 2023)", - "status": "TR" - }, - { - "title": "Infotainment Services for Public Vehicles (PVIS) - Part 2: Requirements", - "ref": "IEC IS 63479-2 (February 2026)", - "status": "IS" - }, - { - "title": "Infotainment Services for Public Vehicles (PVIS) - Part 3: Framework", - "ref": "IEC IS 63479-3 (January 2026)", - "status": "IS" - }, { "title": "Configurable Car Infotainment Services (CCIS) - Part 1: General", "ref": "IEC 63246-1 (August 2021)", diff --git a/refer_landing_page/scripts/extract/generate_all.py b/refer_landing_page/scripts/extract/generate_all.py index e5ae727..3dbfa6b 100644 --- a/refer_landing_page/scripts/extract/generate_all.py +++ b/refer_landing_page/scripts/extract/generate_all.py @@ -447,16 +447,17 @@ def parse_projects(): bodies = parse_standards() body_map = {b["org"]: b for b in bodies} - # Extract deliverables for CCIS (IEC TC100) + # Extract deliverables for CCIS (IEC TC100 - Configurable Car Infotainment Services WG) ccis_docs = [] if "IEC TC100" in body_map: for p in body_map["IEC TC100"]["projects"]: - for d in p["documents"]: - ccis_docs.append({ - "title": d["title"], - "ref": d["ref"], - "status": d["status"] - }) + if "Configurable Car Infotainment Services" in p["name"]: + for d in p["documents"]: + ccis_docs.append({ + "title": d["title"], + "ref": d["ref"], + "status": d["status"] + }) # Extract deliverables for VLC-IoT (ITU-T SG20) vlc_docs = [] diff --git a/refer_landing_page/scripts/extract/verify_counts.py b/refer_landing_page/scripts/extract/verify_counts.py index 156df24..78e3d1c 100644 --- a/refer_landing_page/scripts/extract/verify_counts.py +++ b/refer_landing_page/scripts/extract/verify_counts.py @@ -42,13 +42,18 @@ def verify(): if len(projects) != 3: errors.append(f"Research Projects count mismatch: got {len(projects)}, expected 3") - # AC-30: Keyword Substring Verification (Ensures zero hallucinated/created keywords) + # AC-30: Keyword Substring Verification & AC-32 Deliverable WG Attribution for proj in projects: abstract = proj.get("abstract", "") for kw in proj.get("keywords", []): if kw not in abstract: errors.append(f"AC-30 Keyword Violation in project '{proj.get('slug')}': keyword '{kw}' not in abstract") + if proj["slug"] == "ccis": + for d in proj.get("deliverables", []): + if "63246" not in d["ref"]: + errors.append(f"AC-32 Violation: CCIS project deliverable '{d['ref']}' does not belong to CCIS WG (IEC 63246)") + # 1. Count checks if len(active_m) != 16: errors.append(f"Active Members count mismatch: got {len(active_m)}, expected 16") diff --git a/refer_landing_page/scripts/run_e2e_tests.py b/refer_landing_page/scripts/run_e2e_tests.py index c6ab95a..1b4f2cd 100755 --- a/refer_landing_page/scripts/run_e2e_tests.py +++ b/refer_landing_page/scripts/run_e2e_tests.py @@ -33,6 +33,7 @@ EXPECTED_SSG_ROUTES = [ os.path.join(".next", "server", "app", "_not-found.html"), os.path.join(".next", "server", "app", "robots.txt.body"), os.path.join(".next", "server", "app", "sitemap.xml.body"), + os.path.join(".next", "server", "pages", "404.html"), ] def run_cmd(cmd, cwd=REFER_DIR): @@ -154,7 +155,7 @@ def test_unittest_suite(): if res.returncode != 0: print(f"❌ Unittest suite failed:\n{res.stdout}\n{res.stderr}") return False - print("✅ Gate 7 PASSED: All 6 DOM & static HTML content assertion tests passed") + print("✅ Gate 7 PASSED: All 7 DOM & static HTML content assertion tests passed") return True def test_layout_architecture(): diff --git a/refer_landing_page/tests/e2e_test_suite.py b/refer_landing_page/tests/e2e_test_suite.py index 713bbaf..ab4637d 100644 --- a/refer_landing_page/tests/e2e_test_suite.py +++ b/refer_landing_page/tests/e2e_test_suite.py @@ -105,7 +105,7 @@ class TestANLHomepageE2E(unittest.TestCase): # 2. Key Deliverables references (Top visible items) self.assertIn("ISO/IEC TR 30189-1", html) - self.assertIn("IEC TR 63614-1", html) + self.assertIn("IEC 63246-1", html) self.assertIn("ITU-T Recommendation Y.4465", html) # 3. Assert zero placeholder Funder labels (AC-31)