From 7c11d11be833114405a4d1de5a1d63545c7ea2e5 Mon Sep 17 00:00:00 2001 From: Haksung Jang Date: Thu, 4 Jun 2026 17:27:35 +0900 Subject: [PATCH 1/8] =?UTF-8?q?docs(samples):=203=EA=B0=9C=20README=20?= =?UTF-8?q?=ED=95=99=EC=8A=B5=20=EB=A9=94=ED=83=80=20=EB=B8=94=EB=A1=9D=20?= =?UTF-8?q?+=20samples=20=EC=9D=B8=EB=8D=B1=EC=8A=A4=20=EC=8B=A0=EC=84=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 3 실습환경 — 처음 담당자가 각 샘플의 목적·소요·난이도·선행조건을 진입 즉시 파악하도록 정비. - samples/{java-vulnerable,python-mixed-license,nodejs-unlicensed}/README.md 상단에 메타 표 추가(학습 목표·예상 시간·난이도·선행 조건·관련 챕터) - samples/README.md 인덱스 신설: 3개 샘플 비교 표 + 공통 선행 조건 (Docker 없을 때 경로 포함) + 사용 방법 3단계 - 난이도: java/python 입문, nodejs 중급(npm install 선행 필요) verify.sh 12/12 PASS, ko-style 0건. Co-Authored-By: Claude Opus 4.8 (1M context) --- samples/README.md | 23 +++++++++++++++++++ samples/java-vulnerable/README.md | 14 ++++++++++-- samples/nodejs-unlicensed/README.md | 21 ++++++++++++----- samples/python-mixed-license/README.md | 31 +++++++++++++++++--------- 4 files changed, 72 insertions(+), 17 deletions(-) create mode 100644 samples/README.md diff --git a/samples/README.md b/samples/README.md new file mode 100644 index 0000000..27abc6f --- /dev/null +++ b/samples/README.md @@ -0,0 +1,23 @@ +# 실습 샘플 프로젝트 + +trustedoss 가이드 [챕터 05 — 도구 실습](../docs/05-tools/sbom-generation/index.md)에서 분석 대상으로 사용하는 샘플 3개입니다. 각 샘플에는 학습을 위한 결함(취약점·라이선스 리스크)을 의도적으로 심어 두었습니다. SBOM 생성과 라이선스·취약점 분석 실습의 입력이 됩니다. + +| 샘플 | 언어 | 학습 포인트 | 난이도 | 예상 시간 | +| ----------------------------------------------- | ------------- | ---------------------------------------------- | ------ | --------- | +| [java-vulnerable](./java-vulnerable/) | Java (Maven) | Log4Shell(CVE-2021-44228) Critical 취약점 탐지 | 입문 | 약 20분 | +| [python-mixed-license](./python-mixed-license/) | Python (pip) | GPL + Permissive 혼재 Copyleft 리스크 | 입문 | 약 20분 | +| [nodejs-unlicensed](./nodejs-unlicensed/) | Node.js (npm) | 라이선스 미명시(UNLICENSED) 패키지 처리 | 중급 | 약 25분 | + +## 공통 선행 조건 + +- **Docker Desktop 실행** (`docker ps`가 오류 없이 동작). 설치하지 않았다면 [챕터 05](../docs/05-tools/sbom-generation/index.md)의 "Docker 없이 진행하는 경우" 경로로 미리 만든 샘플 SBOM을 사용할 수 있습니다. +- 처음이라면 **java-vulnerable**부터 권장합니다. 취약점 탐지 결과가 가장 직관적입니다. +- nodejs-unlicensed는 SBOM 생성 전 `npm install`이 필요합니다. + +## 사용 방법 + +1. [챕터 05 — SBOM 생성](../docs/05-tools/sbom-generation/index.md)을 진행하며 분석 대상으로 샘플 경로를 선택합니다. +2. 각 샘플 README의 "SBOM 생성 명령어"를 실행해 `output/sbom/`에 SBOM을 만듭니다. +3. 라이선스·취약점 분석 agent로 결과(Copyleft 리스크, CVE)를 확인합니다. + +각 샘플의 상세한 학습 목표·예상 결과·실제 조치 방법은 해당 폴더의 README를 참고하세요. diff --git a/samples/java-vulnerable/README.md b/samples/java-vulnerable/README.md index 1803b64..b84d2ae 100644 --- a/samples/java-vulnerable/README.md +++ b/samples/java-vulnerable/README.md @@ -1,5 +1,13 @@ # java-vulnerable — Log4Shell 취약점 탐지 실습 +| 항목 | 내용 | +| --------- | ------------------------------------------------------------------------------------ | +| 학습 목표 | SBOM·취약점 분석 도구가 Critical 취약점(Log4Shell)을 어떻게 탐지하는지 확인 | +| 예상 시간 | 약 20분 | +| 난이도 | 입문 | +| 선행 조건 | Docker Desktop 실행 (없으면 docs 05 챕터의 "Docker 없이 진행" 경로로 샘플 SBOM 사용) | +| 관련 챕터 | 05 SBOM 생성, 취약점 분석 | + ## 실습 목적 이 샘플 프로젝트는 **Log4Shell 취약점 (CVE-2021-44228) 탐지 실습용**입니다. @@ -7,8 +15,8 @@ SBOM 생성 도구와 취약점 분석 도구가 어떻게 Critical 취약점을 ## 의도적으로 포함된 취약점 -| CVE | 컴포넌트 | 버전 | CVSS | 심각도 | -|-----|---------|------|------|--------| +| CVE | 컴포넌트 | 버전 | CVSS | 심각도 | +| -------------- | ---------- | ------ | ---- | -------- | | CVE-2021-44228 | log4j-core | 2.14.1 | 10.0 | Critical | **Log4Shell 취약점이란?** @@ -18,9 +26,11 @@ Apache Log4j 2의 JNDI 조회 기능을 악용하여 원격 코드 실행(RCE) ## 예상 실습 결과 ### SBOM 생성 시 + - `log4j-core 2.14.1` 컴포넌트 탐지 ### 취약점 분석 시 + - **CVE-2021-44228 Critical 탐지** - 즉시 조치 권고 (2.15.0 이상으로 업그레이드) diff --git a/samples/nodejs-unlicensed/README.md b/samples/nodejs-unlicensed/README.md index f674b5d..52c4c7d 100644 --- a/samples/nodejs-unlicensed/README.md +++ b/samples/nodejs-unlicensed/README.md @@ -1,5 +1,13 @@ # nodejs-unlicensed — 라이선스 미명시 패키지 리스크 시연 +| 항목 | 내용 | +| --------- | ----------------------------------------------------------------- | +| 학습 목표 | 라이선스 미명시(UNLICENSED/NOASSERTION) 패키지의 법적 리스크 처리 | +| 예상 시간 | 약 25분 (npm install 포함) | +| 난이도 | 중급 | +| 선행 조건 | Docker Desktop 실행, Node.js·npm 설치(npm install 필요) | +| 관련 챕터 | 05 SBOM 생성·라이선스 분석, 03 정책(license-allowlist) | + ## 실습 목적 이 샘플은 **라이선스가 명시되지 않은 패키지를 포함**할 때의 @@ -7,11 +15,11 @@ ## 포함된 패키지 현황 -| 패키지 | 버전 | 라이선스 | 상태 | -|--------|------|---------|------| -| express | ^4.18.2 | MIT | 명확 — 상업적 사용 가능 | -| lodash | ^4.17.21 | MIT | 명확 — 상업적 사용 가능 | -| nightmare | ^3.0.2 | UNLICENSED | **위험 — 사용 권한 불명확** | +| 패키지 | 버전 | 라이선스 | 상태 | +| --------- | -------- | ---------- | --------------------------- | +| express | ^4.18.2 | MIT | 명확 — 상업적 사용 가능 | +| lodash | ^4.17.21 | MIT | 명확 — 상업적 사용 가능 | +| nightmare | ^3.0.2 | UNLICENSED | **위험 — 사용 권한 불명확** | > **참고:** 이 프로젝트(package.json) 자체에도 license 필드가 없습니다. > SBOM 생성 시 NOASSERTION으로 표시됩니다. @@ -19,10 +27,12 @@ ## 예상 실습 결과 ### SBOM 생성 시 + - `nightmare` 패키지의 라이선스 필드: `UNLICENSED` 또는 `NOASSERTION` - 프로젝트 자체 라이선스: `NOASSERTION` ### 라이선스 분석 시 + - **라이선스 확인 필요 항목 표시** - 상업적 사용 위험 표시 @@ -38,6 +48,7 @@ ## 실제 조치 방법 1. **패키지 저장소(GitHub)에서 라이선스 직접 확인** + ```bash # npm 패키지 라이선스 정보 확인 npm view nightmare license diff --git a/samples/python-mixed-license/README.md b/samples/python-mixed-license/README.md index df6d19f..22d454a 100644 --- a/samples/python-mixed-license/README.md +++ b/samples/python-mixed-license/README.md @@ -1,5 +1,13 @@ # python-mixed-license — GPL + Permissive 라이선스 혼재 시연 +| 항목 | 내용 | +| --------- | ------------------------------------------------------------------------ | +| 학습 목표 | GPL과 Permissive 라이선스가 혼재할 때의 Copyleft 리스크를 식별 | +| 예상 시간 | 약 20분 | +| 난이도 | 입문 | +| 선행 조건 | Docker Desktop 실행 (없으면 docs 05 챕터의 "Docker 없이 진행" 경로 사용) | +| 관련 챕터 | 05 SBOM 생성·라이선스 분석, 03 정책(license-allowlist) | + ## 실습 목적 이 샘플은 **GPL 라이선스와 Permissive 라이선스가 혼재**할 때 발생하는 @@ -7,19 +15,21 @@ ## 포함된 라이선스 현황 -| 패키지 | 버전 | 라이선스 | 배포 시 의무사항 | -|--------|------|---------|----------------| -| PyYAML | 6.0.1 | MIT | 저작권 고지 | -| requests | 2.31.0 | Apache-2.0 | 저작권 고지, NOTICE 파일 | -| celery | 5.3.4 | BSD | 저작권 고지 | -| mysql-connector-python | 8.1.0 | GPL-2.0 | **소스코드 공개 의무** | +| 패키지 | 버전 | 라이선스 | 배포 시 의무사항 | +| ---------------------- | ------ | ---------- | ------------------------ | +| PyYAML | 6.0.1 | MIT | 저작권 고지 | +| requests | 2.31.0 | Apache-2.0 | 저작권 고지, NOTICE 파일 | +| celery | 5.3.4 | BSD | 저작권 고지 | +| mysql-connector-python | 8.1.0 | GPL-2.0 | **소스코드 공개 의무** | ## 예상 실습 결과 ### SBOM 생성 시 + - `mysql-connector-python` GPL-2.0 컴포넌트 탐지 ### 라이선스 분석 시 + - **Copyleft 위험 항목 표시** (GPL-2.0) - 소스코드 공개 의무 검토 필요 표시 @@ -32,6 +42,7 @@ ## GPL 라이선스 리스크 상세 설명 GPL-2.0 의 "카피레프트(Copyleft)" 특성: + - GPL 라이선스 코드를 포함하여 배포 시, 전체 소프트웨어의 소스코드를 공개해야 할 수 있다 - 상업용 소프트웨어에 GPL 컴포넌트를 포함하는 것은 법적 검토 필수 - LGPL은 라이브러리 형태로 링크 시 소스공개 의무가 완화됨 @@ -40,10 +51,10 @@ GPL-2.0 의 "카피레프트(Copyleft)" 특성: GPL 컴포넌트를 동등한 기능의 Permissive 라이선스 패키지로 교체 검토: -| 현재 (GPL) | 대안 (Permissive) | 라이선스 | -|-----------|-----------------|---------| -| mysql-connector-python (GPL-2.0) | PyMySQL | MIT | -| mysql-connector-python (GPL-2.0) | aiomysql | MIT | +| 현재 (GPL) | 대안 (Permissive) | 라이선스 | +| -------------------------------- | ----------------- | -------- | +| mysql-connector-python (GPL-2.0) | PyMySQL | MIT | +| mysql-connector-python (GPL-2.0) | aiomysql | MIT | 또는 법무 검토 후 소스코드 공개 준비. From 24daff203bd7177e58f7bb14a49471dd8a622b47 Mon Sep 17 00:00:00 2001 From: Haksung Jang Date: Thu, 4 Jun 2026 17:30:04 +0900 Subject: [PATCH 2/8] =?UTF-8?q?docs(CLAUDE):=20=EB=8F=85=EC=9E=90=20?= =?UTF-8?q?=EC=83=81=ED=83=9C=EA=B0=90=EC=A7=80=20=ED=85=8C=EC=9D=B4?= =?UTF-8?q?=EB=B8=94=2005=20=EC=88=9C=EC=84=9C=20=EC=A0=95=ED=95=A9=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 루트 CLAUDE.md "독자 상태 감지" 테이블이 05-analyst→vulnerability→management 순서로 어긋나 있어 정본(agents/CLAUDE.md·validate-chain.py·05-vulnerability-analyst 전제조건)과 불일치했다. 정본 순서로 정렬: 05-sbom-analyst → 05-sbom-management → 05-vulnerability-analyst → 06-training-manager. sbom-management-plan.md 존재를 게이트로 사용해 agents/CLAUDE.md 상태감지 테이블과 동일하게 맞춤. 근거: 05-vulnerability-analyst 전제조건 = output/sbom/sbom-management-plan.md (05-sbom-management 실행 후), validate-chain.py도 동일 의존성 정의. verify.sh 12/12 PASS. Co-Authored-By: Claude Opus 4.8 (1M context) --- CLAUDE.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index b20e271..f75df12 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -45,16 +45,17 @@ ISO/IEC 5230 (라이선스 컴플라이언스)과 ISO/IEC 18974 (보안 보증) "어디서 시작해야 해?" 또는 "다음에 뭘 해야 해?" 질문 시 `output/` 폴더를 스캔하고 아래 표로 안내한다. -| output/ 상태 | 안내 | -| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 비어있음 | "시작하기 전에"(`docs/00-overview/index.md`) 및 "소프트웨어 공급망 보안: 왜 지금 중요한가"(`docs/00-overview/supply-chain.md`) 읽기 → 현재 Claude 세션 종료 후 `cd agents/02-organization-designer && claude` 실행 | -| organization/ 있음, policy/ 없음 | 현재 Claude 세션 종료 후 `cd agents/03-policy-generator && claude` 실행 | -| policy/ 있음, process/ 없음 | 현재 Claude 세션 종료 후 `cd agents/04-process-designer && claude` 실행 | -| process/ 있음, sbom/ 없음 | 현재 Claude 세션 종료 후 `cd agents/05-sbom-guide && claude` 실행 | -| sbom/ 있음, vulnerability/ 없음 | 현재 Claude 세션 종료 후 `cd agents/05-sbom-analyst && claude` 실행 → 완료 후 `cd agents/05-vulnerability-analyst && claude` 실행 | -| vulnerability/ 있음, training/ 없음 | 현재 Claude 세션 종료 후 `cd agents/05-sbom-management && claude` 실행 → 완료 후 `cd agents/06-training-manager && claude` 실행 | -| training/ 있음, conformance/ 없음 | 현재 Claude 세션 종료 후 `cd agents/07-conformance-preparer && claude` 실행 | -| conformance/ 있음 | 완성 축하 → OpenChain 자체 인증 등록: https://www.openchainproject.org/conformance | +| output/ 상태 | 안내 | +| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 비어있음 | "시작하기 전에"(`docs/00-overview/index.md`) 및 "소프트웨어 공급망 보안: 왜 지금 중요한가"(`docs/00-overview/supply-chain.md`) 읽기 → 현재 Claude 세션 종료 후 `cd agents/02-organization-designer && claude` 실행 | +| organization/ 있음, policy/ 없음 | 현재 Claude 세션 종료 후 `cd agents/03-policy-generator && claude` 실행 | +| policy/ 있음, process/ 없음 | 현재 Claude 세션 종료 후 `cd agents/04-process-designer && claude` 실행 | +| process/ 있음, sbom/ 없음 | 현재 Claude 세션 종료 후 `cd agents/05-sbom-guide && claude` 실행 | +| sbom/ 있음, sbom-management-plan.md 없음 | 현재 Claude 세션 종료 후 `cd agents/05-sbom-analyst && claude` 실행 → 완료 후 `cd agents/05-sbom-management && claude` 실행 | +| sbom-management-plan.md 있음, vulnerability/ 없음 | 현재 Claude 세션 종료 후 `cd agents/05-vulnerability-analyst && claude` 실행 | +| vulnerability/ 있음, training/ 없음 | 현재 Claude 세션 종료 후 `cd agents/06-training-manager && claude` 실행 | +| training/ 있음, conformance/ 없음 | 현재 Claude 세션 종료 후 `cd agents/07-conformance-preparer && claude` 실행 | +| conformance/ 있음 | 완성 축하 → OpenChain 자체 인증 등록: https://www.openchainproject.org/conformance | ## 사용 경로 From 9a9fb1e32da7a981ab2fa6468c90286ed2add832 Mon Sep 17 00:00:00 2001 From: Haksung Jang Date: Thu, 4 Jun 2026 17:34:09 +0900 Subject: [PATCH 3/8] =?UTF-8?q?docs(agents):=2002~04=20agent=20=EC=98=88?= =?UTF-8?q?=EC=83=81=20=EC=86=8C=EC=9A=94=20=EB=A9=94=ED=83=80=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 3 실습환경 — agent 진입 즉시 시간 부담을 알 수 있도록 예상 소요(질문 수 + 산출물 검토 시간) 한 줄 추가. 선행조건·다음명령은 기존 섹션 유지. - 02: 약 15분(질문 6개) / 03: 약 15분(질문 5개) / 04: 약 20분(질문 7개) verify.sh 12/12 PASS. Co-Authored-By: Claude Opus 4.8 (1M context) --- agents/02-organization-designer/CLAUDE.md | 2 ++ agents/03-policy-generator/CLAUDE.md | 2 ++ agents/04-process-designer/CLAUDE.md | 2 ++ 3 files changed, 6 insertions(+) diff --git a/agents/02-organization-designer/CLAUDE.md b/agents/02-organization-designer/CLAUDE.md index 37a0821..5b87887 100644 --- a/agents/02-organization-designer/CLAUDE.md +++ b/agents/02-organization-designer/CLAUDE.md @@ -1,5 +1,7 @@ # Agent: 02-organization-designer +> **예상 소요**: 약 15분 — 질문 6개에 답변하고 생성된 산출물을 검토하는 시간입니다. + ## 역할 조직/담당자 산출물을 자동 생성하는 agent다. diff --git a/agents/03-policy-generator/CLAUDE.md b/agents/03-policy-generator/CLAUDE.md index 2d7f844..0a71898 100644 --- a/agents/03-policy-generator/CLAUDE.md +++ b/agents/03-policy-generator/CLAUDE.md @@ -1,5 +1,7 @@ # Agent: 03-policy-generator +> **예상 소요**: 약 15분 — 질문 5개에 답변하고 생성된 정책 문서를 검토하는 시간입니다. + ## 역할 회사 맞춤 오픈소스 정책 문서를 생성하는 agent다. diff --git a/agents/04-process-designer/CLAUDE.md b/agents/04-process-designer/CLAUDE.md index bc7e724..d6ee581 100644 --- a/agents/04-process-designer/CLAUDE.md +++ b/agents/04-process-designer/CLAUDE.md @@ -1,5 +1,7 @@ # Agent: 04-process-designer +> **예상 소요**: 약 20분 — 질문 7개에 답변하고 생성된 프로세스 문서와 흐름도를 검토하는 시간입니다. + ## 역할 오픈소스 프로세스 문서 및 Mermaid 흐름도를 생성하는 agent다. From cff4f88e13d5757c7a3ee1c9b4df6fd97c288d71 Mon Sep 17 00:00:00 2001 From: Haksung Jang Date: Thu, 4 Jun 2026 17:34:57 +0900 Subject: [PATCH 4/8] =?UTF-8?q?docs(agents):=2005=20=EA=B5=B0=20agent=20?= =?UTF-8?q?=EC=98=88=EC=83=81=20=EC=86=8C=EC=9A=94=20=EB=A9=94=ED=83=80=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 05-sbom-guide: 약 10분(질문 3개, 첫 Docker 이미지 풀링 시 +10~15분) - 05-sbom-analyst: 약 10분(질문 2개) - 05-sbom-management: 약 10분(질문 3개) - 05-vulnerability-analyst: 약 10분(질문 3개) verify.sh 12/12 PASS. Co-Authored-By: Claude Opus 4.8 (1M context) --- agents/05-sbom-analyst/CLAUDE.md | 2 ++ agents/05-sbom-guide/CLAUDE.md | 2 ++ agents/05-sbom-management/CLAUDE.md | 2 ++ agents/05-vulnerability-analyst/CLAUDE.md | 2 ++ 4 files changed, 8 insertions(+) diff --git a/agents/05-sbom-analyst/CLAUDE.md b/agents/05-sbom-analyst/CLAUDE.md index ffa664e..749c33e 100644 --- a/agents/05-sbom-analyst/CLAUDE.md +++ b/agents/05-sbom-analyst/CLAUDE.md @@ -1,5 +1,7 @@ # Agent: 05-sbom-analyst +> **예상 소요**: 약 10분 — 질문 2개에 답변하고 생성된 라이선스 분석 리포트를 검토하는 시간입니다. + ## 역할 SBOM 파일을 분석하여 라이선스 리포트와 Copyleft 위험도 리포트를 생성하는 agent다. diff --git a/agents/05-sbom-guide/CLAUDE.md b/agents/05-sbom-guide/CLAUDE.md index 0f79a5c..ef0e5c7 100644 --- a/agents/05-sbom-guide/CLAUDE.md +++ b/agents/05-sbom-guide/CLAUDE.md @@ -1,5 +1,7 @@ # Agent: 05-sbom-guide +> **예상 소요**: 약 10분 — 질문 3개에 답변하고 SBOM 생성 스크립트를 실행하는 시간입니다. 처음 실행 시 Docker 이미지 풀링으로 10~15분이 더 걸릴 수 있습니다. + ## 역할 프로젝트 SBOM 생성 안내 및 실행 스크립트를 제공하는 agent다. diff --git a/agents/05-sbom-management/CLAUDE.md b/agents/05-sbom-management/CLAUDE.md index 2de1c72..2393f39 100644 --- a/agents/05-sbom-management/CLAUDE.md +++ b/agents/05-sbom-management/CLAUDE.md @@ -1,5 +1,7 @@ # Agent: 05-sbom-management +> **예상 소요**: 약 10분 — 질문 3개에 답변하고 생성된 SBOM 관리 계획을 검토하는 시간입니다. + ## 역할 SBOM 관리 계획 및 외부 공유 템플릿을 생성하는 agent다. diff --git a/agents/05-vulnerability-analyst/CLAUDE.md b/agents/05-vulnerability-analyst/CLAUDE.md index 68c698d..c3c7246 100644 --- a/agents/05-vulnerability-analyst/CLAUDE.md +++ b/agents/05-vulnerability-analyst/CLAUDE.md @@ -1,5 +1,7 @@ # Agent: 05-vulnerability-analyst +> **예상 소요**: 약 10분 — 질문 3개에 답변하고 생성된 취약점 분석 리포트를 검토하는 시간입니다. + ## 역할 SBOM 기반 취약점 분석 리포트 및 대응 계획을 생성하는 agent다. From 2bce48a2cfcab9cd0f41c26d000bc080a6413f17 Mon Sep 17 00:00:00 2001 From: Haksung Jang Date: Thu, 4 Jun 2026 17:34:58 +0900 Subject: [PATCH 5/8] =?UTF-8?q?docs(agents):=2006~07=20agent=20=EC=98=88?= =?UTF-8?q?=EC=83=81=20=EC=86=8C=EC=9A=94=20=EB=A9=94=ED=83=80=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 06-training-manager: 약 10분(질문 3개) / 07-conformance-preparer: 약 15분(질문 3개) verify.sh 12/12 PASS. Co-Authored-By: Claude Opus 4.8 (1M context) --- agents/06-training-manager/CLAUDE.md | 2 ++ agents/07-conformance-preparer/CLAUDE.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/agents/06-training-manager/CLAUDE.md b/agents/06-training-manager/CLAUDE.md index c619c30..e85d8f7 100644 --- a/agents/06-training-manager/CLAUDE.md +++ b/agents/06-training-manager/CLAUDE.md @@ -1,5 +1,7 @@ # Agent: 06-training-manager +> **예상 소요**: 약 10분 — 질문 3개에 답변하고 생성된 교육 커리큘럼과 이수 추적표를 검토하는 시간입니다. + ## 역할 직군별 교육 커리큘럼과 이수 추적 시트, 무료 교육 리소스 목록을 생성하는 agent다. diff --git a/agents/07-conformance-preparer/CLAUDE.md b/agents/07-conformance-preparer/CLAUDE.md index b290fac..7722cd6 100644 --- a/agents/07-conformance-preparer/CLAUDE.md +++ b/agents/07-conformance-preparer/CLAUDE.md @@ -1,5 +1,7 @@ # Agent: 07-conformance-preparer +> **예상 소요**: 약 15분 — 질문 3개에 답변하고 생성된 갭 분석과 인증 선언문을 검토하는 시간입니다. + ## 역할 전체 산출물을 스캔하여 갭 분석을 실행하고, 자체 인증 선언문과 제출 가이드를 생성하는 최종 agent다. From 3b75eceff1288aab54f82a51e5265931dc94bd78 Mon Sep 17 00:00:00 2001 From: Haksung Jang Date: Thu, 4 Jun 2026 17:37:19 +0900 Subject: [PATCH 6/8] =?UTF-8?q?docs(01-setup):=20Docker=20=EB=AF=B8?= =?UTF-8?q?=EC=84=A4=EC=B9=98=20=EC=8B=9C=20=EB=8C=80=EC=95=88=20=EA=B2=BD?= =?UTF-8?q?=EB=A1=9C=20=EC=95=88=EB=82=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 3 실습환경 — Docker를 설치할 수 없는 사용자도 막히지 않도록, 도구 목록 표 직후에 안내 추가: - Docker는 챕터 05(SBOM·취약점 실습)에서만 사용 - 설치 불가 시 챕터 05 "Docker 없이 진행" 경로로 샘플 SBOM 사용 - 02~04·06~07은 Docker 없이 agent 대화만으로 진행 (05-sbom-guide·05-sbom-generation의 Docker-없이 경로는 기존 보유, 진입점에서 연결) verify.sh 12/12 PASS. Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/01-setup/index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/01-setup/index.md b/docs/01-setup/index.md index 8ff6682..a43b448 100644 --- a/docs/01-setup/index.md +++ b/docs/01-setup/index.md @@ -26,6 +26,10 @@ | Claude Code | AI 기반 실습 보조, agent 실행 | 필수 | 최신 버전 | | Node.js | Docusaurus 문서 사이트 빌드 | 선택 (문서 사이트 필요 시) | v18 LTS 이상 | +:::tip Docker를 설치할 수 없다면 +Docker는 챕터 05(SBOM·취약점 도구 실습)에서만 사용합니다. 회사 정책 등으로 설치가 어렵다면, 챕터 05의 "Docker 없이 진행하는 경우" 경로에서 미리 만든 샘플 SBOM으로 실습을 이어갈 수 있습니다. 나머지 챕터(02 조직~04 프로세스, 06 교육~07 인증)는 Docker 없이 agent 대화만으로 진행됩니다. +::: + ## 3. 설치 안내 (OS별) ### macOS From 7e88be42dbca31959dbfd3ecb0eecaad6681007d Mon Sep 17 00:00:00 2001 From: Haksung Jang Date: Thu, 4 Jun 2026 17:45:51 +0900 Subject: [PATCH 7/8] =?UTF-8?q?docs(intro,readme):=20=EC=A0=95=EC=A7=81?= =?UTF-8?q?=ED=95=9C=202=EA=B2=BD=EB=A1=9C=20+=20=EB=B9=A0=EB=A5=B8?= =?UTF-8?q?=EC=8B=9C=EC=9E=91/=ED=92=80=EC=BD=94=EC=8A=A4=20=EC=98=A8?= =?UTF-8?q?=EB=B3=B4=EB=94=A9=20=EB=8F=99=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 3 실습환경 — 처음 방문자가 자신에게 맞는 경로와 시간 부담을 즉시 파악하도록 정비. 아직 존재하지 않는 기능(무API키 웹 체험)은 약속하지 않고 현재 실재하는 경로만 정직하게 제시(웹 체험 홍보는 Phase 4에서 실제 구축 후 반영). docs/intro.md: - "사용 경로"를 2경로 표로 재작성 - 체계 구축(가이드+agents): OSS 관리 담당자 / 풀코스 8~12h, 빠른시작 1~2h - 개발팀 도구(DevSecOps·AI코딩 웹): 개발·보안팀 / 선택 - 빠른 시작(00·02·03 핵심만) vs 풀 코스(00~07 전체) 구분 - DevSecOps·AI코딩 가이드로의 크로스 인스턴스 링크(/devsecops/intro·/ai-coding/intro) README.md(국문·영문): - 체계 구축 경로에 빠른시작(1~2h)/풀코스(8~12h) 깊이 구분 추가 (웹 vs Claude Code 2경로는 기존 유지) verify.sh 12/12 PASS. Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 10 ++++++++++ docs/intro.md | 17 ++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4d6bb74..58fe1c1 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,11 @@ cd trustedoss-agents && claude # "어디서 시작해야 해?" 입력 ``` +체계 구축은 두 가지 깊이로 진행할 수 있습니다. + +- **빠른 시작 (1~2시간)**: 시간이 부족하면 개요, 02 조직, 03 정책 세 챕터만 진행해 정책 초안까지 만듭니다. +- **풀 코스 (8~12시간)**: 00~07 챕터를 순서대로 진행해 자체 인증 선언문까지 완성합니다. + --- ## Agent 목록 @@ -241,6 +246,11 @@ cd trustedoss-agents && claude # "어디서 시작해야 해?" (meaning: "Where should I start?") ``` +You can build your program at two depths: + +- **Quick start (1–2 hours)**: short on time? Cover just the Overview, 02 Organization, and 03 Policy chapters to reach a policy draft. +- **Full course (8–12 hours)**: work through chapters 00–07 in order to complete your self-certification statement. + --- ## Agent List diff --git a/docs/intro.md b/docs/intro.md index 618cb45..a6d3165 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -59,11 +59,22 @@ cd trustedoss-agents && claude ## 사용 경로 -### 셀프 스터디 (8–12시간) +처음 담당자는 **체계 구축** 경로로 시작합니다. 개발·보안팀은 필요할 때 **개발팀 도구** 경로를 병행합니다. -혼자서 며칠에 걸쳐 진행합니다. 각 챕터의 **배경 지식** 섹션을 충분히 읽고 실습합니다. +| 경로 | 누구에게 | 무엇을 | 소요 | +| ----------------------------------- | --------------- | ----------------------------------------- | ------------------------------------ | +| **체계 구축** (이 가이드 + agents) | OSS 관리 담당자 | 정책·프로세스·SBOM·인증까지 ISO 체계 완성 | 풀 코스 8~12시간 / 빠른 시작 1~2시간 | +| **개발팀 도구** (DevSecOps·AI 코딩) | 개발·보안팀 | 수립한 정책을 코드·CI에 자동 적용 | 선택 | -→ [시작하기 전에](./00-overview/index.md)부터 시작하세요 +### 빠른 시작 (1~2시간) — 핵심만 + +시간이 부족하면 [개요](./00-overview/index.md), [02 조직](./02-organization/index.md), [03 정책](./03-policy/index.md) 세 챕터만 진행해 정책 초안까지 만듭니다. + +### 풀 코스 (8~12시간) — 자체 인증까지 + +[시작하기 전에](./00-overview/index.md)부터 00~07 챕터를 순서대로 진행해 자체 인증 선언문까지 완성합니다. 각 챕터의 **배경 지식**을 충분히 읽고 실습합니다. + +개발·보안팀이라면 정책 수립 후 [DevSecOps 가이드](/devsecops/intro)와 [AI 코딩 가이드](/ai-coding/intro)로 코드·CI 적용을 이어갈 수 있습니다. --- From e0a71acbdd5bf3e5dccafc881fa9e236d8be7576 Mon Sep 17 00:00:00 2001 From: Haksung Jang Date: Thu, 4 Jun 2026 17:48:54 +0900 Subject: [PATCH 8/8] =?UTF-8?q?docs(progress):=20Phase=203(=EC=8B=A4?= =?UTF-8?q?=EC=8A=B5=ED=99=98=EA=B2=BD)=20=EC=99=84=EB=A3=8C=20=EA=B8=B0?= =?UTF-8?q?=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 고도화 로드맵 Phase 3 상태 ⏳ → ✅ - Phase 3 완료 내역 블록 추가(samples 메타·인덱스, 상태감지 버그 수정, agent 예상소요 ×9, Docker 미설치 경로, intro/README 2경로 동선) Co-Authored-By: Claude Opus 4.8 (1M context) --- .claude/progress.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.claude/progress.md b/.claude/progress.md index 8ac9576..9fb2a2a 100644 --- a/.claude/progress.md +++ b/.claude/progress.md @@ -21,7 +21,7 @@ POSITIONING.md 정체성에 맞춰 시스템·콘텐츠 고도화. 계획은 승 | 0 | 거버넌스·품질 기반 | ✅ 완료 | | 1 | 메뉴 구조 + 커버리지 재검 | ✅ 완료 (1A 커버리지 + 1B 메뉴) | | 2 | 용어집 + 콘텐츠 직접 개선 | ✅ 완료 | -| 3 | 실습환경 | ⏳ 대기 | +| 3 | 실습환경 | ✅ 완료 | | 4 | 데모환경 | ⏳ 대기 | > 순서 변경(2026-06-04): IA·커버리지를 먼저 확정해야 콘텐츠·실습·데모 작업 방향이 잡히므로 '메뉴 구조+커버리지 재검'을 Phase 1로 올림. @@ -56,6 +56,16 @@ POSITIONING.md 정체성에 맞춰 시스템·콘텐츠 고도화. 계획은 승 - 관찰: 08-developer-guide는 125줄로 길이 밴드 하한(200) 미달이나, verbose 간결화 스코프 밖이라 최소 변경 원칙상 보류 - 청크 단위로 각각 verify 12/12 통과 후 개별 커밋 +**Phase 3 완료 내역 (2026-06-04):** + +- samples 메타: 3개 README 상단에 학습 메타 표(목표, 예상 시간, 난이도, 선행 조건, 관련 챕터) 추가 + samples/README.md 인덱스 신설(비교 표, 공통 선행 조건, 사용 방법) +- 상태감지 정합 버그 수정: 루트 CLAUDE.md 독자 상태감지 테이블이 05-analyst→vulnerability→management 순서로 어긋나 있던 것을 정본(analyst→management→vulnerability→training)으로 정렬. 근거는 05-vulnerability-analyst 전제조건(sbom-management-plan.md)과 validate-chain.py +- agent 온보딩 메타: 9개 agent CLAUDE.md에 "예상 소요" 한 줄 추가(질문 수 + 검토 시간). 전제조건·다음명령은 기존 보유 +- Docker 미설치 경로: docs/01-setup에 안내 추가(Docker는 05에서만 사용, 미설치 시 샘플 SBOM 경로). 05-sbom-guide·05-sbom-generation의 Docker-없이 경로는 기존 보유 +- 온보딩 동선: docs/intro·README에 정직한 2경로(체계구축 agents vs 개발팀 도구 웹) + 빠른시작(1~2h)/풀코스(8~12h) 구분 추가. 무API키 웹 체험은 미구축이므로 약속하지 않고 Phase 4로 연기 +- 04-process Q5·Q6 입력형식은 agent와 docs 모두 예/아니오로 이미 정합(수정 불필요 확인) +- 청크 7개로 분할(≤4파일/청크), 각각 verify 12/12 통과 후 커밋 + --- ## 현재 단계 — 사용자 테스트 & 버그 리포트 대응