Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

plan-lint

정부 창업지원사업 사업계획서 결함 진단기. 심사위원 손에 가기 전에, 주관 없이 판정 가능한 객관적 결함만 근거와 함께 짚어줍니다.

무엇을 하는가 / 하지 않는가

  • 한다: 필수 항목 누락·분량 위반·수치 모순(룰) + 논리 단절·근거 없는 주장·내부 모순·구체성 부족(LLM) 탐지. 모든 지적에 원문 인용 근거 첨부.
  • 하지 않는다: 점수·합격 예측·아이디어 품질 평가. 심사의 주관 영역은 의도적으로 다루지 않습니다.

설치 & 사용

pip install -e .
plan-lint 사업계획서.md                 # 룰+LLM 전체 (ANTHROPIC 또는 OPENAI API 키 필요)
plan-lint 사업계획서.md --rules-only     # 키 없이 룰 검사만
plan-lint 사업계획서.md --report out.md  # 점검 보고서 파일 생성

API 키가 없으면 LLM 검사 4종은 자동으로 건너뛰고 룰 검사만 수행합니다(우아한 강등).

LLM provider 선택

기본은 --provider auto로, ANTHROPIC_API_KEY가 있으면 Anthropic을, 없고 OPENAI_API_KEY만 있으면 OpenAI를 사용합니다. --provider anthropic|openai로 명시할 수도 있습니다. --model은 미지정 시 provider 기본값(Anthropic은 claude-sonnet-5, OpenAI는 gpt-4.1)을 사용합니다.

pip install -e ".[openai]"                        # OpenAI SDK 설치
export OPENAI_API_KEY=...
plan-lint 사업계획서.md --provider openai          # OpenAI로 LLM 검사 실행

검사 항목 (프로파일 기반)

검사 기준은 src/planlint/profiles/*.yaml에 선언되어 있어, 공고별로 프로파일을 추가하면 코드 수정 없이 확장됩니다. 기본 프로파일은 예비창업패키지 PSST 표준입니다.

검증 하네스

python -m harness로 결함 주입 픽스처에 대한 체커별 재현율·오탐·반복 일치도를 측정합니다. 각 결함 유형마다 결함을 하나만 심은 픽스처와, 결함이 전혀 없는 대조군(clean.md)으로 구성됩니다. CLI와 마찬가지로 --provider auto|anthropic|openai, --model을 받습니다.

측정 결과 (python -m harness --repeat 5 --model gpt-4.1, 픽스처 7개 — vague-goal 추가 후 2026-07-16 전체 재측정):

체커 재현율 반복 일치도 오탐
missing-section 1/1 1.00 0
length-violation 0
numeric-consistency 1/1 1.00 0
logic-gap 1/1 1.00 0
unsupported-claim 1/1 1.00 0
internal-contradiction 1/1 1.00 0
vague-goal 1/1 1.00 0
대조군 clean.md 0
  • 재현율: 심어진 결함을 잡았는가. 반복 일치도: 같은 문서를 5회 실행했을 때 판정이 일치한 비율(재현성). 오탐: 라벨에 없는 결함을 보고한 건수(대조군 포함 전 픽스처 합산).
  • length-violation은 전용 픽스처가 아직 없어 재현율 미측정(v2에서 추가).
  • 저비용 모델(gpt-4.1-mini)에서도 재현율 5/5·대조군 0을 재현하나, 정밀도↔재현율 경계가 상위 모델보다 예민합니다. 운영은 gpt-4.1/claude-sonnet 등 지시 이행이 좋은 모델을 권장합니다.

개발 노트 — 오탐을 0으로 만든 과정. 초기 측정에서 오탐 6건이 나왔고, 원인을 하나씩 규명해 제거했습니다: ① 픽스처들이 같은 골격을 공유해 baseline 지적이 전 파일을 오염 → 각 결함을 격리한 독립 픽스처로 재작성, ② unsupported-claim이 출처(통계청 등)가 명시된 수치까지 지적 → "외부 시장 수치만, 사업자 자신의 목표치·산출식은 제외"로 범위 명확화, ③ internal-contradiction이 예산 산술 오류를 중복 지적 → 인용이 모두 금액 라인인 지적은 코드에서 제거(수치는 numeric-consistency 관할), ④ 프롬프트의 예시 목록을 모델이 체크리스트로 오인해 예시마다 오탐 생성 → 예시를 빼고 추상적 논리 기준(존재/실행 여부 엇갈림)으로 교체. 지표를 억지로 맞춘 게 아니라 실사용에서도 동일하게 터졌을 오탐 원인을 제거한 과정입니다.

알려진 한계 (v2 백로그)

  • 필수 하위섹션(subsection) 검사 미구현
  • HWP/HWPX 입력 미지원
  • structured output 적용 안 됨
  • next_action 자동 연동 미구현

포트폴리오 로드맵

이 프로젝트는 창업지원 도구 3부작의 세 번째입니다: 가상 페르소나 시장조사 → 창업 법령 MCP → 사업계획서 결함 진단(본 저장소). unsupported-claim 결함의 next_action은 페르소나 시장조사 연동을, 자격요건 검증은 법령 MCP 연동을 가리킵니다. v1은 스키마 필드만 제공하며 실제 연동은 v2에서 이루어집니다.

English summary

plan-lint is a defect linter for Korean government startup-grant business plans. It flags only objective, evidence-backed defects (missing sections, length/numeric violations via rules; logic gaps, unsupported claims, internal contradictions, vague goals lacking a number or deadline via LLM) — never scores or predicts approval. LLM checks degrade gracefully without an API key.

About

정부 창업지원사업 사업계획서 결함 진단 CLI 린터 — 룰+LLM 하이브리드, 인용 검증 하네스 동반

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages