Conversation
- 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>
There was a problem hiding this comment.
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
/commitand/create-prskill documentation under.claude/skills/. - Rewrite
README.mdand add a new manual setup guide for non-Claude Code users. - Add an
auto-approveGitHub 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`(기본값) 확인. |
There was a problem hiding this comment.
OTP 트러블슈팅에서 ORDER_AGENT_BROWSER_ENABLE_EXTENSIONS=1을 언급하지만, 코드에는 해당 변수가 없고 ORDER_AGENT_BROWSER_DISABLE_EXTENSIONS만 지원합니다. 실제 동작과 맞게 변수명을 수정해 주세요(기본은 확장프로그램 활성).
| Authenticator 확장프로그램(ID: `bhghoamapcdpbohphigoooaddinpkbai`)이 Chrome에 설치되어 있는지 확인. 확장프로그램에 해당 계정 OTP가 등록되어 있는지 확인. `ORDER_AGENT_BROWSER_ENABLE_EXTENSIONS=1`(기본값) 확인. | |
| Authenticator 확장프로그램(ID: `bhghoamapcdpbohphigoooaddinpkbai`)이 Chrome에 설치되어 있는지 확인. 확장프로그램에 해당 계정 OTP가 등록되어 있는지 확인. `ORDER_AGENT_BROWSER_DISABLE_EXTENSIONS`가 설정되어 있지 않은지(또는 `0`인지) 확인 — 기본값은 확장프로그램 활성 상태입니다. |
|
|
||
| **`agent-browser: command not found`** | ||
| - `npm install -g agent-browser` 후 `agent-browser --version` 확인 | ||
| `npm install -g agent-browser` 후 `agent-browser --version` 확인. |
There was a problem hiding this comment.
README의 설치/트러블슈팅은 npm install -g agent-browser로 안내하지만, /setup 스킬 문서에서는 npm install -g @anthropic/agent-browser로 안내하고 있습니다. 실제 배포 패키지명에 맞춰 한 곳으로 통일하지 않으면 온보딩 시 혼란이 생깁니다.
| `npm install -g agent-browser` 후 `agent-browser --version` 확인. | |
| `npm install -g @anthropic/agent-browser` 후 `agent-browser --version` 확인. |
docs/manual-setup-guide.md
Outdated
|
|
||
| 1. Authenticator 확장프로그램(ID: `bhghoamapcdpbohphigoooaddinpkbai`)이 Chrome에 설치되어 있는지 확인 | ||
| 2. 확장프로그램에 해당 계정 OTP 시드가 등록되어 있는지 확인 | ||
| 3. `ORDER_AGENT_BROWSER_ENABLE_EXTENSIONS` 환경변수가 `1`(기본값)인지 확인 |
There was a problem hiding this comment.
OTP 트러블슈팅에서 ORDER_AGENT_BROWSER_ENABLE_EXTENSIONS를 기본값 1로 안내하지만, 코드에서는 ORDER_AGENT_BROWSER_DISABLE_EXTENSIONS만 지원합니다(기본은 확장프로그램 활성). 문서의 환경변수명을 실제 구현과 일치시켜 주세요.
| 3. `ORDER_AGENT_BROWSER_ENABLE_EXTENSIONS` 환경변수가 `1`(기본값)인지 확인 | |
| 3. `ORDER_AGENT_BROWSER_DISABLE_EXTENSIONS` 환경변수가 설정되지 않았거나 `0`(기본값)인지 확인 |
| # Create Pull Request | ||
|
|
||
| GitHub에 PR을 생성하고 설명을 자동 생성한다. | ||
|
|
||
| **When to Use:** "PR 만들어줘", "풀리퀘", "PR 생성", "github 반영" | ||
| **Not for:** 커밋 (-> `commit`) | ||
|
|
||
| --- |
There was a problem hiding this comment.
이 스킬 문서는 다른 스킬들처럼 YAML frontmatter(---\nname: ...\ndescription: ...\nargument-hint: ...\n---)가 없습니다. 현재 .claude/skills/*/SKILL.md 대부분이 frontmatter를 사용하고 있어(예: setup, run-scenario), 메타데이터 누락 시 스킬 인식/검색이 실패할 수 있으니 동일한 형식으로 추가해 주세요.
.github/workflows/auto-approve.yml
Outdated
| - 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') |
There was a problem hiding this comment.
자동 승인 조건이 PR 제목의 substring 매칭(contains)에만 의존합니다. 이 방식은 docs:가 제목에 포함된 코드 변경 PR까지 승인될 수 있어 위험하고, 또한 대소문자/부분문자열 매칭으로 오탐이 발생할 수 있습니다. 최소한 startsWith(toLower(title), 'docs:')처럼 prefix로 제한하거나, 더 안전하게 on.pull_request.paths/파일 변경 검사로 docs-only 변경일 때만 승인하도록 바꿔 주세요.
| - 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:') |
| # Smart Commit | ||
|
|
||
| Conventional Commits 형식으로 Git 커밋을 생성한다. | ||
|
|
||
| **When to Use:** "커밋해줘", "반영해", "commit", 변경사항 저장 | ||
| **Not for:** PR 생성 (-> `create-pr`) | ||
|
|
||
| --- |
There was a problem hiding this comment.
이 스킬 문서는 다른 스킬들처럼 YAML frontmatter(---\nname: ...\ndescription: ...\nargument-hint: ...\n---)가 없습니다. 현재 .claude/skills/*/SKILL.md 대부분이 frontmatter를 사용하고 있어(예: setup, run-scenario), 메타데이터 누락 시 스킬 인식/검색이 실패할 수 있으니 동일한 형식으로 추가해 주세요.
.github/workflows/auto-approve.yml
Outdated
| 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 |
There was a problem hiding this comment.
이 워크플로우는 PR 승인(리뷰) 권한이 필요합니다. 현재 permissions:가 없어 리포지토리 설정에 따라 GITHUB_TOKEN이 read-only일 때 자동 승인 단계가 실패할 수 있으니, job/workflow에 permissions: pull-requests: write(필요 시 contents: read)를 명시해 주세요.
.github/workflows/auto-approve.yml
Outdated
| 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 |
There was a problem hiding this comment.
hmarr/auto-approve-action@v4는 태그로만 고정되어 있어 공급망 리스크가 있습니다. 워크플로우 보안 관점에서 action을 커밋 SHA로 pin(주석으로 버전 병기)하는 방식으로 변경해 주세요.
| uses: hmarr/auto-approve-action@v4 | |
| uses: hmarr/auto-approve-action@a29f8bd391979575ad1a9e1669325153e9a43f74 # v4 |
docs/manual-setup-guide.md
Outdated
| python3 executor/execute_scenario.py scenarios/aws/sso_login.scn \ | ||
| --var username=<email> --var password=<pw> |
There was a problem hiding this comment.
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.
README.md
Outdated
| python3 executor/execute_scenario.py scenarios/aws/sso_login.scn \ | ||
| --var username=<email> --var password=<pw> |
There was a problem hiding this comment.
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.
| 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}" |
- 환경변수명 수정: 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>
Summary
/commit스킬 추가: 변경 분석 → Conventional Commit 형식 자동 커밋/create-pr스킬 추가: 브랜치 확인 → 변경 분석 → PR 자동 생성/update-pr스킬 추가: 기존 PR 제목/설명을 최신 변경사항으로 업데이트docs/manual-setup-guide.md신규 생성 (비 Claude Code 사용자용)Changes
Test plan
/commit트리거 확인 ("커밋해줘", "반영해")/create-pr트리거 확인 ("PR 만들어줘", "풀리퀘")/update-pr트리거 확인 ("PR 업데이트", "PR 수정")🤖 Generated with Claude Code