2026-08-03 세션 — devplan 매니저 1단계: 진행판(단계 게이지) 허브 반영 + 상태층 신설 — 기록: [코디]
논의·대안
[페페] 지시 = "devplan 매니저 진행하자. 단계 게이지+회차 배지 컨셉으로 진행해. 그외 매니저 구축을 위한 시스템 확인하고 이 부분도 진행한다. UI는 추후 선택 후 변경할 예정 — 그렇기 때문에 허브 페이지만 선정된 목업 참고해서 변경한다. 다른 페이지는 유지한다."
v4 목업의 추천안이 그대로 채택됐다. 범위 해석 = ①허브(index.html)만 목업 기준으로 개편(다른 devplan 페이지 불변) ②매니저 구축에 필요한 시스템(데이터층·규칙·검증)을 같이 세운다. gptbutler 계획에서 매니저 사이클(계획→페페 승인→완료 목표→추진→⑤진행 갱신→⑥보고)의 ⑤가 쓰는 저장소가 없었으므로, 이번에 상태층(project_state.json)을 단일 출처로 신설하고 허브가 그걸 렌더하게 했다. 판정층(priority_state)과 GPT 툴(plan_draft·progress_update)은 gptbutler P1~P3 소관으로 남긴다 — 지금은 코디가 CLI로 쓰고, 매니저가 열리면 같은 파일을 읽는다.
상태 스키마 = 완료 목표 모델 그대로: scope(partial/full/null) × round_mode(single/multi/ongoing/null) + round_current/total/label(총 회차 미정 = total null = "N/?차(회차미정)") + stage(1~5) + round_goal(이번 회차 기준 1줄) + next_action+next_owner(pepe/cody) + approval(approved/waiting/hold/done/standing) + report(최근 진행+날짜) + hold(사유+재개조건+since) + last_progress(단계 무전환 경과의 기준) + dev_track + admin_url + target_date(보조, 확정만). 티어는 저장하지 않고 유도한다(hold→보류 / stage5→완료·유지 / ≤2→계획·대기 / 나머지→실행중) — 이중 장부를 만들지 않기 위해서다.
운영규칙은 문서가 아니라 CLI가 강제한다(project_state.py): 보류 진입은 --reason --resume 둘 다 없으면 반려, 회차 +1은 --why 필수(스코프 변경/산출물 폐기만 정당), stage 변경·report는 last_progress 자동 갱신. 빌드는 build_hub.py가 상태를 검증해 카드↔상태 1:1 불일치·dev_track 미분류·재개조건 없는 보류를 FAIL로 막는다(source 경로 검증과 같은 패턴 — "조용히 어긋나는 표"를 구조적으로 차단).
초기 36건 채움은 워크플로 4에이전트(각 9카드)가 BRIEF·handoff를 실독해 초안(항목마다 evidence 인용 필수, 날조 금지 — 모르면 null)을 만들고, 코디가 이 세션 컨텍스트로 검수해 12건을 교정했다(pfs 회차, code-qa를 미착수→2차 파트 순회로, gptbutler stage2, poincad2 P2 진입 전 3/4차, order-automation을 결정 게이트=승인 단계로, poin-agent를 완료→실행으로, devplan report 오늘 작업 반영, design-refs 상시화, admin_url 중복 5건 제거 등). 에이전트가 nesting 카드의 url(furniture-cad-bom.html)이 실제 도구(C:\dev\nesting\nesting.html)와 다른 문서라는 불일치도 발견했다(카드 정비는 추후).
허브 개편 = 분야별 카드 그리드 → 진행판(트랙 좌측 띠·범위×차수 배지·5칸 게이지·회차·이번 회차 기준·보류 박스·정체 N일 알약·다음 액션+주체·결재선 칩·최근 진행+날짜, 4티어 <details>). 최근 보드·고정·검색/상태필터·우측 사이드바·모달은 유지(최근 3개소 규칙 불변). 검색·필터가 진행판 행에도 적용되고 하단 합계(트랙·구획·분해)는 전부 자동 계산. 미정은 경고색 배지("범위미정"·"차수미정"·"기준 미정")로 드러내되 빨갛게 칠하지 않는다.
결정
- 허브 메인 = 진행판(단계 게이지+회차 배지) — v4 채택안 반영. 다른 페이지 유지(전면 UI 개편은 추후 선택 후).
- 상태 단일 출처 =
devplan/project_state.json, 갱신은project_state.pyCLI(운영규칙 코드 강제), 검증은 빌드 FAIL 게이트. - 카드 추가 = 상태 등록까지가 한 작업(1:1 게이트가 막는다).
- 순위 고정 규칙 =
devplan/priority_rules.md초판(판정 급박도 우선 5규칙 + 수치는 가드레일 + D-day 비강조). - 판정층·GPT 툴은 만들지 않았다 — gptbutler P1~P3에서(매니저는 같은 상태층을 읽게 된다).
산출물·커밋
C:\dev\devplan\project_state.json(36건) ·project_state.py(모듈+CLI) ·priority_rules.md신설.C:\dev\devplan\build_hub.py— 진행판 템플릿 + 상태 FAIL 게이트 + selftest 7(상태층 포함).index.html재생성.C:\dev\devplan\CLAUDE.md— 진행판·CLI 규칙 추가. user_briefprojects/devplan/rules.md🆕 1건.- 검증 = selftest 7 OK · check_theme FAIL 0 · 진행판 36행/티어 4(15·1·5·15) · 합계 자동계산 일치(36=12+24) · 검색 필터 시 합계 재계산 · 모달 연동 · 보류 박스 1(cutmate, 사유+재개조건) · 정체 알약 8건 · 320px 가로 스크롤 없음(305/320) · 콘솔 오류 favicon뿐.
다음
- 페페 육안 → 진행판 문구·정렬 피드백. 이후 gptbutler P0(가드 2건 → Codex STDIO 실측), 판정층은 P1.
- 카드 정비 후보: nesting url 불일치, RTK(범위·차수 미정 노출 중) 방향 결정.
관계
- 주제 그룹: devplan-hub
- 관련 문서:
devplan-rules,gptbutler-handoff,gptbutler-session-2026-08-02-gptbutler-plan