| name | meeting-progress |
| description | Generate a meeting-ready progress snapshot MD for the current AgentDojo attack research. Scans live runs/, running benchmark processes, and the latest docs/*status*.md to produce a timestamped report following the nx_sweep_status.md template. Use when the user asks for a "progress report", "미팅 자료", "진행 상황 요약", or says something like "현재 어디까지 왔는지 정리해줘". **Requires a researcher argument** (ys/yj/wj) — output is written to the researcher's sub-directory. |
meeting-progress
Produce a single self-contained markdown file summarizing the current state of AgentDojo attack experiments, ready to bring into a meeting.
Researcher argument (required)
The skill operates per-researcher. The caller must specify which researcher is invoking it. Accepted values:
ys — researcher ys (primary user, Experiment1 workspace)
yj — researcher yj (collaborator, Experiment2 workspace)
wj — professor wj (feedback / review notes)
If the user says "나는 ys" / "meeting-progress ys" / "ys로 progress 만들어" — use ys. Default assumption when unclear: ask the user which researcher to attribute the progress to. Do NOT guess.
Output location
- Target:
/home/dgu_wj92/ysl/StealthyIPIAttack/progress/<researcher>/progress_YYYYMMDD_HHMM.md
<researcher> ∈ {ys, yj, wj}
- Example:
progress/ys/progress_20260425_0911.md
- Each invocation creates a new file — do not overwrite prior reports. History accumulates in the researcher's sub-directory.
- Filename timestamp uses KST (system local time is fine — do not convert).
Live workspace path
The authoritative data lives here (not in the git mirror):
LIVE=/home/dgu_wj92/ysl/AgenticRAG/Experiment1/AgentDojo
Always read runs/, logs/, docs/, and running processes from $LIVE, regardless of which directory the skill is invoked from.
Sections to produce (in order)
Follow the docs/nx_sweep_status.md template shape:
-
Title — # AgentDojo Progress — YYYY-MM-DD HH:MM KST
-
Context — one short paragraph: what attack family is under test, what defense(s), what the current research question is. Pull the latest "Context" or top-of-file summary from docs/nx_sweep_status.md if present; otherwise summarize from the most recent SESSION_BACKUP_*.md.
-
Done — bullet list of completed milestones in the last session. Mirror the "Done" section style. Use git log --oneline --since="7 days ago" as a supporting signal for recent changes.
-
Current Status (live) — a table of the form:
| model | attack | defense | suite | progress | ASR | Both |
Populate by scanning runs/ (see "Data gathering" below).
-
Running processes — table of PID / script / since, from ps filtered to agentdojo.scripts.benchmark and related shell scripts.
-
Known incidents — copy-paste directly from the latest docs/nx_sweep_status.md if it has that section. Otherwise omit. Do not fabricate incidents.
-
Pending / next steps — pull from the latest status file's "Pending" list. If missing, pull the "다음 할 일" section of the latest SESSION_BACKUP_*.md.
-
Files & paths — brief list of where the report data came from (which runs/ dirs were scanned, which status file was referenced). Lets the reader audit numbers.
Data gathering
Running processes
ps -eo pid,lstart,cmd | grep -E "agentdojo.scripts.benchmark|run_.*\.sh" | grep -v grep
Extract PID, start time ("since" column), and the shell script name or --attack/--defense flags.
Run progress (per logdir)
For each $LIVE/runs/<dir>/ that was modified in the last 24 h (or explicitly requested by the user):
- Determine the expected total per suite:
banking=144, slack=105, travel=140, workspace=560 (single-config full run). For sampled sweeps (*-sample logdirs), expected total = size of the fixed sample (see docs/nx_sweep_status.md — 32 banking, 9 slack, 4 travel for the Nx sweep).
- Run the existing watcher to compute metrics without reinventing counting logic:
/home/dgu_wj92/miniconda3/envs/agentdojo/bin/python "$LIVE/scripts/watch_run.py" --logdir "<abs_logdir>" --once
That writes <logdir>/_live_metrics.json. Read it and emit:
progress = N/total (trace count seen vs expected)
ASR = (both + attack_only)/N
Both = both/N
- MELON runs live under
local-melon/ instead of local/ — watch_run.py handles this already. Do not re-implement.
Status file lookup
- Prefer the newest
$LIVE/docs/*status*.md by mtime.
- If multiple, prefer the one whose filename matches the attack family currently running (grep the running-process table).
Session backup lookup
- Latest
$LIVE/SESSION_BACKUP_*.md by mtime.
Constraints
- Output language: Korean (한국어). 모든 섹션 제목, 본문, bullet, 인시던트 설명은 한국어로 작성한다. 기술 용어(ASR, Both, MELON, suite 이름, 파일 경로, CLI 플래그 등)는 그대로 두되 설명 문장은 한국어. 이전에 영어로 작성된 progress 파일이 있어도 새 파일은 항상 한국어로 출력한다.
- Don't fabricate numbers. If a logdir has no JSON files yet, print
— for ASR/Both and 0/total for progress.
- ASR first, Both second. Never hide or reorder. This is the user's primary metric rule.
- Do not spin up new experiments or touch Ollama. Read-only.
- Keep the output self-contained — no external links beyond file paths. The reader should be able to open the MD in a meeting without chasing references.
- If
watch_run.py errors on a specific logdir, skip that row with a short note; do not halt the whole report.
- Do not interpret or editorialize results (per the user's "no hype" rule). Report numbers, not conclusions.
Output delivery
After writing the file:
- Print the absolute path of the written file.
- Print the Current Status table inline in the chat for quick review.
- Auto-commit the new file in
/home/dgu_wj92/ysl/StealthyIPIAttack:
cd /home/dgu_wj92/ysl/StealthyIPIAttack
git add progress/<researcher>/progress_YYYYMMDD_HHMM.md
git commit -m "progress(<researcher>): YYYY-MM-DD HH:MM KST"
<researcher> is the value passed as the skill argument (ys/yj/wj).
- Only add the newly created progress file under
progress/<researcher>/ — never use git add . or -A (prevents accidentally staging unrelated in-flight work).
- Do NOT push. The user pushes manually before the meeting.
- If the commit fails (e.g. hook failure, nothing to commit), report the error and stop — do not retry with
--amend or --no-verify.
- Handoff to research-wiki.