80 lines
3.2 KiB
Python
80 lines
3.2 KiB
Python
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
|
|
def mock_pipeline_config() -> dict[str, Any]:
|
|
return {
|
|
"planner": {"provider": "mock"},
|
|
"writer": {"provider": "mock"},
|
|
"reviewers": [
|
|
{"role": "logic", "provider": "mock"},
|
|
{"role": "decision", "provider": "mock"},
|
|
{"role": "reader", "provider": "mock"},
|
|
{"role": "editor", "provider": "mock"},
|
|
{"role": "evidence", "provider": "mock"},
|
|
{"role": "operations", "provider": "mock"},
|
|
],
|
|
"reviser": {"provider": "mock"},
|
|
"quality_gate": {
|
|
"minimum_score": 82,
|
|
"max_blockers": 0,
|
|
"max_errors": 2,
|
|
"max_revisions": 2,
|
|
"deterministic_weight": 0.4,
|
|
"model_weight": 0.6,
|
|
},
|
|
"fail_on_reviewer_error": True,
|
|
}
|
|
|
|
|
|
def starter_brief() -> dict[str, Any]:
|
|
return {
|
|
"title": "기술적 선택을 문제와 근거로 설명하기",
|
|
"document_type": "technical_blog",
|
|
"language": "ko-KR",
|
|
"audience": {
|
|
"roles": ["소프트웨어 개발자"],
|
|
"prior_knowledge": ["기본적인 개발 및 운영 경험"],
|
|
"needs": ["구현 선택의 이유와 적용 조건을 빠르게 파악"],
|
|
},
|
|
"reader_goal": "문제, 대안, 선택 이유, 검증, 트레이드오프를 연결해 설명한다",
|
|
"core_message": "기술적 선택은 사용 기술의 목록이 아니라 해결하려던 문제, 제외한 대안, 수용한 비용, 지킨 경계로 설명해야 한다.",
|
|
"scope": ["단일 기술 블로그 또는 기술 문서의 논리 구조"],
|
|
"non_scope": ["제품 마케팅 카피", "근거 없는 프로젝트 구현 추정"],
|
|
"prerequisites": ["Markdown을 읽을 수 있음"],
|
|
"required_topics": ["구체적인 문제", "제약", "대안", "선택 이유", "검증", "트레이드오프"],
|
|
"constraints": {
|
|
"target_words": 1400,
|
|
"tone": "전문적이고 직접적이며 과장하지 않음",
|
|
"version_context": "",
|
|
"max_heading_depth": 3,
|
|
"require_citations": True,
|
|
"allow_external_knowledge": False,
|
|
"citation_style": "hidden",
|
|
"date_policy": "only_when_material",
|
|
"style_profile": "woowahan_tech_blog_ko",
|
|
},
|
|
"forbidden_claims": [],
|
|
"metadata": {"owner": "documentation-team", "risk": "medium"},
|
|
}
|
|
|
|
|
|
def starter_sources() -> dict[str, Any]:
|
|
return {
|
|
"sources": [
|
|
{
|
|
"id": "SRC1",
|
|
"title": "Replace with a verified project or concept source",
|
|
"url": "repo:///replace-with-a-real-source.md",
|
|
"publisher": "project documentation",
|
|
"facts": [
|
|
"Replace this placeholder with the problem, decision, reason, alternative, accepted cost, and guardrail that the source explicitly supports."
|
|
],
|
|
"source_type": "canonical-project",
|
|
"status": "verified",
|
|
"notes": "Source IDs and paths stay in provenance artifacts when citation_style is hidden.",
|
|
}
|
|
]
|
|
}
|