Skip to content

feat: Git 워크플로우 스킬 및 CI 자동화 추가#2

Merged
ace-f1 merged 5 commits intomainfrom
feat/commit-pr-skills
Mar 11, 2026
Merged

feat: Git 워크플로우 스킬 및 CI 자동화 추가#2
ace-f1 merged 5 commits intomainfrom
feat/commit-pr-skills

Conversation

@ace-f1
Copy link
Collaborator

@ace-f1 ace-f1 commented Mar 11, 2026

Summary

  • /commit 스킬 추가: 변경 분석 → Conventional Commit 형식 자동 커밋
  • /create-pr 스킬 추가: 브랜치 확인 → 변경 분석 → PR 자동 생성
  • /update-pr 스킬 추가: 기존 PR 제목/설명을 최신 변경사항으로 업데이트
  • PR 자동 approve 워크플로우 추가 (docs/chore/revert/test 타입)
  • README 범용 프레임워크 구조로 전면 재작성
  • docs/manual-setup-guide.md 신규 생성 (비 Claude Code 사용자용)
  • Copilot 리뷰 피드백 반영 (환경변수명, 보안, action SHA pin 등)

Changes

  • 6 files changed, 769 insertions(+), 226 deletions(-)

Test plan

  • /commit 트리거 확인 ("커밋해줘", "반영해")
  • /create-pr 트리거 확인 ("PR 만들어줘", "풀리퀘")
  • /update-pr 트리거 확인 ("PR 업데이트", "PR 수정")
  • auto-approve 워크플로우 동작 확인
  • README 렌더링 확인
  • manual-setup-guide 링크 정상 동작 확인

🤖 Generated with Claude Code

ace-f1 and others added 3 commits March 11, 2026 15:13
- README를 zigzag 특화에서 CDP 기반 브라우저 에이전트 프레임워크로 재구성
- 기능별 분류: 브라우저 엔진, DSL, Self-Heal, 인증, 진단, 안전, AI 생성
- 도메인 확장 섹션으로 Zigzag E2E / AWS SSO 분리
- Claude Code 스킬 목록 추가
- docs/manual-setup-guide.md 신규 생성 (비 Claude Code 사용자용)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- /commit: 변경 분석 → Conventional Commit 형식 자동 커밋
- /create-pr: 브랜치 확인 → 변경 분석 → PR 자동 생성

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- docs/chore/revert/test 타입 PR은 자동 approve
- hmarr/auto-approve-action@v4 사용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds new Claude Code skills for automating commits and PR creation, and updates project documentation to reflect a more general “CDP 기반 브라우저 에이전트 프레임워크” positioning. It also introduces a GitHub Actions workflow intended to auto-approve certain PR types.

Changes:

  • Add /commit and /create-pr skill documentation under .claude/skills/.
  • Rewrite README.md and add a new manual setup guide for non-Claude Code users.
  • Add an auto-approve GitHub Actions workflow based on PR title matching.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 13 comments.

Show a summary per file
File Description
docs/manual-setup-guide.md New manual setup/onboarding guide and troubleshooting steps.
README.md Major rewrite: quick start, architecture, DSL reference, env vars, troubleshooting, skill list.
.github/workflows/auto-approve.yml New workflow to auto-approve PRs based on title keywords.
.claude/skills/create-pr/SKILL.md New “create PR” skill instructions (branch checks, diff analysis, gh pr create).
.claude/skills/commit/SKILL.md New “smart commit” skill instructions (Conventional Commits generation).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

README.md Outdated
- Authenticator 확장프로그램(ID: `bhghoamapcdpbohphigoooaddinpkbai`)이 Chrome에 설치되어 있는지 확인
- 확장프로그램에 해당 계정 OTP가 등록되어 있는지 확인
- `ORDER_AGENT_BROWSER_ENABLE_EXTENSIONS=1` (기본값)이 설정되어 있는지 확인
Authenticator 확장프로그램(ID: `bhghoamapcdpbohphigoooaddinpkbai`)이 Chrome에 설치되어 있는지 확인. 확장프로그램에 해당 계정 OTP가 등록되어 있는지 확인. `ORDER_AGENT_BROWSER_ENABLE_EXTENSIONS=1`(기본값) 확인.
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

OTP 트러블슈팅에서 ORDER_AGENT_BROWSER_ENABLE_EXTENSIONS=1을 언급하지만, 코드에는 해당 변수가 없고 ORDER_AGENT_BROWSER_DISABLE_EXTENSIONS만 지원합니다. 실제 동작과 맞게 변수명을 수정해 주세요(기본은 확장프로그램 활성).

