From a34c58a1439bcb93d5a3ebcbf587bde535526331 Mon Sep 17 00:00:00 2001 From: toki Date: Thu, 25 Jun 2026 15:22:13 +0900 Subject: [PATCH] Update iop-weekly-subproject-work-summary SKILL.md and collect.sh --- .../SKILL.md | 6 ++ .../scripts/collect.sh | 55 +++++++++++++------ 2 files changed, 44 insertions(+), 17 deletions(-) diff --git a/.workspace-ops/skills/iop-weekly-subproject-work-summary/SKILL.md b/.workspace-ops/skills/iop-weekly-subproject-work-summary/SKILL.md index e566b0f..763537c 100644 --- a/.workspace-ops/skills/iop-weekly-subproject-work-summary/SKILL.md +++ b/.workspace-ops/skills/iop-weekly-subproject-work-summary/SKILL.md @@ -35,6 +35,8 @@ description: IOP 관련 핵심 repository만 대상으로 기존 weekly-subproje 로컬 workspace에 `agent-framework`가 없고 `agentic-framework`가 있으면 `agent-framework` 요청은 `agentic-framework`로 해석한다. 결과에는 실제 확인한 경로를 명확히 쓴다. +`agent-framework`/`agentic-framework`는 IOP 관련 공통 운영 원천 repository로 본다. +따라서 코드 레벨 변경이 아니고 agent-ops/rules/skills/entry file/README 같은 운영 변경만 있어도 기간 내 commit이 있으면 출력에 포함한다. ### 기간 해석 @@ -54,8 +56,10 @@ description: IOP 관련 핵심 repository만 대상으로 기존 weekly-subproje - 분석 기간 동안 git commit이 없는 repository는 출력에 포함하지 않는다. - 분석 기간 동안 작업 내용 요약 대상 commit이 0개인 repository는 출력에 포함하지 않는다. - 변경된 파일이 모두 agent-ops sync path인 repository는 출력에 포함하지 않는다. +- 단, `agent-framework`/`agentic-framework`는 예외로 하며, 기간 내 commit이 있으면 코드 레벨 변경이 아니어도 출력에 포함한다. - 하나의 commit에 sync path와 제품/운영 payload path가 함께 있으면 작업 내용 요약 대상 commit으로 본다. - 이 경우 sync path 자체가 아니라 제품/운영 payload path를 중심으로 요약한다. +- `agent-framework`/`agentic-framework`는 sync path 자체가 공통 운영 원천 변경일 수 있으므로 agent-ops/rules/skills/entry file/README 변경을 작업 내용으로 요약할 수 있다. - 미커밋 변경은 기본 출력에 포함하지 않는다. - `agent-task/archive/**`와 `agent-roadmap/archive/**`의 파일 내용은 읽지 않는다. 단, git 변경 경로 집계에서 archive 경로가 나타나는 것은 작업 정리/아카이브 흐름으로만 요약할 수 있다. @@ -111,6 +115,7 @@ agent-ops sync path는 다음으로 본다. - 전체 총평, 평가표, 속도표, 품질표, 점수는 쓰지 않는다. - `지난주` 요청이라도 날짜 범위는 본문 앞뒤 설명으로 길게 쓰지 말고, 사용자가 날짜를 요구한 경우에만 한 줄로 덧붙인다. - 작업이 없는 repo나 agent-ops sync-only repo는 목록에 넣지 않는다. +- 단, `agent-framework`/`agentic-framework`는 agent-ops/rules/skills/entry file/README 변경만 있어도 목록에 넣는다. ## 출력 형식 @@ -129,6 +134,7 @@ agent-ops sync path는 다음으로 본다. - [ ] 베이스 `weekly-subproject-work-summary`를 먼저 읽었는가 - [ ] 대상이 `agent-shell`, `agent-framework`/`agentic-framework`, `iop`, `nexo`, `oto`, `proto-socket`으로 제한됐는가 - [ ] commit이 없는 repo와 agent-ops sync-only repo를 출력에서 제외했는가 +- [ ] `agent-framework`/`agentic-framework`는 코드 레벨 변경이 아니어도 기간 내 수정이 있으면 출력에 포함했는가 - [ ] `지난주` 요청이면 rolling 7 days가 아니라 직전 calendar week 범위를 사용했는가 - [ ] 상위 bullet은 repo명, 하위 bullet은 기능/작업 영역 수준의 주요 내용만 썼는가 - [ ] 하위 bullet이 한 줄짜리 명사구이며 구현자가 아니어도 이해할 수 있는 수준인가 diff --git a/.workspace-ops/skills/iop-weekly-subproject-work-summary/scripts/collect.sh b/.workspace-ops/skills/iop-weekly-subproject-work-summary/scripts/collect.sh index 0d830d8..6f1ff15 100755 --- a/.workspace-ops/skills/iop-weekly-subproject-work-summary/scripts/collect.sh +++ b/.workspace-ops/skills/iop-weekly-subproject-work-summary/scripts/collect.sh @@ -47,6 +47,13 @@ is_sync_path() { return 1 } +includes_all_changes() { + local requested="$1" + local rel="$2" + + [[ "$requested" == "agent-framework" || "$rel" == "agent-framework" || "$rel" == "agentic-framework" ]] +} + commit_paths() { local repo="$1" local sha="$2" @@ -125,11 +132,15 @@ for requested in "${TARGET_REPOS[@]}"; do ((${#all_shas[@]} > 0)) || continue summary_shas=() - for sha in "${all_shas[@]}"; do - if is_summary_commit "$repo" "$sha"; then - summary_shas+=("$sha") - fi - done + if includes_all_changes "$requested" "$rel"; then + summary_shas=("${all_shas[@]}") + else + for sha in "${all_shas[@]}"; do + if is_summary_commit "$repo" "$sha"; then + summary_shas+=("$sha") + fi + done + fi ((${#summary_shas[@]} > 0)) || continue @@ -156,18 +167,28 @@ for requested in "${TARGET_REPOS[@]}"; do git -C "$repo" show --no-patch --date=iso --format='%h | %ad | %s' "${summary_shas[@]}" echo - echo "top non-sync paths:" - for sha in "${summary_shas[@]}"; do - while IFS= read -r path; do - [[ -z "$path" ]] && continue - if ! is_sync_path "$path"; then - printf '%s\n' "$path" - fi - done < <(commit_paths "$repo" "$sha") - done | - path_bucket | - sort -nr | - head -n 16 + if includes_all_changes "$requested" "$rel"; then + echo "top paths:" + for sha in "${summary_shas[@]}"; do + commit_paths "$repo" "$sha" + done | + path_bucket | + sort -nr | + head -n 16 + else + echo "top non-sync paths:" + for sha in "${summary_shas[@]}"; do + while IFS= read -r path; do + [[ -z "$path" ]] && continue + if ! is_sync_path "$path"; then + printf '%s\n' "$path" + fi + done < <(commit_paths "$repo" "$sha") + done | + path_bucket | + sort -nr | + head -n 16 + fi echo "shortstat:" shortstat_for_commits "$repo" "${summary_shas[@]}"