fix: resolve review feedback F1 (CCIS deliverables WG scope), F2 (4 Core Research Areas), AC-32 check, and N1-N3 cleanups
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
"use client";
|
||||
|
||||
import React, { useEffect, useState, useRef } from "react";
|
||||
import React, { useEffect, useState } from "react";
|
||||
|
||||
interface ProjectPageViewControlsProps {
|
||||
slugs: string[];
|
||||
|
||||
@@ -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() {
|
||||
</h1>
|
||||
<p className="text-ink-mute text-base sm:text-lg leading-relaxed max-w-2xl">
|
||||
AI 에이전트 네트워크 연구실(ANL)은 에이전트 엔지니어링, MCP/SKILL 아키텍처,
|
||||
멀티 에이전트 오케스트레이션, A2A/ACP 개방형 표준, gRPC/QUIC 고성능 통신 백본의
|
||||
5대 연구 기둥을 중심으로 지능형 자율 에이전트 네트워크를 연구합니다.
|
||||
멀티 에이전트 오케스트레이션, A2A/ACP 개방형 표준 및 고성능 통신 백본의
|
||||
4대 핵심 연구 분야를 중심으로 지능형 자율 에이전트 네트워크를 연구합니다.
|
||||
</p>
|
||||
|
||||
{/* Metrics Row (Derived from data array, AC-13) */}
|
||||
|
||||
@@ -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)",
|
||||
|
||||
@@ -447,10 +447,11 @@ 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"]:
|
||||
if "Configurable Car Infotainment Services" in p["name"]:
|
||||
for d in p["documents"]:
|
||||
ccis_docs.append({
|
||||
"title": d["title"],
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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():
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user