Skip to content

chore: LLM wiki 파이프라인 워크플로우 추가 - #562

Open
chlee-wantedlab wants to merge 1 commit into
mainfrom
chore/add-llm-wiki-workflow
Open

chore: LLM wiki 파이프라인 워크플로우 추가#562
chlee-wantedlab wants to merge 1 commit into
mainfrom
chore/add-llm-wiki-workflow

Conversation

@chlee-wantedlab

Copy link
Copy Markdown

docs/ 자동 생성용 workflow_dispatch 트리거를 추가합니다. 실행은 수동 트리거로만 발생하며, 자동 배포되지 않습니다.

주의: workflow_dispatch 는 워크플로우 파일이 default branch(main)에 있어야 Actions UI 에 나타납니다. 이 PR 을 머지한 뒤 실행할 수 있습니다.

@chlee-wantedlab
chlee-wantedlab requested a review from a team as a code owner August 7, 2026 06:55
@chlee-wantedlab
chlee-wantedlab requested review from agiletalk and removed request for a team August 7, 2026 06:55
@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 2b101d8b-1bec-45be-8a05-3cc6981798c7

📥 Commits

Reviewing files that changed from the base of the PR and between 23c44cb and 508cca5.

📒 Files selected for processing (1)
  • .github/workflows/llm-wiki-pipeline.yml

Summary by CodeRabbit

  • 새 기능
    • 수동으로 실행할 수 있는 문서 지식 베이스 생성 파이프라인을 추가했습니다.
    • 변경된 범위만 처리하거나 전체 문서를 다시 생성할 수 있습니다.
    • 생성된 문서의 링크와 누락된 항목을 자동으로 점검·보완합니다.
    • 검증이 완료되면 변경 사항을 커밋하고 PR을 생성하거나 업데이트합니다.
  • 개선 사항
    • 실행 실패 시 생성 결과를 아티팩트로 보존하고, 실행 요약에 결과를 기록합니다.

Walkthrough

수동 실행형 LLM Wiki Pipeline 워크플로우를 추가했다. 워크플로우는 변경 범위를 판정하고, 스캐폴딩과 Claude 문서 생성을 수행한다. docs-lint로 결과를 보정·검증한 뒤 변경 사항을 커밋하고 PR을 생성하거나 갱신한다.

Changes

LLM Wiki Pipeline 자동화

Layer / File(s) Summary
실행 설정과 변경 범위 결정
.github/workflows/llm-wiki-pipeline.yml
수동 입력, 동시 실행 정책, 고정 스캐폴더 버전, 인증 검증, full·diff·skip 모드와 변경 파일 제한을 정의한다.
스캐폴딩과 작업 공간 보존
.github/workflows/llm-wiki-pipeline.yml
AGENTS.md, CLAUDE.md, 심볼릭 링크 상태를 보존한다. 스캐폴더 실행 후 문서 루트, lint 스크립트, Gemini 스킬 경로와 Claude 입력 파일을 준비한다.
문서 생성과 lint 보정
.github/workflows/llm-wiki-pipeline.yml
Claude가 제한된 도구로 문서를 생성한다. docs-lint --json 결과를 사용해 끊긴 링크, related 항목, 빈 버킷, orphan atom을 보정한다. docs-lint --strict로 최종 검증을 수행한다.
변경 사항 게시와 실행 결과 기록
.github/workflows/llm-wiki-pipeline.yml
변경 사항을 실행별 브랜치에 커밋하고 푸시한다. GitHub REST API로 PR을 생성하거나 갱신한다. 실패 산출물을 업로드하고 Job Summary에 실행 결과를 기록한다.

Estimated code review effort: 5 (Critical) | ~90+ minutes

Sequence Diagram(s)

sequenceDiagram
  participant Runner as GitHub Actions runner
  participant Scaffold as 고정 스캐폴더
  participant Claude as Claude
  participant DocsLint as docs-lint
  participant GitHubAPI as GitHub REST API
  Runner->>Scaffold: 지식 베이스 스캐폴딩 실행
  Runner->>Claude: 변경 범위와 제한된 도구 전달
  Claude->>Runner: 문서 및 AGENTS.md 생성
  Runner->>DocsLint: docs-lint --json 실행
  DocsLint->>Runner: 링크 및 orphan atom 결과 반환
  Runner->>Claude: 보정 대상 문서 전달
  Claude->>Runner: 문서 보정 결과 반환
  Runner->>DocsLint: docs-lint --strict 실행
  DocsLint->>Runner: 검증 결과 반환
  Runner->>GitHubAPI: 검증된 변경 사항으로 PR 생성 또는 갱신
Loading

Possibly related PRs

Suggested reviewers: agiletalk, deholic

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed 제목은 수동 실행형 LLM Wiki Pipeline 워크플로우 추가라는 주요 변경 사항을 정확하고 간결하게 설명합니다.
Description check ✅ Passed 설명은 수동 workflow_dispatch 트리거와 docs/ 자동 생성 워크플로우라는 변경 사항을 설명하며 목표와 일치합니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/add-llm-wiki-workflow

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (1)
.github/workflows/llm-wiki-pipeline.yml (1)

544-549: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Read 전역 허용과 persist-credentials: true가 겹칩니다. deny 규칙으로 .git을 차단하세요.

Line 77-82의 주석이 지적한 대로 token은 .git/config에 남고, 현재 Read에는 경로 제한이 없습니다. claude-code-action@v1claude_args--disallowedTools를 전달하며 deny 규칙이 allow 규칙보다 우선하므로, .git 경로를 명시적으로 차단해야 합니다.

           claude_args: |
-            --allowedTools "Read,Write,Edit,Bash(rg:*),Bash(grep:*),Bash(node scripts/docs-lint.mjs:*),Bash(node scripts/owners-from-git.mjs:*),Bash(git log:*),Bash(git diff:*),Bash(git show:*),Bash(git blame:*),Bash(git shortlog:*)"
+            --allowedTools "Read,Write,Edit,Bash(rg:*),Bash(grep:*),Bash(node scripts/docs-lint.mjs:*),Bash(node scripts/owners-from-git.mjs:*),Bash(git log:*),Bash(git diff:*),Bash(git show:*),Bash(git blame:*),Bash(git shortlog:*)"
+            --disallowedTools "Read(./.git/**)"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/llm-wiki-pipeline.yml around lines 544 - 549, Update the
claude_args configuration to add a --disallowedTools deny rule covering .git
paths, while preserving the existing allowed tools and persist-credentials
behavior. Ensure the deny rule blocks Read access to .git and takes precedence
over the global Read allowance.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/llm-wiki-pipeline.yml:
- Around line 889-899: Update the human-commit detection block around HUMAN so
git log failures are captured and checked separately instead of being suppressed
by `|| true`; abort the workflow when `origin/${BASE_BRANCH}..origin/${BRANCH}`
cannot be evaluated, and only perform the existing HUMAN-based branch split
after a successful git log.
- Around line 378-382: Update the Scaffold step’s environment to expose the
existing agents_state value, then adjust the AGENTS.md restoration condition in
the non-full MODE branch to skip checkout when agents_state is human. Preserve
restoration for other states so intentionally removed human-managed documents
are not reintroduced.
- Around line 305-318: Update the classification condition preceding the
CK=agents_target assignment to also require that CLAUDE.md is not a symlink.
This preserves agents_target only when AGENTS.md points to the regular CLAUDE.md
file, allowing CLAUDE.md → AGENTS.md repositories to reach the existing symlink
handling branch and be restored correctly.

---

Nitpick comments:
In @.github/workflows/llm-wiki-pipeline.yml:
- Around line 544-549: Update the claude_args configuration to add a
--disallowedTools deny rule covering .git paths, while preserving the existing
allowed tools and persist-credentials behavior. Ensure the deny rule blocks Read
access to .git and takes precedence over the global Read allowance.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: d1b56076-04df-4cb5-be40-07f7d0bd50ff

📥 Commits

Reviewing files that changed from the base of the PR and between ccd04ca and 23c44cb.

📒 Files selected for processing (1)
  • .github/workflows/llm-wiki-pipeline.yml

Comment on lines +305 to +318
AGENTS_FILE_REAL=$(readlink -f -- "$AGENTS_FILE" 2>/dev/null || echo "")
CLAUDE_REAL=$(readlink -f -- CLAUDE.md 2>/dev/null || echo "")
if [ -n "$AGENTS_FILE_REAL" ] && [ "$AGENTS_FILE_REAL" = "$CLAUDE_REAL" ]; then
# AGENTS.md 심링크의 대상이 CLAUDE.md 인 경우. 마커 블록이 이 파일에
# 들어가므로 별도 포인터 블록도, 심링크 변환도 필요 없다.
CK=agents_target
elif [ -L CLAUDE.md ]; then
CK=symlink
elif [ -f CLAUDE.md ]; then
sed -e '/<!-- BEGIN: llm-wiki/,/<!-- END: llm-wiki/d' CLAUDE.md > "$RUNNER_TEMP/CLAUDE.body.md"
# `|| echo 0` 금지 — 위 HUMAN_LINES 주석 참고(값이 "0\n0" 이 된다).
N=$(awk 'NF' "$RUNNER_TEMP/CLAUDE.body.md" 2>/dev/null | wc -l | tr -d ' ')
if [ "${N:-0}" -gt 5 ]; then CK=human; else CK=pointer; fi
fi

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🔴 Critical | ⚡ Quick win

CLAUDE.md → AGENTS.md 심링크 저장소에서 CKagents_target 으로 오분류됩니다.

readlink -f 는 대상 경로가 없어도 정규화된 경로를 반환합니다. CLAUDE.mdAGENTS.md 를 가리키는 심링크이면 CLAUDE_REALAGENTS_FILE_REAL 이 모두 <repo>/AGENTS.md 로 같아집니다. 따라서 Line 307 조건이 먼저 참이 되고, Line 311 의 [ -L CLAUDE.md ] 분기에 도달하지 못합니다.

결과는 다음과 같습니다. Line 328-332 는 CK 와 무관하게 CLAUDE.md 심링크를 삭제합니다. 그러나 Handle 스텝의 agents_target 분기(Line 824-825)는 "추가 작업 없음"으로 끝납니다. 심링크가 복원되지 않고, CLAUDE.md 삭제가 그대로 커밋됩니다. 주석 Line 323-326 이 언급한 laas-one-frontend 가 정확히 이 형태입니다.

의도한 agents_target 케이스는 AGENTS.md 가 심링크이고 대상이 실파일 CLAUDE.md 인 경우(wanted-server)입니다. 그 경우 CLAUDE.md 는 심링크가 아니므로, [ ! -L CLAUDE.md ] 를 조건에 추가하면 두 형태가 정확히 분리됩니다.

🐛 제안 수정
           AGENTS_FILE_REAL=$(readlink -f -- "$AGENTS_FILE" 2>/dev/null || echo "")
           CLAUDE_REAL=$(readlink -f -- CLAUDE.md 2>/dev/null || echo "")
-          if [ -n "$AGENTS_FILE_REAL" ] && [ "$AGENTS_FILE_REAL" = "$CLAUDE_REAL" ]; then
+          if [ ! -L CLAUDE.md ] && [ -n "$AGENTS_FILE_REAL" ] && [ "$AGENTS_FILE_REAL" = "$CLAUDE_REAL" ]; then
             # AGENTS.md 심링크의 대상이 CLAUDE.md 인 경우. 마커 블록이 이 파일에
             # 들어가므로 별도 포인터 블록도, 심링크 변환도 필요 없다.
             CK=agents_target
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
AGENTS_FILE_REAL=$(readlink -f -- "$AGENTS_FILE" 2>/dev/null || echo "")
CLAUDE_REAL=$(readlink -f -- CLAUDE.md 2>/dev/null || echo "")
if [ -n "$AGENTS_FILE_REAL" ] && [ "$AGENTS_FILE_REAL" = "$CLAUDE_REAL" ]; then
# AGENTS.md 심링크의 대상이 CLAUDE.md 인 경우. 마커 블록이 이 파일에
# 들어가므로 별도 포인터 블록도, 심링크 변환도 필요 없다.
CK=agents_target
elif [ -L CLAUDE.md ]; then
CK=symlink
elif [ -f CLAUDE.md ]; then
sed -e '/<!-- BEGIN: llm-wiki/,/<!-- END: llm-wiki/d' CLAUDE.md > "$RUNNER_TEMP/CLAUDE.body.md"
# `|| echo 0` 금지 — 위 HUMAN_LINES 주석 참고(값이 "0\n0" 이 된다).
N=$(awk 'NF' "$RUNNER_TEMP/CLAUDE.body.md" 2>/dev/null | wc -l | tr -d ' ')
if [ "${N:-0}" -gt 5 ]; then CK=human; else CK=pointer; fi
fi
AGENTS_FILE_REAL=$(readlink -f -- "$AGENTS_FILE" 2>/dev/null || echo "")
CLAUDE_REAL=$(readlink -f -- CLAUDE.md 2>/dev/null || echo "")
if [ ! -L CLAUDE.md ] && [ -n "$AGENTS_FILE_REAL" ] && [ "$AGENTS_FILE_REAL" = "$CLAUDE_REAL" ]; then
# AGENTS.md 심링크의 대상이 CLAUDE.md 인 경우. 마커 블록이 이 파일에
# 들어가므로 별도 포인터 블록도, 심링크 변환도 필요 없다.
CK=agents_target
elif [ -L CLAUDE.md ]; then
CK=symlink
elif [ -f CLAUDE.md ]; then
sed -e '/<!-- BEGIN: llm-wiki/,/<!-- END: llm-wiki/d' CLAUDE.md > "$RUNNER_TEMP/CLAUDE.body.md"
# `|| echo 0` 금지 — 위 HUMAN_LINES 주석 참고(값이 "0\n0" 이 된다).
N=$(awk 'NF' "$RUNNER_TEMP/CLAUDE.body.md" 2>/dev/null | wc -l | tr -d ' ')
if [ "${N:-0}" -gt 5 ]; then CK=human; else CK=pointer; fi
fi
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/llm-wiki-pipeline.yml around lines 305 - 318, Update the
classification condition preceding the CK=agents_target assignment to also
require that CLAUDE.md is not a symlink. This preserves agents_target only when
AGENTS.md points to the regular CLAUDE.md file, allowing CLAUDE.md → AGENTS.md
repositories to reach the existing symlink handling branch and be restored
correctly.

Comment on lines +378 to +382
if [ "$MODE" != "full" ]; then
git checkout -- "$DOCS_ROOT" 2>/dev/null || true
git checkout -- AGENTS.md 2>/dev/null || true
git clean -fdq "$DOCS_ROOT" 2>/dev/null || true
fi

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

diff/skip 모드에서 사람이 작성한 AGENTS.md 가 두 번 삽입될 수 있습니다.

agents_state=human 인 저장소의 흐름을 추적하면 다음과 같습니다.

  1. Snapshot(Line 266, 280): 원본 전체를 $RUNNER_TEMP/AGENTS.human.md 로 복사하고 AGENTS.md 를 제거합니다. SEED 는 비어 있습니다.
  2. Scaffold(Line 380): MODE != full 이므로 git checkout -- AGENTS.md 가 HEAD 의 사람 원본을 되살립니다.
  3. Reduce(Line 452): SEED 가 비어 있으므로 elif [ -f AGENTS.md ] 분기를 타고, 되살아난 사람 원본을 그대로 Claude 시드로 사용합니다. Line 457-460 은 경고만 출력하고 진행합니다.
  4. Reassemble(Line 764-769): HUMAN(사람 원본) 위에 마커 블록으로 감싼 AGENTS.pipe.md(같은 사람 원본)를 붙입니다.

결과적으로 사람 문서가 파일 안에 중복됩니다. full 모드는 Line 380 을 실행하지 않으므로 이 경로가 발생하지 않습니다.

Snapshot 이 AGENTS.md 를 의도적으로 치운 경우에는 되살리지 않도록, agents_state 를 조건에 반영하는 것이 안전합니다.

🐛 제안 수정

Scaffold 스텝 env 에 상태 값을 전달합니다.

         env:
           NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
           MODE: ${{ steps.scope.outputs.mode }}
           AGENTS_FILE: ${{ steps.snapshot.outputs.agents_file }}
+          AGENTS_STATE: ${{ steps.snapshot.outputs.agents_state }}

원복 조건에서 human 상태를 제외합니다.

           if [ "$MODE" != "full" ]; then
             git checkout -- "$DOCS_ROOT" 2>/dev/null || true
-            git checkout -- AGENTS.md    2>/dev/null || true
+            # state=human 이면 Snapshot 이 원본을 HUMAN 에 보관하고 파일을 치웠다.
+            # 여기서 되살리면 Reduce 가 사람 원본을 시드로 집어 재조립 때 중복된다.
+            if [ "${AGENTS_STATE:-}" != "human" ]; then
+              git checkout -- AGENTS.md  2>/dev/null || true
+            fi
             git clean -fdq "$DOCS_ROOT"  2>/dev/null || true
           fi
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/llm-wiki-pipeline.yml around lines 378 - 382, Update the
Scaffold step’s environment to expose the existing agents_state value, then
adjust the AGENTS.md restoration condition in the non-full MODE branch to skip
checkout when agents_state is human. Preserve restoration for other states so
intentionally removed human-managed documents are not reintroduced.

Comment on lines +889 to +899
# [A] checkout(fetch-depth: 0)이 refs/remotes/origin/* 을 이미 모두 가져왔으므로
# 추가 fetch 없이 존재 여부만 확인한다. fetch 실패가 "사람 커밋 보호" 가드를
# 조용히 끈 채로 force push 가 진행되는 경로를 구조적으로 제거한다.
if git rev-parse --verify --quiet "refs/remotes/origin/${BRANCH}" >/dev/null; then
HUMAN=$(git log --format='%ae' "origin/${BASE_BRANCH}..origin/${BRANCH}" \
| grep -v 'github-actions\[bot\]@users.noreply.github.com' | head -1 || true)
if [ -n "$HUMAN" ]; then
BRANCH="${DOCS_BRANCH}-${GITHUB_RUN_ID}"
echo "::notice::기존 브랜치에 사람 커밋($HUMAN)이 있어 ${BRANCH} 로 분기합니다."
fi
fi

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

사람 커밋 보호 가드가 git log 실패를 "사람 커밋 없음"으로 처리합니다.

Line 893-894 의 파이프라인은 || true 로 모든 실패를 흡수합니다. origin/${BASE_BRANCH} 가 없으면(기본 브랜치 개명·삭제) git log 가 실패하고 HUMAN 이 빈 문자열이 됩니다. 그러면 브랜치 분기가 일어나지 않고, Line 938 의 --force-with-lease push 가 기존 브랜치를 덮어씁니다. 이는 Line 890-891 주석이 제거하려던 경로와 같은 형태입니다.

git log 의 종료 코드를 분리해서 확인하면 이 경로가 닫힙니다.

🛡️ 제안 수정
           if git rev-parse --verify --quiet "refs/remotes/origin/${BRANCH}" >/dev/null; then
-            HUMAN=$(git log --format='%ae' "origin/${BASE_BRANCH}..origin/${BRANCH}" \
-                    | grep -v 'github-actions\[bot\]`@users.noreply.github.com`' | head -1 || true)
+            if ! git rev-parse --verify --quiet "refs/remotes/origin/${BASE_BRANCH}" >/dev/null; then
+              echo "::error::origin/${BASE_BRANCH} 가 없어 사람 커밋 여부를 판정할 수 없습니다 — force push 를 중단합니다."
+              exit 1
+            fi
+            AUTHORS="$RUNNER_TEMP/branch-authors.txt"
+            git log --format='%ae' "origin/${BASE_BRANCH}..origin/${BRANCH}" > "$AUTHORS"
+            HUMAN=$(grep -v 'github-actions\[bot\]`@users.noreply.github.com`' "$AUTHORS" | head -1 || true)
             if [ -n "$HUMAN" ]; then
               BRANCH="${DOCS_BRANCH}-${GITHUB_RUN_ID}"
               echo "::notice::기존 브랜치에 사람 커밋($HUMAN)이 있어 ${BRANCH} 로 분기합니다."
             fi
           fi
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# [A] checkout(fetch-depth: 0)이 refs/remotes/origin/* 을 이미 모두 가져왔으므로
# 추가 fetch 없이 존재 여부만 확인한다. fetch 실패가 "사람 커밋 보호" 가드를
# 조용히 끈 채로 force push 가 진행되는 경로를 구조적으로 제거한다.
if git rev-parse --verify --quiet "refs/remotes/origin/${BRANCH}" >/dev/null; then
HUMAN=$(git log --format='%ae' "origin/${BASE_BRANCH}..origin/${BRANCH}" \
| grep -v 'github-actions\[bot\]@users.noreply.github.com' | head -1 || true)
if [ -n "$HUMAN" ]; then
BRANCH="${DOCS_BRANCH}-${GITHUB_RUN_ID}"
echo "::notice::기존 브랜치에 사람 커밋($HUMAN)이 있어 ${BRANCH} 로 분기합니다."
fi
fi
# [A] checkout(fetch-depth: 0)이 refs/remotes/origin/* 을 이미 모두 가져왔으므로
# 추가 fetch 없이 존재 여부만 확인한다. fetch 실패가 "사람 커밋 보호" 가드를
# 조용히 끈 채로 force push 가 진행되는 경로를 구조적으로 제거한다.
if git rev-parse --verify --quiet "refs/remotes/origin/${BRANCH}" >/dev/null; then
if ! git rev-parse --verify --quiet "refs/remotes/origin/${BASE_BRANCH}" >/dev/null; then
echo "::error::origin/${BASE_BRANCH} 가 없어 사람 커밋 여부를 판정할 수 없습니다 — force push 를 중단합니다."
exit 1
fi
AUTHORS="$RUNNER_TEMP/branch-authors.txt"
git log --format='%ae' "origin/${BASE_BRANCH}..origin/${BRANCH}" > "$AUTHORS"
HUMAN=$(grep -v 'github-actions\[bot\]`@users.noreply.github.com`' "$AUTHORS" | head -1 || true)
if [ -n "$HUMAN" ]; then
BRANCH="${DOCS_BRANCH}-${GITHUB_RUN_ID}"
echo "::notice::기존 브랜치에 사람 커밋($HUMAN)이 있어 ${BRANCH} 로 분기합니다."
fi
fi
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/llm-wiki-pipeline.yml around lines 889 - 899, Update the
human-commit detection block around HUMAN so git log failures are captured and
checked separately instead of being suppressed by `|| true`; abort the workflow
when `origin/${BASE_BRANCH}..origin/${BRANCH}` cannot be evaluated, and only
perform the existing HUMAN-based branch split after a successful git log.

@github-actions github-actions Bot added the in review This issue requires a review. label Aug 7, 2026
@chlee-wantedlab
chlee-wantedlab force-pushed the chore/add-llm-wiki-workflow branch from 23c44cb to f34e72f Compare August 7, 2026 07:35
@chlee-wantedlab
chlee-wantedlab force-pushed the chore/add-llm-wiki-workflow branch from f34e72f to 508cca5 Compare August 10, 2026 01:00
@agiletalk
agiletalk requested a review from knine79 August 13, 2026 02:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

in review This issue requires a review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant