diff --git a/docs/00-overview/agents.md b/docs/00-overview/agents.md index 19341dd..bd4af04 100644 --- a/docs/00-overview/agents.md +++ b/docs/00-overview/agents.md @@ -1,4 +1,5 @@ --- +description: 'AI 에이전트가 회사 맞춤 오픈소스 산출물을 자동 생성합니다. 에이전트와 챕터, 산출물 매핑을 한눈에 봅니다.' 작성일: 2026-06-05 버전: 1.0 충족 체크리스트: diff --git a/docs/00-overview/index.md b/docs/00-overview/index.md index 9c9907a..33bba50 100644 --- a/docs/00-overview/index.md +++ b/docs/00-overview/index.md @@ -1,4 +1,5 @@ --- +description: 'ISO/IEC 5230과 18974 기반 기업 오픈소스 관리 체계를 AI 에이전트로 단계별 구축하고 자체 인증까지 도달하는 전체 여정 개요.' 작성일: 2026-03-20 버전: 1.0 충족 체크리스트: @@ -14,7 +15,7 @@ slug: / 관리 체계 없이 이 책임을 지다 보면 문제가 생긴다. GPL 라이선스를 놓쳐 제품 배포가 중단되거나, Log4Shell처럼 SBOM 없이는 영향 범위 파악조차 못하는 사고를 겪거나, EU Cyber Resilience Act·미국 EO 14028 같은 규제 대응에서 고객사에 SBOM을 제출하지 못하는 상황이 발생합니다. -이 키트는 **오픈소스 관리 경험이 없는 담당자**가 체계를 처음부터 끝까지 구축할 수 있도록 설계되었다. Claude Code Agent가 회사 상황을 직접 물어보며 정책, 조직, 프로세스, SBOM, 교육, 인증 산출물을 자동으로 만들어 준다. ISO/IEC 5230(라이선스 컴플라이언스)과 ISO/IEC 18974(보안 보증), 두 표준의 공통 기반을 한 번에 구축해 중복 작업을 40% 줄인다. +이 키트는 **오픈소스 관리 경험이 없는 담당자**가 체계를 처음부터 끝까지 구축할 수 있도록 설계되었다. Claude Code Agent가 회사 상황을 직접 물어보며 정책, 조직, 프로세스, SBOM, 교육, 인증 산출물을 자동으로 만들어 준다. ISO/IEC 5230(라이선스 컴플라이언스)과 ISO/IEC 18974(보안 보증), 두 표준의 공통 기반을 한 번에 구축해 중복 작업을 40% 줄인다. --- diff --git a/docs/00-overview/quick-start.md b/docs/00-overview/quick-start.md index 0ffa3ad..5c30ed1 100644 --- a/docs/00-overview/quick-start.md +++ b/docs/00-overview/quick-start.md @@ -1,4 +1,5 @@ --- +description: '5분 만에 시작하는 기업 오픈소스 관리. 무설치 데모로 결과를 먼저 보고 AI 에이전트로 첫 산출물을 만듭니다.' 작성일: 2026-06-05 버전: 1.0 충족 체크리스트: @@ -16,7 +17,7 @@ TrustedOSS는 AI 에이전트로 OpenChain 2026(ISO/IEC 5230·18974) 기업 오 ## 언제 쓰나요 - 기업 오픈소스 관리를 처음 맡아 무엇부터 할지 막막할 때 -- 자체 인증에 필요한 정책, 프로세스, SBOM 등 산출물을 빠르게 만들어야 할 때 +- 자체 인증에 필요한 정책, 프로세스, SBOM 등 산출물을 빠르게 만들어야 할 때 - 만든 정책을 CI 파이프라인과 AI 코딩 도구에 자동으로 적용하고 싶을 때 ## 지금 해보기 diff --git a/docs/00-overview/start-path.md b/docs/00-overview/start-path.md index 6ae69cb..66b57dd 100644 --- a/docs/00-overview/start-path.md +++ b/docs/00-overview/start-path.md @@ -1,4 +1,5 @@ --- +description: '목표에 맞는 시작 경로를 고릅니다. 자체 인증만, 개발팀과 함께, 이미 정책 있음 중에서 선택하세요.' 작성일: 2026-06-05 버전: 1.0 충족 체크리스트: diff --git a/docs/03-policy/index.md b/docs/03-policy/index.md index 0ba5bfb..cf9bcc0 100644 --- a/docs/03-policy/index.md +++ b/docs/03-policy/index.md @@ -1,4 +1,5 @@ --- +description: 'KWG 11절 구조의 회사 맞춤 오픈소스 정책을 AI 에이전트로 생성합니다. 라이선스 분류와 배포 방식별 의무도 함께 다룹니다.' 작성일: 2026-03-20 버전: 1.0 충족 체크리스트: diff --git a/docs/05-tools/index.md b/docs/05-tools/index.md index a81dc57..4b5be43 100644 --- a/docs/05-tools/index.md +++ b/docs/05-tools/index.md @@ -1,4 +1,5 @@ --- +description: '무료 오픈소스 도구로 SBOM을 만들고 취약점에 대응합니다. syft, grype, OSV 실습 통합 인덱스.' 작성일: 2026-06-05 버전: 1.0 충족 체크리스트: diff --git a/website/docusaurus.config.ts b/website/docusaurus.config.ts index d7722af..f343cca 100644 --- a/website/docusaurus.config.ts +++ b/website/docusaurus.config.ts @@ -309,6 +309,10 @@ const config: Config = { label: 'GitHub', href: 'https://github.com/trustedoss', }, + { + label: '기여 가이드', + href: 'https://github.com/trustedoss/trustedoss.github.io/blob/main/CONTRIBUTING.md', + }, ], }, { diff --git a/website/reference/intro.md b/website/reference/intro.md index d64c84f..233eb77 100644 --- a/website/reference/intro.md +++ b/website/reference/intro.md @@ -2,6 +2,7 @@ id: intro title: 레퍼런스 slug: intro +description: '산출물 Best Practice, 정본 개념 페이지(라이선스 분류, 취약점 대응 기한), 용어집, 에이전트 선택 가이드를 모은 레퍼런스.' --- # 레퍼런스 diff --git a/website/src/components/Term/index.tsx b/website/src/components/Term/index.tsx new file mode 100644 index 0000000..9eb7b03 --- /dev/null +++ b/website/src/components/Term/index.tsx @@ -0,0 +1,36 @@ +/** + * trustedoss Term — 용어 호버/포커스 툴팁 + * 사용: SBOM 또는 용어 + * 초심자가 본문에서 약어 위에 마우스를 올리거나 포커스하면 풀이가 뜬다. + * CC BY 4.0 · OpenChain KWG · haksungjang + */ + +import React from 'react'; +import {GLOSSARY} from '@site/src/data/glossary'; + +import styles from './styles.module.css'; + +function Term({ + k, + def, + children, +}: { + k?: string; + def?: string; + children: React.ReactNode; +}) { + const text = def ?? (k ? GLOSSARY[k] : undefined); + if (!text) { + return <>{children}; + } + return ( + + {children} + + {text} + + + ); +} + +export default Term; diff --git a/website/src/components/Term/styles.module.css b/website/src/components/Term/styles.module.css new file mode 100644 index 0000000..ce17196 --- /dev/null +++ b/website/src/components/Term/styles.module.css @@ -0,0 +1,60 @@ +/** + * trustedoss Term styles — 점선 밑줄 + 호버/포커스 툴팁 (중립 토큰) + */ + +.term { + position: relative; + border-bottom: 1px dotted var(--ifm-color-emphasis-500); + cursor: help; + outline: none; +} + +.tip { + position: absolute; + left: 50%; + bottom: calc(100% + 8px); + transform: translateX(-50%) translateY(4px); + z-index: 30; + width: max-content; + max-width: 280px; + padding: 0.55rem 0.7rem; + border-radius: 8px; + border: 1px solid var(--ifm-color-emphasis-300); + background: var(--ifm-background-surface-color, var(--ifm-background-color)); + color: var(--ifm-font-color-base); + font-size: 0.8rem; + font-weight: 400; + line-height: 1.5; + text-align: left; + white-space: normal; + box-shadow: 0 8px 24px -8px rgba(0, 0, 0, 0.3); + opacity: 0; + visibility: hidden; + transition: + opacity 0.14s ease, + transform 0.14s ease; +} + +.tip::after { + content: ""; + position: absolute; + top: 100%; + left: 50%; + transform: translateX(-50%); + border: 6px solid transparent; + border-top-color: var(--ifm-color-emphasis-300); +} + +.term:hover .tip, +.term:focus-visible .tip, +.term:focus .tip { + opacity: 1; + visibility: visible; + transform: translateX(-50%) translateY(0); +} + +@media (max-width: 480px) { + .tip { + max-width: 220px; + } +} diff --git a/website/src/data/glossary.ts b/website/src/data/glossary.ts new file mode 100644 index 0000000..9e6d7de --- /dev/null +++ b/website/src/data/glossary.ts @@ -0,0 +1,21 @@ +/** + * 용어 호버 툴팁용 정의 맵 — 용어집(reference/glossary)의 핵심 항목과 동기화. + * SBOM 형태로 본문에서 사용한다. + */ + +export const GLOSSARY: Record = { + sbom: '소프트웨어 부품 명세서 — 제품에 들어간 모든 오픈소스 구성요소와 버전·라이선스 목록.', + spdx: 'SBOM·라이선스 표준 포맷 (Linux Foundation).', + cyclonedx: 'SBOM 표준 포맷의 하나 (OWASP).', + copyleft: + '카피레프트 — 파생물도 같은 라이선스로 공개하도록 요구하는 라이선스 유형 (GPL, AGPL 등).', + permissive: + '허용적 라이선스 — 고지 위주로 제약이 적은 유형 (MIT, Apache-2.0, BSD).', + cve: '공개 취약점 식별번호 — 알려진 취약점에 부여되는 고유 번호.', + cvss: '취약점 심각도 점수 — 0~10으로 위험도를 표시.', + vex: '취약점 영향 알림 — 해당 취약점이 우리 제품에 실제 영향을 주는지 표기.', + sca: '소프트웨어 구성 분석 — 오픈소스 구성요소의 취약점·라이선스를 점검.', + openchain: '오픈소스 컴플라이언스 국제표준 프로젝트 (ISO/IEC 5230·18974).', + 'self-certification': + '외부 심사 없이 OpenChain 요구사항 충족을 스스로 선언하는 방식.', +}; diff --git a/website/src/theme/MDXComponents/index.tsx b/website/src/theme/MDXComponents/index.tsx index 38894e3..a2b6551 100644 --- a/website/src/theme/MDXComponents/index.tsx +++ b/website/src/theme/MDXComponents/index.tsx @@ -13,6 +13,7 @@ import Mermaid from '@theme/Mermaid'; import JourneyProgress from '@site/src/components/JourneyProgress'; import Prerequisite from '@site/src/components/Prerequisite'; +import Term from '@site/src/components/Term'; import type {MDXComponentsObject} from '@theme/MDXComponents'; @@ -20,6 +21,7 @@ const MDXComponents: MDXComponentsObject = { Head, JourneyProgress, Prerequisite, + Term, details: MDXDetails, // For MD mode support, see https://github.com/facebook/docusaurus/issues/9092#issuecomment-1602902274 Details: MDXDetails, code: MDXCode,