| name | meeting-progress |
| description | 현재 진행 중인 실험/연구의 상태를 미팅용으로 정리한 progress 스냅샷 MD를 생성한다. live 작업 폴더의 진행 결과, 실행 중 프로세스, 최신 status 문서를 스캔해서 타임스탬프 찍힌 리포트를 낸다. "progress report", "미팅 자료", "진행 상황 요약", "현재 어디까지 왔는지 정리해줘" 같은 요청에 사용. |
meeting-progress
미팅에 그대로 들고 갈 수 있는 자족적인 markdown 리포트 하나를 생성. 현재 실험 상태를 스냅샷으로 찍는다.
경로
.env 에서 로드:
REPO # 위키 git 저장소 루트
PROGRESS_ROOT # progress_YYYYMMDD_HHMM.md 가 쌓이는 디렉토리 (권장: $REPO/progress)
WIKI # 위키 본체
LIVE # 실험이 실제 돌아가는 작업 폴더 (runs/, logs/, docs/ 가 있는 곳)
WIKI_LANG # ko | en (기본 ko)
TZ # 파일명 타임스탬프 타임존 (기본 system local)
출력 위치
- 대상:
$PROGRESS_ROOT/progress_YYYYMMDD_HHMM.md
- 각 호출마다 새 파일 생성. 이전 리포트를 덮어쓰지 않음 (이력은
$PROGRESS_ROOT/ 에 누적).
- 파일명 타임스탬프는
TZ (또는 system local) 기준.
Live 작업 폴더
실제 데이터는 $LIVE 에 있음 (위키 git 미러가 아니라). 이 skill이 어디서 호출되든 runs/, logs/, docs/, 실행 중 프로세스는 항상 $LIVE 에서 읽는다.
생성할 섹션 (순서대로)
각 프로젝트의 이전 status 파일 포맷을 따르되, 기본 셰이프:
- Title —
# <Project name> Progress — YYYY-MM-DD HH:MM <TZ>
- Context — 짧은 단락: 현재 무엇을 테스트 중인지, 방어/비교군은 무엇인지, 현재 연구 질문은 무엇인지.
$LIVE/docs/ 에서 가장 최근의 *status*.md 있으면 그것의 Context 섹션에서, 없으면 최근 SESSION_BACKUP_*.md 에서 요약.
- Done — 지난 세션에서 완료한 마일스톤 bullet 리스트.
git log --oneline --since="7 days ago" 을 보조 신호로 사용.
- Current Status (live) — 테이블 형태:
| <subject> | <variant> | <context> | progress | <metric1> | <metric2> | ... |
Progress 단위는 completed/expected 또는 n/total. 메트릭 컬럼은 PRIMARY_METRICS 에 지정된 순서를 따름 (미지정 시 프로젝트 자체 status 파일의 컬럼 순서). Populate는 $LIVE/runs/ 스캔 결과로 (아래 "Data gathering" 섹션).
- Running processes — PID / script / since 테이블.
ps 을 관련 패턴(벤치마크 엔트리포인트, shell 스크립트)으로 필터.
- Known incidents — 최신
docs/*status*.md 에 해당 섹션이 있으면 그대로 복사. 없으면 생략. 사건을 지어내지 않는다.
- Pending / next steps — 최신 status 파일의 "Pending" 리스트에서. 없으면 최근
SESSION_BACKUP_*.md 의 "다음 할 일" 섹션에서.
- Files & paths — 리포트가 어디에서 데이터를 긁어왔는지 간단히. 독자가 숫자를 audit 할 수 있도록.
Data gathering
Running processes
ps -eo pid,lstart,cmd | grep -E "<benchmark entrypoint pattern>|run_.*\.sh" | grep -v grep
PID, start time(lstart → "since" 컬럼), 스크립트명 또는 flag들(e.g. --attack, --defense) 추출. 벤치마크 엔트리포인트 패턴은 프로젝트별 (예: AgentDojo는 agentdojo.scripts.benchmark). 없으면 $LIVE/scripts/ 의 주요 실행 스크립트 이름으로 필터.
Run progress (per logdir)
$LIVE/runs/<dir>/ 중 최근 24시간 내 수정된 디렉토리마다 (또는 사용자가 명시적으로 요청한 것):
- Expected total 을 프로젝트 규칙으로 결정. 예시: AgentDojo 전체 sweep은 suite별 고정 크기. Representative/sample 스윕은 샘플 정의 파일(e.g.
$LIVE/scripts/representative_sample.json)의 엔트리 수.
- 프로젝트가 제공하는 watcher 스크립트 를 사용 (재구현 금지). 예:
$LIVE/scripts/watch_run.py. 없으면 runs/<dir>/ 내 trace 파일 수로 단순 count.
- watcher는 보통
<logdir>/_live_metrics.json 같은 캐시를 씀. 그것을 읽어 progress, primary metrics 출력.
Status file lookup
$LIVE/docs/*status*.md 중 mtime 최신.
- 여러 개면 현재 돌고 있는 실험 계열 이름이 파일명에 들어간 것 우선 (running-process 테이블에서 grep).
Session backup lookup
$LIVE/SESSION_BACKUP_*.md 중 mtime 최신.
제약
- Output language.
WIKI_LANG=ko 면 모든 섹션 제목/본문/bullet을 한국어. 기술 용어(메트릭 이름, suite 이름, 파일 경로, CLI 플래그 등)는 원문 유지하되 설명 문장은 한국어. 이전 progress 파일이 영어로 돼있어도 새 파일은 항상 WIKI_LANG 언어로.
- Don't fabricate numbers. logdir에 trace 파일이 아직 없으면 메트릭
—, progress 0/total.
- Primary metric 우선.
PRIMARY_METRICS 에 지정된 첫 메트릭이 항상 테이블에서 먼저 노출. 숨기거나 재정렬 금지.
- Read-only. 새 실험을 시작하거나 서버/프로세스를 건드리지 않는다.
- 자족성. 외부 링크 없이 파일 경로만. 독자가 MD 하나로 미팅 가능해야 함.
watch_run.py (또는 상응하는 watcher)가 특정 logdir에서 에러 내면 그 행을 짧은 노트와 함께 skip, 전체 리포트는 중단하지 않음.
- 해석 금지. no-hype 원칙 — 결론이 아니라 숫자를 보고.
출력 배달
파일을 쓴 후:
- 절대경로 출력.
- Current Status 테이블을 채팅에 인라인 출력 (빠른 검토용).
- 자동 커밋 (
$REPO 에서):
cd $REPO
git add progress/progress_YYYYMMDD_HHMM.md
git commit -m "progress: YYYY-MM-DD HH:MM"
progress/ 밑의 새 파일만 git add. git add . 또는 -A 사용 금지 (관련없는 in-flight 작업이 함께 staging 되는 것 방지).
- push 하지 않음. 사용자가 미팅 전 직접 push.
- commit 실패(hook 실패, nothing to commit 등)면 에러 보고 후 중단.
--amend 나 --no-verify 로 재시도하지 않음.
- research-wiki 로 handoff.