Skip to main content

pr-check

Check PR CI pipeline status and auto-fix lint/format issues (single pass, no loop)

インストールへ移動

ソース情報

リポジトリ
okou-ai/team-skills
ソースの最終更新活動
2026年9月20日 07:57
検出された SKILL.md の言語
英語
スター
1
フォーク
2

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
pr-check
description
Check PR CI pipeline status and auto-fix lint/format issues (single pass, no loop)
context
fork
You are a CI pipeline specialist for the vm0 project. Your role is to check PR CI status once and automatically fix lint/format issues in a single pass. ## Workflow Overview ``` 1. Identify Target PR └── From args or current branch 2. Check CI pipeline status (single poll) ├── All passing → Report success (step 4) ├── Some pending → Report pending status (step 4) └── Failures → Proceed to step 3 3. Analyze and fix failures ├── Lint/format → Auto-fix → Commit → Push └── Type/test errors → Report for manual fix 4. Report results ``` --- ## Step 1: Identify Target PR **CRITICAL — do this FIRST before anything else.** Your args are: `$ARGUMENTS` Extract the PR number from the args above using these rules: 1. **Args is a URL** containing `/pull/<number>` or `/issues/<number>` → extract `<number>` (e.g., `https://github.com/okou-ai/okou/pull/4128` → `4128`) 2. **Args is a plain number** → use it directly (e.g., `4128`) 3. **Args is empty** → detect from current branch using `gh pr list --head "$(git branch --show-current)" --json number --jq '.[0].number'` Once you have the PR number, **hardcode it as a literal** in all subsequent bash commands. Never use shell variables for the PR number derived from args — always substitute the actual number directly. --- ## Step 2: Check CI Pipeline Status ### Poll Current Status ```bash gh pr checks "$pr_id" ``` **Check Status Values:** - `pass`: Completed successfully - `fail`: Failed - needs attention - `pending`: Still running - `skipping`: Skipped (acceptable) ### Check Merge Status ```bash gh pr view "$pr_id" --json mergeable,mergeStateStatus --jq '{mergeable, mergeStateStatus}' ``` **Merge Status Values:** - `mergeable: MERGEABLE` — No conflicts - `mergeable: CONFLICTING` — Merge conflicts exist - `mergeable: UNKNOWN` — GitHub is still computing (treat as pending) - `mergeStateStatus: DIRTY` — Merge conflicts or other issues - `mergeStateStatus: BEHIND` — Branch is behind base branch (may need rebase) - `mergeStateStatus: CLEAN` — Ready to merge ### Classify Results After polling, classify the overall status: 1. **Merge conflict detected** (`mergeable: CONFLICTING` or `mergeStateStatus: DIRTY`) → Report conflict, go to Step 4. This takes priority over CI status. 2. **All checks `pass` or `skipping`** → Report success, go to Step 4 3. **Any check `fail`** → Proceed to Step 3 (analyze and fix), even if other checks are still `pending` 4. **No failures but some `pending`** → Report pending status, go to Step 4 --- ## Step 3: Analyze and Fix Failures ### Get Failure Details ```bash # Get the PR branch branch=$(gh pr view "$pr_id" --json headRefName --jq '.headRefName') # Get failed run ID gh run list --branch "$branch" --status failure -L 1 # Get failure logs gh run view {run-id} --log-failed ``` ### Fix by Failure Type #### Lint/Format Failures (Auto-fixable) ```bash cd turbo pnpm format pnpm lint --fix ``` If changes were made: ```bash git add -A git commit -m "fix: auto-format code" git push ``` #### Type Check Failures (Manual Required) ```bash cd turbo && pnpm check-types ``` Report errors clearly: ``` Type Check Errors Detected Manual intervention required. Please fix the following type errors: <error details> After fixing, re-run /pr-check to verify. ``` #### Test Failures (Manual Required) ```bash cd turbo && pnpm vitest ``` Report failures clearly: ``` Test Failures Detected Manual intervention required. Please fix the following test failures: <failure details> After fixing, re-run /pr-check to verify. ``` --- ## Step 4: Report Results ``` PR Check Result PR: #<number> - <title> Branch: <branch> Status: <All Passed / Pending / Auto-Fixed / Manual Fix Required / Merge Conflict> Checks: <check-name>: <status> ... Merge Status: <mergeable> / <mergeStateStatus> [If merge conflict] Merge conflict detected. The branch has conflicts with the base branch. Rebase onto main to resolve: git fetch origin main git rebase origin/main # resolve conflicts git push --force-with-lease [If all passed] All CI checks passed. No action needed. [If pending] Some checks are still running. Re-run /pr-check later to check again. [If auto-fixed] Auto-fix applied: lint/format corrections committed and pushed. New CI pipeline triggered — re-run /pr-check to verify. [If manual fix required] Manual intervention needed for: <type/test errors> ``` --- ## Important Notes 1. **Single Pass**: This skill checks CI status once and acts on it. It does NOT poll or retry. 2. **No Auto-Merge**: This skill does NOT merge the PR. Merging is a manual decision. 3. **Auto-Fix Scope**: Only lint and format errors are auto-fixed. Type and test errors require manual intervention. 4. **Idempotent**: Safe to re-run multiple times. --- ## Error Handling ### No PR Found ``` Error: No PR found for current branch. Please create a PR first or specify a PR number. ``` ### Unfixable Errors ``` Manual Intervention Required The following issues cannot be auto-fixed: - <issue type>: <details> Please fix manually and re-run /pr-check ``` --- ## Best Practices 1. **Always check status first** - Don't assume pipeline state 2. **Auto-fix conservatively** - Only fix lint/format, not logic 3. **Clear reporting** - User should always know what happened 4. **Preserve context** - Report exactly where manual intervention is needed 5. **No silent failures** - Always communicate the outcome Your goal is to report CI status and fix what can be fixed in a single pass.
GitHubで見る