01
개발 현황
- 에이전트 작업에 연속성이 생겼습니다. openmake-code에서 작업 목록을 보고 로컬 작업을 이어 하며, 결과·진행 기록·변경분을 다시 출력할 수 있습니다. 재시작 뒤 queued 작업이 영구 고아가 되지 않고, 재개에 성공한 작업에 이전 실패 사유가 남지 않습니다. 판정 쪽도 손봤습니다. goal에 적힌 번호 절차를 초기 계획으로 심어 plan 프로토콜 오류를 없앴고, judge에는 제출 산출물을 함께 실어 셰도우 표본이 오염되지 않게 했으며, 아티팩트가 있는 완료 건까지 판정만 기록하도록 셰도우를 넓혔습니다. goal judge 사유는 저장되고, 증거 화면에서는 terminate·plan 같은 제어 단계를 덜어 냈습니다.
- 공유는 서버·웹·CLI를 잇는 명시적인 읽기 전용 경로가 됐습니다. 공유 작업의 산출물은 격리 오리진 뷰어로 열고, CLI와 웹에서 같은 작업을 확인하되 공유 화면이 또 하나의 실행 창구가 되지는 않게 했습니다.
- 실행 루프의 관측성과 효율을 함께 올렸습니다. 채팅·에이전트 작업·서브에이전트 안에서 한 턴에 발생한 읽기 전용 도구 호출은 병렬 실행하고, local-bridge의 write 결과에는 tsc 또는 py_compile 진단을 먼저 붙이며, 서브에이전트 활동과 위임 채택률 셰도우 지표를 기록합니다. 도구 관측에는 분모가 생겼습니다. 오류 건수 top10만 보던 화면 옆에 감사 기록 기반의 도구 헬스 표를 두어 호출 수·실패율·실패 원인·p50을 채팅과 에이전트 작업 양쪽에서 함께 봅니다. 673번 호출해 7번 실패한 도구와 6번 호출해 5번 실패한 도구가 뒤섞이던 문제가 여기서 갈립니다. 반복 실패하는 외부 도구는 노출에서 빼고 실행도 거절하는 서킷을 붙이되 기본은 꺼 두었고, 없는 도구 이름을 부르면 교정 후보를 함께 돌려줍니다.
- 확장 기능과 MCP는 초안에서 통제된 설치 흐름으로 이동했습니다. 외부 스킬·플러그인을 OpenMake에 맞추는 단계를 마련하고, 플러그인 번들은 GitHub가 아니라 이 배포의 갤러리에 게시하며, draft 스킬은 묶어서 승인·거부할 수 있습니다. 카탈로그 판정과 설치는 한 함수로 합쳐 상류 plugin.json 규격을 그대로 받아들이게 했고, git 심링크로 걸린 SKILL.md는 판정과 설치 탐지에서 제외했습니다. MCP 서버는 삭제하지 않고 끌 수 있고, 원격 MCP 로그인은 Authorization Code + PKCE와 동적 등록을 사용하며, 확장에서 따라온 env 자리표시자는 값을 입력받아 시크릿으로 암호화해 저장합니다. 클라이언트는 @modelcontextprotocol/client v2로 옮겼습니다(Phase 1, legacy 협상 고정). 전역 registry 소유권, draft 서버 자동 연결, 커넥터 오류 표시, 남아 있던 searxng 브리지 참조도 정리했습니다.
- 웹 화면은 덜 헷갈리게 바뀌었습니다. 동작을 중복하던 모드 자동 발동 토글 4개를 없애고, 관리자 라우트에는 role 가드를 두며 가짜 데이터 폴백을 제거했습니다. 커넥터 표의 열이 무너지지 않고, 세션이 만료되면 store를 게스트로 되돌려 승인 배지 폴링이 죽은 토큰을 계속 두드리지 않습니다.
- 경계의 작은 결함들을 함께 다뤘습니다. 구조화 JSON 파싱과 긴 텍스트 경로를 보강하고, 슬래시 스킬은 질문의 언어를 유지하며 사전 검색·URL 분석으로 새지 않게 했습니다. 배정한 스킬이 주입되지 않던 2겹 결함은 manifest 동반 생성과 백필로 막고, 명시 배정은 카테고리와 무관하게 통하도록 했으며, 주입 dedupe를 SQL로 내리고 최신 버전 선택을 사전순 MAX에서 semver 정렬 키로 바꿨습니다. 스킬 사용 이벤트는 skill_audit_log에 남고 요약 API로 조회합니다. 언어를 지정하지 않은 web_search 호출은 질의에서 언어를 감지해 한국어에는 네이버·다음 provider를 되돌렸고, 프록시 뒤 리미터는 카운터를 올바르게 공유해 무관한 429를 없앴습니다.
- 주 첫날 새벽에 전주의 구조화 작업을 마무리해 스키마를 OpenAI strict 규격으로 내보내고 출력이 길이 상한에 걸리면 스스로 줄여 다시 시도하게 한 뒤, 그대로 1.33.0과 1.33.1을 잘랐습니다. 주 마지막 날에는 1.34.0을 냈고, 이어서 유실됐던 브랜치의 커밋을 전량 회수했습니다. 포트를 셸이 아니라 .env에서 읽는 단일 출처를 두어 웹이 기본 3000으로 떨어지거나 빌드에 굳은 주소로 WebSocket이 붙던 문제를 막고, MCP는 템플릿당 이름 붙인 다중 인스턴스를 부팅 때 복원하며 커넥터 목록에서 이름 변경과 등록 삭제가 됩니다. 작업 결과 화면은 아티팩트·성과·미리보기로 읽을 수 있게 바꾸고 산출물을 아티팩트 갤러리에도 남기며, goal이 html을 요청하면 markdown이 아니라 html을 냅니다. 재시작 후 첫 작업이 user MCP 도구 0개로 돌던 결함과 토큰 쿼터를 요청 수로 적던 오표시도 여기서 걷혔습니다. 운영 점검 2차에서는 작업 workspace를 재부팅에 사라지는 /tmp에서 영속 경로로 옮기고, prod high 취약점을 13건에서 2건으로 줄이고, Node 기본 5초이던 keep-alive를 늘려 배지 폴링이 끊기던 원인을 없앴으며, Caddyfile을 배포 단계에서 운영 경로로 동기화하되 덮어쓰기 전에 caddy validate로 검증하게 했습니다.
02
주간 기록을 재구성한 방법
이 기간과 일치하는 로컬 Claude Code 프로젝트 세션을 찾지 못했습니다. 따라서 Git 이력이 증명하는 개발 내용만 기록했습니다.
확인 가능한 Claude Code 메인 세션과 명시적으로 연결된 하위 세션, 저장소 Git 이력을 전수 점검했습니다. 세션은 의도와 조사 과정을 설명하고, 실제 반영된 코드는 Git을 최종 근거로 판단했습니다.
근거 자료
근거
OPENMAKE · MIT OPEN SOURCE
OpenMake