이 문서 하나로 전체를 이해하고, 수정·보완·개선의 기준점으로 삼는다. 기준일 2026-09-04 관련: PLAN.md(로드맵) · EVALUATION-SOP.md(② 절차) · MAINTENANCE.md(최신화) · INSTALL.md(오프라인·zip 배포)
지속가능경영보고서·광고·홍보자료를 입력하면 환경 주장을 추출·평가하고, 변호사 승인 하에 공정위 신고서·환경부 조사요청서·수사기관 고발장 초안을 만드는 로컬 도구다. 기본은 한국법 직접평가이고, 목표시장이 특정되면 미국·EU·영국을 관할별 직접평가로 분리할 수 있다. 외국 규범을 한국법의 직접 근거로 혼용하지 않는다.
핵심 철학 — 추출도 판단도 정규식이 하지 않는다. 어휘 기반 정규식은 환경 단어가 없는 위험 문장("1~2급수 수질 유지")을 놓치고 목차·거버넌스 잡음을 올린다(실측). 주장 추출과 법적 판단은 Claude 세션이 하고, CLI(Python)는 결정론적 검증·잡일(원문 앵커·해시·병합·문서생성)만 한다. 이 분리가 전체 설계의 뼈대다.
┌─ ① 통독 추출 (세션) + 앵커 검증 (CLI) ─────────────────────────┐
│ 세션이 보고서 전문을 통독 → 환경 주장 추출 → 1-claims.json │
│ CLI(assess)가 각 인용문을 PDF와 문자 대조(할루시네이션 게이트) │
│ 산출: 1-claims.json, 1-worklist.md(앵커 상태), 1-assessment.json │
│ (1-claims.json 없으면 정규식 폴백 — 권장하지 않음) │
└──────────────────────────────┬─────────────────────────────────┘
│
┌─ ② 정밀 법적 평가 (Claude 세션 + korean-law MCP + 웹) ──────────┐
│ ②-0 관문 쟁점(gateway): 광고 해당성 정면 검토 + 대안 경로 비교 │
│ ②-1 사건 서사(narratives): 회사 서사 vs 확인된 사실, 괴리 축 1~3개 │
│ ②-2 주장별: 조문 포섭·심결례(주장별 검색)·오인가능성·★웹 검증 │
│ 산출: 2-evaluation.json ← ①과 ③을 잇는 유일한 접점 │
└──────────────────────────────┬─────────────────────────────────┘
│
┌─ ③ 문서 생성·게이트 (CLI) ─────────────────────────────────────┐
│ 병합 → 보고서(결론→사건 서사→관문 쟁점→주장별) + 3-*.xlsx/.md │
│ 변호사 승인(approve) → 4-filing-*-draft.md → verify(무결성) │
└─────────────────────────────────────────────────────────────────┘
③은 무인 CLI, ①②는 세션 작업이다. ①②는 /greenwashing-review 스킬 또는 EVALUATION-SOP.md 절차로 수행한다. 2-evaluation.json이 없으면 보고서는 [미평가]로 정직하게 표시한다(숨기지 않음).
python3 -m greenwashing assess matters/<사건> --mode public --with-public-check # ①
# → (세션) 1-claims.json 작성 → 앵커 검증 → korean-law MCP·웹으로 평가 → output/2-evaluation.json # ②
python3 -m greenwashing assess matters/<사건> --mode public # ③ 병합
python3 -m greenwashing verify <matter_id>
python3 -m greenwashing approve <matter_id> --reviewer "홍길동" --scope all # 변호사 승인
python3 -m greenwashing draft <matter_id> --route all # 고발장 초안이 프로젝트는 단일 Markdown 스킬이 아니라 로컬 Python 패키지·법령 DB·사건 폴더·MCP 설정이 결합된 법률 검토 파이프라인이다. 공개 문서만 읽는 일반 대화와, 기밀 사건을 다루는 로컬 실행을 구분한다.
| 환경 | 가능한 범위 | 핵심 한계 |
|---|---|---|
| Claude Code (플러그인 또는 스킬) | ①~③ 전체 파이프라인 | ② 정밀 법률평가는 별도 korean-law MCP와 변호사 검토가 필요하다. |
| Claude Desktop·Codex·Cursor 등 로컬 MCP 클라이언트 | 로컬 stdio MCP로 결정론적 도구 호출 | korean-law MCP와 웹 검증은 해당 클라이언트에 별도로 연결해야 한다. |
| Claude.ai | 공개 자료의 제한적 사전 검토·문서 초안 | 이 저장소의 로컬 CLI·법령 DB·기밀 사건 폴더를 직접 실행·열람할 수 없다. |
| ChatGPT | 공개 문안의 쟁점 목록화·질문 설계 보조 | 이 프로젝트의 스킬·로컬 stdio MCP가 아니며, 법률평가·신고서 생성 파이프라인을 대체하지 않는다. |
기밀 사건은 로컬 환경에서만 처리한다. Claude.ai·ChatGPT에 실제 사건 PDF, 당사자 식별정보, 비공개 실증자료, matters 폴더를 업로드하지 않는다. 웹 채팅에는 비식별화한 공개 문안 또는 로컬 실행 뒤 필요한 발췌만 제공한다.
전제: Python 3.11+와 로컬 MCP 클라이언트 1개. ② 정밀평가에는 korean-law MCP, 시맨틱 검색에는 sentence-transformers가 추가로 필요하다.
git clone https://github.com/dillettante/greenwashing-review && cd greenwashing-review
pip install python-docx openpyxl pypdf python-pptx numpy # 또는 pip install -e .
ln -s "$(pwd)/skills/greenwashing-review" ~/.claude/skills/greenwashing-review # 스킬 설치
python3 -m greenwashing corpus sync --jurisdiction KR # 국내 법령 DB(필수·네트워크). 없으면 assess 중단
python3 -m greenwashing assess examples/sample-matter --mode public # 가상 예제로 동작 확인(선택) 비교법 RAG — 의결서·사례 아카이브 재생성 + 시맨틱 인덱스(로컬 임베딩):
pip install sentence-transformers # 로컬 임베딩(기본 백엔드, LM Studio 불요)
python3 -m greenwashing corpus fetch-decisions # 공정위 그린워싱 의결서
python3 -m greenwashing corpus fetch-cases --jurisdiction UK # ASA (US/EU도 동일)
python3 -m greenwashing corpus index-decisions # 로컬 벡터 인덱스(첫 실행 시 모델 자동 다운로드)
python3 -m greenwashing corpus repair-paths # 저장소 이동 뒤 절대경로 복구(재임베딩 불요)임베딩 백엔드는 기본
sentence-transformers(모델intfloat/multilingual-e5-base, 외부 API·토큰 0). LM Studio를 쓰려면GW_EMBED_BACKEND=lmstudio+GW_EMBED_URL/GW_EMBED_MODEL. 인덱스는 백엔드별로 재구축한다.
이 저장소의 skills/greenwashing-review 폴더만 ZIP으로 올려도 ①~③ 파이프라인이 설치되는 것은 아니다. 해당 스킬은 프로젝트 루트의 Python CLI, 로컬 corpus, korean-law MCP를 전제로 한다. 따라서 대화형 제품에는 다음의 제한된 보조 작업만 맡긴다.
- 공개된 지속가능경영보고서·광고의 환경 주장 후보를 페이지·원문 인용과 함께 목록화한다.
- 확인이 필요한 사실과 추가로 확보할 실증자료를 구분한다.
- 로컬 파이프라인이 생성한 1-worklist.md 또는 3-legal-review-report.md의 공개 가능한 발췌를 읽고, 누락 쟁점을 질문 목록으로 정리한다.
대화형 제품에는 위법성·고의·제재를 단정하거나 신고서·고발장을 완성해 달라고 요청하지 않는다. ChatGPT의 custom MCP app은 로컬 stdio 서버에 직접 연결하지 않으며, 이 프로젝트의 원격 SSE 서버도 공개 검색 전용·무인증 LAN용이므로 웹 채팅 연결을 위해 공인 인터넷에 공개해서는 안 된다. 조직 차원의 원격 연결은 인증·TLS·접근통제와 별도 보안 검토 후에만 설계한다. ChatGPT MCP 연결 조건을 확인한다.
무엇이 바로 되고 무엇이 셋업 필요한가:
| 기능 | 바로 됨 | 필요 셋업 |
|---|---|---|
| 카탈로그 열람(무슨 의결서·재결 있는지) | clone만 | — |
| ① 통독 추출·앵커, ③ 문서생성(.md/.docx/.html) | corpus sync 후 |
— |
| ② 조문 포섭(정밀평가) | korean-law MCP 연결(필수) | |
search-decisions(KR/UK/US/EU 비교법) |
sentence-transformers + fetch/index |
|
| 의결서·판례 시맨틱 검색(정확도 최상) | 선택 — 별도 MCP(아래) |
corpus/raw/·.gw/(벡터)·matters/(기밀)는 gitignore → 로컬 재생성/보존. repo엔 코드·문서·카탈로그만.- korean-law MCP는 repo 밖 — 각자 Claude Code에 연결. 오프라인·zip 배포는 INSTALL.md.
- 선택 도구: 사용자 개인 환경에서
ftc-decisions(공정위 의결서 전량)·court-precedents(법원 판례공보) MCP가 호출 가능하면 우선 사용한다. 서버 주소·인증은 저장소와 산출물에 기록하지 않는다. 배포 환경에서는corpus search-decisions로 자동 대체되며, 사용 경로는precedent_research.source에 남긴다.
matters/<사건>/
context.yaml 사건 메타
input/ 검토대상(지속가능보고서·광고·홍보자료)
evidence/ 기업 실증자료·공개 반증자료(선택)
public-evidence/ 홈페이지·언론 스냅숏(--with-public-check가 생성)
output/ 산출물(단계 번호 프리픽스, §4)
context.yaml(1단계 key/value):
matter_id: example-fy2025
company: 예시 주식회사
product: 동·은 제품 등
published_date: 2025-06-01
medium: 지속가능경영보고서
audience: 투자자·거래처·일반
complainant: 홍길동
respondent_details: "[확인 필요] 주소·대표자"
company_homepage: https://www.example.com/
public_urls: []
legal_scope: KR_only # 기본. 복수관할 직접평가는 multi_jurisdiction
jurisdictions: [KR] # 예: [KR, US, EU]
target_markets: [KR]
distribution_channels: [website, pdf]
reporting_frameworks: [GRI]
claim_date: 2025-06-01 # 미지정 시 published_date파일명 프리픽스가 파이프라인 단계를 나타낸다. Finder에서 정렬하면 진행 순서대로 보인다.
| 프리픽스 | 의미 | 파일 |
|---|---|---|
1- |
전단계(추출·앵커) | 1-claims.json(세션 추출), 1-assessment.json(경량본), 1-worklist.md, 1-corroboration.md/.json |
2- |
정밀평가(세션 작성) | 2-evaluation.json |
3- |
★ 최종 결과물 | 납품 3종: 3-legal-review-report.md(기본)·.docx(제출·편집)·.html(고객용). 작업본 3-claims-review.xlsx·3-evidence-list.xlsx, 방어 모드 3-redline.md |
4- |
★★ 제출문서(승인 후) | 4-filing-kftc-draft.md, 4-filing-environment-draft.md, 4-filing-criminal-draft.md |
9- |
검증 로그 | 9-verification-log.json |
| (없음) | 제어·메타 | attorney-approval.json, test-summary.md |
3-이 붙으면 최종 심사 산출물,4-는 승인 후 제출문서.1-·2-는 그 전단계다.- 서술형은
.md(후속 가공), 117행 검토표는.xlsx(정렬·색상 작업본)를 원칙으로 한다. - 보고서 내부 텍스트는 한국어(house style), 파일명만 영문·번호.
①과 ③을 잇는 유일한 인터페이스. 세션(②)이 이 파일을 만들면 assess 재실행 시 cli._attach_evaluation이 주장별로 병합해 보고서·고발장에 렌더한다. 스키마(상세 EVALUATION-SOP.md §2):
{ "matter_id": "...", "evaluated_by": "...(세션 초안 명시)", "evaluated_at": "YYYY-MM-DD",
"claims": { "CLM-xxxx": {
"applicability_final": "있음|불확실|없음",
"risk_final": "매우 높음|높음|중간|낮음",
"provisions": [{"authority_id":"KR-FAIR-LABELING-ACT","cite":"제3조 제1항 제2호","label":"기만"}],
"precedents": [{"cite":"...","status":"확정","holding":"...","url":"..."}],
"assessment": "포섭·판단", "misleading": "오인가능성",
"verification": {"verdict":"부합/과장/불일치/반증/미확인","summary":"...",
"sources":[{"title":"...","publisher":"...","url":"...","finding":"...","stance":"확인/반증/중립"}]},
"confirm_needed": ["..."]
} } }claim_id는 1-claims.json과 일치해야 병합된다. 필드는 모두 선택적(채운 것만 렌더). risk_final은 웹 검증 결과를 반영해 확정한다.
corpus sync --jurisdiction KR 국내 공식 원문 수집·조문 DB 갱신(네트워크)
corpus audit [--stale-days N] coverage·효력·최신성·무결성 감사(공백 시 exit 2)
corpus import-json <path> 사람이 검증한 규범·심결례·판례 편입
corpus monitor --cadence X weekly/monthly/pre_filing 변경 감시
corpus candidates [--status S] 판례·처분 검증 대기열 조회
corpus candidate-review <id> ... 후보 상태 기록
corpus fetch-decisions [--keyword 본문어] [--title 사건명어] [--violation-type 0609*] [--since YYYY-MM-DD]
공정위 의결서 자동 수집(case.ftc.go.kr, 토큰 불요·증분). 인자 없으면 그린워싱 기본세트
(부당한 표시광고 위반 0609* + 본문 환경·탄소·그린 등). raw·index는 corpus/raw/KR/cases/(gitignore)
corpus index-decisions [--rebuild] 수집된 의결서를 로컬 시맨틱 인덱스로(sentence-transformers 임베딩, 증분). .gw/decision_index/(gitignore)
corpus repair-paths 이동된 저장소의 매니페스트·인덱스 절대경로를 상대경로로 복구
corpus fetch-cases --jurisdiction UK|US|EU [--keyword green] 해외 그린워싱 비교법 수집. UK=ASA 재결·US=FTC 사건·EU=EUR-Lex 지침 전문
corpus search-decisions "<주장>" [-k 5] [--action 고발] [--since YYYY-MM-DD] [--jurisdiction KR|UK]
주장으로 관련 의결서·재결 시맨틱 검색(300+ 통독 없이 상위 K건). 스킬 ②가 주장별로 호출
assess <matter> --mode public|confidential [--with-public-check] ①추출·③병합
corroborate <matter> 홈페이지·언론 교차확인
benchmark <matter1> <matter2> [...] [--stance neutral|offense|defense] [--name 폴더명] [--out 경로]
정밀평가 끝난 사건 2건 이상을 횡단 비교(동종업계 SR 벤치마크).
집계 → 세션이 2-benchmark-analysis.json 작성 → 같은 명령 재실행으로 병합.
산출은 benchmarks/<name>/(gitignore). 같은 회사 다년도면 연도별 추이 비교
approve <matter_id> --reviewer ... --scope all|kftc|environment|criminal
draft <matter_id> --route all|kftc|environment|criminal 승인 후 초안
verify <matter_id> 무결성 검증(exit 2 = 검토 필요)
assess는 네트워크를 쓰지 않고 로컬 DB만 조회한다(단 --with-public-check는 공개자료 수집). corpus sync만 공식 원문을 내려받는다. corpus audit exit 2는 오류가 아니라 조사 공백을 알리는 품질 게이트다.
- 단일 원본은 국가법령정보센터 공식 원문.
corpus sync가 원문을 조문 단위로 파싱하고 시행일·원문/본문/조문 SHA-256과 함께 저장한다. - 한국 규범 6개: 표시광고법·시행령, 환경기술산업법·시행령, 2026. 7. 14. 시행 「환경성 표시·광고 관리제도에 관한 고시」, 「환경 관련 표시·광고에 관한 심사지침」. 현행 고시는 제17조의3~제17조의7의 실증자료 기준까지 보존한다.
.gw/state.sqlite3= 런타임 조회 DB,corpus/verified= 검증 원본,corpus/raw= 증거 스냅숏.- assess는 필수 조문 DB가 없으면 중단한다(법률근거 게이트).
- 의결서 아카이브·검색:
corpus fetch-decisions로 공정위 표시광고 의결서(그린워싱 관련분)를 로컬 수집 →corpus index-decisions로 시맨틱 인덱스(sentence-transformers 임베딩) →corpus search-decisions로 주장별 검색. 원문·인덱스는 로컬·gitignore이므로 pull 사용자는 각자 재생성한다. 수집 목록만은corpus/verified/KR/decisions-catalog.csv(사건번호·사건명·조치·의결일)로 커밋돼 있어 무엇이 있는지 미리 볼 수 있다. - 사람이 확인해
case_records에 편입한 사례는 주장별case_candidates로 자동 제안된다. 이는 최종 인용이 아니며 원문·관련성·확정 또는 불복 상태를 확인한 뒤에만precedents로 옮긴다(MAINTENANCE.md).
배포용 스킬은 둘. 건별 검토와 횡단 비교로 나뉜다.
- 설치:
~/.claude/skills/<이름>→ 이 repo의skills/<이름>을 가리키는 심링크.ln -s "$(pwd)/skills/greenwashing-review" ~/.claude/skills/greenwashing-reviewln -s "$(pwd)/skills/greenwashing-benchmark" ~/.claude/skills/greenwashing-benchmark
- 스킬은 자체 완결이 아니라 프로젝트에 의존한다: (a) Python CLI(
python3 -m greenwashing), (b) 절차 문서 EVALUATION-SOP.md.
Codex 등 Agent Skills 호환 로컬 에이전트도 각 제품의 skills 루트에 같은 하위 폴더를 연결할 수 있다. 다만 스킬 연결만으로 Python 의존성·corpus·korean-law MCP가 자동 설치되지는 않는다. Claude.ai·ChatGPT에 이 폴더만 업로드하는 방식은 위 §2의 제한된 보조 작업에만 사용한다.
| 스킬 | 묻는 것 | 입력 | SKILL.md가 규정하는 단계 |
|---|---|---|---|
/greenwashing-review |
이 문안이 위법인가 | 보고서·광고 PDF | ②단계(포섭·심결례·웹검증) |
/greenwashing-benchmark |
무엇이 업계 관행이고 무엇이 이탈인가 | 2-evaluation.json × 2건 이상 |
②단계(집계 수치의 해석) |
- 트리거: 검토 — "그린워싱 검토", "지속가능보고서 평가", "환경 표시·광고 검토", 환경성 주장 고발장 요청 등. 비교 — "동종업계 비교", "SR 비교분석", "업계 관행인지 봐줘", "연도별로 어떻게 달라졌는지" 등.
- 두 스킬 모두 집계·검증은 기계가, 판단은 세션이 한다는 같은 이음매를 쓴다.
스킬(Claude Code 전용) 대신/함께 로컬 stdio MCP 서버로도 쓸 수 있다. Claude Desktop·Codex·Cursor 등 로컬 MCP 클라이언트에서 도구를 부른다(스킬 슬래시가 안 먹는 표면 해결).
- 노출 도구:
search_decisions(KR/UK/US/EU 비교법 RAG·★)·assess_matter·get_shortlist·corpus_status·verify_matter·fetch_decisions·fetch_cases·index_decisions·repair_decision_paths·list_matters - 설계: MCP = 결정론적 배관(추출·검색·문서생성). ② 법적 판단은 여전히 에이전트가 korean-law MCP + 웹으로. 로컬 stdio 전용(기밀 사건 유출 방지). MCP는 다른 MCP를 못 부르므로 korean-law MCP는 에이전트가 별도 연결.
설치:
python3 -m pip install "mcp" numpy python-docx openpyxl pypdf python-pptx # 또는 pip install -e ".[mcp]"
python3 -m pip install sentence-transformers # search_decisions용(또는 pip install -e ".[search]")등록(택1):
- 직접 config: mcp-config-example.json의
mcpServers를 Claude Code(claude mcp add-json)·데스크톱 설정에 붙이고PYTHONPATH를 클론 경로로. - 플러그인: .claude-plugin/plugin.json이
mcpServers+userConfig를 선언 — 마켓플레이스/플러그인 방식 설치 시 자동 등록.
전제: corpus sync·fetch/index로 로컬 데이터 준비 + search_decisions엔 sentence-transformers(기본 백엔드). 등록 후 앱 재시작.
비교법 의결서는 공개데이터라, 여러 사람이 각자 corpus·모델을 셋업하는 대신 한 대에 원격 SSE 서버를 띄우고 나머지는 config 한 줄로 붙을 수 있다. greenwashing/mcp_remote.py가 공개 검색 2개 도구만(search_decisions·get_decision) 노출한다 — 기밀 사건 도구(assess_matter 등)는 이 서버에 없다(코드에서 제외).
# 서버 머신(상시가동): fetch/index로 corpus 준비 후
greenwashing-mcp-remote # 기본 0.0.0.0:8766 (env GW_MCP_HOST/GW_MCP_PORT)// 클라이언트: 원격 MCP 지원 시
"greenwashing-search": { "url": "http://<서버IP>:8766/sse" }
// stdio만 지원 시: { "command": "npx", "args": ["mcp-remote", "http://<서버IP>:8766/sse"] }전제·주의: 무인증 서버 — 신뢰 LAN에서만 사용 · 같은 LAN에서만 접속(외부 노출 안 함) · macOS 인바운드 방화벽에서 8766 허용 · 서버 IP 고정 권장. 자기 사건을 평가(assess→draft)하려면 이 검색 서버로는 안 되고 §2 로컬 설치가 필요하다(기밀 파이프라인은 로컬 전용).
9. 유지보수 (MAINTENANCE.md)
매주(원문 해시 비교·판례 검색) · 매월(공정위·환경부·법령센터 검색결과 비교) · 제출 전(pre_filing 재검증) · 분기(coverage·외국법). 판례·처분은 자동 편입 금지 — 사람 확인 후 import-json. scripts/run_maintenance.sh·ops/*.plist 참고.
draft(고발장·신고서)는 변호사 승인(approve) 없이 실행 불가. 승인 후1-assessment.json이 바뀌면 재승인 필요.- 제출·발송 기능 없음. 위험점수는 우선순위 도구일 뿐 위법성·고의·형사책임의 결론이 아니다.
confidential모드는 외부 통신 안 함. ②에서 사건 내부 문구를 MCP·웹에 넣지 않는다(주장 유형·법령만 질의).- 존재하지 않는 조문·사건번호·심결례를 생성하지 않는다. 불확실은
[확인 필요]. 동명·유사기업 혼동 주의(동일·유사 상호의 다른 기업). - 인용 법령·판례의 현행 시행·확정 여부는 제출 전 변호사가 재확인한다.
Greenwashing/
├─ README.md ← 이 문서(단일 기준점)
├─ PLAN.md 로드맵·진행상황·완료기준
├─ EVALUATION-SOP.md ② 정밀평가 절차·2-evaluation.json 스키마
├─ MAINTENANCE.md DB 최신화 주기·심결례 후속과제
├─ INSTALL.md 제3자 배포·설치
├─ pyproject.toml 의존성
├─ greenwashing/ ── Python 패키지(~2,800 LOC) ──
│ ├─ cli.py (427) 명령 파서·오케스트레이션·evaluation 병합·shortlist 출력
│ ├─ analysis.py (343) ①핵심: 주장 추출·패턴분류·8요소 점수·shortlist 선별
│ ├─ markdown_docs.py (283) ③보고서·요약표·고발장 .md 생성(웹검증 블록 렌더)
│ ├─ corroboration.py (269) 공개자료(홈페이지·언론) 교차확인
│ ├─ database.py (267) SQLite: 규범·조문·버전·해시·사건
│ ├─ korean_corpus.py (228) 국가법령정보센터 원문 수집·조문 파싱
│ ├─ maintenance.py (221) 주간/월간/제출전 변경 감시·판례 후보 큐
│ ├─ benchmark_docs.py (234) 횡단 비교분석 .md·.html 렌더
│ ├─ benchmark.py (196) 동종업계 SR 횡단 집계(유형×보고서 교차표·표본 강도)
│ ├─ workbooks.py (191) ③검토표·증거목록 .xlsx(openpyxl)
│ ├─ extractors.py (139) PDF/DOCX/PPTX/HTML/이미지 OCR 추출
│ ├─ verification.py (118) 산출물·인용·승인 무결성(verify)
│ ├─ models.py (103) 데이터클래스
│ ├─ context.py (64) context.yaml 파서
│ ├─ approval.py (41) 변호사 승인 해시 게이트
│ └─ data/ 규범 출처 목록(kr_official_sources.json 등)
├─ corpus/{raw,verified}/ 법령 원문 스냅숏·파싱 JSON
├─ .gw/state.sqlite3 런타임 DB
├─ matters/<사건>/ 사건 작업공간
├─ benchmarks/<이름>/ 횡단 비교 산출물(gitignore)
├─ skills/greenwashing-review/SKILL.md 배포용 스킬 — 건별 검토
├─ skills/greenwashing-benchmark/SKILL.md 배포용 스킬 — 횡단 비교
├─ scripts/ · ops/ 유지보수 스크립트·launchd
└─ tests/ 회귀 테스트(40건)
| 바꾸고 싶은 것 | 손댈 곳 |
|---|---|
| 주장 추출·패턴·기계 점수 | analysis.py |
| shortlist 선별 기준 | analysis.py:select_shortlist |
| ② 평가 절차·웹검증·스키마 | EVALUATION-SOP.md + skills/greenwashing-review/SKILL.md |
| evaluation 병합·shortlist 출력 | cli.py:_attach_evaluation, _write_shortlist |
| 보고서·고발장 .md 서식 | markdown_docs.py |
| 검토표·증거목록 .xlsx 서식 | workbooks.py |
| 산출물 파일명·번호 규칙 | cli.py(assess/draft) + verification.py(REQUIRED·glob) + workbooks.py |
| 법령 수집·조문 파싱 | korean_corpus.py, data/kr_official_sources.json |
| 무결성 검증 규칙 | verification.py |
| 공개자료 교차확인 | corroboration.py |
| 횡단 비교 집계·표본 강도 기준 | benchmark.py(sample_confidence·cross_tabulate) |
| 비교분석 보고서 서식 | benchmark_docs.py + skills/greenwashing-benchmark/SKILL.md |
- 심결례·판례 coverage — 핵심 구조화 사례는 구축됐으나 공정위·법원 전수성과 불복 상태는 계속 보강해야 한다.
- 추출 오탐 — 정책·목차 나열 blob, 수치표가 주장으로 잡힘(②에서
없음필터로 걸러지나 ① 정확도 개선 여지). - 이미지·색상·인증마크 — OCR 문언까지만. 도안·색상 의미는 사람이 원본 확인.
- 미국·EU·영국 DB — 핵심 규범·사례 시드는 반영됐으나 회원국·주법 전수 coverage와 원문 버전 DB 전환은 계속 보강한다.
- 정답 세트 검증 — 실제 자료 3~5건으로 추출 재현율 95%·고위험 누락 0 측정 미완.
python3 -m unittest discover -s tests -v이 소프트웨어는 변호사의 그린워싱(환경 표시·광고) 검토를 보조하는 도구다. 산출물(위험점수·법률검토보고서· 신고서/고발장 초안 등)은 법률자문이 아니며, 기계적 산출물에 불과하다. 반드시 자격 있는 변호사의 검토·확정을 거쳐야 하고, 인용 법령·판례의 현행성·정확성은 제출 전 사람이 재확인해야 한다. 저작자는 이 도구의 사용 또는 산출물로 인한 어떠한 결과에 대해서도 보증·책임을 지지 않는다(아래 라이선스의 무보증·책임제한 조항 참조).
Apache License 2.0 — Copyright 2026 dillettante. 자세한 조건은 LICENSE와 NOTICE 참조.
{ "mcpServers": { "greenwashing": { "command": "python3", "args": ["-m","greenwashing.mcp_server"], "env": { "PYTHONPATH": "/클론/경로/greenwashing-review" } }}}