knowledge(마스터): 소요량·계수·로직에 구분·상세구분 — 표·줄마다 칸 · 갈래 목록은 서버가 줌

- 장 파일 137 개의 표 3,028 · 로직 1,351 줄에 구분(원문 + 부문 · 「건설품셈 공통」) · 상세구분(「03장 토공사」) 칸을 직접 둠 · 파일 머리의 부문·차례는 목록 차례로 남김
- 열 차례 — 표는 키 · 원문번호 · 구분 · 상세구분 · 이름 · 기준 · 출처 · 비고 · 조건 · 범위규칙 · 값칸 · 줄 · 주 · 그룹(맨 뒤) · 로직은 소유 다음에 비고
- 서버 — GET /subs?group= 이 구분·상세구분 목록(장 차례대로) · GET /tables 가 파일을 가로질러 구분·상세구분·찾기로 거르고 쪽 나눔 · GET /logics 도 구분·상세구분으로 거름 · 새 줄은 서버가 갈래를 채움 · 죽은 book 칸 걷어냄
- check_master 가 구분·상세구분이 파일 머리·이름과 맞는지 봄 · adopt 가 빌더 줄에 갈래를 찍어 되돌리기 시험 글자까지 같음 · _틀.md · 화면 계약 · 화면 트리 · 시험 같이 고침

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
This commit is contained in:
2026-09-20 16:30:48 +09:00
co-authored by Claude Opus 5
parent 9de61eb251
commit 10418ccbd4
154 changed files with 8227 additions and 8046 deletions
+21 -5
View File
@@ -23,7 +23,7 @@ export interface FileInfo {
version: string;
}
/** 하위 거름 한 갈래 — 인력 「구분」 · 기계 「세부분류」(머리에 등록된 것). */
/** 하위 거름 한 갈래 — 인력 「구분」 · 기계 「세부분류」 · 장 그룹은 원문+부문(서버가 모음). */
export interface SubInfo {
name: string;
book: string | null;
@@ -42,8 +42,11 @@ export interface RowsPage {
}
export interface TableHead {
file: string;
키: string;
원문번호: string;
구분: string;
상세구분: string;
이름: string;
기준: string;
출처: string;
@@ -52,6 +55,13 @@ export interface TableHead {
count: number;
}
export interface TablesPage {
total: number;
page: number;
size: number;
tables: TableHead[];
}
export interface Change {
op: "edit" | "add" | "delete";
key?: string;
@@ -104,13 +114,19 @@ export const fetchRows = (
): Promise<RowsPage> =>
get<RowsPage>("/rows", { file, page, size, q, unlinked: unlinked ? 1 : 0, sub, detail });
export const fetchSubs = async (file: string): Promise<SubInfo[]> =>
(await get<{ subs: SubInfo[] }>("/subs", { file })).subs;
/** 한 테이블 파일은 `file` · 장 그룹(소요량 · 계수 · 로직)은 `group` 으로 부름. */
export const fetchSubs = async (where: { file?: string; group?: string }): Promise<SubInfo[]> =>
(await get<{ subs: SubInfo[] }>("/subs", { file: where.file ?? "", group: where.group ?? "" }))
.subs;
export const fetchTables = (
file: string,
group: string,
sub: string,
detail: string,
q: string,
): Promise<{ version: string; tables: TableHead[] }> => get("/tables", { file, q });
page: number,
size: number,
): Promise<TablesPage> => get("/tables", { group, sub, detail, q, page, size });
export const fetchTable = (
file: string,