chore: 저장소 구조 정리 및 문서화, 첫 커밋
- src/dist 산출물 분리 원칙 정리(.gitignore, .gitattributes) - 루트 및 주요 폴더(config/scripts/prompts/tests/src, 런타임 폴더 5종)에 안내용 README.md 추가 - CHANGELOG.md, LICENSE, docs/ops/05-release-and-versioning.md 추가 - docs/README.md 문서 지도 갱신
This commit is contained in:
commit
56a6e2da93
159 changed files with 145825 additions and 0 deletions
127
prompts/daily_briefing.schema.json
Normal file
127
prompts/daily_briefing.schema.json
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://dmf-crawler.local/schemas/daily_briefing.schema.json",
|
||||
"title": "DMF 일일 브리핑",
|
||||
"description": "agy 응답에서 추출한 객체를 파이프라인이 자체 검증할 때 쓰는 스키마(아키텍처 ADR-17). --json-schema 로 agy 에 넘기는 것은 보조 수단일 뿐이며, 이 파일이 최종 판정 기준이다. 최상위 additionalProperties 를 막지 않는 이유는 agy 내부 도구 래퍼가 toolAction·toolSummary 같은 키를 주입한 실측 사례(agy SSOT 7.2) 때문이다. 그 키들은 extract.py 가 제거한다.",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"headline",
|
||||
"summary_md",
|
||||
"anomalies",
|
||||
"event_comments",
|
||||
"normalization_candidates"
|
||||
],
|
||||
"properties": {
|
||||
"headline": {
|
||||
"type": "string",
|
||||
"description": "오늘 하루를 요약한 한 문장. 대시보드 시트 상단에 그대로 인쇄된다.",
|
||||
"minLength": 1,
|
||||
"maxLength": 200
|
||||
},
|
||||
"summary_md": {
|
||||
"type": "string",
|
||||
"description": "브리핑 본문(마크다운). 3~6문장.",
|
||||
"minLength": 1,
|
||||
"maxLength": 6000
|
||||
},
|
||||
"risk_note": {
|
||||
"type": "string",
|
||||
"description": "규제·공급 관점의 리스크 메모. 없으면 빈 문자열.",
|
||||
"maxLength": 1000
|
||||
},
|
||||
"anomalies": {
|
||||
"type": "array",
|
||||
"description": "데이터 자체가 이상해 보이는 지점. 근거가 없으면 빈 배열.",
|
||||
"maxItems": 20,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["detail", "severity"],
|
||||
"properties": {
|
||||
"detail": {
|
||||
"type": "string",
|
||||
"description": "무엇이 이상한가.",
|
||||
"minLength": 1,
|
||||
"maxLength": 400
|
||||
},
|
||||
"severity": {
|
||||
"type": "string",
|
||||
"description": "심각도. models.Severity 와 같은 4단계.",
|
||||
"enum": ["INFO", "WARN", "ERROR", "CRITICAL"]
|
||||
},
|
||||
"evidence": {
|
||||
"type": "string",
|
||||
"description": "관측 지표에서 가져온 근거 수치.",
|
||||
"maxLength": 300
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"event_comments": {
|
||||
"type": "array",
|
||||
"description": "중요한 변경 건에 대한 코멘트. enrichment(kind='event_comment') 로 저장된다.",
|
||||
"maxItems": 60,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["dmf_key", "comment", "importance"],
|
||||
"properties": {
|
||||
"dmf_key": {
|
||||
"type": "string",
|
||||
"description": "변경 목록에 있던 dmf_key 를 그대로 복사한 값.",
|
||||
"minLength": 1,
|
||||
"maxLength": 120
|
||||
},
|
||||
"comment": {
|
||||
"type": "string",
|
||||
"description": "이 건이 왜 중요한가. 한두 문장.",
|
||||
"minLength": 1,
|
||||
"maxLength": 400
|
||||
},
|
||||
"importance": {
|
||||
"type": "string",
|
||||
"description": "담당자 확인 우선순위.",
|
||||
"enum": ["HIGH", "MEDIUM", "LOW"]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"normalization_candidates": {
|
||||
"type": "array",
|
||||
"description": "표기 정규화 후보. ADR-25 에 따라 자동 적용하지 않고 state/proposals 로 보내 사람이 승인한다.",
|
||||
"maxItems": 30,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["kind", "observed", "suggested", "confidence"],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "정규화 대상 축.",
|
||||
"enum": ["ingredient_alias", "company_alias", "country_alias"]
|
||||
},
|
||||
"observed": {
|
||||
"type": "string",
|
||||
"description": "데이터에 실제로 나타난 표기.",
|
||||
"minLength": 1,
|
||||
"maxLength": 300
|
||||
},
|
||||
"suggested": {
|
||||
"type": "string",
|
||||
"description": "같은 대상을 가리킨다고 보는 대표 표기.",
|
||||
"minLength": 1,
|
||||
"maxLength": 300
|
||||
},
|
||||
"confidence": {
|
||||
"type": "number",
|
||||
"description": "확신도 0.0~1.0. 0.7 미만은 사람이 먼저 의심한다.",
|
||||
"minimum": 0.0,
|
||||
"maximum": 1.0
|
||||
},
|
||||
"rationale": {
|
||||
"type": "string",
|
||||
"description": "그렇게 본 이유.",
|
||||
"maxLength": 300
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue