Agent skill

PR Review Check

by Samsung in Samsung/TizenFX

For AI-generated PRs labeled ai-task in TizenFX, evaluates human/AI review feedback and either applies it to the code or responds.

Apache-2.0Auto-check passedDevelopment

Install PR Review Check

skills CLI
$ npx skills add Samsung/TizenFX --skill pr-review-check -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Samsung/TizenFX pr-review-check --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Samsung/TizenFX.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/pr-review-check .claude/skills/pr-review-check && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
pr-review-check
GitHub stars
214
Token cost
~3.1k tokens
SKILL.md length
1,071 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
Apache-2.0

At a glance

For AI-generated PRs labeled ai-task in TizenFX, evaluates human/AI review feedback and either applies it to the code or responds.

  • Works in 3 steps: Human reviewer comments → always attempt… → AI reviewer comments (🤖 [AI Review]… → Only push when the build passes
  • Tasks that involve Pull requests
  • Calls git, gh and dotnet

What it does

PR Review Check is an agent skill from Samsung/TizenFX. For AI-generated PRs labeled ai-task in TizenFX, evaluates human/AI review feedback and either applies it to the code or responds. AI comments are capped at MAXAIROUNDS=3 — beyond that they are skipped entirely to prevent infinite loops.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Pull requests. It works with .NET. The repository describes itself as: C Device APIs for Tizen. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Pull requests

Example prompts

  • “/pr-review-check”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Human reviewer comments → always attempt to apply (ask if ambiguous)
  2. AI reviewer comments (🤖 [AI Review] left by pr-code-review) → apply the decision matrix, then apply or respond
  3. Only push when the build passes

What it can do on your machine

Read from SKILL.md and the folder at commit 0352388. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh
    • dotnet

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

PR Review Check loads about 3.1k tokens when it runs. Until then it costs about 64 tokens; SKILL.md has 1,071 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~64
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Samsung/TizenFX at commit 0352388, republished under its Apache-2.0 licence (© Samsung). 1,071 words, ~3,071 tokens.

Download SKILL.mdSave it as .claude/skills/pr-review-check/SKILL.md (or your agent's skills folder).
name
pr-review-check
description
For AI-generated PRs labeled `ai-task` in TizenFX, evaluates human/AI review feedback and either applies it to the code or responds. AI comments are capped at MAX_AI_ROUNDS=3 — beyond that they are skipped entirely to prevent infinite loops.

TizenFX AI PR Review Feedback Application Pipeline

Overview

For open PRs in samsung/TizenFX that carry the ai-task label:

  1. Human reviewer comments → always attempt to apply (ask if ambiguous)
  2. AI reviewer comments (🤖 [AI Review] left by pr-code-review) → apply the decision matrix, then apply or respond
  3. Only push when the build passes

All comments and commit messages are written in English.

🔁 Infinite-loop convergence mechanism (important)

pr-code-review re-reviews whenever new commits are added. So each time AI feedback is applied and committed, additional AI review can be triggered — a bounded termination mechanism is required.

  • Cap: MAX_AI_ROUNDS = 3
  • Counter: number of commits on the current PR branch whose message contains an Applied-AI-Comments: trailer
  • On exceed: AI comments are neither applied nor responded to — fully skipped (recorded as max-ai-rounds in the report)
  • Human comments are not capped (they are not the cause of the loop)
Repository
  • Repo: samsung/TizenFX (GitHub)
  • Local clone: a pre-cloned local working directory (e.g., ~/src/TizenFX)
  • CLI: gh, git, dotnet (all authenticated/installed)

Stage ①: List Target PRs
bash
gh pr list --repo samsung/TizenFX --label "ai-task" --state open \
  --json number,title,headRefName,baseRefName,updatedAt,isDraft,url \
  --jq '[.[] | select(.isDraft | not)]
         | sort_by(.updatedAt) | reverse
         | .[] | @json'
  • draft PRs are skipped
  • Sort by most recently updated, max 5 PRs per run

Stage ②: AI Round Count → AI Comment Handling Mode

Counting via gh api is possible before checkout, but git log after checkout is faster and more accurate. So measurement happens after Stage ⑤.

Handling mode:

  • AI_ROUNDS < 3 → active: apply the AI comment decision matrix
  • AI_ROUNDS ≥ 3 → skip: bypass AI comment handling entirely (no application, no response)

Stage ③: Collect New Comments (separated: human / AI)

Core rule: consider only new comments after the last commit timestamp.

bash
LAST_COMMIT_AT=$(gh api repos/samsung/TizenFX/pulls/{NUMBER}/commits \
  --jq '.[-1].commit.committer.date')

Outdated-comment exclusion rule: review comments with position == null are outdated — the diff has evolved and the anchor is gone. These are likely unrelated to the current code, so skip them at the collection stage. (Issue comments have no line anchor, so "outdated" does not apply.)

Collect human comments (review + issue):

bash
HUMAN_REVIEW=$(gh api repos/samsung/TizenFX/pulls/{NUMBER}/comments \
  --jq ".[] | select(.created_at > \"$LAST_COMMIT_AT\")
             | select(.body | startswith(\"🤖 [AI Review]\") | not)
             | select(.position != null)
             | {id, path, line, body, user: .user.login, created_at}")

HUMAN_ISSUE=$(gh api repos/samsung/TizenFX/issues/{NUMBER}/comments \
  --jq ".[] | select(.created_at > \"$LAST_COMMIT_AT\")
             | select(.body | startswith(\"🤖 [AI Review]\") | not)
             | {id, body, user: .user.login, created_at}")

Collect AI comments (review only — AI only leaves inline comments):

bash
AI_REVIEW=$(gh api repos/samsung/TizenFX/pulls/{NUMBER}/comments \
  --jq ".[] | select(.created_at > \"$LAST_COMMIT_AT\")
             | select(.body | startswith(\"🤖 [AI Review]\"))
             | select(.position != null)
             | {id, path, line, body, in_reply_to_id, created_at}")

Stage ④: Delta Judgment — Proceed / Skip
  • Human comments ≥ 1 → proceed (always)
  • Human comments == 0 && AI mode == active && AI comments ≥ 1 → proceed
  • Human comments == 0 && (AI mode == skip || AI comments == 0) → skip (no-delta)

Stage ⑤: Branch Checkout + Merge-conflict Detection
bash
cd {TIZEN_FX_LOCAL_PATH}
git fetch origin
gh pr checkout {NUMBER}
git pull --rebase origin {headRefName}

On merge conflict:

bash
if git status --porcelain | grep -qE '^(UU|AA|DD)'; then
  git rebase --abort 2>/dev/null
  git reset --hard HEAD
  # Record reason `merge-conflict` and move to next PR
fi

After checkout, measure AI round count (to finalize Stage ② decision):

bash
AI_ROUNDS=$(git log "origin/{baseRefName}..HEAD" \
  --grep="^Applied-AI-Comments:" --oneline | wc -l)

Stage ⑥: Apply Human Comments

For each human comment:

  1. Inspect path, line, body to understand the requested change
  2. Evaluate from a .NET / C# / Tizen perspective
  3. Action:
    • Valid → modify the code (add the comment id to Applied-Human-Comments)
    • Ambiguous → do not modify; instead ask a question via reply in Stage ⑨
    • Clearly incorrect → do not modify; reply in Stage ⑨ with a factual disagreement

Application principles:

  • No public API signature changes
  • Re-verify any change that could break the build

Stage ⑦: AI Comment Handling (only when AI mode == active)

If AI mode is skip, skip this entire stage. Do not even leave response comments.

7-1. Priority Filter (first pass)

"Not every AI comment deserves to be applied." Only meaningful, reasonable suggestions qualify. Because pr-code-review leaves a severity marker (🔴/🟡) on each comment, reuse it as the first-pass filter.

AI comment typeApply?Notes
🔴 Critical (bugs, broken build, public API compatibility, null safety, memory leaks)Apply candidate (proceed to decision matrix)Highest priority
🟡 Suggestion + objectively measurable improvement (performance, obvious readability, duplicate removal, modern C# feature adoption)Apply candidate
🟡 Suggestion + subjective preference (naming taste, style)IgnoreNo response either
No marker / nitpick-ishIgnoreNo response either

Ignored items do not receive a response comment either (to prevent noise). This mirrors pr-code-review's "no-nitpick" policy.

7-2. Decision Matrix (applied only to items passing the first-pass filter)
VerdictActionResponse template
Valid + unappliedModify codeAddressed in {SHA} (reply in Stage ⑨)
Already addressed (a previous commit's diff already resolved the finding)Response onlyAlready addressed in {SHA}
Misjudged / not applicableResponse onlyRespectfully disagree: {technical reason}

"Already addressed" judgment guide:

  • Check the diff of the last ~3 commits at that path:line
  • See whether the flagged pattern has already been removed/improved
  • When unsure, do not classify as "valid + unapplied" — prefer "already addressed" for safety (loop prevention)

Applied AI comment IDs are added to the Applied-AI-Comments list.


Show full SKILL.md (435 more words)Show less
Stage ⑧: Build Verification (only the changed csproj, selective build)

Performed only when there are applied changes. A full TizenFX build takes a very long time, so only the .csproj that owns each changed file is built.

8-1. Locate Affected csprojs
bash
# Current staged/working-tree changed file list
CHANGED_FILES=$(git diff --cached --name-only; git diff --name-only)

# Find the first .csproj by walking up from each file
find_parent_csproj() {
  local dir
  dir=$(dirname "$1")
  while [ "$dir" != "." ] && [ "$dir" != "/" ]; do
    local csproj
    csproj=$(ls "$dir"/*.csproj 2>/dev/null | head -1)
    [ -n "$csproj" ] && echo "$csproj" && return
    dir=$(dirname "$dir")
  done
}

CHANGED_CSPROJS=$(echo "$CHANGED_FILES" | while read -r f; do
  [ -n "$f" ] && find_parent_csproj "$f"
done | sort -u)
8-2. Run the Build
bash
BUILD_EXIT=0
BUILD_LOG=/tmp/build-{NUMBER}.log
: > "$BUILD_LOG"

if [ -z "$CHANGED_CSPROJS" ]; then
  # Changes live outside any csproj (docs, .github, etc.) — skip build but treat as pass
  echo "No csproj affected; skipping build." | tee -a "$BUILD_LOG"
else
  for csproj in $CHANGED_CSPROJS; do
    echo "=== Building: $csproj ===" | tee -a "$BUILD_LOG"
    dotnet build "$csproj" -c Release 2>&1 | tee -a "$BUILD_LOG"
    rc=${PIPESTATUS[0]}
    [ "$rc" -ne 0 ] && BUILD_EXIT=$rc
  done
fi

Limitations of selective builds: compile errors in downstream projects (projects that reference the changed csproj) cannot be detected here. Public API signature changes are already forbidden by this pipeline, so this is usually safe; anything edge-casey is caught by CI. This step only serves as a "quick first gate".

8-3. Build Failure Handling (EXIT != 0)
  1. Roll back all local changes:

    bash
    git reset --hard origin/{headRefName}
  2. Report failure on the PR:

    bash
    gh pr comment {NUMBER} --repo samsung/TizenFX --body "🤖 [AI Review]
    Attempted to address review feedback but build failed. Changes not pushed — manual review required.
    
    <details><summary>Build error excerpt</summary>
    
    \`\`\`
    {first 3–5 lines of the error, including which csproj failed}
    \`\`\`
    </details>"
  3. Record reason as build-failed and move to the next PR.


Stage ⑨: Commit + Push + Response Comments

Commit message convention (combine trailers based on what was applied):

Address review feedback

{one-line summary of what changed}

Applied-Human-Comments: {id,id,...}
Applied-AI-Comments: {id,id,...}
  • Human only → Applied-Human-Comments: only
  • AI only → Applied-AI-Comments: only (this is required for round counting +1)
  • Both → both
bash
git add -A
git commit -m "{format above}"
git push origin HEAD

Response comments:

Human application summary (issue comment):

bash
gh pr comment {NUMBER} --repo samsung/TizenFX --body "🤖 [AI Review]
Addressed review feedback in commit {SHORT_SHA}. Summary: {summary}"

Individually reply to each AI comment via in_reply_to (using the Stage ⑦ template):

bash
gh api repos/samsung/TizenFX/pulls/{NUMBER}/comments \
  -f body="🤖 [AI Review]
{response template}" \
  -F in_reply_to={AI_COMMENT_ID}

Ambiguous human comments left for question — reply with a question:

bash
gh api repos/samsung/TizenFX/pulls/{NUMBER}/comments \
  -f body="🤖 [AI Review]
{question — 1–3 sentences}" \
  -F in_reply_to={HUMAN_COMMENT_ID}

Constraints
  • Target label: ai-task
  • Draft PRs are skipped
  • MAX_AI_ROUNDS = 3: beyond the cap, AI comments are fully skipped (no application/response). Human comments are not capped.
  • Commit-message trailer convention is mandatory (Applied-Human-Comments: / Applied-AI-Comments:) — the basis for round counting and traceability
  • AI comment application priority filter: only 🔴 Critical / 🟡 Suggestion items with objective improvement are applied. Subjective preferences/nitpicks are ignored without response.
  • Outdated comments are excluded at collection (review comments with position == null)
  • On build failure: local rollback, do not push
  • Build is only the csproj containing the changed file (no full-repo build)
  • On merge conflict: skip (rebase --abort + reset --hard)
  • No public API signature changes
  • When "already addressed" vs "unapplied" is ambiguous, classify as "already addressed" for safety (loop prevention)
  • Max 5 PRs per run
  • All comments and commit messages are in English
  • Every AI-authored comment starts with 🤖 [AI Review]
Reporting
  • Applied: PR number, link, commit SHA, human/AI comment counts (separated)
  • Partial application: separately record applied / asked-question / declined (disagree)
  • Skipped: PR number + reason
    • no-delta: no eligible items
    • draft: draft PR
    • merge-conflict: merge conflict
    • build-failed: build failed (local rollback performed)
    • quota-5: per-run cap of 5 reached
  • AI round cap reached: separate section (PR number + current round count) — informational report; AI comments were not processed
  • Errors: PR number + error summary

© Samsung, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/pr-review-check of Samsung/TizenFX.

Open the folder on GitHubat commit 0352388

Compare with similar skills

PR Review Check next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

PR Review Check compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
PR Review Check this skillSamsung/TizenFX214—~3.1kAutomated safety check: PassApache-2.0
MAUI PR Performance Analysisdotnet/maui23k—~2.4kAutomated safety check: PassMIT
Code Reviewjonathanpeppers/dotnes780—~2.1kAutomated safety check: PassMIT
Gh Stackdotnet/macios2.9k3 repos~10kAutomated safety check: PassCustom licence
Open Pull RequestGremlinq/ExRam.Gremlinq187—~1.5kAutomated safety check: PassMIT
Pull RequestOpenCoreMMO/OpenCoreMMO481—~814Automated safety check: PassGPL-3.0

Similar skills

  • Official

    Interprets pinned managed benchmark evidence for a dotnet/maui pull request and writes a narrative for the performance review workflow, without running or publishing anything.

    23k GitHub stars~2.4k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Code Review

    jonathanpeppers/dotnes

    Review dotnes pull requests against established repository rules.

    780 GitHub stars~2.1k tokensUpdated 17 days ago
    DevelopmentAuto-check passed
  • Gh Stack

    dotnet/macios

    Official

    Manage stacked branches and pull requests with the gh-stack GitHub CLI extension.

    2.9k GitHub starsUsed in 3 repos~10k tokens
    DevelopmentAuto-check passed
  • Open Pull Request

    Gremlinq/ExRam.Gremlinq

    A skill your agent uses when opening a pull request for the current branch, or when an existing pull request needs a better description - including when the check-description CI check has failed.

    187 GitHub stars~1.5k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Pull Request

    OpenCoreMMO/OpenCoreMMO

    Create a pull request for OpenCoreMMO following the project's PR template.

    481 GitHub stars~814 tokensUpdated 18 days ago
    DevelopmentAuto-check passed
  • Maintain DisCatSharp

    Aiko-IT-Systems/DisCatSharp

    Guides changes to the DisCatSharp C# Discord library: tracing a payload field through parsing, serialization and caches, then validating across target frameworks.

    140 GitHub stars~1.2k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from Samsung/TizenFX

  • Issue Triage

    Samsung/TizenFX

    For TizenFX issues that lack the ai-task label and have no assignee, posts an English first-pass technical answer plus a CODEOWNERS-based reviewer mention.

    214 GitHub stars~2.1k tokensUpdated yesterday
    Auto-check passed
  • PR Code Review

    Samsung/TizenFX

    Performs code review on every open PR of TizenFX and replies with technical responses to new comments left by other reviewers.

    214 GitHub stars~3.3k tokensUpdated yesterday
    Auto-check passed
  • Refactor Analysis

    Samsung/TizenFX

    Automatically scans the TizenFX codebase on a rotating schedule to discover .NET 8 / C 12+ refactoring targets and register them as GitHub Issues.

    214 GitHub stars~2.6k tokensUpdated yesterday
    Auto-check passed
  • Refactor Execute

    Samsung/TizenFX

    Automatically processes TizenFX ai-task issues (dispatching between refactoring/feature modes) and creates a PR.

    214 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about PR Review Check

What does PR Review Check do?

For AI-generated PRs labeled ai-task in TizenFX, evaluates human/AI review feedback and either applies it to the code or responds. PR Review Check is an agent skill from Samsung/TizenFX. For AI-generated PRs labeled ai-task in TizenFX, evaluates human/AI review feedback and either applies it to the code or responds.

When should I use PR Review Check?

PR Review Check fits situations like: tasks that involve Pull requests.

How do I install PR Review Check in Claude Code?

Run `npx skills add Samsung/TizenFX --skill pr-review-check -a claude-code`. Or copy the skill folder (.agents/skills/pr-review-check in Samsung/TizenFX) into .claude/skills/pr-review-check in your project. Claude Code loads it when a task matches its description.

How do I install PR Review Check in Codex?

Run `npx skills add Samsung/TizenFX --skill pr-review-check -a codex`. Or copy the skill folder (.agents/skills/pr-review-check in Samsung/TizenFX) into .agents/skills/pr-review-check in your project. Codex loads it when a task matches its description.

Can I use PR Review Check in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Samsung/TizenFX --skill pr-review-check -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pr-review-check, .gemini/skills/pr-review-check, .github/skills/pr-review-check and .opencode/skills/pr-review-check in your project.

What does PR Review Check need to run?

Going by SKILL.md and its folder, PR Review Check needs the command-line tools its instructions call (git, gh and dotnet).

Does PR Review Check access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is PR Review Check safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does PR Review Check use?

PR Review Check is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does PR Review Check use?

About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to PR Review Check?

Skills that share tags, products or a category with PR Review Check: MAUI PR Performance Analysis (dotnet/maui, 23k stars), Code Review (jonathanpeppers/dotnes, 780 stars), Gh Stack (dotnet/macios, 2.9k stars) and Open Pull Request (Gremlinq/ExRam.Gremlinq, 187 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains PR Review Check?

Samsung (a GitHub organization) maintains it in Samsung/TizenFX, which has 214 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 9, 2026.

Source: Samsung/TizenFX on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.