28 KiB
28 KiB
하네스 변경 이력 — PTOP 분석 팀
docs/harness-ptop.md에서 분리했다 (rules.md#4 — 200줄 상한). 하네스를 고치면 여기에 행을 추가한다. 본문에는 표를 되돌리지 않는다.
| 날짜 | 변경 내용 | 대상 | 사유 |
|---|---|---|---|
| 2026-06-16 | 초기 구성: PTOP 분석 팀 구축 | agents/, skills/ | ILSOS_PrismaticRD_PTOP이 핵심 활성 모듈, 종합 분석 필요 |
| 2026-08-03 | .ubisam_agent/ → .claude/로 경로 이전, .gitignore에 !.claude/agents/ 예외 추가 |
agents 3개, skills 4개 | Claude Code가 .claude/만 로딩 — 하네스 전체가 호출 불가 상태였음 |
| 2026-08-03 | TeamCreate/TeamDelete 의존 제거 → Agent+SendMessage로 교체 |
orchestrate-ptop-harness, agents 3개 | 해당 도구가 이 환경에 존재하지 않아 오케스트레이터 실행 불가 |
| 2026-08-03 | 진행·재시도 원장을 _progress.md 파일로 고정 (태스크 도구는 보조로 강등) |
스킬 2·에이전트 6·참조 3·하네스 문서 2 | TaskCreate/TaskUpdate가 서브에이전트 컨텍스트에는 없어 재시도 카운트가 매번 0으로 리셋 → "최대 2회" 상한이 무력화 |
| 2026-08-03 | 날조된 예시 분석 결과 삭제, "미측정" 표기 원칙 추가 | orchestrate-ptop-harness, build-devops-engineer | 예시 수치("Release가 20% 느림" 등)를 에이전트가 실측으로 오인해 복사할 위험 |
| 2026-08-03 | 산출 파일명을 에이전트 정의와 일치시킴(01~06), 팀원 이름 실제 에이전트명으로 정정 | orchestrate-ptop-harness, ptop-lead | 오케스트레이터↔에이전트 간 참조 불일치(dead link) |
| 2026-08-03 | model: opus·재호출 지침·분석 전용 명시 추가 |
agents 3개 | 후속 실행 시 이전 산출물 재사용 규칙 부재 |
| 2026-08-03 | 보고서 템플릿·CI/CD YAML을 references/로 분리 (200줄 상한 준수) |
analyze-ptop-architecture/-implementation, optimize-ptop-build | rules.md #4 위반 (248·210·209줄) |
| 2026-08-03 | 템플릿의 날조 수치(빌드 45s/60s, T+50ms, PLC M10 등)를 플레이스홀더로 교체 |
위 3개 스킬 references/ | 에이전트가 예시값을 실측으로 오인해 복사할 위험 |
| 2026-08-03 | 죽은 소스 경로 정정 + 동명 심볼 함정 명시 | analyze-ptop-architecture, ptop-lead, ptop-developer | 2026-06-18 리네임(SeqAutoRunPrismaticScanner→SeqAutoRunPrismatic, PAIX_PrismaticScanner→PAIX_PTOP) 미반영. PLCContoller.Config.cs 오탈자·공유 클래스 동명 문제도 병기 |
| 2026-08-03 | 에이전트 가용성 가드 + lead 2회 실패 폴백 + stale 표기 의무 추가 | orchestrate-ptop-harness | 에이전트 미등록 시 Phase 2에서 즉사, "지연"과 "실패"가 구분 안 됨, 부분 재실행 시 새 01+낡은 02가 무표기로 섞임 |
| 2026-08-03 | 산출 .md 200줄 상한 지시 추가 | agents 3개 | 하네스 자신은 준수하나 산출물에 대한 강제가 없었음 |
| 2026-08-03 | .gitignore에 _workspace/·_workspace_prev/ 추가 |
.gitignore | 하네스 중간 산출물이 레포 루트를 오염 |
| 2026-08-03 | CLAUDE.md의 @import X → @X 문법 정정 |
CLAUDE.md, docs/architecture.md | @import는 Claude Code 문법이 아니라 조용히 실패 — rules.md 등 규약 문서 5건이 세션에 로딩되지 않고 있었음 |
| 2026-08-03 | set PYTHONUTF8=1 && → PYTHONUTF8=1 (bash 호환) |
스킬·에이전트·스크립트 9건 | bash에서 set VAR=1은 환경변수를 만들지 않아 stdout이 cp949로 깨짐 (rules.md #3 위반) |
| 2026-08-03 | 죽은 심볼·경로 정정: Views/Recipe|Manual|Monitoring(부재), PAGE_VERIFY_DELAY_MS·WELD_START_DELAY_MS(부재), ThetaTolerance→HeadThetaTolerance |
ptop-deliverables/references/source-map.md | 진실원 인덱스가 없는 파일·상수를 지목 |
| 2026-08-03 | ILSOS_PrismaticScanner 네임스페이스 사용 주장 삭제 |
ptop-lead, analyze-ptop-architecture | 실제 PTOP 네임스페이스는 ILSOS_PrismaticRD_PTOP.* (전수 확인, 옛 이름 0건) |
| 2026-08-03 | 승인 게이트·실패 판정 기준·Phase 3 완료 판정·이중 디스패치 해소 | orchestrate-ptop-harness, ptop-lead, ubisam-deliverables | rules.md #2 미준수, "지연"과 "실패"를 구분할 관측 기준 부재, lead와 오케스트레이터가 둘 다 developer를 기동 |
| 2026-08-03 | PTOP 하위 스킬 3개에 역방향 구분절 추가 | analyze-ptop-*, optimize-ptop-build | 종합 요청이 단일 영역 스킬로 새는 경로 |
| 2026-08-03 | msbuild 탐색 폴백 + 미측정 확정 절차 | optimize-ptop-build | msbuild가 PATH에 없어 1단계에서 막힘 |
| 2026-08-03 | .NET Core 전용 속성·#if SIMULATION·MockPLC 예시 삭제 |
optimize-ptop-build, cicd 템플릿 | 이 프로젝트는 .NET Framework 4.8.1 legacy csproj. Simulation|x64는 sln에서 Release|x64로 매핑되며 #if SIMULATION 0건 — 존재하지 않는 빌드를 대상으로 삼게 됨 |
| 2026-08-03 | MotorIds→SettingIds, PLC_HEAVY_ALARM_STATUS 출처→SeqAlarmMonitor.cs:199, 진행률 스냅샷 제거 |
analyze-ptop-architecture, source-map | 없는 클래스 지목·처리 위치 오지목·근거 없는 수치 |
| 2026-08-03 | 산출 경로 절대경로 변환 + _workspace/ 사전 생성 지시 |
orchestrate-ptop-harness | 서브에이전트 셸 cwd가 호출마다 초기화돼 상대경로 산출물이 유실되면 완료 판정이 오판 |
| 2026-08-03 | PTOP 3인에 담당 스킬 역참조 1줄씩 추가 | agents 3개 | 단독 호출 시 스킬이 적용되지 않음 (ubisam 3인은 이미 보유) |
| 2026-08-03 | qa 양식 미정의 폴백 수신 규칙 추가(#6만 미검증, #2는 정상 검증) | ubisam-qa, ubisam-producer | producer가 qa 동작을 일방 규정하고 있었고 enum 적용 여부와 자기모순 |
| 2026-08-03 | Ubisam 하네스에 실패 판정 기준·stale 표기 이식, Phase off-by-one 수정 | ubisam-deliverable-rebuild | Phase 0 후 "Phase 2 시작"으로 적혀 analyst를 건너뛰면 매핑표 없이 producer가 즉사 |
| 2026-08-03 | 네임스페이스 단정 정정 — 프로젝트 내 예외 3파일 병기 | ptop-lead, analyze-ptop-architecture | SeqTestRun.cs:35=TDC, SeqAlarmMonitor.cs:22·SeqStatusMonitor.cs:11=WeldingCommon. 앞선 "전부 ILSOS_PrismaticRD_PTOP.*" 주장이 거짓이었고, 그대로 grep하면 하네스가 인용하는 SeqAlarmMonitor.cs:199가 누락 |
| 2026-08-03 | 4구성 → 2구성으로 통일 (description·측정표·보고서 템플릿) | optimize-ptop-build ×2, build-devops-engineer, architecture.md | Simulation·UserDefineUnit은 ILSOS_All.sln:413-416에서 Release 매핑 — 존재하지 않는 빌드를 측정 대상으로 요구하고 있었음 |
| 2026-08-03 | Phase 3 절대경로 전달·Phase 4 완료 알림 대기·재시도 카운트 기록 규칙 | orchestrate-ptop-harness, ubisam-deliverable-rebuild | Phase 2에만 있던 규칙이 전파되지 않아 02·03 유실 위험, "2회"를 세는 주체 부재 |
| 2026-08-03 | 스킬 폴더 잔재 정리(생성파일/*.pptx, __pycache__) + .gitignore 보강 |
.claude/skills, .gitignore | 스킬이 스스로 금지한 "출력이 스킬 폴더로 새는 것"의 흔적 |
| 2026-08-03 | rules.md #15·#16 바인딩 — 에이전트 6 + 스킬 6에 [추론] 표기 의무 삽입, ubisam-qa 검증항목 11 신설 |
agents 6, skills 6 | 신규 조항이 하네스 어디에도 인용되지 않아 미시행 상태였다(문자열 추론 0건). 검증 주체가 없는 규칙은 문서에만 남는다 |
| 2026-08-03 | 표기 축 판정표 신설 (파일:라인 / 미측정계 / [추론] / (제안)계) |
rules.md, 두 하네스 문서 | [추론]과 기존 미확정 표기 5종의 관계가 미정의라 대체·이중표기 위험 |
| 2026-08-03 | rules.md #5의 @import → @경로 정정, #15·#16을 ## 검증·표기 절로 분리 |
rules.md | 규칙서가 폐기된 문법을 지시하고 있었다(이미 정정한 결함의 발원지). 신규 조항이 제목 없이 붙어 파일 번호가 1,2,3,15,16,4,5로 흐트러짐 |
| 2026-08-03 | 규칙 ↔ 바인딩 역인덱스 표 + grep 자가 점검 명령 추가 |
docs/harness-ptop.md | 조항 추가 시 바인딩 누락이 3라운드 연속 지적 — 재발 방지 |
| 2026-08-03 | ptop-lead 성공 기준의 "교차 확인 질문" 체크박스를 오케스트레이터 경유 시로 조건부화 |
ptop-lead.md | 질문 정의·기록처가 모두 오케스트레이터 소유라 단독 기동 시 충족 불가능한 체크박스였음 |
| 2026-08-03 | 141528_…md 경로를 전체 경로로 명기 |
ptop-deliverables/references/source-map.md | 앞 문장의 06/17/과 병렬로 읽히나 실제는 06/20/ — 06/17에는 없는 파일 |
| 2026-08-03 | [추론] 검색 시 \[추론\] 이스케이프 의무 명시 |
ubisam-qa(검증항목11·작업원칙), ubisam-deliverables, rules.md | 대괄호가 정규식 문자클래스라 [추론]은 추·론 한 글자에도 매치 → 과다 매치. 경로 케이스(0건)와 달리 결과가 많아 "0건이면 의심" 가드에 안 걸린다(실측 확인) |
| 2026-08-03 | qa 성공 기준 "10개" → "11개" | ubisam-qa.md | 직전 패스에서 검증항목 11을 신설하고 최종 게이트를 안 고쳐, 신규 항목을 건너뛰어도 통과되는 상태였음 (자체 유발 회귀) |
| 2026-08-03 | 실행 모드 판별을 _workspace/ 폴더 존재 → 산출물 01~06 존재로 변경 |
orchestrate-ptop-harness | 채점·로그 파일만 있어도 "부분 재실행"으로 오판정 |
| 2026-08-03 | 표기 축에 미확인 편입, (추정) → [추론] 통일 |
rules.md, harness-ubisam, 00-harness.md | 판정표가 실사용 표기 2종을 누락 — 같은 축에 다른 토큰이 공존 |
| 2026-08-03 | analyze-ptop-architecture 단독 기동 시 stale 표기 의무 명시 |
analyze-ptop-architecture | "아키텍처만 다시"가 두 스킬에 동시 귀속되는데 단독 경로엔 표기 주체가 없었음 |
| 2026-08-03 | ubisam-deliverables 자동 채움 단계에 [추론] 바인딩 |
ubisam-deliverables/SKILL.md | 게이트 없이 값을 생성하는 유일 경로가 미바인딩으로 남아 있었음 |
| 2026-08-03 | rules.md 절 순서 정정(## 규칙 관리 → ## 검증·표기), 역인덱스 #11~13 스킬 수 6→8 |
rules.md, harness-ptop.md | 조항 15·16이 14보다 앞서 배치돼 자기 지침과 상충. 역인덱스 수치 오기 |
| 2026-08-03 | 역인덱스에서 인용 건수 열 삭제 — "어디에 있어야 하는가"만 남기고 개수는 명령이 답하게 | docs/harness-ptop.md | 세 라운드 연속 자체 유발 회귀. 바인딩을 늘릴 때마다 표의 숫자가 거짓이 됐다(17·17로 적고 실제 19·19). 숫자를 문서에 박는 구조 자체가 원인이라 열을 없앴다 |
| 2026-08-03 | source-map.md 무효 심볼 3행 정정 — Register*Device·MenuId·ViewType·AuthLevel·AddNode·AddTransition |
ptop-deliverables/references/source-map.md | 전부 소스 0건. 실제는 registry.Register(활성 3) · AddSubMenu(CommonViewIds.*, UC)(26, 권한 인자 없음) · AddAction(17)/AddDecision(4)/AddSubsequence(3). 하네스가 금지한 "창작"을 스스로 유발하는 경로였음 |
| 2026-08-03 | "0건" 가드에 .gitignore 원인 추가 |
ubisam-qa.md, harness-ptop.md | 기존 가드는 대괄호만 원인으로 지목. 그런데 rg 는 .gitignore 를 존중하고 검증 대상이 전부 무시 대상(docs/[Ubisam산출물]/·_workspace/)이라 자기 산출물 검색이 0건이 된다(실측: 루트 glob 0 vs 실제 5) |
| 2026-08-03 | SendMessage 회신 대상 to: "main" 명시 |
에이전트 6 | 6개 모두 "오케스트레이터에 보고한다"고 쓰면서 수신자 표기가 전 저장소 0건. 이름으로 보내면 메인 대화에 닿지 않는다 |
| 2026-08-03 | 부분 상태(01만 있음) 분기 신설 + "전체 분석"을 이동 근거에서 제외 |
orchestrate-ptop-harness, ubisam-deliverable-rebuild, test-scenarios.md | 01만 있는 상태에 분기가 없고, "전체 분석"이 최초 실행과 전면 재실행에서 같은 발화라 _workspace_prev/ 오이동 위험 |
| 2026-08-03 | rebuild Phase 2에 문서 1건당 producer 1기동 명시 | ubisam-deliverable-rebuild | producer를 하나만 띄우면서 "문서 1건마다 qa"를 요구해 점진 검증의 관측점이 없었음 |
| 2026-08-03 | "소비처 확인 의무" 절 신설 (열거형·개수 변경 시 grep) | docs/harness-ptop.md | 4라운드 연속 같은 유형의 자체 유발 회귀 — 값을 늘리고 읽는 쪽을 안 고침. 개별 결함만 고치면 재발하므로 절차를 명문화 |
| 2026-08-03 | 실행 모드 이어서 의 소비처 신설 (전달부·ptop-lead를 3종→4종) |
orchestrate-ptop-harness, ptop-lead | 신규 모드가 판별부에만 있고 소비처 0건 → 임의로 전면 매핑 시 재사용 대상 01이 _workspace_prev/로 사라짐 |
| 2026-08-03 | _progress.md 행 단위를 {에이전트}:{문서} 로 정정 |
ubisam-deliverable-rebuild | "3행 고정"인데 문서 N건이면 인스턴스가 3N개 → 문서별 재시도 상한이 무력화 |
| 2026-08-03 | AddSubMenu 계수 규칙 정정 (26 → 활성 18), 8탭 중 누락 4탭 행 추가 |
ptop-deliverables/references/source-map.md | 26건에 주석 8건이 포함돼 형제 행(주석 제외 규칙)과 상충. OverView·DeviceView·SettingView·VisionView 는 진실원 행 자체가 없었음(OverView 는 대응 항목 미확인으로 표기) |
| 2026-08-03 | RegisterViews — 권한 레벨 포함 → 권한 필드 없음으로 정정 |
ptop-deliverables/SKILL.md | AuthLevel 을 참조 맵에서 지웠으나 STEP 1이 여전히 추출을 명령. STEP 1이 참조 맵보다 먼저 읽힌다 |
| 2026-08-03 | doyeon_note 에 규약 바인딩(#3·#4·#9·#15·#16) 추가 |
doyeon_note/SKILL.md | 유일하게 rules.md 인용 0건. 작업일지는 나중에 사실 기록으로 인용되므로 추론 혼입 위험이 크다 |
| 2026-08-04 | 19R 수정 패스. MainMenu PermissionLevel 인자 존재로 정정(18R N-1 오정정 되돌림) |
ptop-deliverables/SKILL.md·source-map.md | AddSubMenu(2인자)만 보고 "권한 필드 없음"이라 선언했으나 EquipmentSetup.cs:261,266,289,302,310,318,323,330 8건이 값 보유. 소비처(09-pptx-integration.md:55·build_02설계_pptx.py:92)의 권한 열이 굶고 있었음 |
| 2026-08-04 | §C 8탭 3중 모순 해소 + 상위 진실원 명시 | source-map.md | VisionView→(해당없음)(EquipmentSetup.cs:342-343 주석 확인), OverView 진실원→docs/architecture.md, DeviceView→Monitoring 3뷰 병기. 탭 목록의 진실원이 05-form-schemas.md:78-85 임을 명문화 |
| 2026-08-04 | .gitignore negation 주석을 실측대로 정정(git 전용, ripgrep 무효) |
.gitignore, ubisam-qa.md | negation 투입 후에도 rg --files .claude=1 / --no-ignore=57. 주석대로 믿으면 다음 감사관이 Grep path:".claude" 를 재신뢰 |
| 2026-08-04 | _workspace/(경로 명시 시 정상) ↔ .claude/(루트 시작점이면 프루닝) 증상 분리 |
harness-ptop.md, ubisam-qa.md | 두 증상을 같은 원인으로 묶어 진단하던 문구가 _workspace/에 불필요한 --no-ignore 를 요구 |
| 2026-08-04 | 알려진 한계 2가지→3가지 + 소비처 표에 "자기 문단의 리드 개수어" 행 신설 |
harness-ptop.md | 5라운드 연속 미수정. 개별 수정으로는 안 끊겨 회귀 유형 자체를 표에 등재 |
| 2026-08-04 | Ubisam Phase 1·2 전달 항목에 실행 모드 추가, 3인에 모드 수신 규칙 이식 | rebuild/SKILL.md, ubisam-analyst·producer·qa | 모드 판별이 승인 목록 산정에만 쓰이고 이동·재사용 결정에 도달하지 못했음(이어서 소비처 0건) |
| 2026-08-04 | 이어서·부분이면 기동 대상도 축소한다는 규칙 신설 |
orchestrate/SKILL.md | 모드가 바꾸는 것이 이동 여부뿐이라 "없는 것만 생성" 정의가 미시행 |
| 2026-08-04 | SendMessage summary 필수 명시(에이전트 6) + Phase 3 developer run_in_background: true |
에이전트 6, orchestrate/SKILL.md | 실제 스키마상 summary는 필수이고 to:"main"은 백그라운드 전용 — 전경 기동 시 회신 경로가 막힘 |
| 2026-08-04 | 단독 기동 stale 절·rules.md #1 을 형제 스킬 2종에 이식 |
analyze-ptop-implementation, optimize-ptop-build, analyze-ptop-architecture | "빌드 분석만 다시"가 후속 트리거인데 표기 주체가 analyze-ptop-architecture 에만 있었음 |
| 2026-08-04 | PLCContoller.Config.cs 역할 정정, DefineConstants 단정에 PTOP csproj 기준 한정 |
ptop-developer.md, build-devops-engineer.md | 전자는 18줄 빈 파일인데 "주소 맵핑"으로 안내(형제 문서와 정반대). 후자는 저장소 전체에 _NO_USE_*·USE_COGNEX 가 실재하는데 에이전트가 자기 스킬보다 넓게 단정 |
| 2026-08-04 | 모션 보드 벤더 주의문을 IO 보드로 정정 | source-map.md | eIOBoardType(Ajin·PAIX·ACS)은 AuroraIO/IODevice.cs:18 소속이고 AuroraMotionBoard 는 Ajin/ 구현뿐 — 금지문이 IO와 모션을 혼동해 architecture.md:133 을 거짓 위반으로 만들고 있었음 |
| 2026-08-04 | 디바이스 "5종 전수" → 활성 3 + 주석 3(상태감시는 살아 있음) | ptop-lead.md | 활성 registry.Register 3건인데 5종 파악을 요구. AddDeviceActiveStatus(:70-71) 때문에 "미사용" 단정도 불가 |
| 2026-08-04 | render_helpers.py 크래시 수정 + 출력 경로·실행 예 정정 |
ui_layout_image/render_helpers.py | os.makedirs('') → FileNotFoundError(파일명만 준 경우). _demo.png 가 스킬 폴더로 새고 있었고 docstring 이 맨 파일명 실행을 지시 |
| 2026-08-04 | 유형 뱃지 중복 2행 삭제(11→9), TODAY 출처 정정, ppt spec 예시 실명 제거 |
design-system.md, 05-form-schemas.md, ubisam-ppt-make/SKILL.md | 뱃지가 enum 9종과 불일치, TODAY는 xlsxfill.py 가 아니라 build_02설계_xlsx.py:41, spec 예시의 타 프로젝트 조직·담당자가 복사 유발 |
| 2026-08-04 | README.md 디자인 지시를 §7 부재에 맞게 재작성 |
ubisam-deliverables/SKILL.md | 08-design-system.md:98 §7 은 _task.md 전용 — README 골격이 없는데 적용을 명령 |
| 2026-08-04 | 200줄 상한 복구 — 변경 이력 분리, 보고서 골격·프로토콜을 references/ 로 |
harness-ptop.md, orchestrate/SKILL.md, rebuild/SKILL.md | 감사 중 수정으로 202·201줄 발생(rules.md #4 자기 위반). 본 파일도 200줄에 도달해 이력 추가가 불가능했음 |
| 2026-08-04 | 20R. 부분 모드를 기동 축소 조건에서 제외 + 생략 시 완료 판정 대체 규칙 신설 |
orchestrate/SKILL.md, references/mode-rules.md | 19R 수정이 만든 seam(A·B 둘 다 Major 지목). 부분은 지목 에이전트를 다시 돌리는 모드인데 산출물이 있다는 이유로 생략해 0기동이 됐고, 이어서에서 lead를 생략하면 Phase 3이 오지 않을 알림을 무기한 대기했다 |
| 2026-08-04 | PLCContoller.Config.cs 역할 정정을 analyze-ptop-architecture 에도 반영 |
analyze-ptop-architecture/SKILL.md | 19R이 ptop-developer.md 만 고치고 같은 서술의 다른 사본을 놓쳤다. 하필 ptop-lead 가 "먼저 읽는다"고 지정한 스킬 |
| 2026-08-04 | 하네스 문서 상호 인용을 라인 번호 → 앵커 문자열로 전환 | source-map.md, harness-ptop.md | 05-form-schemas.md:78-85 가 같은 배치의 2줄 추가로 어긋나 정정 대상 VisionView 를 범위 밖으로 밀어냈다. 소비처 표에 "라인 드리프트" 행 신설 |
| 2026-08-04 | 조건부서식 상수 소재 정정 (xlsxfill.py 에 없다 — 관련 API 0건) |
00-harness.md | 계약 문서가 ubisam-producer.md 와 정반대를 적었고, 계약이 먼저 읽힌다 |
| 2026-08-04 | 박제된 rg 실측치(57) → 재현 명령과 관계(1 ≪ 전체) 로 교체 |
harness-ptop.md, ubisam-qa.md, .gitignore | 파일이 늘어 59가 되며 드리프트. 숫자를 문서에 박는 구조 자체가 원인이라 숫자를 없앴다 |
| 2026-08-04 | test-scenarios 개수 선언 1+1 → 4흐름, _progress.md 행 초기화에 생략 상태 추가 |
orchestrate/SKILL.md | 19R이 신설한 "리드 개수어" 규칙의 자기 위반. 축소 기동과 3행 초기화가 미정합 |
| 2026-08-04 | Ubisam producer·qa 기동에 run_in_background: true |
rebuild/SKILL.md | to:"main" 은 백그라운드 전용인데 19R이 PTOP Phase 3 에만 적용 |
| 2026-08-04 | 디바이스 5종 나열 잔여분 정정, 200줄 문구 앵커 5건, build_deck.py·showcase.json 실명 20건 → 플레이스홀더, __pycache__ 3건 삭제 |
ptop-lead.md 외 8건 | 19R 정정이 같은 파일 앞부분·형제 파일에 남긴 잔여 |
| 2026-08-04 | 모드 규칙을 references/mode-rules.md 로 분리 (208 → 200줄 이하) |
orchestrate/SKILL.md | 위 수정으로 rules.md #4 재위반 |
| 2026-08-04 | 21R. 원장 상태 enum 정의부에 생략 추가 (3 → 4종) |
references/data-protocol.md, orchestrate/SKILL.md, mode-rules.md | 20R 수정이 쓰는 쪽(Phase 분기)만 고치고 정의부를 안 고쳤다 — A·B 둘 다 지목. 정의부에 없으면 기록 주체가 애초에 안 적어 19R 교착이 재발한다 |
| 2026-08-04 | 생략 을 모드 무관 "이번 실행에서 기동하지 않음" 으로 일반화 |
data-protocol.md, mode-rules.md, orchestrate/SKILL.md | 이어서 에만 부여돼 부분 의 미지목 에이전트 상태가 미정의였고, Phase 4 생략 분기가 안 걸려 교차 질문이 불필요하게 미검증 으로 떨어졌다 |
| 2026-08-04 | 생략 대상 표에 ptop-developer 추가 (2인 → 3인 전원) |
mode-rules.md | lead·build만 열거해 이어서 에서 developer 가 중복 기동 |
| 2026-08-04 | 마지막 .md:NN 상호 인용을 앵커로 전환 — 살아 있는 라인 인용 0건 |
source-map.md | 20R이 세운 앵커 정책의 유일한 미적용 지점. 이로써 라인 드리프트 결함 유형이 종료된다 |
| 2026-08-04 | "열거형 정의부 먼저" 규칙 신설 (① 정의한 표 → ② 기록하는 곳 → ③ 읽는 곳) | docs/harness-ptop.md | 6라운드 연속 같은 유형이 재발한 근본 원인. 개별 결함만 고쳐서는 안 끊겨 순서를 명문화 |
| 2026-08-04 | xlsxfill.py 타 프로젝트명(공소수정기·FMM) 제거 + 맨 파일명 실행 지시 정규화 |
references/xlsxfill.py | 형제 3곳은 이미 전체 경로로 정규화됐는데 이 파일만 남아 있었다 |
| 2026-08-04 | rebuild qa 기동 문장에 run_in_background: true (잔여 seam) |
rebuild/SKILL.md | 20R이 규칙은 넣고 같은 파일의 재기술 문장을 안 고쳤다 |
| 2026-08-04 | build-devops-engineer 자기모순 해소 ("lead 지시 대기 안 함" ↔ "lead 지시에 따라 수행") |
build-devops-engineer.md | 기동 주체가 오케스트레이터 전담으로 바뀐 뒤 §역할 문구가 옛 전제를 유지 |
| 2026-08-04 | 22R. Phase 3에 developer 자신을 생략하는 분기 신설 | orchestrate/SKILL.md, mode-rules.md | 21R 수정이 위임만 하고 수신처를 만들지 않았다(A·B 둘 다 Major). mode-rules.md 가 "Phase 3에서 판단"으로 넘겼는데 Phase 3에 분기가 0건 → 생략 으로 적어 둔 developer 가 실제 기동돼 원장이 거짓이 되고 02·03 을 덮어썼다 |
| 2026-08-04 | Phase 4를 완료/실패/생략 3분기로 분리 |
orchestrate/SKILL.md, references/collection-rules.md | "실패·미기동"을 한 처리로 묶어 부분·이어서 실행이 매번 교차 질문 2건을 통째로 미검증 으로 떨어뜨렸다. 생략 은 산출물이 실재하므로 파일을 읽어 답할 수 있다 |
| 2026-08-04 | 성공 기준의 미검증 대체 조건에 생략 경로 추가 |
orchestrate/SKILL.md | "실패했으면"만 허용해 부분 실행이 자기 성공 기준을 충족할 수 없었다 |
| 2026-08-04 | 기동 축소 기준을 모드별로 분리 서술 (이어서=산출물 유무 / 부분=지목 여부) |
orchestrate/SKILL.md, mode-rules.md | 본문이 "부분에는 적용하지 않는다"로만 적혀 §Phase 1-5의 생략 기록 지시와 표면 모순으로 읽혔다 |
| 2026-08-04 | 앵커 오지정 정정 — ubisam-format-map §5 → §6 |
source-map.md | 21R이 라인 인용을 앵커로 바꾸며 절 번호를 확인하지 않았다. 앵커 전환도 검증이 필요하다는 실증 |
| 2026-08-04 | test-scenarios.md 부분 재실행 흐름에 원장 생략 기록·Phase 3 스킵·Phase 4 3분기 단계 추가 |
references/test-scenarios.md | 생략 분기의 유일한 end-to-end 검증점이 비어 있었다 |
| 2026-08-04 | build-devops-engineer (Phase 3 의존) 잔여 정정, rebuild analyst 기동에 run_in_background |
build-devops-engineer.md, rebuild/SKILL.md | build 는 Phase 2 병렬로 선행 의존이 없다(복붙 잔재). analyst 는 단일 문서 시 회신이 막혔다 |
| 2026-08-04 | 소비처 확인 의무에 ④ "위임했으면 수신처 확인" + 앵커 전환 시 grep -n "^## " 절차 신설 |
docs/harness-ptop.md | 21R의 순서 규칙(①정의→②기록→③읽기)이 "정의부 누락" 유형은 잡았으나, 위임 문자열의 수신처 부재는 못 잡았다 |
| 2026-08-04 | Phase 4 상세를 references/collection-rules.md 로 분리 (213 → 200줄) |
orchestrate/SKILL.md | 위 수정으로 rules.md #4 재위반 |
| 2026-08-04 | 23R(최종 수정, 미채점). _workspace_prev/ 이동 주체 모순 해소 — 에이전트 정의를 전면 금지로 통일 |
ptop-lead.md, ubisam-analyst.md, orchestrate/SKILL.md | B 최상위 결함(잠재 데이터 유실). 오케스트레이터 문서는 "팀원은 안 한다"인데 lead·analyst 는 "전면이면 옮긴다"로 정반대였다. 금지문이 구속 대상의 독서 경로 밖이라 수신처 0건 → 이중 이동 시 병렬로 쓰이던 04~06 이 딸려간다 |
| 2026-08-04 | 모드 판별표를 두 축(산출물 상태 × 요청 범위)으로 분리 + 생략인데 파일 부재 시 분기 추가 |
references/mode-rules.md | 1열이 두 축을 섞어 산출물 0건 + "아키텍처만 다시" 가 초기·부분 양쪽에 매치했다(현재 저장소가 정확히 그 상태) |
| 2026-08-04 | 파일 이동으로 끊긴 인용 복구 — 교차 확인 질문 정의처를 collection-rules.md §교차 확인 질문으로 |
ptop-lead.md | 22R의 파일 분리가 끊은 인용. 답할 주체가 지목된 곳(SKILL.md Phase 4)을 열면 질문이 없었다 |
| 2026-08-04 | 복붙 쌍둥이 자기모순 해소 — ptop-developer.md "lead 지시를 기다리지 않는다" ↔ "lead 지시를 받아 수행" |
ptop-developer.md | 22R이 build-devops-engineer.md 만 고치고 세 줄 간격의 쌍둥이를 놓쳤다 |
| 2026-08-04 | mode-rules.md 리드 문장을 표와 정합("이어서에서만" → 모드별 기준), Phase 3 전방 참조, 승인 ④에 stale 편집 편입 |
mode-rules.md, orchestrate/SKILL.md | 표는 고쳤는데 그 위 요약문이 옛말로 남아 정면 충돌. 무조건 기동 문장이 생략 분기보다 앞. stale 편집이 승인 4항 어디에도 없었다 |
| 2026-08-04 | 이어서 수신 블록을 ptop-developer·build-devops-engineer 에 신설 |
에이전트 2 | Phase 2가 모드 4종을 전원에게 전달하는데 수신 블록은 lead 에만 있었다(문자열 각 0건) |
| 2026-08-04 | ⑤~⑦ 재발 방지 규칙 신설 + 앵커 검출 명령을 ^#{2,4} |^> \*\* 로 확장 |
docs/harness-ptop.md | ⑤ 금지·전담 지정 시 그 주체의 정의 파일 확인 ⑥ 절을 옮겼으면 제목을 grep -rn ⑦ 리드 문장·복붙 쌍둥이 동반 수정. grep -n "^## " 로는 하네스 자신의 앵커 4종이 검출되지 않았다 |
| 2026-08-04 | harness-ubisam.md 200줄 문구 앵커 부착·자기 서술 정정, protocol.md 베어 _workspace/ 경로 명시 |
harness-ubisam.md, protocol.md | 21R P3 2R 연속 미이행. PTOP 하네스의 동명 폴더와 혼동 소지 |