Suggested change
Authenticator 확장프로그램(ID: `bhghoamapcdpbohphigoooaddinpkbai`)이 Chrome에 설치되어 있는지 확인. 확장프로그램에 해당 계정 OTP가 등록되어 있는지 확인. `ORDER_AGENT_BROWSER_ENABLE_EXTENSIONS=1`(기본값) 확인.
Authenticator 확장프로그램(ID: `bhghoamapcdpbohphigoooaddinpkbai`)이 Chrome에 설치되어 있는지 확인. 확장프로그램에 해당 계정 OTP가 등록되어 있는지 확인. `ORDER_AGENT_BROWSER_DISABLE_EXTENSIONS`가 설정되어 있지 않은지(또는 `0`인지) 확인 — 기본값은 확장프로그램 활성 상태입니다.

Copilot uses AI. Check for mistakes.

**`agent-browser: command not found`**
- `npm install -g agent-browser` 후 `agent-browser --version` 확인
`npm install -g agent-browser` 후 `agent-browser --version` 확인.
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

README의 설치/트러블슈팅은 npm install -g agent-browser로 안내하지만, /setup 스킬 문서에서는 npm install -g @anthropic/agent-browser로 안내하고 있습니다. 실제 배포 패키지명에 맞춰 한 곳으로 통일하지 않으면 온보딩 시 혼란이 생깁니다.

Suggested change
`npm install -g agent-browser``agent-browser --version` 확인.
`npm install -g @anthropic/agent-browser``agent-browser --version` 확인.

Copilot uses AI. Check for mistakes.

1. Authenticator 확장프로그램(ID: `bhghoamapcdpbohphigoooaddinpkbai`)이 Chrome에 설치되어 있는지 확인
2. 확장프로그램에 해당 계정 OTP 시드가 등록되어 있는지 확인
3. `ORDER_AGENT_BROWSER_ENABLE_EXTENSIONS` 환경변수가 `1`(기본값)인지 확인
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

OTP 트러블슈팅에서 ORDER_AGENT_BROWSER_ENABLE_EXTENSIONS를 기본값 1로 안내하지만, 코드에서는 ORDER_AGENT_BROWSER_DISABLE_EXTENSIONS만 지원합니다(기본은 확장프로그램 활성). 문서의 환경변수명을 실제 구현과 일치시켜 주세요.

Suggested change
3. `ORDER_AGENT_BROWSER_ENABLE_EXTENSIONS` 환경변수가 `1`(기본값)인지 확인
3. `ORDER_AGENT_BROWSER_DISABLE_EXTENSIONS` 환경변수가 설정되지 않았거나 `0`(기본값)인지 확인

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +8
# Create Pull Request

GitHub에 PR을 생성하고 설명을 자동 생성한다.

**When to Use:** "PR 만들어줘", "풀리퀘", "PR 생성", "github 반영"
**Not for:** 커밋 (-> `commit`)

---
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

이 스킬 문서는 다른 스킬들처럼 YAML frontmatter(---\nname: ...\ndescription: ...\nargument-hint: ...\n---)가 없습니다. 현재 .claude/skills/*/SKILL.md 대부분이 frontmatter를 사용하고 있어(예: setup, run-scenario), 메타데이터 누락 시 스킬 인식/검색이 실패할 수 있으니 동일한 형식으로 추가해 주세요.

Copilot uses AI. Check for mistakes.
Comment on lines +11 to +15
- name: Auto approve if title contains "chore" or "docs" or "revert" or "test"
if: contains(github.event.pull_request.title, 'chore') ||
contains(github.event.pull_request.title, 'docs') ||
contains(github.event.pull_request.title, 'revert') ||
contains(github.event.pull_request.title, 'test')
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

자동 승인 조건이 PR 제목의 substring 매칭(contains)에만 의존합니다. 이 방식은 docs:가 제목에 포함된 코드 변경 PR까지 승인될 수 있어 위험하고, 또한 대소문자/부분문자열 매칭으로 오탐이 발생할 수 있습니다. 최소한 startsWith(toLower(title), 'docs:')처럼 prefix로 제한하거나, 더 안전하게 on.pull_request.paths/파일 변경 검사로 docs-only 변경일 때만 승인하도록 바꿔 주세요.

Suggested change
- name: Auto approve if title contains "chore" or "docs" or "revert" or "test"
if: contains(github.event.pull_request.title, 'chore') ||
contains(github.event.pull_request.title, 'docs') ||
contains(github.event.pull_request.title, 'revert') ||
contains(github.event.pull_request.title, 'test')
- name: Auto approve if title starts with "chore:", "docs:", "revert:" or "test:" (case-insensitive)
if: startsWith(toLower(github.event.pull_request.title), 'chore:') ||
startsWith(toLower(github.event.pull_request.title), 'docs:') ||
startsWith(toLower(github.event.pull_request.title), 'revert:') ||
startsWith(toLower(github.event.pull_request.title), 'test:')

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +8
# Smart Commit

Conventional Commits 형식으로 Git 커밋을 생성한다.

**When to Use:** "커밋해줘", "반영해", "commit", 변경사항 저장
**Not for:** PR 생성 (-> `create-pr`)

---
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

이 스킬 문서는 다른 스킬들처럼 YAML frontmatter(---\nname: ...\ndescription: ...\nargument-hint: ...\n---)가 없습니다. 현재 .claude/skills/*/SKILL.md 대부분이 frontmatter를 사용하고 있어(예: setup, run-scenario), 메타데이터 누락 시 스킬 인식/검색이 실패할 수 있으니 동일한 형식으로 추가해 주세요.

