merge: main_laptop_1 665ccf777 — 52-7 충돌 = 양쪽 다 살림

- Panel_Options = 메인 hidesTypeSummary 세 조건(명세 · 정의 그룹 · 종단배수) + 가드레일 solveSplit · 옛 hasSpecContainers 걷음
- 구조물정의.json = 대피로 · 가드레일 · 맹암거 그룹 다 · 판 9
- 이력 판_6 = 메인 것(바탕 판 6 그대로) · 네 판_6 은 판_8 로
- 52-8 숨김(군 단위)과 대피로 목록 빼기(종류 단위)는 자리가 달라 둘 다 둠
- 시험 수 = B05 선택지 28 · 정의 종류 42

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016PSXsvyDxjNmufteN5bqmt
This commit is contained in:
2026-10-06 00:00:55 +09:00
co-authored by Claude Opus 5.5
34 changed files with 8467 additions and 134 deletions
+60 -18
View File
@@ -1,5 +1,5 @@
{
"판": 7,
"판": 9,
"schema_version": 1,
"comment": "B05 구조물 타입 레지스트리 정본. 근거·옵션 상세는 PLAN.md 구조물 리스트와 resources/knowledge/technical_info/01_임도 참조. 2026-08-17 선택지 재편: B군(종단배수)·F군(생태/녹화)·G군(노면공)은 enabled:false 보존 — B05 선택지에서 빠지고 B06 개별 횡단도 옵션으로 재사용한다. 바닥막이(bed_sill)·생태연못(eco_pond)은 임도 미사용 확정으로 삭제. 배관·BOX암거·물넘이·세월교는 pipe_points.json 정본 관리(managed_by) — structures.json에 저장하지 않으며, 배관 부속(유형/집수정/기슭막이/돌붙임)·날개벽 옵션 정의는 B06/B07 필수 승격의 선언 근거다. ★기본값 원칙(2026-08-16 크로스체크 2차): default를 두는 것은 ①법정이 등급과 무관하게 못박은 단일 수치 ②사용자가 개발 단계에서 확정한 값 ③도메인 수치가 아닌 표시용 문자열, 이 셋뿐이다. 재료·형식 같은 설계자 판단 선택지와 미확정 제원은 default 없이 required로 두어 사용자가 직접 고르게 한다 (pipe_diameter_mm 1000 = 별표2 원칙값+사용자 확정 — 화이트리스트 등재). BOX암거 본체 2.0×2.0·날개벽 유입/유출 있음·짧은쪽 높이 1m·길이 2m·각도 45°는 2026-08-17 사용자 확정값이다 — 본체 규격은 실무 관측 규격(2.0×2.0·3.0×3.0)을 폼에서 프리셋 select로 받고 필요 시 사용자 지정으로 자유 입력하되, 저장 키는 body_width_m·body_height_m 숫자 그대로다(프리셋 전용 키를 만들지 않는다). 이 값들은 B05 서브폼이 실제로 받으므로 phase를 detail로 두지 않는다. ★보호공 개편(2026-08-17 사용자 지시): 구 `*_pitching`(있음/없음) + `*_pitching_finish`(찰/메) 두 축을 `*_protection` 한 축(돌붙임(찰)·돌붙임(메)·도수로)으로 합쳤다 — 도수로·산비탈수로(B4)는 유출부에서 돌붙임 대신 쓰는 공종이라 별도 구조물이 아니라 보호공 선택지로 받는다. \"없음\"은 삭제(물이 흐르는 자리라 보호공 필수). 치수는 배타 — 돌붙임이면 `*_protection_area_m2`(10㎡), 도수로면 `*_protection_width_m`(1m, 지식DB 수치 근거 없음·사용자 확정, 실무 확인 후 개선). 구 저장분은 `common_util_drainage_pipes.parse_pipe_points`가 새 키로 옮긴다.",
"구조물군": {
@@ -676,28 +676,41 @@
"cross_section",
"quantity"
],
"options": []
},
{
"type_id": "cross_underdrain",
"group": "A",
"name": "맹암거",
"placement": "point",
"style": {
"color": "#3aa0a8",
"abbr": "횡맹"
},
"drawing_views": [
"plan",
"profile",
"cross_section",
"quantity"
],
"options": [
{
"key": "ditch_spec",
"label": "규격",
"input": "select",
"choices": [
"콘크리트 개거 150×200",
"L형수로 H=0.2"
],
"default": null,
"required": false,
"phase": "detail",
"empty_means": "비우면 실무 붙박이(콘크리트 개거)로 돎"
},
{
"key": "length_m",
"label": "연장",
"key": "culvert_height_m",
"label": "암거 높이",
"input": "number",
"unit": "m",
"default": null,
"required": false,
"empty_means": "비우면 표가 안 서고 「연장을 적어야 섬」 사유가 뜸 — 개거는 m당 원단위라 연장이 곧 밑수(2026-09-14 A2)"
"empty_means": "비우면 값 없음 — 사용자 표 06 손 입력 칸(기본값 근거 없음)"
},
{
"key": "culvert_slope_pct",
"label": "암거 경사",
"input": "number",
"unit": "%",
"default": null,
"required": false,
"empty_means": "비우면 값 없음 — 사용자 표 06 손 입력 칸(기본값 근거 없음)"
}
]
},
@@ -3384,7 +3397,25 @@
"계곡통과시설",
"월류단면",
"날개벽"
]
],
"이름": {
"ford.diameter": "관경",
"ford.diameter=800": "800",
"ford.diameter=1000": "1000",
"ford.diameter=1200": "1200",
"ford.diameter=1500": "1500",
"ford.width": "월류 폭 (m)",
"ford.height": "월류 높이 (m)",
"ford.count": "수량 (련)",
"inlet.structure": "구조",
"inlet.structure=없음": "없음",
"inlet.structure=날개벽": "날개벽",
"inlet.structure=흙막이": "흙막이",
"outlet.structure": "구조",
"outlet.structure=없음": "없음",
"outlet.structure=날개벽": "날개벽",
"outlet.structure=흙막이": "흙막이"
}
},
"revetment": {
"동작": [
@@ -3451,6 +3482,17 @@
],
"형상": {}
}
],
"cross_underdrain": [
{
"id": "gcrossud",
"이름": "맹암거",
"옵션": [
"culvert_height_m",
"culvert_slope_pct"
],
"형상": {}
}
]
},
"배치": {},
@@ -2732,12 +2732,26 @@
"drawing_views": [
"plan"
],
"options": []
"options": [
{
"key": "facing",
"label": "방향",
"input": "select",
"choices": [
"좌",
"우",
"양면"
],
"default": null,
"required": true,
"phase": "detail"
}
]
},
{
"type_id": "guardrail",
"group": "E",
"name": "가드레일",
"name": "가드레일·경계석·위험표지",
"placement": "interval",
"style": {
"color": "#1f9e46",
@@ -2750,32 +2764,17 @@
],
"options": [
{
"key": "form",
"label": "형태",
"input": "text",
"key": "kind",
"label": "종류",
"input": "select",
"choices": [
"가드레일",
"경계석",
"위험표지"
],
"default": null,
"required": false
},
{
"key": "length_m",
"label": "길이",
"input": "number",
"unit": "m",
"default": null
},
{
"key": "before_m",
"label": "기준측점 전",
"input": "number",
"unit": "m",
"default": null
},
{
"key": "after_m",
"label": "기준측점 후",
"input": "number",
"unit": "m",
"default": null
"required": true,
"phase": "detail"
}
]
},
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff