Analyzing .NET Performance
dotnet/skills
Scans C# and .NET code for about 50 performance anti-patterns and reports prioritized findings with concrete fixes, at a scan depth you choose.
Performs code review on every open PR of TizenFX and replies with technical responses to new comments left by other reviewers.
$ npx skills add Samsung/TizenFX --skill pr-code-review -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Samsung/TizenFX pr-code-review --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Samsung/TizenFX.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/pr-code-review .claude/skills/pr-code-review && rm -rf skills-srcUse ~/.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/
Install the "pr-code-review" agent skill from https://github.com/Samsung/TizenFX/tree/main/.agents/skills/pr-code-review into .claude/skills/pr-code-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-code-review", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Samsung/TizenFX/tree/main/.agents/skills/pr-code-reviewType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Samsung/TizenFX --skill pr-code-review -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Samsung/TizenFX pr-code-review --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Samsung/TizenFX.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/pr-code-review .agents/skills/pr-code-review && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pr-code-review" agent skill from https://github.com/Samsung/TizenFX/tree/main/.agents/skills/pr-code-review into .agents/skills/pr-code-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-code-review", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Samsung/TizenFX --skill pr-code-review -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Samsung/TizenFX pr-code-review --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Samsung/TizenFX.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/pr-code-review .cursor/skills/pr-code-review && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "pr-code-review" agent skill from https://github.com/Samsung/TizenFX/tree/main/.agents/skills/pr-code-review into .cursor/skills/pr-code-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-code-review", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Samsung/TizenFX.git --path .agents/skills/pr-code-review--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Samsung/TizenFX --skill pr-code-review -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Samsung/TizenFX pr-code-review --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Samsung/TizenFX.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/pr-code-review .gemini/skills/pr-code-review && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "pr-code-review" agent skill from https://github.com/Samsung/TizenFX/tree/main/.agents/skills/pr-code-review into .gemini/skills/pr-code-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-code-review", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Samsung/TizenFX pr-code-reviewInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Samsung/TizenFX --skill pr-code-review -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Samsung/TizenFX.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/pr-code-review .github/skills/pr-code-review && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "pr-code-review" agent skill from https://github.com/Samsung/TizenFX/tree/main/.agents/skills/pr-code-review into .github/skills/pr-code-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-code-review", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Samsung/TizenFX --skill pr-code-review -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Samsung/TizenFX pr-code-review --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Samsung/TizenFX.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/pr-code-review .opencode/skills/pr-code-review && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "pr-code-review" agent skill from https://github.com/Samsung/TizenFX/tree/main/.agents/skills/pr-code-review into .opencode/skills/pr-code-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-code-review", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
pr-code-reviewPerforms code review on every open PR of TizenFX and replies with technical responses to new comments left by other reviewers.
PR Code Review is an agent skill from Samsung/TizenFX. Performs code review on every open PR of TizenFX and replies with technical responses to new comments left by other reviewers. Never asks the author/reviewers for action and never leaves follow-up reminders.
Its SKILL.md is about 3.3k 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 Code review. It works with C# and .NET. The repository describes itself as: C Device APIs for Tizen. The licence is Apache-2.0.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0352388. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
ghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
PR Code Review loads about 3.3k tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 1,302 words of instructions outside code blocks.
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.
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.
The full file from Samsung/TizenFX at commit 0352388, republished under its Apache-2.0 licence (© Samsung). 1,302 words, ~3,287 tokens.
.claude/skills/pr-code-review/SKILL.md (or your agent's skills folder).For every open PR in the samsung/TizenFX repository:
All comments are written in English.
Role boundaries (important):
Follow-up on @X review (unanswered), @author Could you please address..., "please confirm", "checking review status" stylegh CLI (authenticated)gh pr list --repo samsung/TizenFX --state open \
--json number,title,author,updatedAt,isDraft,labels \
--jq '[.[] | select(.isDraft | not)]
| sort_by(.updatedAt) | reverse
| .[] | "\(.number)\t\(.title)\t\(.author.login)\t\(.updatedAt)"'draft PRs are skippedai-task labeled PRs are reviewed on the same basis (serves as an objective second-pass review of AI-authored PRs)Core rule: if no new commits or human comments have appeared since the last AI activity, skip immediately. (This rule fundamentally blocks the "leave follow-up on a PR where nothing changed" pattern.)
For each PR:
Look up the most recent AI activity timestamp (both review and issue comments):
LAST_AI_AT=$(
{
gh api repos/samsung/TizenFX/pulls/{NUMBER}/comments \
--jq '.[] | select(.body | startswith("🤖 [AI Review]")) | .created_at'
gh api repos/samsung/TizenFX/issues/{NUMBER}/comments \
--jq '.[] | select(.body | startswith("🤖 [AI Review]")) | .created_at'
} | sort | tail -1
)Check for new commits and new human comments after that timestamp:
NEW_COMMITS=$(gh api repos/samsung/TizenFX/pulls/{NUMBER}/commits \
--jq ".[] | select(.commit.committer.date > \"$LAST_AI_AT\") | .sha" | wc -l)
NEW_HUMAN_COMMENTS=$(
{
gh api repos/samsung/TizenFX/pulls/{NUMBER}/comments \
--jq ".[] | select(.created_at > \"$LAST_AI_AT\")
| select(.body | startswith(\"🤖 [AI Review]\") | not) | .id"
gh api repos/samsung/TizenFX/issues/{NUMBER}/comments \
--jq ".[] | select(.created_at > \"$LAST_AI_AT\")
| select(.body | startswith(\"🤖 [AI Review]\") | not) | .id"
} | wc -l
)Decision:
LAST_AI_AT is empty → new PR. Proceed to Stage ③ (full-diff review). Stage ④ not needed.NEW_COMMITS == 0 && NEW_HUMAN_COMMENTS == 0 → skip. Reason: no-delta.NEW_COMMITS > 0 → proceed to Stage ③ (delta-range review).NEW_HUMAN_COMMENTS > 0 → proceed to Stage ④ (respond only to new human comments).Review from the perspective of a .NET / C# / Tizen expert developer.
Review priorities:
Public API documentation check (🔴 Critical):
///) or is missing required tags, always flag it.<summary> — all public/protected members<param name="..."> — every parameter<returns> — non-void methods, property getters<exception cref="..."> — explicitly thrown exceptions<typeparam name="..."> — generic types/methods<since_tizen> — TizenFX public API version info (TizenFX convention)internal, private, file-scoped members are out of scope (not flagged)partial class has documentation on the other side, it is OK[EditorBrowsable(EditorBrowsableState.Never)] are excluded — by TizenFX convention, IntelliSense-hidden APIs are not part of the official documentation surfaceFull-file fetch required before flagging missing docs (to prevent false positives):
A raw diff can clip attributes or existing XML doc out of context. Before flagging missing documentation, always fetch the file at the PR branch and verify:
# Get the PR head SHA
HEAD_SHA=$(gh api repos/samsung/TizenFX/pulls/{NUMBER} --jq '.head.sha')
# Fetch full file content (base64 → decode)
gh api repos/samsung/TizenFX/contents/{FILE_PATH}?ref=$HEAD_SHA \
--jq '.content' | base64 -dCheckpoints:
[EditorBrowsable(EditorBrowsableState.Never)] / [Obsolete] placed right above the member?[EditorBrowsable(...Never)]? (if yes, skip all its members)partial class already contain XML doc? (check via grep -l or repeated gh api .../contents)/// doc already present but only missing a few tags, vs. completely missing?If any one of the four applies, do not flag. Prioritize accuracy over diff-browsing convenience.
Comment style rules (concise + diff-centric):
🤖 [AI Review]```suggestion block when proposing a fix. Avoid prose-only feedback with no diff.@author please address... ❌)Standard template (inline comment):
🤖 [AI Review]
🟡 **Suggestion**: {one-line reason}
```suggestion
{corrected code — in a form directly applicable from GitHub}
```Critical exception (structural issues that cannot be expressed as a suggestion block — class split, signature change, etc.): prose allowed but keep it within 3 sentences; attach a Before/After code snippet whenever possible.
Public API missing-docs template example:
🤖 [AI Review]
🔴 **Critical**: Public API missing XML documentation. TizenFX public APIs require `<summary>`, `<param>`, `<returns>`, and `<since_tizen>` tags.
```suggestion
/// <summary>
/// {Brief description of what this member does}.
/// </summary>
/// <param name="value">{Description of parameter}.</param>
/// <returns>{Description of return value}.</returns>
/// <since_tizen> {API level} </since_tizen>
public int DoSomething(int value)
```Line-level inline comment call:
gh api repos/samsung/TizenFX/pulls/{NUMBER}/comments \
-f body="🤖 [AI Review]
🟡 **Suggestion**: Use FrozenDictionary for this read-only mapping.
\`\`\`suggestion
private static readonly FrozenDictionary<string, int> _mapping = new Dictionary<string, int>
{
...
}.ToFrozenDictionary();
\`\`\`" \
-f commit_id="{COMMIT_SHA}" \
-f path="{FILE_PATH}" \
-F line={LINE_NUMBER}Final summary comment — required behavior
After completing the inline review, post exactly one PR-level summary comment via gh pr comment. Which form to use depends on what was produced:
Case A — at least one inline comment was left (optional; recommended once total ≥ 2):
gh pr comment {NUMBER} --repo samsung/TizenFX --body "🤖 [AI Review]
Left {N} inline comments (🔴 {critical}, 🟡 {suggestion}). See inline for details.
---
*Automated review by AI assistant*"Case B — no inline comments produced (the diff was reviewed and judged clean): mandatory. Posting nothing is no longer acceptable — the audit trail and the maintainers must be able to see that the review ran.
gh pr comment {NUMBER} --repo samsung/TizenFX --body "🤖 [AI Review]
**Reviewed — no findings.**
**Scope checked:**
- {3–6 bullets enumerating what was actually verified on this diff — see rules below}
No 🔴 critical issues, no 🟡 suggestions to flag.
---
*Automated review — final merge decision rests with human reviewers.*"Rules for the Scope checked block (Case B):
ArgumentNullException.ThrowIfNull ≥ .NET 6), excluded-pattern intent (e.g., "lines with custom messages left untouched")since_tizen, edge cases handled, no breaking changeCase C — only Stage ④ replies were produced (no Stage ③ inline comments): do not post a Case-B summary; the reply itself is the activity record. (Stage ② already filtered out "skip — no-delta" before we reached this point.)
Target: new human comments after LAST_AI_AT that are not replies to a previous AI comment.
Response principles (strict):
✅ Allowed:
```suggestion block when possible❌ Forbidden:
Could you please..., Please confirm..., "please check")Thanks!, Agreed. alone)Comment format:
🤖 [AI Review]```suggestion block when helpfulReply call (preserving reply-to relationship):
gh api repos/samsung/TizenFX/pulls/{NUMBER}/comments \
-f body="🤖 [AI Review]
{technical response — 1–3 sentences, with suggestion block when possible}" \
-F in_reply_to={COMMENT_ID}Judgment guide: when unsure whether to respond, choose not to. A comment that doesn't add value to the code is noise.
@-mention)approve / request changes (inline comments only)merge / closeai-task PRs are not skipped)Case A = inline-summary, Case B = clean-review, Case C = replies-only)no-delta / draft / quota-5)© 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
Just SKILL.md in .agents/skills/pr-code-review of Samsung/TizenFX.
Open the folder on GitHubat commit 0352388
PR Code Review 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| PR Code Review this skillSamsung/TizenFX | 214 | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Analyzing .NET Performancedotnet/skills | 5.6k | 3 repos | ~3.1k | Automated safety check: Pass | MIT | |
| Code Reviewdotnet/macios | 2.9k | — | ~1.7k | Automated safety check: Pass | Custom licence | |
| Code Reviewjonathanpeppers/dotnes | 780 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Dotnet Copfmflurry/settings-opencode | 171 | — | ~2k | Automated safety check: Pass | MIT | |
| Blazor Component Authordotnet/skills | 5.6k | 1 repos | ~830 | Automated safety check: Pass | MIT |
dotnet/skills
Scans C# and .NET code for about 50 performance anti-patterns and reports prioritized findings with concrete fixes, at a scan depth you choose.
dotnet/macios
Review dotnet/macios PRs against established rules. An agent skill from dotnet/macios.
jonathanpeppers/dotnes
Review dotnes pull requests against established repository rules.
fmflurry/settings-opencode
Pre-merge code review for .NET 10 pull requests. An agent skill from fmflurry/settings-opencode.
dotnet/skills
Writes and reviews Blazor .razor components with correct parameters, EventCallback, lifecycle, async and disposal patterns, for components that need no JavaScript interop.
WeihanLi/WeihanLi.Common
Create or update the project constitution from interactive or provided principle inputs, ensuring all dependent templates stay in sync.
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.
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.
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.
Samsung/TizenFX
Automatically processes TizenFX ai-task issues (dispatching between refactoring/feature modes) and creates a PR.
Categories
Performs code review on every open PR of TizenFX and replies with technical responses to new comments left by other reviewers. PR Code Review is an agent skill from Samsung/TizenFX. Performs code review on every open PR of TizenFX and replies with technical responses to new comments left by other reviewers.
PR Code Review fits situations like: tasks that involve Code review.
Run `npx skills add Samsung/TizenFX --skill pr-code-review -a claude-code`. Or copy the skill folder (.agents/skills/pr-code-review in Samsung/TizenFX) into .claude/skills/pr-code-review in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Samsung/TizenFX --skill pr-code-review -a codex`. Or copy the skill folder (.agents/skills/pr-code-review in Samsung/TizenFX) into .agents/skills/pr-code-review in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Samsung/TizenFX --skill pr-code-review -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-code-review, .gemini/skills/pr-code-review, .github/skills/pr-code-review and .opencode/skills/pr-code-review in your project.
Going by SKILL.md and its folder, PR Code Review needs the command-line tools its instructions call (gh).
SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
PR Code Review 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.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with PR Code Review: Analyzing .NET Performance (dotnet/skills, 5.6k stars), Code Review (dotnet/macios, 2.9k stars), Code Review (jonathanpeppers/dotnes, 780 stars) and Dotnet Cop (fmflurry/settings-opencode, 171 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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 6, 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.