Copilot uses AI. Check for mistakes.
Comment on lines +7 to +16
jobs:
auto-approve:
runs-on: ubuntu-latest
steps:
- name: Auto approve if title contains "chore" or "docs" or "revert" or "test"
if: contains(github.event.pull_request.title, 'chore') ||
contains(github.event.pull_request.title, 'docs') ||
contains(github.event.pull_request.title, 'revert') ||
contains(github.event.pull_request.title, 'test')
uses: hmarr/auto-approve-action@v4
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

이 워크플로우는 PR 승인(리뷰) 권한이 필요합니다. 현재 permissions:가 없어 리포지토리 설정에 따라 GITHUB_TOKEN이 read-only일 때 자동 승인 단계가 실패할 수 있으니, job/workflow에 permissions: pull-requests: write(필요 시 contents: read)를 명시해 주세요.

Copilot uses AI. Check for mistakes.
contains(github.event.pull_request.title, 'docs') ||
contains(github.event.pull_request.title, 'revert') ||
contains(github.event.pull_request.title, 'test')
uses: hmarr/auto-approve-action@v4
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

hmarr/auto-approve-action@v4는 태그로만 고정되어 있어 공급망 리스크가 있습니다. 워크플로우 보안 관점에서 action을 커밋 SHA로 pin(주석으로 버전 병기)하는 방식으로 변경해 주세요.

Suggested change
uses: hmarr/auto-approve-action@v4
uses: hmarr/auto-approve-action@a29f8bd391979575ad1a9e1669325153e9a43f74 # v4

Copilot uses AI. Check for mistakes.
Comment on lines +146 to +147
python3 executor/execute_scenario.py scenarios/aws/sso_login.scn \
--var username=<email> --var password=<pw>
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

The AWS SSO example uses --var password=<pw> to pass the password on the command line, which exposes credentials to other local users via process listings and may also leak into shell history or system logs. An attacker with local access to the host could read these arguments and obtain reusable SSO credentials. Instead, document a pattern that reads the password from a more secure source such as an environment variable or .env file and avoid including it directly in command-line arguments.

Copilot uses AI. Check for mistakes.
README.md Outdated
Comment on lines +190 to +191
python3 executor/execute_scenario.py scenarios/aws/sso_login.scn \
--var username=<email> --var password=<pw>
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

The AWS SSO example passes the password via --var password=<pw>, which places the secret on the command line where it can be observed by other local users through ps output and may be recorded in shell history or system logs. This makes it easier for a local attacker to capture reusable SSO credentials. Update the example to use a safer pattern, such as supplying the password via an environment variable or .env file, and avoid putting plaintext secrets directly in CLI arguments.

Suggested change
python3 executor/execute_scenario.py scenarios/aws/sso_login.scn \
--var username=<email> --var password=<pw>
export ORDERAGENT_AWS_USERNAME="<email>"
read -s ORDERAGENT_AWS_PASSWORD
python3 executor/execute_scenario.py scenarios/aws/sso_login.scn \
--var username="${ORDERAGENT_AWS_USERNAME}" --var password="${ORDERAGENT_AWS_PASSWORD}"

Copilot uses AI. Check for mistakes.
@ace-f1 ace-f1 changed the title feat: commit 및 create-pr 스킬 추가 chore: commit 및 create-pr 스킬 추가 Mar 11, 2026
ace-f1 and others added 2 commits March 11, 2026 15:49
- 환경변수명 수정: ENABLE_EXTENSIONS → DISABLE_EXTENSIONS
- auto-approve: startsWith 매칭, permissions 명시, SHA pin
- 스킬 frontmatter 추가 (commit, create-pr)
- Claude Code 스킬 목록에 /commit, /create-pr 추가
- AWS SSO 예시 CLI 자격증명 노출 방지 (환경변수 방식)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- /update-pr: 기존 PR 제목/설명을 최신 변경사항으로 업데이트
- README 스킬 목록에 /update-pr 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ace-f1 ace-f1 changed the title chore: commit 및 create-pr 스킬 추가 feat: Git 워크플로우 스킬 및 CI 자동화 추가 Mar 11, 2026
@ace-f1 ace-f1 merged commit 5336309 into main Mar 11, 2026
0 of 5 checks passed
@ace-f1 ace-f1 self-assigned this Mar 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants