GitHub Agentic Workflows CI failure analysis read-only test — 2026-06-15

요약 3줄

  • wiki/work/resources/github-agentic-workflows-template-v0.1.mdTemplate B — CI Failure Analysis 하나만 선택해 테스트했다.
  • sandbox repository /home/administrator/projects/jyp-github-workflow-sandbox-ci에 sample issue/log/diff를 만들고, label·assignment·comment·rerun 없이 read-only 분석만 수행했다.
  • 분석 결과는 code_change 가능성이 높으며, 실제 write 단계는 모두 approval_required로 남겼다.

작업 계약

  • Goal: GitHub Agentic Workflows 설계 템플릿의 JYP Labs 적용 순서 1~3단계를 read-only로 1회 실행해 검토 가능한 OMW note를 남긴다.
  • Context:
    • 설계 문서: wiki/work/resources/github-agentic-workflows-template-v0.1.md
    • 선택 템플릿: Template B — CI Failure Analysis
    • sandbox repo: /home/administrator/projects/jyp-github-workflow-sandbox-ci
    • sample inputs: samples/sample-issue.md, samples/ci-failing-log.txt, samples/sample.diff
  • Boundaries:
    • 자동 가능: sandbox 파일 생성, local test 실행, log/diff 읽기, OMW note 저장
    • 승인 필요: GitHub draft comment, workflow rerun, label 적용, assignee 지정, fix commit push
    • 금지: 실제 GitHub issue/PR/workflow에 write side effect 발생
  • Validation:
    • python3 -m pytest -q로 sample CI failure 재현
    • sample log/diff read-back
    • OMW note 작성 후 omw fields와 touched-file lint 확인
  • Stop:
    • 완료: read-only 분석 결과가 OMW note로 저장되고 승인 경계가 명시됨
    • 반려/중단: 근거가 log/diff와 연결되지 않거나 민감 정보가 포함됨
    • 에스컬레이션: 실제 GitHub comment/rerun/label/assignment 요청 시 대표님 승인 필요

준비한 sample 입력

입력경로내용
Sample issue/home/administrator/projects/jyp-github-workflow-sandbox-ci/samples/sample-issue.mdtimeout default 변경 후 pytest 실패를 설명하는 mock issue
Sample log/home/administrator/projects/jyp-github-workflow-sandbox-ci/samples/ci-failing-log.txttests/test_api_client.py::test_timeout_default 실패 로그
Sample diff/home/administrator/projects/jyp-github-workflow-sandbox-ci/samples/sample.diffget_timeout_default()15를 반환하도록 바뀐 diff와 requests dependency bump

실행 명령 결과

명령결과근거
git init + baseline commitsuccesssandbox repo HEAD cd7cb4f 생성
git diff --statsuccesspyproject.toml, tests/test_api_client.py 변경 확인
python3 -m pytest -qexpected failureFAILED tests/test_api_client.py::test_timeout_default - assert 15 == 10
sample inputs read-backsuccessissue/log/diff 파일 내용을 확인

Template B Output Schema 적용 결과

ci_failure_analysis:
  run_id: sandbox-local-2026-06-15-0958-kst
  failing_job: pytest
  suspected_cause: code_change
  confidence: high
  evidence:
    - "samples/ci-failing-log.txt:7-13 — assert get_timeout_default() == 10, but 15 was returned"
    - "samples/sample.diff:19-25 — get_timeout_default() introduced with return 15; test still expects 10"
    - "local pytest output — FAILED tests/test_api_client.py::test_timeout_default - assert 15 == 10"
  recommended_next_checks:
    - "Decide whether the intended timeout default is 15 or the test expectation should remain 10."
    - "If 15 is intended, update the test/spec/docs together after approval."
    - "If 10 is intended, revert or adjust the code path returning 15 after approval."
    - "Treat pyproject dependency bump as unrelated unless additional failing logs implicate requests."
  safe_next_action: ask_owner
  approval_required:
    - rerun_workflow
    - push_fix
    - modify_ci_config
    - post_github_comment

판정

항목판정근거
원인 후보code_change실패값 15가 diff에서 새로 추가된 return 15와 직접 연결됨
confidencehighlocal pytest와 sample log가 같은 assertion mismatch를 가리킴
flake 가능성낮음시간·네트워크·순서 의존 로그가 없고 결정적 assertion mismatch임
dependency 가능성낮음/확인 필요requests==2.32.0 변경은 있으나 실패 지점은 dependency import 없이 local function assertion임
안전한 다음 액션ask_ownertimeout 기본값 15가 의도인지 제품 판단이 필요함

Human review 요청 항목

대표님 또는 담당자가 아래를 표시하면 다음 루프 정확도 평가에 쓸 수 있다.

  • 오탐 여부: code_change 판정이 맞는가?
  • 누락 여부: dependency bump 또는 CI 환경 요인을 더 봐야 하는가?
  • 권장 액션: timeout 기본값을 15로 바꾸는 것이 의도인가, 테스트 기대값 10이 맞는가?
  • draft comment 확장 여부: 같은 유형 테스트가 3회 이상 안정적으로 맞은 뒤 진행한다.

승인 경계

  • 이번 실행에서는 GitHub label, assignment, comment, workflow rerun, CI config 변경, fix commit push를 하지 않았다.
  • GitHub draft comment 단계는 3회 이상 안정성 확인 후 확장한다.
  • 실제 label/assignment/workflow rerun은 별도 승인 전까지 금지한다.

원시 출력 요약

$ python3 -m pytest -q
F                                                                        [100%]
FAILED tests/test_api_client.py::test_timeout_default - assert 15 == 10
1 failed in 0.02s
 
$ git diff --stat
pyproject.toml           | 2 +-
tests/test_api_client.py | 6 +++++-
2 files changed, 6 insertions(+), 2 deletions(-)