Skip to content

docs: WBS와 기능명세서 (Epic)6건을 기준 문서로 반영 및 구체화 (#17) - #4

Open
Daehyun-Bigbread wants to merge 24 commits into
devfrom
docs/wbs-3rd-review
Open

Daehyun-Bigbread wants to merge 24 commits into
devfrom
docs/wbs-3rd-review

Conversation

@Daehyun-Bigbread

@Daehyun-Bigbread Daehyun-Bigbread commented Sep 12, 2026

Copy link
Copy Markdown
Member

목적과 작업 요약

WBS를 기능명세서 기준으로 다시 짜고, 기능명세서 6종을 저장소(docs/spec/)에 넣었습니다. 코드 변경은 없으며 설계 문서 24개 추가 및 변경 건입니다.

기존 WBS는 작업 번호(T3.1 등)를 축으로 삼고 근거 문서가 저장소 밖(노션)에 있었으나, 변경 후에는 명세서의 화면 하나 = WBS 티켓 하나, 그 화면의 기능 하나 = 하위 항목 하나로 1:1 대응하도록 개편했습니다.

또한, 이전 미결 안건(Blocker) 4건이 전부 해소되었습니다.

안건 결론
권한 제어 방식 기본 권한 세트 7키 × 권한 41개, 로그인 응답의 권한 목록으로만 판정
출결 상태 종류 9종 단일 enum (행사 특칙형은 아래 리뷰 집중 사항 2번에서 다시 논의)
스터디 인증 방식 인증 사진으로 확정 (카페 링크 방안 철회)
CSV·승격·삭제 화면 통합 분리 유지, 순서 강제는 삭제 화면의 조건 검사로 처리

주요 변경과 영향 범위

1. 기능명세서 6종 신설 (docs/spec/)

  • 플랫폼 기반 (00-platform.md): 화면이 아닌 개발 기반 항목. 티켓 키를 T0.xPLT-*로 개칭.
  • 리크루팅 (03-recruiting.md): PoC 기준 명세 정리.
  • 서류 평가 (04-evaluation.md): PoC 기준 정리 + 감사 기록 절 신설.
  • 출결 (05-attendance.md): v2.0 — 운영지원팀 정식 요구사항 기준 전면 개정.
  • 시스템·계정 (06-system.md): 권한 체계 정본 반영.
  • 콘텐츠 (07-content.md): PoC 기준 명세 정리.

2. 문서 체계 및 설정 정리

  • README.md: "앞으로 만들 것(spec/)"과 "지금 동작하는 것(screens/)"의 구분 기준 명시 및 읽는 순서/표기 규칙 정리.
  • 교차 안건 문서 이동: 92-open-items.md02-open-items.md 이동 및 90번대 번호를 06·07로 정리.
  • .gitignore: /docs 예외 제거 (문서는 추적되고 있으나 새 파일 추가가 막히던 문제 해결).

3. 개발 범위 증가 (원문 명세서 미반영 작업 7건 추가)

  • 서류 평가 (최종 판정 기수 단위 마감 버튼): 명세서의 "확정 시 보류·미판정 0건" 조건 검증을 위한 확정 동작 추가.
  • 서류 평가 (판정 확정 API): 위 버튼 동작 처리를 위한 API 명세 추가.
  • 서류 평가 (승격·삭제 실행 기록): 12월 승격 작업 시 감사 로그 부재 문제 해결을 위한 기록 명세 추가.
  • 출결 (그룹 관리 / Term 설정 / 종합 조회 API): FE+BE 표기되어 있으나 API 절에서 누락되었던 항목 명세 추가.

4. 명세서 본문 오류 및 정정 (4곳)

  • 회원 관리 화면 존재 근거: 승격 모달과의 모순 서술 수정 ("리크루팅 종료 후 지원서 삭제로 인해 승격 화면이 조회 대상을 잃음"으로 교체).
  • 평가자 계정 발급: 외부 평가자 미사용 확정에 따라 "별도 발급 없음"으로 정정.
  • CSV 추출 용도: "평가 입력 데이터" → "승격·삭제 전 백업 수단"으로 정정.
  • 출결 명세서 절 참조: 옛 판 장 번호가 기재된 12곳을 현재 장 번호로 수정.
  • 기준선 문서 3종 상단 배너 갱신: IA 트리 배너 내용 중 실제 출결 대체 범위(화면 5개 → 11개)에 맞게 배너 갱신.

관련 이슈

Refs #17

검증 결과

  • npm run lint: 통과
  • npm run format:check: 통과
  • npm run check-types: 통과
  • npm run build: 통과
  • 수동 확인:
    • 기능 ID · 미결 안건 · API 항목을 WBS ↔ 명세서 간 스크립트로 전수 대조 (일치)
    • docs/**/*.md 상대 링크 및 내부 앵커 전수 검사 (깨짐 없음)
    • T0.x 옛 표기 잔존 여부 확인 (73곳 치환 완료)

UI 변경 전후

관련 없음 (코드 및 UI 변경 없는 문서 PR입니다.)

리뷰 집중 사항

  1. 개발 범위 증가 건 검토:

    • 의존성 상 필수적인 작업 7건(서류 평가 닫기 버튼/API, 감사 로그, 출결 API 3종 등)을 검토 과정에서 추가했습니다. 범위 확장에 대한 확인 부탁드립니다.
  2. 10월 착수 전 결정 필요한 안건 2건:

    • 행사 출석 상태 DB 저장 방식: OT·컨퍼런스 특칙 상태(인정 지각 등)를 저장할 컬럼 설계 필요 (담당: 운영지원팀 + 백엔드).
    • 대표진/차기대표진의 41개 권한 매핑: 권한 기본값 코드를 작성하기 위한 대표진 권한 범위 확정 필요 (담당: 대표진 + 운영지원팀).
    • 참고: 착수는 우회안(status+modifier 2열 스키마 지정, 권한 비워두기)으로 가능하나 배포 전 확정이 필요합니다.
  3. 기존 WBS 탈락 절 존치 여부:

    • 개편 과정에서 시나리오 완료 게이트, 커트라인 산술, 크리티컬 패스, 리스크 절이 빠졌습니다. (특히 커트라인 산술은 출결 개발 기간 부족을 시각화하던 항목). 폐기할지 별도 문서로 분리/보존할지 의견 부탁드립니다.

체크리스트

  • 셀프 리뷰를 완료했습니다.
  • 로컬 검사 4종을 통과했습니다.
  • 필요한 문서를 갱신했습니다.
  • 미완료 항목과 후속 작업을 설명했습니다.

후속 작업

  • 10월 착수 전 미결 결정 2건 확정 (행사 출석 상태 DB 스키마, 대표진 권한)
  • 티켓별 담당자 지정 ([docs] WBS 산출 및 확정 #17)
  • 출결 DB 스키마 규모 재산정 (출결 시작일 기한 근거 재확인)
  • 남은 미결 안건 처리 (P1 2건, P2 2건)

- 티켓 44개에 우선순위(높음/중간/낮음)·난이도(상/중/하)·배정 필요 분야
  (FE/BE/인프라/디자인) 부여. "우선순위 · 난이도 · 배정 필요 분야" 절 신설
- 협업 티켓은 BE·인프라가 무엇을 내놓아야 FE가 착수하는지 명시
- 백엔드 확정 범위 기록: 출결(Epic 3)·시스템/계정(Epic 4) 신규 개발,
  서류 평가(Epic 2)는 범위 밖이며 필요시 추가 요청
- 일정 산술 정정: Epic 0 14.8→13.3주, Epic 3 18.3→19.0주(M×8→M×9),
  라우트 맵 21→22경로, 화면 뼈대 표기(메뉴 24 / 렌더 컴포넌트 16)
- 커트라인 A 완충 정정: 운영 준비 기간 이중 계상을 분리해
  순수 완충 5.5주 → 약 2.5~3주. 가용 기간을 출결 시작일/개발 마감 두 줄로 분리
- T0.10 테스트 도구 도입(M), T0.11 오류 수집·모니터링(S) 신설.
  Epic 0 합 14.6주. T0.11만 커트라인 A 경로에 포함
- 나머지 후속 조치 7건은 티켓 밖 항목으로 정리(담당·기한은 미정)
- README: 문서 지도·읽는 순서·파일 목록에 01-wbs.md 누락분 추가
- README: 게이트 결정 시 WBS 동반 갱신, 규모 변경 시 합산 동반 수정 규칙 추가
- 91-ia-gap: 헤더 열을 기준 커밋(코드 현황)과 최종 갱신(문서)으로 분리하고
  최종 갱신을 2026-09-12로 정정. 본문은 2026-09-10 기획안을 인용하는데
  헤더가 2026-08-29로 남아 있어 갱신 여부를 오독할 수 있었다
- 91-ia-gap: 갱신 이력 추가. 기준 커밋 d0ab04b 이후의 cffc176(출결 기본
  상태 '미정')은 대조표에 아직 반영되지 않았음을 명시
@Daehyun-Bigbread Daehyun-Bigbread changed the title docs: WBS 3차 검토 반영 — 우선순위·난이도·배정 분야 추가 및 산술 정정 docs: WBS 우선순위·난이도·배정 분야 산출 및 일정 산술 정정 Sep 12, 2026
@Daehyun-Bigbread Daehyun-Bigbread self-assigned this Sep 12, 2026
@Daehyun-Bigbread Daehyun-Bigbread added the documentation Improvements or additions to documentation label Sep 12, 2026
@Daehyun-Bigbread Daehyun-Bigbread linked an issue Sep 12, 2026 that may be closed by this pull request
7 tasks
@minseo0313

Copy link
Copy Markdown
Contributor

이번에 정한 브랜치 운영 방식에 따라 해당 PR의 base 브랜치를 main에서 dev로 변경해 주세요. 이후 dev에서 검증 후 main에 반영할 예정입니다.

@Daehyun-Bigbread
Daehyun-Bigbread changed the base branch from main to dev September 19, 2026 04:51
@coderabbitai

coderabbitai Bot commented Sep 19, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Repository: BOAZ-website/frontend_admin/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: ab063f87-6e9c-41b1-8974-027678c7b5e3


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Daehyun-Bigbread Daehyun-Bigbread changed the title docs: WBS 우선순위·난이도·배정 분야 산출 및 일정 산술 정정 docs: WBS를 기능명세서 기준 최종본으로 교체 Sep 19, 2026
@Daehyun-Bigbread Daehyun-Bigbread changed the title docs: WBS를 기능명세서 기준 최종본으로 교체 docs: WBS를 기능명세서 기준 최종본으로 교체 (#17) Sep 19, 2026
도메인별 기능명세서 5종을 기준으로 재작성한 최종본으로 `docs/01-wbs.md`를
통째로 대체한다. 기존 2차·3차 검토판의 작업 단위 티켓 체계(T0.x~T5.x)를
화면 단위 티켓 키와 명세서 기능 ID의 2단 구조로 바꾼다.

- 티켓 키를 명세서 화면 기준으로 재편: REC-* · EVL-* · ATT-* · SYS-* · CNT-*
- Epic 0의 T0.x 계열만 공통 기반으로 유지하고 명세서 귀속 항목을 매핑
- Epic 3 출결을 v2.0으로 전면 개정: ATT-ROSTER(명단 SOT) · ATT-VIEW ·
  ATT-GROUP 신설, SET-HOST 흡수, ATT-MAN 삭제, ATT-SUM 재정의
- 출결 상태 9종 enum · 무효 주차 · 무단지각 mod 3 환산 규칙 반영
- 권한 모델을 Permission 41개와 0~5단계 구현 계획으로 확정
- EVL-DEL 지원서 전체 삭제, SYS-MEM 회원 관리 신설
- 규모 표기를 평문으로, 담당에 인프라·디자인 추가
- 마일스톤 M0~M6 완료 정의를 티켓 기준으로 재작성

`docs/README.md`의 색인이 교체로 사라진 절(시나리오·게이트·커트라인·
"우선순위 · 난이도 · 배정 필요 분야")을 가리키고 있어 현재 절 구성으로
함께 정정한다.
`01-wbs.md`가 기능명세서 기준으로 교체되면서 게이트 절이 사라져
`91-ia-gap.md` §4 #4의 링크가 존재하지 않는 절을 가리키고 있었다.

최종본 `LDR-03`이 인증 사진 제출을 다시 올린 상태라 카페 링크 확정과
어긋나므로, 해결 표기 대신 재논의 필요로 바꾸고 미결 안건 문서
(`92-open-items.md` §2.6)를 가리키게 한다.
WBS Epic 1의 기준 문서인 리크루팅 기능명세서를 `spec/` 계층에 추가한다.
화면 ID(`REC-*`)와 기능 ID(`POST-01` 등)가 WBS 티켓 키·하위 항목과
1:1로 대응하므로, WBS가 인용하는 기준 문서를 저장소 안에서 확인할 수 있다.

- `docs/spec/03-recruiting.md` 신규 — 기능 구조 · 화면별 기능 명세 5종 ·
  API 확인 항목 4건 · Open Issues · 잔여 작업
- `docs/screens/92-open-items.md` §2.2 사전 알림 명단의 기능 범위를
  결정 완료로 전환. 초과 기능 정리, 카카오/SMS 미연동, 양식 서버 이전이
  결론이며 `REC-API-3`이 이 결정으로 해소된다

`91-ia-gap.md`가 이 절을 파일 단위로 참조하므로 절 제목과 앵커는 유지하고
본문만 결론으로 대체한다.
WBS Epic 2의 기준 문서인 서류 평가 기능명세서를 `spec/` 계층에 추가한다.
화면 ID(`EVL-*`)와 기능 ID(`DASH-01` 등)가 WBS 티켓 키·하위 항목과
1:1로 대응한다.

- `docs/spec/04-evaluation.md` 신규 — 제출 상태·최종 판정 값 정의,
  화면별 기능 명세 4종, API 확인 항목 6건, Open Issues, 잔여 작업.
  `EVL-DEL` 지원서 전체 삭제는 원본 화면 정의서에 없어 이 문서에서
  신규 정의한다

`docs/screens/92-open-items.md`에 다음 결정을 반영한다.

- §2.1 결과 처리 3단계(P0) — 분리된 구조를 유지하고, 순서 강제는 한 화면
  통합이 아니라 `DEL-01`의 선행 조건 검사(모집 비활성 · 승격 완료 ·
  CSV 추출 완료 여부 표시 + 서버 차단)로 대체한다. 진입 차단 수준만
  `EVL-B-6`으로 이관한다. P0 목록에서 결정 완료로 옮긴다
- §3.3 되돌릴 수 없는 작업 — 승격 취소는 기능을 두지 않고 확인 모달로
  대체하며, 최종 합불 확정은 `HOLD`·`PENDING` 0건 검증을 거친다.
  나머지 도메인 작업은 미결로 남긴다
WBS Epic 3의 기준 문서인 출결 관리 기능명세서 v2.0을 `spec/` 계층에
추가한다. 운영지원팀 요구사항 기준 전면 개정판이라 기존 출결 설계를
대체하며, 이 프로젝트에서 유일하게 백엔드가 신규인 영역이다.

- `docs/spec/05-attendance.md` 신규 — 기수·Term 구조, 출결 상태값 9종과
  CSV 코드, 명단 SOT 설계 원칙, 화면별 기능 명세 11종, 점수 계산 규칙,
  인증 컨펌 플로우, CSV 입출력, API 요구사항 7건
- `docs/spec/01-attendance-system.md` 상단 배너에 출결 설계(§3 이후)가
  대체됐음을 명시. 기준선 문서이므로 본문은 고치지 않는다
- `docs/screens/91-ia-gap.md` §3 출결 인증 방식 행과 §4 #4를 사진 제출
  확정으로 갱신. 2026-09-10 기획안의 카페 링크 확정을 뒤집는 결정이다

`docs/screens/92-open-items.md`에 다음 결정을 반영한다.

- §2.6 인증 방식(P0) — 인증 사진 제출로 확정. 미제출/확인 대기/확인/반려
  4상태 전이와 반려 경로가 생겼고, 컨펌 시점에 출결이 기록에 반영된다
- §3.2 출결 상태 값 체계(P0) — 9종 단일 enum, 감점 체계, CSV 코드 확정.
  활동별로 부분집합을 쓴다(ADV 4종, 스터디 3종)
- §1.3 출결 대시보드 위치 — 대시보드는 두지 않고 ATT-VIEW·ATT-SUM이
  대신한다. ATT-LDR은 정식 화면으로 올린다
- §2.3 ADV 입력 화면 — 운영지원팀 화면은 활동별로 가르고(주차 대 회차),
  리더 입력은 ATT-LDR 하나로 합친다
- §2.4 HOST 계정 관리 위치 — 출결 영역 유지하되 ATT-GROUP에 흡수
- §2.5 활동·주차·팀 편성 — 회차 생성 주체는 운영지원팀, 명단은 SOT
  조회 시점 계산, BASE 병행 인원은 자동 포함
- §2.7 점수 규칙 연결 — Term 단위 보관으로 소급 반영하지 않는 방향 확정.
  구현 범위는 ATT-B-1로 백엔드 검토 중

P0 미결은 §3.1 역할 모델 하나만 남는다.
WBS Epic 4의 기준 문서인 시스템 계정 기능명세서 v1.1을 `spec/` 계층에
추가한다. 권한 재설계 문서(2026-09-11 개정) 기준으로 권한 체계의 정본이
되며, 이 문서로 미결 P0 안건이 모두 소진된다.

- `docs/spec/06-system.md` 신규 — 유효 권한 계산식, 기본 세트 키 7개,
  Permission 41개 카탈로그, 화면별 기능 명세 4종(SYS-EVAL 폐기 포함),
  API 요구사항, Open Issues
- `docs/spec/02-role-model.md` §2에 Permission 10종이 41개로 대체됐음을
  명시. 역할 4종 정의는 그대로 유효하며, 대응 관계 추적을 위해 기존 표는
  남긴다

`docs/screens/92-open-items.md`에 다음 결정을 반영한다.

- §3.1 역할 기반 접근 제어(P0, 마지막 P0) — 역할 4종 × TeamName 축의
  기본 세트 키 7개로 확정. Permission 41개를 직접 쓰고, 프론트는 `/me`가
  내려주는 유효 permission 목록으로만 판정한다. 메뉴는 숨기고 경로는
  가드 + 403으로 막으며, 라우터를 도입한다. CONTENT_ADMIN은 폐기된다
- §3.4 감사 로그 기록 범위 — 구현 확정. 권한 재설계 범위 밖이라 별도
  착수하며, 기록 대상 기본안은 되돌릴 수 없는 작업 7종이다. 저장 항목과
  보관 기간은 SYS-A-2로 남는다

앞선 커밋에서 결정 내용을 넣으며 원래 표의 빈 머리글이 고아로 남아
빈 표로 렌더링되던 7곳을 함께 정리한다.

P0는 전부 소진됐고 P1 3건 · P2 2건이 남는다.
WBS Epic 5의 기준 문서인 콘텐츠 관리 기능명세서를 추가하면서, 다섯 개
Epic의 기능명세서 세트를 완성한다.

- `docs/spec/07-content.md` 신규 — 기능 구조, 화면별 기능 명세 4종,
  API 확인 항목 3건, 디자인 확정 전 정리 6건
- `docs/README.md` — 문서 지도에 기능명세서 층(`spec/03`~`07`)을 추가하고,
  파일 목록과 "어디부터 읽나"를 갱신. 규범 문서가 기준선과 기능명세서
  두 층이 됐고 충돌 시 기능명세서를 따른다는 규칙을 명시. 권한 구현
  진입점을 `spec/06-system.md` §3으로 바꾼다
- `docs/screens/92-open-items.md` §3.5 데이터 영속성 범위 — localStorage
  세 항목 중 점수 규칙과 사전 알림 문구 양식은 서버 저장으로 확정됐고,
  스터디장 안내문 양식 하나만 `SYS-B-3` 결정에 걸려 남는다

미결 안건은 P1 3건 · P2 2건(그중 1건은 3분의 1만 잔여)으로 줄었다.
@Daehyun-Bigbread Daehyun-Bigbread changed the title docs: WBS를 기능명세서 기준 최종본으로 교체 (#17) docs: WBS와 Epic별 기능명세서 세트를 기준 문서로 반영 (#17) Sep 19, 2026
WBS Epic 0의 기준 문서인 플랫폼 기반 기능명세서를 추가해 명세서 세트를
완성한다. 다른 명세서가 화면 ID를 쓰는 것과 달리 사용자 화면이 아니라
개발 기반이라 `T0.x` 티켓 번호를 그대로 쓴다.

파일명은 `screens/00-common.md`가 공통 전제를 담는 관례를 따라
`spec/00-platform.md`로 둔다.

- `docs/spec/00-platform.md` 신규 — 티켓 12종 명세, M0 완료 기준,
  도메인 명세서 5종의 공통 요구가 어느 T0.x에 귀속되는지 정리
- `docs/README.md` — 문서 지도·파일 목록·읽는 순서에 반영

`docs/screens/92-open-items.md` §3.3 되돌릴 수 없는 작업의 확인 절차를
결정 완료로 전환한다.

- 도메인마다 따로 만들지 않고 공용 확인 모달(T0.7) 하나로 통일하고
  브라우저 confirm()을 전수 제거한다
- 기본은 대상 표시 + 2단 확인, 강화 수준은 대상 이름 직접 입력이며
  참가자 1명 이상인 행사 삭제와 지원서 전체 삭제에 적용한다
- 확인 절차가 전혀 없던 3건 중 최종 합불 확정은 HOLD·PENDING 0건 검증을
  거치고, 일괄 발송 완료와 부원 불러오기는 각각 발송 상태 미기록과
  명단 SOT 도입으로 작업 자체가 사라진다

미결은 P1 2건 · P2 2건으로 줄었다.
명세서 6종에 공통으로 적용되는 표기 규칙이 어느 문서에도 기록되어 있지
않아 `docs/spec/README.md`를 추가한다. 특히 Open Issue 접두사 분류
(A 운영팀 정책 · B 디자인 정리 · C 서비스운영팀 확인)와 API 확인 항목
표기는 명세서 본문에서 쓰이기만 하고 정의된 곳이 없었다.

- 읽는 순서 — 플랫폼 기반 → 시스템 계정(권한 체계) → 도메인 자유
- Epic ↔ 명세서 ↔ 티켓 키 ↔ 상태 대응표
- 공통 표기 — 화면 ID · 기능 ID · Open Issue · API 확인
- 미결 목록 위치. 장 번호가 문서마다 달라(출결은 9·10장, 플랫폼은 해당
  절 없음) 절 이름으로 찾도록 안내한다
- 기준선 2종과의 관계 — 무엇이 대체됐고 무엇이 유효한지

`docs/README.md`의 파일 목록과 "어디부터 읽나"에 반영한다.
플랫폼 기반 명세서의 티켓 키가 번호 체계(`T0.0`~`T0.11`)에서 의미 약어
(`PLT-*`)로 바뀌었다. 문서 6개에 걸쳐 73곳을 일괄 치환한다.

| 이전 | 이후 | 티켓 |
| --- | --- | --- |
| T0.0 | PLT-DEPLOY | 프론트 CD 파이프라인 |
| T0.1a | PLT-ROUTER | 라우터 도입 |
| T0.1b | PLT-STATE | 출결 공유 상태 해체 |
| T0.8 | PLT-SESSION | 로그인·토큰·인증 컨텍스트 |
| T0.2 | PLT-CLIENT | API 클라이언트 |
| T0.3 | PLT-QUERY | 서버 상태 관리 |
| T0.4 | PLT-STATUS-UI | 로딩·에러·빈 상태 |
| T0.5 | PLT-ERRMSG | 에러 코드 한글 매핑 |
| T0.6 | PLT-FORM | 폼·검증·페이징·업로드 |
| T0.7 | PLT-CONFIRM | 파괴적 액션 확인 모달 |
| T0.9 | PLT-PILOT | 파일럿 1화면 |
| T0.10 | PLT-TEST | 테스트 도구 |
| T0.11 | PLT-MONITOR | 오류 수집·모니터링 |

`T0.x`를 총칭으로 쓰던 산문 7곳도 `PLT-*`로 바꾼다. 다만
`00-platform.md`의 근거 자료 칸에는 기존 번호를 개칭 이력으로 남긴다.

`01-wbs.md` Epic 0 도입부의 "명세서 범위 밖이라 기존 티켓을 유지한다"는
서술도 정정한다. 플랫폼 기반 명세서가 추가되어 더 이상 사실이 아니다.
`00-platform.md` §2 구성 표를 7개 영역에서 4개로 묶는다.
배포·라우팅·상태 해체 / 인증·통신 / 공용 UI·메시지 / 검증 순이며
티켓 13개는 그대로다.

영역을 합치면서 티켓별로 달랐던 담당과 도메인 의존이 뭉개지지 않도록
예외를 괄호로 남긴다. `PLT-DEPLOY`는 인프라가 붙고, `PLT-QUERY`는
FE 단독이며, `PLT-ERRMSG`는 BE가 붙는다.
@Daehyun-Bigbread Daehyun-Bigbread changed the title docs: WBS와 Epic별 기능명세서 세트를 기준 문서로 반영 (#17) docs: WBS와 기능명세서 세트 6종을 기준 문서로 반영 (#17) Sep 19, 2026
기능명세서 6종이 들어오면서 `spec/`과 `screens/`가 같은 화면을 다루게
됐고, 기능 목록이 거의 같아 보여 중복으로 읽히는 문제가 생겼다.
"당위 / 사실"이라는 표기만으로는 어느 쪽을 봐야 하고 어느 쪽을 고쳐야
하는지 판단할 수 없어 구분 기준을 절로 뽑아 명시한다.

- 두 문서의 시제가 다르다 — spec은 "앞으로 이렇게 만든다",
  screens는 "지금 이렇게 동작한다"
- 같은 기능을 어떻게 다르게 서술하는지 실제 예로 대조
- 차이 자체가 산출물이며 `91-ia-gap.md`가 그것을 잰다. 한쪽으로 합치면
  "무엇이 남았는가"를 셀 근거가 사라진다
- 고치는 시점이 다르다 — 결정이 나면 spec만, 코드가 바뀌면 screens

문서 지도의 두 행 설명과 "화면을 디자인한다" 행도 같은 기준으로 고친다.
기능명세서 6종이 미결 안건에 답을 줬는데 현황 문서의 상태 태그는 그대로
남아 있었다. `screens/02-recruiting.md`가 "카카오/SMS 연동 여부를
확정해야 한다"고 적고 있지만 그 안건은 이미 닫힌 상태였다.

`README.md`에 새로 적은 규칙대로, 결정이 났지만 코드는 그대로인 구간은
상태 태그를 `결정됨`으로 바꾸고 정본 링크를 붙인다. 현황 서술 자체는
여전히 사실이므로 고치지 않는다.

- 상태 태그 25개를 `결정됨` + 정본 링크로 전환. 미결 7개는 그대로 둔다
  (미리보기 존치 · CSV 추출 조건 · 문항 보조 설명 노출 위치 ·
  HOST 초기 비밀번호 · 안내문 양식 저장 위치 · 감사 로그 보관 기간)
- `00-common.md` 태그 범례에 `결정됨` 행 추가
- 각 문서 말미 "확정이 필요한 사항" 절을 미결 표와 "결정 완료" 표로 분리.
  서류 평가와 시스템·계정은 미결이 0건이 됐다
- 현황 문서 5종의 최종 갱신일을 올린다. 기준 커밋은 코드를 대조한 시점이라
  그대로 둔다

출결은 명세서가 v2.0으로 전면 개정되면서 화면 구성 자체가 바뀌므로,
현황 서술은 구현 이후 다시 써야 한다는 점을 해당 절에 적어 둔다.
`screens/`가 00~05 다음에 90·91·92로 건너뛰어 번호 체계가 끊겨 보였고,
세 문서만 제목 형식과 헤더 표 컬럼이 달랐다. 성격에 맞게 재배치하고
형식을 맞춘다.

이동·개칭

- `screens/90-screen-inventory.md` → `screens/06-screen-inventory.md`
- `screens/91-ia-gap.md` → `screens/07-ia-gap.md`
- `screens/92-open-items.md` → `02-open-items.md` (docs 루트)

미결 안건 문서는 도메인 교차 결정을 모은 것이라 현황 디렉터리에 둘 이유가
없다. `01-wbs.md` 옆으로 옮겨 README 문서 지도의 "미정" 층과 위치를
맞춘다. 참조 70곳을 경로와 라벨까지 함께 고쳤다.

형식 통일

- 제목을 `<이름> — <성격>` 형식으로 맞춘다. 화면 인벤토리와 IA 대조표에
  성격을 붙이고, 미결 안건 문서에 "도메인 교차 결정 안건"을 붙인다
- 헤더 표를 `기준 커밋 / 최종 갱신 / 운영 주체 / 표기 규칙` 4열로 통일한다.
  기존에는 2열·3열이 섞여 있었고 IA 대조표만 컬럼 라벨이 달랐다
- 실제로 고친 문서의 최종 갱신일을 올린다. IA 대조표의 갱신 이력에
  이번 변경을 추가한다

번호 규칙을 `README.md`와 `screens/00-common.md`에 명시한다.
`screens/`의 `01`~`05`는 도메인별 화면 현황, `06` 이후는 도메인에 속하지
않는 조회·대조용 부록이다.
`87eaae0`이 `# local docs` 주석과 함께 추가한 `/docs`가 실제 운영과
어긋나 있었다. `docs/` 아래 파일 23개가 이미 추적되고 있고 PR에서
리뷰되는데, `.gitignore` 규칙은 이미 추적 중인 파일에는 효력이 없어
새 문서를 추가할 때만 조용히 거부된다.

기능명세서 6종을 추가하는 동안 `git add -f`가 여덟 번 필요했고, 옮기거나
새로 만들 때마다 같은 일이 반복된다. 문서를 저장소에서 관리하기로 한
이상 규칙을 제거하는 편이 맞다.

`docs/.DS_Store`는 기존 `.DS_Store` 규칙이 그대로 덮으므로 노출되지
않는다. 제거 후 `-f` 없이 문서가 추가되는 것을 확인했다.
기능명세서 6종을 정본으로 두고 WBS와 IA 문서를 대조해 어긋난 지점을
고친다. 식별자는 스크립트로 전수 대조했다.

`01-wbs.md`

- 기준 문서 목록에 플랫폼 기반 명세서가 빠져 있었다. 6종으로 고치고
  `spec/README.md`를 가리키게 한다
- 티켓 총괄 표의 Epic 0 비고 "명세서 범위 밖, 기존 유지"를 정정한다.
  `spec/00-platform.md`가 생겨 더 이상 사실이 아니다
- `REC-A-2`가 WBS에만 있었다. 명세서에 해당 번호가 없으므로 표에서 빼고,
  확정 사실(수동 복사)은 표 밖 주석으로 옮긴다
- `ADV-06`이 WBS에만 있었다. 명세서의 ADV 기능 목록은 01~05이므로
  비대면 → 결석 전환을 `ADV-03` 직접 정정에 흡수한다
- `SYS-API-1`~`3`이 명세서에만 있었다. SYS-ACC · SYS-LOG · SYS-MEM의
  API 확인 항목으로 배치한다
- `ATT-A-1`~`A-5`가 명세서에만 있었다. Epic 3 도입부에 확정 완료 표로
  반영하고, 유일한 미결이 `ATT-B-1`임을 명시한다

`ia/02-ia-tree.md`

배너가 "§2 권한 매트릭스만 대체됐다"고 적고 있었으나 실제 범위는 훨씬
넓었다. 기준선 문서라 본문은 고치지 않고 대체 내역을 표로 정리한다.
§1 ② 출석 관리 전체(화면 5개 → 11개, 카페 링크 → 사진 인증), ③ 결과
처리와 최종 평가 노출 조건, ④ 사전 알림, ⑥ 평가자 계정 일괄 생성,
§2 권한 매트릭스, §3 출결 라우트, §6 미결 5항목이 모두 대체·해결됐다.

`ia/01-ia-strategy.md`

판단 기준은 그대로 유효하다. §6의 권한 축 열거값이 4종으로 늘었으나
"(role × teamName) 조합 기준으로 작성한다"는 판단 자체는 맞았고,
`spec/06` §3.2의 기본 세트 키 7개가 그 구조다. §11이 예고한 재검토
시점이 도래했음을 배너에 적는다.
PM 관점 검토에서 계획으로서 성립하지 않는 지점과 명세서 간 모순이
나왔다. 근거를 저장소에서 전부 대조해 확인한 뒤 반영한다.

## 마일스톤

- **M4가 M5를 선행으로 갖던 모순을 푼다.** `LDR-02`는 이미 만들어진
  주차·회차를 선택만 하는데(`02-open-items` §2.5 확정) 그 구조를 만드는
  `SET-RULE`이 M5였다. `RULE-01`·`RULE-02`를 M4로 올리고 점수값 관련인
  `RULE-03`~`RULE-05`만 M5에 남긴다. `API-03`의 무효 주차 반영도 같은
  이유로 풀린다
- **`SYS-AUTH`가 M2와 M6에 이중으로 들어가 M2를 닫을 수 없던 문제를
  푼다.** 0~3단계를 M2에, 4~5단계를 M6에 둔다
- M6에서 콘텐츠를 떼어 M7(2월)로 분리한다. 우선순위 최상과 최하가 한
  마일스톤에 묶여 있었다
- 마일스톤 표에 기한 열을 추가한다. 기존에는 M0만 날짜와 연결됐다

## Epic 3 일정

규모 합계가 24~32 인·주인데 우선순위대로 12월 중순에 착수하면 출결
시작일까지 약 3주뿐이다. `ATT-CORE`·`ATT-API`는 BE 전담이라 Epic 1·2·4의
FE 작업과 자원이 겹치지 않으므로 **10월에 병렬 착수**한다. 진행 방식을
"FE는 직렬, BE는 병렬"로 명시하고 근거를 함께 적는다.

## 선행 관계

- 화면 티켓 17개에 `*-DSN` 선행을 명시한다. WBS 범례가 선행 기록을
  약속했으나 선행 열이 Epic 3에만 있어 "디자인이 늦으면 프론트가 전부
  밀린다"는 임계 경로가 보이지 않았다
- 화면 티켓의 규모가 디자인 확정 후 재구현 분량을 포함하지 않음을 명시한다

## 비가역 작업의 기록 공백

승격과 지원서 삭제는 M3인데 `SYS-LOG`는 M6 이후라, 그 구간에 취소도
기록도 없는 작업이 실제 지원자 데이터에 실행된다. "사고 시 백엔드가 직접
처리한다"는 전제가 성립하지 않으므로 두 액션에 한정한 최소 기록을
`PROM-05` · `DEL-04`로 M3에 둔다. 조회 화면 없이 INSERT만 한다.

## 명세서 간 모순

- `SYS-MEM`의 존재 근거를 사실에 맞게 다시 쓴다. "`EVL-PROM`은 인원 수만
  보여준다"고 적었으나 실제로는 명단을 전부 표시한다. 실제 근거는
  지원서 삭제 후 조회 경로가 필요하다는 것이다
- `SYS-API-3`에 지원서 삭제 후 승격 메타 조회 가능 여부 확인을 추가한다
- CSV 추출이 "서류 평가 입력 데이터"라는 서술을 정정한다. 확정된 순서는
  평가 종료 후 결과 처리의 첫 단계이며, 마일스톤 배치가 맞고 서술이
  틀렸다

## 신규 Open Issue 2건

- `SYS-A-5` 기본 세트 7키 × Permission 41개 격자 확정. `(SUPER, 대표진)`
  행이 서술문 한 줄이라 `DefaultPermissions.java`를 쓸 수 없다.
  `SYS-AUTH` 0단계의 선행이다
- `ATT-B-2` 신입 특칙형·체크형 상태의 저장 방식. 상태 4종에 CSV 코드가
  없어 `SUM-04` 행사 집계에 쓸 값이 정의되지 않았다. `ATT-CORE` 스키마
  착수의 선행이다
## 착수를 막는 미결이 감춰져 있었다

Epic 3 도입부가 "회신 대기 항목 0건"이라 적었으나 `ATT-B-1`이 열려
있었고, 이번에 `ATT-B-2`가 추가되어 2건이다. WBS 범례가 정의한 `⏳`
기호는 본문에서 한 번도 쓰이지 않았다.

`RULE-04`·`RULE-05`에 `⏳`를 붙이고, `SET-RULE`이 `BASE-04`·`SUM-01`·
`TL-04`의 선행이라 막힘이 세 화면으로 번진다는 점을 명시한다.

## 디자인 결정 항목이 아무 티켓에도 없었다

`EVL-B-6`(결과 처리 순서 강제)이 `EVL-DSN` 표에서 빠져 있었다.
`02-open-items` §2.1이 이 티켓으로 이관한 안건인데 담당자도 기한도 없는
상태였다. `EVL-DSN` 표에 행을 추가한다.

## Epic 0 귀속 열이 두 ID 체계를 섞고 절반이 비어 있었다

- `PLT-CONFIRM`이 기능 ID(`EVT-07`·`ROS-04`)와 Open Issue ID(`REC-B-4`
  등)를 한 칸에 섞어 두어, 모달을 붙일 실제 호출 지점을 찾을 수 없었다.
  호출 지점을 기능 ID 10개로 다시 적고, 강화 수준을 정하는 Open Issue는
  따로 표기한다
- `spec/00` §5가 귀속을 6건 부여했는데 WBS는 4건만 채워져 있었다.
  `PLT-SESSION`(permission 게이팅 전제) · `PLT-QUERY`(명단 SOT 파생 뷰
  즉시 반영) · `PLT-ERRMSG`(한글 오류 메시지)를 채운다. `PLT-QUERY`는
  `spec/05` §3.4의 핵심 설계 원칙이 캐시 무효화로 구현된다는 뜻이라
  비어 있으면 안 되는 자리였다
- `PLT-STATUS-UI`에 `ALL-02`, `PLT-FORM`에 `ARC-02`를 추가한다

## M3이 개발 마감 이전에 닫힐 수 없었다

M3의 완료 정의가 "실데이터 통과"인데, 승격과 삭제는 실제 지원자가
접수·평가를 마쳐야 실행할 수 있어 12월 말~1월이다. 개발 마감은 12월
중순이므로 정의상 닫히지 않는다.

M3a(목업 왕복, 코드 완성)와 M3b(시즌 종료 시 실데이터 1회 실행)로
나누고, 기준일 표에 "개발 마감"이 Epic 1·2·4의 코드 완성 기준임을 적는다.

## M2가 폐기된 개념으로 완료를 정의하고 있었다

"평가자 계정으로 본인 부문만 평가"라고 적었으나 `spec/06` §4.4가 평가자
계정 발급을 폐기했다. 실제로 검증할 것은 일반 운영진 계정(`(TEAM, *)`
폴백)으로 본인 track 지원자만 보이고 최종 평가 버튼이 비활성인지다.

## SYS-A-4와 SYS-C-1의 모순

`SYS-A-4`가 "별도 발급은 외부 평가자만"이라 적었는데 바로 위 `SYS-C-1`은
외부 평가자를 쓰지 않기로 확정했다. 발급 대상 자체가 없으므로 "별도
발급은 하지 않는다"로 고친다.
## 순환 의존 두 건

- `ATT-ROSTER` ↔ `ATT-GROUP` — "명단이 Epic 3의 선행"이라 단정했으나
  `ROS-03`의 선행이 `ATT-GROUP`이고 `GRP-04`는 명단을 전제한다. `ROS-03`의
  선행을 `GRP-02`·`GRP-03`으로 좁히고 `GRP-04`의 선행을 `ROS-02`로 명시해
  순환을 푼다. 실행 순서를 비고에 적는다
- `SYS-AUTH` ↔ `ATT-CORE` — `SYS-AUTH` 0단계가 `admin_group_leader`를
  FK 없이 만들고 출결 스키마가 생긴 뒤 FK를 붙이는 2단 구조인데 티켓에
  적혀 있지 않았다. `ATT-CORE` 표에 선행 행을 추가하고, 10월 병렬 착수라
  BE 담당자 간 순서 합의가 필요함을 명시한다

## 누락된 API 3건

`ATT-VIEW`·`ATT-GROUP`·`SET-RULE`에 대응하는 API가 목록에 없었다.
세 화면 모두 기능 ID가 "FE + BE"인데 API 계약이 없는 상태였다.
`API-08`(그룹 CRUD·장 지정·계정 발급) · `API-09`(Term 설정·무효 주차·
점수 규칙) · `API-10`(명단 출결 종합 조회)을 신설한다. `RULE-01`·
`RULE-02`가 M4이므로 `API-09`도 함께 앞선다.

`ATT-CORE`와 `ATT-API`의 경계도 함께 명시한다.

## 누락된 액션 1건

`spec/04` §4.1이 "최종 확정 시 `HOLD`·`PENDING` 0건 검증"을 요구하는데
그 액션에 기능 ID가 없었다. `DASH-04`는 개별 판정 입력이고, 기수 단위
확정은 다른 액션이며 승격으로 이어져 비가역에 가깝다. `DASH-06`을
신설하고 `PROM-05`와 같은 최소 기록 대상으로 둔다.

`02-open-items` §3.3이 "확인 절차가 전혀 없던 작업" 중 하나로 최종 합불
확정을 꼽고 0건 검증을 안전장치로 지정했는데, 그 안전장치를 담을 자리가
없었던 셈이다.

## 그 밖

- `SYS-MEM`에 선행 열 추가. `MEM-03`만 `ATT-TL`(M5)에 걸리고 `MEM-01`·
  `MEM-02`는 승격 직후부터 유효하다
- `CNT-FAQ` 담당 열이 `PLT-PILOT`이라는 티켓 키였다. 범례가 정의한
  FE/BE/인프라/디자인으로 고치고 선행 관계는 표 위로 옮긴다. FAQ가 M0에서
  완주한다는 점을 M7 비고에도 적는다
- 규모 `한 달 이상`에 상한이 없어 "4~8주, 착수 전 재산정 필수"를 범례에
  명시한다. 이 값을 가진 `ATT-CORE`의 수치가 곧 M4 기한의 근거다
- 범례를 벗어난 범위 표기 `하루이틀~한 주` 2건을 `한 주`로 통일해 합산이
  가능하게 한다
PM 리뷰가 가장 높은 위험으로 꼽은 항목이다. 다른 지적은 "빠뜨린다"인데
이것은 **"잘못 만든다"** 방향이고, `README.md`가 이 대조표를 잔여 작업
집계의 근거로 선언했으므로 틀린 값이 계획 전체로 퍼진다.

## 조치 방향이 뒤집힌 2건

- **§4 #1 사전 알림 개별 삭제 — "제거" → "유지"**. `02-open-items` §2.2와
  `spec/03` §4.5 `ALM-02`가 `PRE_NOTIFICATION_DELETE`로 개별·전체 삭제를
  모두 덮는다고 확정했다. 이 표만 보고 작업하면 확정된 기능을 지운다
- **§4 #4 문구 템플릿 — "백엔드 요청 또는 축소" → "서버 저장으로 이전"**.
  축소 선택지는 사라졌다

## 결정을 앞질러 단정한 1건

§4 #7 HOST 안내문 템플릿을 "저장 위치 변경"으로 단정했으나 `SYS-B-3`이
먼저 정해져야 하는 미결이다. 미결로 되돌린다.

## 결정 완료인데 미결정으로 남아 있던 11행

§1 L1 대응표 2행과 §2 화면 대조표 9행의 원인을 `스펙 갱신`으로 바꾸고,
안건 링크를 `02-open-items`의 절이 아니라 **정본 명세서 절**로 교체한다.
결정이 끝났는데 `미결정`으로 남아 있으면 이미 끝난 의사결정을 다시 하러
회의를 잡게 된다.

§4 #5·#6도 확정으로, §6 #5 출석 대상자 특정도 해결로 바꾼다.

## 그 밖

- §3 권한 단위 `Permission 10종`을 41개로 갱신하고 근거를 `spec/06` §3.3로
  바꾼다
- `PLT-ROUTER`의 "22경로"가 IA 라우트 맵 22행과 무관함을 명시한다.
  숫자가 우연히 같아 혼동을 부른다
- 갱신 이력에 이번 변경을 기록한다
데이터 스키마 · 인프라 운영 · 소프트웨어 아키텍처 세 관점에서 신설 7건을
검토한 결과를 반영한다. 판정은 7건 모두 "추가 타당"이었고, 그중 셋은
범위나 설계를 조정해야 한다는 단서가 붙었다.

## 가장 큰 수정 — 비가역 작업 기록을 공용 테이블로

세 액션(`PROM-05` 승격 · `DEL-05` 삭제 · `DASH-06` 확정)이 각자 전용
테이블을 가지면 `SYS-LOG` 본체 도입 시 통합·백필 부채가 생기고, 운영 DB가
`ddl-auto: validate`라 수동 DDL 적용도 한 번 더 늘어난다. 데이터·인프라
두 관점이 서로 다른 근거로 같은 결론에 도달했다.

`spec/04` §4.5에 공용 감사 테이블을 정의하고 `SYS-LOG`가 그 위에 조회
화면만 얹도록 한다. 설계 규칙 둘을 함께 박는다. FK를 걸지 않는다(대상이
삭제돼도 남는 것이 존재 이유다). `detail`에 이름·연락처·생년월일을 담지
않는다(감사 기록이 PII를 안으면 파기 목적이 무력화된다).

**승격 기록에는 계정 ID와 지원서 ID를 모두 남긴다.** 승격 실행 순간이
시스템이 그 쌍을 아는 유일한 시점이고, `EVL-DEL` 이후에는 대응 관계가
어디에도 남지 않는다. `SYS-API-3`이 회원 조회 쪽에서 지적한 것과 같은
문제다. 삭제 기록은 지원서 ID 목록이어야 무엇이 지워졌는지 재구성된다.

## `DASH-06`의 상태 모델을 정의

"기수 단위로 닫는다"는 액션이 바꾸는 상태가 어디에도 없었다. §3.2에
`final_decision_closed_at`·`closed_by`를 추가하고, 확정 이후 `DASH-02`·
`DASH-04` 쓰기를 서버가 거부하도록 명시한다. 중복 실행은 조건부 UPDATE로
막는다. **해제 경로를 두지 않으므로**(`EVL-A-3` 승격 취소와 같은 정책)
두 필드가 곧 최소 기록이 되어 감사 테이블에 별도 행이 필요 없다.
`DASH-06`이 `PROM-02`의 선행임도 함께 적는다. 이걸 빠뜨리면 확정하지
않은 기수에서 승격이 실행되어 잠금이 우회된다.

`EVL-API-7`(기수 확정 엔드포인트)을 신설하고, `spec/04` §5의 "신규 API
요구는 없다"를 정정한다.

## 범위를 조정한 셋

- `API-08` — 계정 발급·회수를 빼고 "리더십 행 생성/삭제"로 좁힌다.
  10월에 출결 쪽에서 계정 생성 경로를 만들고 1월에 시스템 쪽에서 같은
  것을 다시 만드는 중복이 일정에 박혀 있었다. 토큰 무효화가 두 곳에서
  따로 구현되면 계정 회수가 한쪽에서만 동작한다
- `API-09` — 점수 규칙 CRUD를 `SET-RULE` BE 몫으로 내린다. `RULE-04`·
  `RULE-05`가 `ATT-B-1`에 막혀 ⏳인데, 그 부분이 10월 착수 티켓 안에
  표기 없이 들어가 있었다. 종료 Term 수정 차단과 무효 주차 변경 이력을
  요구에 추가한다
- `API-10` — `ATT-VIEW` BE 몫으로 옮기고 담당을 FE + BE로, 규모를 재산정
  대상으로 표시한다. 여러 화면이 공유하지도 M4 대상도 아니라 10월 선행
  구축 기준에 맞지 않았다. 열 단위 권한 적용 요구를 추가한다

## `ATT-CORE` / `ATT-API` 경계를 긍정형으로

기존 문장("`API-01`~`API-10` 외의 CRUD는 `ATT-API`에 속한다")은 한정어가
스스로를 무효화해 아무것도 정의하지 못했다. `ATT-CORE`는 산출물 종류로,
`ATT-API`는 닫힌 목록과 편입 기준(① 여러 화면 공유 ② M4 선행)으로
정의한다. "목록에 항목을 더할 때는 규모를 함께 재산정한다"를 넣어 이번
같은 일을 막는다.

## `ATT-B-2` 이원화

"enum 확장 vs 수식어 분해" 이분법이 성격이 다른 두 문제를 묶은 것이었다.
신입 특칙형 4종은 단일 상태값이라 enum 확장, 1·2차 체크형은 독립 불리언
2개라 별도 컬럼이다. 조합을 코드로 발행하면 "1차만 결석한 인원 수" 질의가
어려워지고 화면 입력 방식과도 어긋난다. 회신이 늦어질 때를 대비해
`status` + `modifier` 두 열로 스키마를 먼저 굳히는 대안도 적는다.

## 미결 등록부 정정

`02-open-items.md`가 P0에 대해 "남아 있는 항목이 없다"고 선언하는 동안
WBS는 `ATT-B-2`·`SYS-A-5`가 착수를 막는다고 적고 있었다. 더 나쁘게는
§3.2가 "9종 단일 enum으로 통일"을 결정 완료로 닫아 둔 채 `ATT-B-2`가 그
결정을 재개방한 상태였다. P0에 2건을 등재하고 §3.2를 부분 개정으로
돌린다. §3.1 남은 것에 `SYS-A-5`를 추가한다.

## 신규 P0 — CSV 추출본의 보관과 파기

개인정보를 파기하는 절차의 선행 조건이 "그 개인정보를 파일로 내보내기"
였는데, 추출본의 보관 위치·접근 권한·파기 시점이 어느 문서에도 없었다.
`02-open-items.md` §2.9로 연다. `EVL-A-4`(삭제 시점)는 다시 열지 않는다.
부실했던 것은 결정이 아니라 실행 절차다. DB 스냅샷은 답이 정해진 절차라
`EVL-DEL` 런북 체크리스트로 넣는다.

## Open Issue 분류 체계

"백엔드 구현을 막는 결정"을 담을 칸이 없어 보였으나, A/B/C가 나누는 축은
**누가 결정하는가** 하나이고 "막는다"는 별도 속성이다. 기호를 늘리는 대신
`결정 주체`(필수)와 `차단 대상` 칼럼을 규칙으로 세운다. `spec/06`의 A절
제목이 범례와 달라 `SYS-A-5`가 어색해 보였던 것도 함께 고친다.

## 그 밖

- Epic 3 서두가 한 절 안에서 "둘 다 착수를 막는다"와 "착수를 막는 결정이
  없다"를 동시에 말하던 모순을 정정한다
- `DASH-04`에 남아 있던 확정 검증 문구를 제거한다(`DASH-06`과 중복)
- `PROM-05`가 `PROM-04` 앞에 있던 번호 순서를 고친다
- `API-08`·`API-09`를 `GRP-*`·`RULE-*` 선행 칸에 연결한다. 공급만 있고
  수요 연결이 없었다
- `ATT-API`에 선행(`SYS-AUTH` 0~1단계)을 명시한다
- `SYS-AUTH` 티켓에 선행 `SYS-A-5`와 ⏳를 넣고, 차단 범위가 SUPER 2행
  뿐이며 코드 작성은 병행 가능하되 배포만 묶인다는 점을 적는다
- 집계 수치 미갱신 3건을 고친다
@Daehyun-Bigbread Daehyun-Bigbread changed the title docs: WBS와 기능명세서 세트 6종을 기준 문서로 반영 (#17) docs: WBS와 기능명세서 (Epic)6건을 기준 문서로 반영 및 구체화 (#17) Sep 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[docs] WBS 산출 및 확정

2 participants