From 0aa529ddc76f8af3b9293023dbd4eeb59d9e2964 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Mon, 3 Aug 2026 12:05:30 +0900 Subject: [PATCH 1/4] docs(profile): refresh buyer-facing product catalog --- profile/README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/profile/README.md b/profile/README.md index 80b18f88c..0f717cf4d 100644 --- a/profile/README.md +++ b/profile/README.md @@ -48,15 +48,17 @@ Naruon is the product experiment that starts in email. An inbox is not just a me ## Public Projects -These repositories are public product and tool repositories that are not forks. +These repositories are public product and tool repositories that are not forks. Each project is intended to remain useful on its own, while reusable engines keep stable module boundaries for integration into larger Contextual Wisdom Lab systems. - **[naruon](https://github.com/ContextualWisdomLab/naruon)**: 메일, 첨부, 일정, 작업을 맥락으로 묶어 판단과 실행으로 연결하는 AI 이메일 워크스페이스입니다. +- **[appguardrail](https://github.com/ContextualWisdomLab/appguardrail)**: AI로 개발되는 애플리케이션의 취약점 탐지, 증거 보존, 수정 검증을 연결하는 보안 가드레일입니다. +- **[RankWeave](https://github.com/ContextualWisdomLab/RankWeave)**: lexical, dense, learned-sparse 등 여러 검색 채널의 점수와 순위를 저장소 독립적으로 결합하는 하이브리드 검색 융합 엔진입니다. +- **[fast-mlsirm](https://github.com/ContextualWisdomLab/fast-mlsirm)**: 다차원 잠재공간 문항반응모형의 시뮬레이션, 추정, 모형 진단과 평가를 위한 고성능 도구 모음입니다. - **[pg-erd-cloud](https://github.com/ContextualWisdomLab/pg-erd-cloud)**: PostgreSQL 스키마를 리버스 엔지니어링하고 ERD와 DDL 공유 흐름으로 관리하는 클라우드 MVP입니다. - **[bandscope](https://github.com/ContextualWisdomLab/bandscope)**: 곡을 섹션, 역할, 템포, 연습 우선순위로 분석하는 로컬 우선 리허설 앱입니다. - **[codec-carver](https://github.com/ContextualWisdomLab/codec-carver)**: 긴 녹음을 메타데이터를 보존한 FLAC/Opus 조각으로 변환하는 Python CLI입니다. - **[newsdom-api](https://github.com/ContextualWisdomLab/newsdom-api)**: 스캔된 일본어 신문 PDF를 기사, 제목, 본문, 이미지 구조의 DOM형 JSON으로 파싱하는 API입니다. - **[scopeweave](https://github.com/ContextualWisdomLab/scopeweave)**: 트리 편집, 진행률 계산, CSV/JSON, 주간 Gantt를 지원하는 정적 HTML/CSS/JS WBS 플래너입니다. -- **[VibeSec](https://github.com/ContextualWisdomLab/VibeSec)**: 바이브코딩 앱을 위한 보안 가드레일입니다. AI 개발 도구 규칙, 정적 점검, 리뷰와 수정 프롬프트를 다룹니다. ## Forked Projects From 733be8885de76cae607e29fefce24f7fe37513bb Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Mon, 3 Aug 2026 12:28:10 +0900 Subject: [PATCH 2/4] test(profile): prevent buyer-facing catalog drift --- tests/test_profile_product_catalog.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 tests/test_profile_product_catalog.py diff --git a/tests/test_profile_product_catalog.py b/tests/test_profile_product_catalog.py new file mode 100644 index 000000000..bcfd764c4 --- /dev/null +++ b/tests/test_profile_product_catalog.py @@ -0,0 +1,25 @@ +"""Contract tests for the buyer-facing organization product catalog.""" + +from pathlib import Path + + +PROFILE = Path("profile/README.md") + + +def test_profile_uses_current_product_names_and_repositories() -> None: + """Keep the public catalog aligned with active product identities.""" + profile = PROFILE.read_text(encoding="utf-8") + + assert "VibeSec" not in profile + assert "ContextualWisdomLab/appguardrail" in profile + assert "ContextualWisdomLab/RankWeave" in profile + assert "ContextualWisdomLab/fast-mlsirm" in profile + + +def test_profile_states_standalone_and_module_integration_contract() -> None: + """Expose the portfolio's standalone-product and reusable-module posture.""" + profile = PROFILE.read_text(encoding="utf-8") + + assert "useful on its own" in profile + assert "stable module boundaries" in profile + assert "integration into larger Contextual Wisdom Lab systems" in profile From 60ee7027c793336f0516647796ea1405e6360e22 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 02:06:23 +0900 Subject: [PATCH 3/4] chore(ci): retrigger current-head review after coverage repair From dc1d284eada4abf9fc0a6b23c04628b15421572f Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 02:14:41 +0900 Subject: [PATCH 4/4] test(profile): scope product catalog assertions to public projects --- tests/test_profile_product_catalog.py | 34 ++++++++++++++++++++------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/tests/test_profile_product_catalog.py b/tests/test_profile_product_catalog.py index bcfd764c4..a9f4b6a87 100644 --- a/tests/test_profile_product_catalog.py +++ b/tests/test_profile_product_catalog.py @@ -3,23 +3,39 @@ from pathlib import Path -PROFILE = Path("profile/README.md") +PROFILE = Path(__file__).resolve().parents[1] / "profile" / "README.md" + + +def public_projects_section(profile: str) -> str: + """Return the bounded public-projects section from the organization profile.""" + return profile.split("## Public Projects", 1)[1].split("## Forked Projects", 1)[0] def test_profile_uses_current_product_names_and_repositories() -> None: """Keep the public catalog aligned with active product identities.""" profile = PROFILE.read_text(encoding="utf-8") - - assert "VibeSec" not in profile - assert "ContextualWisdomLab/appguardrail" in profile - assert "ContextualWisdomLab/RankWeave" in profile - assert "ContextualWisdomLab/fast-mlsirm" in profile + public_projects = public_projects_section(profile) + + assert "VibeSec" not in public_projects + assert ( + "- **[appguardrail](https://github.com/ContextualWisdomLab/appguardrail)**" + in public_projects + ) + assert ( + "- **[RankWeave](https://github.com/ContextualWisdomLab/RankWeave)**" + in public_projects + ) + assert ( + "- **[fast-mlsirm](https://github.com/ContextualWisdomLab/fast-mlsirm)**" + in public_projects + ) def test_profile_states_standalone_and_module_integration_contract() -> None: """Expose the portfolio's standalone-product and reusable-module posture.""" profile = PROFILE.read_text(encoding="utf-8") + public_projects = public_projects_section(profile) - assert "useful on its own" in profile - assert "stable module boundaries" in profile - assert "integration into larger Contextual Wisdom Lab systems" in profile + assert "useful on its own" in public_projects + assert "stable module boundaries" in public_projects + assert "integration into larger Contextual Wisdom Lab systems" in public_projects