Autonomous agent for discovering, analyzing, and fixing open GitHub issues — with a 5-layer guardrail system.
Every action goes through guardrails. Before any operation:
guardrails.json configFor guardrail details, see references/guardrails-guide.md.
audit/ directoryTrigger: User provides a GitHub repository (owner/repo).
Steps:
Validate repo against guardrails:
python3 scripts/guardrails.py repo <owner> <repo>
If blocked, tell the user and stop.
Fetch, score, and present issues using the recommendation engine:
python3 scripts/recommend.py <owner> <repo>
This automatically fetches open issues, filters out PRs, scores them by severity/impact/effort/freshness, and presents a formatted recommendation.
Always use recommend.py — never manually format issue output. The script ensures consistent presentation every time.
For raw JSON (e.g., for further processing):
python3 scripts/recommend.py <owner> <repo> --json
⏹️ STOP. Wait for user to select an issue.
Trigger: User selects an issue.
Steps:
Lock the issue (one-at-a-time enforcement):
python3 scripts/guardrails.py issue_lock <owner> <repo> <issue_number>
Read full issue thread including comments.
Clone the repo (Gate: notify):
python3 scripts/sandbox.py run git clone https://github.com/<owner>/<repo>.git /tmp/openclaw-work/<repo>
Create a safe branch (Gate: auto):
python3 scripts/sandbox.py run git checkout -b fix-issue-<number>
Explore codebase — read relevant files. For each file:
python3 scripts/guardrails.py path <file_path>
Plan the fix — explain approach to user:
## Proposed Fix
- Problem: [root cause]
- Solution: [what changes]
- Files: [list of files and what changes in each]
- Estimated diff size: [lines]
⏹️ STOP. Wait for user to approve the plan before implementing.
approve):
python3 scripts/guardrails.py diff <line_count>python3 scripts/audit.py log_action write_code successAfter implementing:
Find and run tests (Gate: notify):
python3 scripts/sandbox.py run npm test # or pytest, cargo test, etc.
If tests fail AND autoRollbackOnTestFail is true:
7w4.net小葱技能站,你的AI助手技能库。
If no tests exist, write basic tests covering the fix.
Report results to user.
⚠️ NEVER create PR automatically. Always ask first.
Do NOT dump full diffs in chat. For any non-trivial project, push the branch and let the user review on GitHub where they get syntax highlighting, file-by-file navigation, and inline comments.
Commit changes (Gate: approve):
python3 scripts/sandbox.py run git add .
python3 scripts/sandbox.py run git commit -m "Fix #<number>: <title>"
Show a change summary (NOT the raw diff) — keep it concise:
## Changes
- **src/models.py** — Added field validation (title length, enum checks)
- **app.py** — Added validation to POST endpoint, 400 error responses
- **tests/test_app.py** — 22 new tests covering validation rules
- 4 files changed, ~100 lines of source + ~150 lines of tests
- All tests passing ✅
Ask explicitly: "Ready to push and create a draft PR?"
Only after user says "yes" (Gate: approve):
python3 scripts/sandbox.py run git push -u origin fix-issue-<number>
python3 scripts/sandbox.py run gh pr create --draft --title "..." --body "..."
Note: PRs are always created as draft by default. The PR body should include a detailed description of all changes, test results, and link to the issue (Closes #N).
Share the PR link — user reviews on GitHub.
Unlock the issue:
python3 scripts/guardrails.py issue_unlock
| Script | Purpose | Run Without Reading |
|---|---|---|
scripts/recommend.py |
Primary entry point — fetch, score, and present issues | ✅ |
scripts/fetch_issues.py |
Raw issue fetcher (used internally by recommend.py) | ✅ |
scripts/analyze_issue.py |
Deep analysis of single issue | ✅ |
scripts/create_pr.py |
PR creation wrapper | ✅ |
scripts/guardrails.py |
Guardrail enforcement engine | ✅ |
scripts/sandbox.py |
Safe command execution wrapper | ✅ |
scripts/audit.py |
Action logger | ✅ |
这个 Skill 质量不错,自动化程度高,能从发现 GitHub 问题到提交修复代码全流程处理。最值得肯定的是它的安全保护措施很完善,所有危险操作都要用户确认,不会乱改重要文件或推送到主分支。问题评分功能帮助快速找到值得修复的 issue。不过依赖外部工具才能创建 PR,且默认配置不一定适合所有项目。总体来说是一款既智能又安全的工具。