You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 6ac8c50
Browse filesBrowse the repository at this point in the historyBrowse files
docs: ARCHITECTURE·DEVELOPMENT 표류 정정 + 새 계층 반영 (M3)
두 문서 모두 v2.3.2(2026-04) 상태로 멈춰 있었다. 틀린 것을 고치고 이 배치가 만든
계층을 더한다 — 재서술은 하지 않았다.
**위험 정정 (최우선)**
- DEVELOPMENT.md 배포 절에 `flyctl deploy`가 그대로 있었다. CLAUDE.md가 🚫로 금지한
바로 그 명령이다 — 실행하면 통합 이미지를 law 단독 이미지로 덮어써 동거 중인
stats·patent·archhub·school까지 죽는다. 통합 호스트 절차(npm publish → Dockerfile 핀
갱신 → gomdori-mcp에서 배포)로 교체하고 금지 경고를 달았다.
- ARCHITECTURE.md도 "Remote (Fly.io) / fly.toml 256MB"로 적혀 있었다. 이 레포에 fly.toml은
없다(통합 호스트 쪽에 있다). 통합 호스트 기준으로 정정.
**사실 정정**
- 버전: 두 문서 v2.3.2 → v4.11.0
- DEVELOPMENT.md:39 `lib/ 13개` → 51개, `tools/ 40개` → 76개(scenarios 12 포함)
- `chains.ts 7개 체인` → 8개
- `server/sse-server.ts` — 실재하지 않는다. 실제는 `http-config.ts`
- 루트 트리의 `fly.toml` 항목 삭제(없는 파일)
- ARCHITECTURE 도구 카테고리 수 갱신(분석 9→10, 헌재/행심 6→8, 기타 4→6, 체인 7→8) +
누락 카테고리(연계·조약·학칙·특별행심·메타·킬러) 추가, `V3_EXPOSED 10개만 노출` 명시
- CLI 설명이 v1 기준이었다 — 자연어 한 줄 라우팅·REPL이 빠져 있었다
- 성능표의 레이턴시 수치에 "SLA가 아니다 · 실측은 UPSTREAM-PERF.md" 단서 추가
**새 계층 추가**
- ARCHITECTURE 다이어그램에 두 층 신설: 라우팅·추출(query-router/route-patterns/
query-extract/scenario-rules/date-*), 업스트림 경계(execution-limits/response-body/
body-shape/upstream-miss/chain-deadline)
- Component Deep Dive: 라우팅 · 실행 예산(한도표 4종 + env) · 미스 판정("실패도 HTTP 200") ·
체인 데드라인(부분 결과는 isError 아님) 절 신설
- Data Flow에 Pattern 5(자연어 라우팅) · 6(200인 실패 → 미스 확정) · 7(데드라인 → 부분 결과)
추가. Pattern 4(별표)는 페이지네이션·표기 정규화·정본 대조 단계를 반영
- 아키텍처 원칙에 Bounded Work(요청 단위 예산)와 Single Source per Domain Vocabulary 추가
- Security에 실행 예산·Origin 검증·scrubError/maskSensitiveUrl 추가
- DEVELOPMENT: 검증 루프(`npm test` / `typecheck` / `dead-code` / `gc`)와 스텁 주입
테스트 관례, console 금지·truncateResponse·단일 원본 규칙을 코드 규칙에 반영
(원본은 CLAUDE.md Critical Rules임을 명시)
코드 무변경. 618/618 통과 확인.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0137aUPTK5X7rxGUGTBrezMS
1.**Separation of Concerns**: Tools → Shared Libs → API Client
62
-
2.**Single Responsibility**: 파일당 200줄 미만, 단일 기능
63
-
3.**Centralized Tool Registry**: 98개 도구를 `tool-registry.ts`의 `allTools[]`에 등록
89
+
2.**Single Responsibility**: 파일당 200줄 미만, 단일 기능 (예외: `risk-rules.ts`. 기존 초과 파일이 남아 있다 — CLAUDE.md 규칙 2 참조)
90
+
3.**Centralized Tool Registry**: 98개 도구를 `tool-registry.ts`의 `allTools[]`에 등록. 그중 `V3_EXPOSED` 10개만 `ListTools`로 노출하고 나머지는 `execute_tool` 경유 — 클라이언트 컨텍스트에 98개 description을 싣지 않기 위한 것
0 commit comments