Token导航 LogoToken导航TokenDH.com
研究检索只读github未标认证来源可访问许可证需确认审计通过

try-fix尝试修复

Agent Skill

try-fix 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

720

周安装

30

GitHub Stars

23,178

下载量

240
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:try-fix(尝试修复)
来源仓库:https://github.com/dotnet/maui
仓库路径:skills/try-fix
安装命令:
npx skills add https://github.com/dotnet/maui --skill try-fix
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/dotnet/maui --skill try-fix

简介

try-fix 用于查找、检索和筛选相关信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中根据关键词或任务场景快速定位候选结果。
  • 通过 GitHub 安装,需结合原始 README 核验具体用法和权限边界。
  • 安装前建议确认维护状态及是否会触发联网、命令执行或文件读写。
  • 注意该技能当前分类为研究检索,功能以实际文档为准。

SKILL.md

Try Fix Skill

Attempts ONE fix for a given problem. Receives all context upfront, tries a single approach, tests it, and reports what happened.

Core Principles

  1. Always run - Never question whether to run. The invoker decides WHEN, you decide WHAT alternative to try
  2. Single-shot - Each invocation = ONE fix idea, tested, reported
  3. Alternative-focused - Always propose something DIFFERENT from existing fixes (review PR changes first)
  4. Empirical - Actually implement and test, don't just theorize
  5. Context-driven - All information provided upfront; don't search for additional context

Every invocation: Review existing fixes → Think of DIFFERENT approach → Implement and test → Report results

⚠️ CRITICAL: Sequential Execution Only

🚨 Try-fix runs MUST be executed ONE AT A TIME - NEVER in parallel.

Why: Each try-fix run:

  • Modifies the same source files (SafeAreaExtensions.cs, etc.)
  • Uses the same device/emulator for testing
  • Runs EstablishBrokenBaseline.ps1 which reverts files to a known state

If run in parallel:

  • Multiple agents will overwrite each other's code changes
  • Device tests will interfere with each other
  • Baseline script will conflict, causing unpredictable file states
  • Results will be corrupted and unreliable

Correct pattern: Run attempt-1, wait for completion, then run attempt-2, etc.

Inputs

All inputs are provided by the invoker (CI, agent, or user).

InputRequiredDescription
ProblemYesDescription of the bug/issue to fix
Test commandYesRepository-specific script to build, deploy, and test (e.g., pwsh.github/scripts/BuildAndRunHostApp.ps1 -Platform android -TestFilter "Issue12345"). ALWAYS use this script - NEVER manually build/compile.
Target filesYesFiles to investigate for the fix
PlatformYesTarget platform (android, ios, windows, maccatalyst)
HintsOptionalSuggested approaches, prior attempts, or areas to focus on
BaselineOptionalGit ref or instructions for establishing broken state (default: current state)

Outputs

Results reported back to the invoker:

FieldDescription
approachWhat fix was attempted (brief description)
files_changedWhich files were modified
resultPass, Fail, or Blocked
analysisWhy it worked, or why it failed and what was learned
diffThe actual code changes made (for review)

Output Structure (MANDATORY)

FIRST STEP: Create output directory before doing anything else.

# Set issue/PR number explicitly (from branch name, PR context, or manual input)
$IssueNumber = "<ISSUE_OR_PR_NUMBER>"  # Replace with actual number

# Find next attempt number
$tryFixDir = "CustomAgentLogsTmp/PRState/$IssueNumber/PRAgent/try-fix"
$existingAttempts = (Get-ChildItem "$tryFixDir/attempt-*" -Directory -ErrorAction SilentlyContinue).Count
$attemptNum = $existingAttempts + 1

# Create output directory
$OUTPUT_DIR = "$tryFixDir/attempt-$attemptNum"
New-Item -ItemType Directory -Path $OUTPUT_DIR -Force | Out-Null

Write-Host "Output directory: $OUTPUT_DIR"

Required files to create in $OUTPUT_DIR:

FileWhen to CreateContent
baseline.logAfter Step 2 (Baseline)Output from EstablishBrokenBaseline.ps1 proving baseline was established
approach.mdAfter Step 4 (Design)What fix you're attempting and why it's different from existing fixes
result.txtAfter Step 6 (Test)Single word: Pass, Fail, or Blocked
fix.diffAfter Step 6 (Test)Output of git diff showing your changes
test-output.logAfter Step 6 (Test)Full output from test command
analysis.mdAfter Step 6 (Test)Why it worked/failed, insights learned

Example approach.md:

## Approach: Geometric Off-Screen Check

Skip RequestApplyInsets for views completely off-screen using simple bounds check:
`viewLeft >= screenWidth || viewRight <= 0 || viewTop >= screenHeight || viewBottom <= 0`

**Different from existing fix:** Current fix uses HashSet tracking. This approach uses pure geometry with no state.

Example result.txt:

Pass

Completion Criteria

The skill is complete when:

  • Problem understood from provided context
  • ONE fix approach designed and implemented
  • Fix tested with provided test command (iterated up to 3 times if errors/failures)
  • Either: Tests PASS ✅, or exhausted attempts and documented why approach won't work ❌
  • Analysis provided (success explanation or failure reasoning with evidence)
  • Artifacts saved to output directory
  • Baseline restored (working directory clean)
  • Results reported to invoker

🚨 CRITICAL: What counts as "Pass" vs "Fail"

ScenarioResultExplanation
Test command runs, tests passPassActual validation
Test command runs, tests failFailFix didn't work
Code compiles but no device available⚠️ BlockedDevice/emulator unavailable - report with explanation
Code compiles but test command errorsFailInfrastructure issue is still a failure
Code doesn't compileFailFix is broken

NEVER claim "Pass" based on:

  • ❌ "Code compiles successfully" alone
  • ❌ "Code review validates the logic"
  • ❌ "The approach is sound"
  • ❌ "Device was unavailable but fix looks correct"

Pass REQUIRES: The test command executed AND reported test success.

If device/emulator is unavailable: Report result.txt = Blocked with explanation. Do NOT manufacture a Pass.

Exhaustion criteria: Stop after 3 iterations if:

  1. Code compiles but tests consistently fail for same reason
  2. Root cause analysis reveals fundamental flaw in approach
  3. Alternative fixes would require completely different strategy

Never stop due to: Compile errors (fix them), infrastructure blame (debug your code), giving up too early.


Workflow

Step 1: Understand the Problem and Review Existing Fixes

MANDATORY: Review what has already been tried:

  1. Check for existing PR changes: git diff origin/main HEAD --name-only

- Review what files were changed - Read the actual code changes to understand the current fix approach

  1. Review prior attempts if any are known:

- Note which approaches failed and WHY - Note which approaches partially succeeded

  1. Identify what makes your approach DIFFERENT:

- Don't repeat the same logic/pattern as existing fixes - Think of alternative approaches: different algorithm, different location, different strategy - If existing fix modifies X, consider modifying Y instead - If existing fix adds logic, consider removing/simplifying instead

Examples of alternatives:

  • Existing fix: Add caching → Alternative: Change when updates happen
  • Existing fix: Fix in handler → Alternative: Fix in platform layer

Review the provided context:

  • What is the bug/issue?
  • What test command verifies the fix?
  • What files should be investigated?
  • Are there hints about what to try or avoid?

Do NOT search for additional context. Work with what's provided.

Step 2: Establish Baseline (MANDATORY)

🚨 ONLY use EstablishBrokenBaseline.ps1 — NEVER use git checkout, git restore, or git reset to revert fix files.

The script auto-restores any previous baseline, tracks state, and prevents loops. Manual git commands bypass all of this and WILL cause infinite loops in CI.

pwsh .github/scripts/EstablishBrokenBaseline.ps1 *>&1 | Tee-Object -FilePath "$OUTPUT_DIR/baseline.log"

Verify baseline was established:

Select-String -Path "$OUTPUT_DIR/baseline.log" -Pattern "Baseline established"

If the script fails with "No fix files detected": Report as Blocked — do NOT switch branches.

If something fails mid-attempt: pwsh.github/scripts/EstablishBrokenBaseline.ps1 -Restore

Step 3: Analyze Target Files

Read the target files to understand the code.

Key questions:

  • What is the root cause of this bug?
  • Where should the fix go?
  • What's the minimal change needed?

Step 4: Design ONE Fix

Based on your analysis and any provided hints, design a single fix approach:

  • Which file(s) to change
  • What the change is
  • Why you think this will work

If hints suggest specific approaches, prioritize those.

IMMEDIATELY create approach.md in your output directory:

@"
## Approach: [Brief Name]

[Description of what you're changing and why]

**Different from existing fix:** [How this differs from PR's current approach]
"@ | Set-Content "$OUTPUT_DIR/approach.md"

Step 5: Apply the Fix

Implement your fix. Use git status --short and git diff to track changes.

Step 6: Test and Iterate (MANDATORY)

🚨 CRITICAL: ALWAYS use the provided test command script - NEVER manually build/compile.

For.NET MAUI repository: Use BuildAndRunHostApp.ps1 which handles:

  • Building the project
  • Deploying to device/simulator
  • Running tests
  • Capturing logs
# Capture output to test-output.log while also displaying it
pwsh .github/scripts/BuildAndRunHostApp.ps1 -Platform <platform> -TestFilter "<filter>" *>&1 | Tee-Object -FilePath "$OUTPUT_DIR/test-output.log"

Testing Loop (Iterate until SUCCESS or exhausted):

  1. Run the test command - It will build, deploy, and test automatically
  2. Check the result:

- ✅ Tests PASS → Move to Step 7 (Capture Artifacts) - ❌ Compile errors → Fix compilation issues (see below), go to step 1 - ❌ Tests FAIL (runtime) → Analyze failure, fix code, go to step 1

  1. Maximum 3 iterations - If still failing after 3 attempts, analyze if approach is fundamentally flawed
  2. Document why - If exhausted, explain what you learned and why the approach won't work

Behavioral constraints:

  • ⚠️ NEVER blame "test infrastructure" - assume YOUR fix has a bug
  • Compile errors mean "work harder" - not "give up"
  • DO NOT manually build - always rerun the test command script

See references/compile-errors.md for error patterns and iteration examples.

Step 7: Capture Artifacts (MANDATORY)

Before reverting, save ALL required files to $OUTPUT_DIR:

# 1. Save result (MUST be exactly "Pass", "Fail", or "Blocked")
"Pass" | Set-Content "$OUTPUT_DIR/result.txt"  # or "Fail"

# 2. Save the diff
git diff | Set-Content "$OUTPUT_DIR/fix.diff"

# 3. Save test output (should already exist from Step 6)
# Copy-Item "path/to/test-output.log" "$OUTPUT_DIR/test-output.log"

# 4. Save analysis
@"
## Analysis

**Result:** Pass/Fail/Blocked

**What happened:** [Description of test results]

**Why it worked/failed:** [Root cause analysis]

**Insights:** [What was learned that could help future attempts]
"@ | Set-Content "$OUTPUT_DIR/analysis.md"

Verify all required files exist:

@("baseline.log", "approach.md", "result.txt", "fix.diff", "analysis.md", "test-output.log") | ForEach-Object {
    if (Test-Path "$OUTPUT_DIR/$_") { Write-Host "✅ $_" }
    else { Write-Host "❌ MISSING: $_" }
}

Analysis quality matters. Bad: "Didn't work". Good: "Fix attempted to reset state in OnPageSelected, but this fires after layout measurement. The cached value was already used."

Step 8: Restore Working Directory (MANDATORY)

ALWAYS restore, even if fix failed.

pwsh .github/scripts/EstablishBrokenBaseline.ps1 -Restore

🚨 Do NOT use git checkout HEAD --. or git clean to restore — use the script.

Step 9: Report Results

Provide structured output to the invoker:

## Try-Fix Result

**Approach:** [Brief description of what was tried]

**Files Changed:**
- `path/to/file.cs` (+X/-Y lines)

**Result:** ✅ PASS / ❌ FAIL

**Analysis:**
[Why it worked, or why it failed and what was learned]

**Diff:**

[The actual changes made]


**This Attempt's Status:** Done/NeedsRetry **Reasoning:** [Why this specific approach succeeded or failed]

Determining Status: Set Done when you've completed testing this approach (whether it passed or failed). Set NeedsRetry only if you hit a transient error (network timeout, flaky test) and want to retry the same approach.

Error Handling

SituationAction
Problem unclearReport "insufficient context" - specify what's missing
Test command fails to runReport build/setup error with details
Test times outReport timeout, include partial output
Can't determine fix approachReport "no viable approach identified" with reasoning
Git state unrecoverableRun git checkout HEAD -- . and git clean -fd if needed

Guidelines for Proposing Fixes

Good Fix Approaches

Null/state checks - Guard against unexpected null or state ✅ Lifecycle timing - Move code to correct lifecycle event ✅ Cache invalidation - Reset stale cached values

Approaches to Avoid

Massive refactors - Keep changes minimal ❌ Suppressing symptoms - Fix root cause, not symptoms ❌ Multiple unrelated changes - ONE focused fix per invocation


See references/example-invocation.md for a complete example with sample inputs.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

35.52%
按下载量换算85

Claude

30.48%
按下载量换算73

Cursor

21.62%
按下载量换算52

Gemini CLI

10.16%
按下载量换算24

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills