diff --git a/.github/agents/issue-resolver.md b/.github/agents/issue-resolver.md index feb2dca1f4a0..ca6cff3e285e 100644 --- a/.github/agents/issue-resolver.md +++ b/.github/agents/issue-resolver.md @@ -37,7 +37,7 @@ You are a specialized issue resolution agent for the .NET MAUI repository. Your - **iOS**: `xcrun simctl spawn booted log stream --predicate 'processImagePath contains "[AppName]"' --level=debug` - **Android**: `adb logcat | grep -E "(FATAL|AndroidRuntime|Exception)"` -See `.github/instructions/common-testing-patterns.md` section "Error: App Crashes on Launch" for complete patterns. +See [common-testing-patterns.md](../instructions/common-testing-patterns.md) section "Error: App Crashes on Launch" for complete patterns. ## ⚡ GETTING STARTED (Progressive Disclosure) diff --git a/.github/agents/pr-reviewer.md b/.github/agents/pr-reviewer.md index 7b7aaa833195..e217074d939f 100644 --- a/.github/agents/pr-reviewer.md +++ b/.github/agents/pr-reviewer.md @@ -12,7 +12,7 @@ You are a specialized PR review agent for the .NET MAUI repository. **BEFORE creating any plans or todos:** 1. ✅ Check current state: `git branch --show-current` -2. ✅ Read [quick-start.md](.github/instructions/pr-reviewer-agent/quick-start.md) (5 min) - **STOP after "Essential Reading" section** +2. ✅ Read [quick-start.md](../instructions/pr-reviewer-agent/quick-start.md) (5 min) - **STOP after "Essential Reading" section** 3. ✅ Fetch and analyze PR details **ONLY AFTER completing these steps may you:** @@ -31,7 +31,7 @@ You are a specialized PR review agent for the .NET MAUI repository. **Phase 1: Mandatory Pre-Work (Do NOT skip)** 1. ✅ Check current branch: `git branch --show-current` -2. ✅ Read quick-start.md (5 min) - **STOP after "Essential Reading" section** +2. ✅ Read [quick-start.md](../instructions/pr-reviewer-agent/quick-start.md) (5 min) - **STOP after "Essential Reading" section** 3. ✅ Fetch PR and analyze code changes **Phase 2: Create Initial Plan** @@ -50,7 +50,7 @@ You are a specialized PR review agent for the .NET MAUI repository. **Step 1: Quick Start (5 minutes - READ THIS FIRST)** -Read **[quick-start.md](.github/instructions/pr-reviewer-agent/quick-start.md)** which covers: +Read **[quick-start.md](../instructions/pr-reviewer-agent/quick-start.md)** which covers: - ✅ Which app to use (Sandbox vs HostApp) - ✅ Basic workflow with mandatory checkpoints - ✅ Where to find detailed instructions @@ -58,22 +58,22 @@ Read **[quick-start.md](.github/instructions/pr-reviewer-agent/quick-start.md)** **Step 2: Context-Specific (Read as needed during work)** -- **CollectionView/CarouselView PR?** → Read [collectionview-handler-detection.md](.github/instructions/pr-reviewer-agent/collectionview-handler-detection.md) -- **SafeArea changes?** → Read [safearea-testing.instructions.md](.github/instructions/safearea-testing.instructions.md) -- **UI test files in PR?** → Read [uitests.instructions.md](.github/instructions/uitests.instructions.md) -- **Need test code examples?** → See [sandbox-setup.md](.github/instructions/pr-reviewer-agent/sandbox-setup.md) -- **Build/deploy commands?** → Use [quick-ref.md](.github/instructions/pr-reviewer-agent/quick-ref.md) -- **Hit an error?** → Check [error-handling.md](.github/instructions/pr-reviewer-agent/error-handling.md) -- **Can't complete testing?** → Use [checkpoint-resume.md](.github/instructions/pr-reviewer-agent/checkpoint-resume.md) +- **CollectionView/CarouselView PR?** → Read [collectionview-handler-detection.md](../instructions/pr-reviewer-agent/collectionview-handler-detection.md) +- **SafeArea changes?** → Read [safearea-testing.instructions.md](../instructions/safearea-testing.instructions.md) +- **UI test files in PR?** → Read [uitests.instructions.md](../instructions/uitests.instructions.md) +- **Need test code examples?** → See [sandbox-setup.md](../instructions/pr-reviewer-agent/sandbox-setup.md) +- **Build/deploy commands?** → Use [quick-ref.md](../instructions/pr-reviewer-agent/quick-ref.md) +- **Hit an error?** → Check [error-handling.md](../instructions/pr-reviewer-agent/error-handling.md) +- **Can't complete testing?** → Use [checkpoint-resume.md](../instructions/pr-reviewer-agent/checkpoint-resume.md) **Step 3: Before Final Review (Always)** -- **Writing review?** → Read [output-format.md](.github/instructions/pr-reviewer-agent/output-format.md) to eliminate redundancy +- **Writing review?** → Read [output-format.md](../instructions/pr-reviewer-agent/output-format.md) to eliminate redundancy **Step 4: Deep Understanding (Optional - for complex PRs)** -- **Why test deeply?** → [core-guidelines.md](.github/instructions/pr-reviewer-agent/core-guidelines.md) -- **Complete workflow details?** → [testing-guidelines.md](.github/instructions/pr-reviewer-agent/testing-guidelines.md) +- **Why test deeply?** → [core-guidelines.md](../instructions/pr-reviewer-agent/core-guidelines.md) +- **Complete workflow details?** → [testing-guidelines.md](../instructions/pr-reviewer-agent/testing-guidelines.md) ## Quick Reference @@ -85,6 +85,6 @@ Read **[quick-start.md](.github/instructions/pr-reviewer-agent/quick-start.md)** **Workflow**: Fetch PR → Modify Sandbox → Build/Deploy → Test → Compare WITH/WITHOUT PR → Test edge cases → Review -**Checkpoint/Resume**: If you cannot complete testing due to environment limitations (missing device, platform unavailable), use the checkpoint system in `checkpoint-resume.md`. +**Checkpoint/Resume**: If you cannot complete testing due to environment limitations (missing device, platform unavailable), use the checkpoint system in [checkpoint-resume.md](../instructions/pr-reviewer-agent/checkpoint-resume.md). **See instruction files above for complete details.** \ No newline at end of file diff --git a/.github/instructions/appium-control.instructions.md b/.github/instructions/appium-control.instructions.md index 308860e424c2..038a1b10df8c 100644 --- a/.github/instructions/appium-control.instructions.md +++ b/.github/instructions/appium-control.instructions.md @@ -423,7 +423,7 @@ For Shell-specific testing patterns (e.g., opening flyouts), see [UI Tests Instr - **Read the crash logs** to find the exception (iOS: `xcrun simctl spawn booted log stream`, Android: `adb logcat`) - **Investigate the root cause** from the exception stack trace - **If you can't fix it**, ask for guidance with the full exception details -- See [Common Testing Patterns: App Crashes](../common-testing-patterns.md#error-app-crashes-on-launch) for detailed log capture commands +- See [Common Testing Patterns: App Crashes](common-testing-patterns.md#error-app-crashes-on-launch) for detailed log capture commands **"Device not found" (iOS)** - Verify DEVICE_UDID is set: `echo $DEVICE_UDID` diff --git a/.github/instructions/issue-resolver-agent/core-workflow.md b/.github/instructions/issue-resolver-agent/core-workflow.md index a4c23d21d8fe..784aeac087fd 100644 --- a/.github/instructions/issue-resolver-agent/core-workflow.md +++ b/.github/instructions/issue-resolver-agent/core-workflow.md @@ -223,7 +223,7 @@ After completing root cause analysis and designing your fix approach, you MUST s ``` **Use same testing approach as pr-reviewer:** -- Modify Sandbox app with instrumentation (see [Instrumentation Guide](../../instrumentation.instructions.md)) +- Modify Sandbox app with instrumentation (see [Instrumentation Guide](../instrumentation.instructions.md)) - Capture measurements before and after fix - Document test results with actual data diff --git a/.github/instructions/issue-resolver-agent/pr-submission.md b/.github/instructions/issue-resolver-agent/pr-submission.md index f617fcdd8821..006c2b7b3ae5 100644 --- a/.github/instructions/issue-resolver-agent/pr-submission.md +++ b/.github/instructions/issue-resolver-agent/pr-submission.md @@ -254,7 +254,7 @@ Examples: #### Complete UI Test Creation Guide -See **[UI Tests Instructions](../../uitests.instructions.md)** for comprehensive guidance on creating UI tests. +See **[UI Tests Instructions](../uitests.instructions.md)** for comprehensive guidance on creating UI tests. #### Quick Checklist for Issue Tests @@ -347,7 +347,7 @@ dotnet test src/Controls/tests/TestCases.Android.Tests/Controls.TestCases.Androi # ... (see uitests.instructions.md for complete iOS workflow) ``` -See [UI Tests Instructions](../../uitests.instructions.md) for: +See [UI Tests Instructions](../uitests.instructions.md) for: - Complete test creation workflow - Platform-specific considerations - Troubleshooting test failures diff --git a/.github/instructions/issue-resolver-agent/quick-ref.md b/.github/instructions/issue-resolver-agent/quick-ref.md index a63ed231a48d..d4b294178510 100644 --- a/.github/instructions/issue-resolver-agent/quick-ref.md +++ b/.github/instructions/issue-resolver-agent/quick-ref.md @@ -499,7 +499,7 @@ git rebase origin/main - [Testing edge cases](solution-development.md#edge-case-testing) **Before PR**: -- [UI Testing Guide](../../docs/UITesting-Guide.md) +- [UI Testing Guide](../../../docs/UITesting-Guide.md) - [PR submission checklist](pr-submission.md#pr-checklist) --- diff --git a/.github/instructions/issue-resolver-agent/reproduction.md b/.github/instructions/issue-resolver-agent/reproduction.md index bd1ba0194b56..55fb68ccb981 100644 --- a/.github/instructions/issue-resolver-agent/reproduction.md +++ b/.github/instructions/issue-resolver-agent/reproduction.md @@ -127,16 +127,16 @@ namespace Maui.Controls.Sample ## Build and Deploy for Reproduction -**See [Common Testing Patterns](../../common-testing-patterns.md) for detailed build and deploy commands with error checking.** +**See [Common Testing Patterns](../common-testing-patterns.md) for detailed build and deploy commands with error checking.** ### iOS Workflow **Complete workflow** (follow these links for detailed commands): -1. [UDID Extraction](../../common-testing-patterns.md#ios-simulator-udid-iphone-xs-highest-ios-version) - Find iPhone Xs with highest iOS version -2. [Device Boot](../../common-testing-patterns.md#ios-simulator-boot-with-error-checking) - Boot simulator with verification -3. [Build Sandbox](../../common-testing-patterns.md#sandbox-app-build-ios) - Build the Sandbox app -4. [Install App](../../common-testing-patterns.md#ios-app-install-with-error-checking) - Install to simulator -5. [Launch with Logs](../../common-testing-patterns.md#ios-app-launch-with-console-capture) - Launch and capture console output +1. [UDID Extraction](../common-testing-patterns.md#ios-simulator-udid-iphone-xs-highest-ios-version) - Find iPhone Xs with highest iOS version +2. [Device Boot](../common-testing-patterns.md#ios-simulator-boot-with-error-checking) - Boot simulator with verification +3. [Build Sandbox](../common-testing-patterns.md#sandbox-app-build-ios) - Build the Sandbox app +4. [Install App](../common-testing-patterns.md#ios-app-install-with-error-checking) - Install to simulator +5. [Launch with Logs](../common-testing-patterns.md#ios-app-launch-with-console-capture) - Launch and capture console output **Quick reference** (experienced users): ```bash @@ -149,14 +149,14 @@ xcrun simctl launch --console-pty $UDID com.microsoft.maui.sandbox > /tmp/issue_ sleep 8 && cat /tmp/issue_reproduction.log ``` -See [Common Testing Patterns](../../common-testing-patterns.md) for commands with complete error checking at each step. +See [Common Testing Patterns](../common-testing-patterns.md) for commands with complete error checking at each step. ### Android Workflow **Complete workflow**: -1. [UDID Extraction](../../common-testing-patterns.md#android-device-udid) - Get device/emulator ID -2. [Build and Deploy](../../common-testing-patterns.md#android-build-and-deploy-combined) - Build, install, and launch in one command -3. [Monitor Logs](../../common-testing-patterns.md#android-logcat-monitoring) - Capture logcat output +1. [UDID Extraction](../common-testing-patterns.md#android-device-udid) - Get device/emulator ID +2. [Build and Deploy](../common-testing-patterns.md#android-build-and-deploy-combined) - Build, install, and launch in one command +3. [Monitor Logs](../common-testing-patterns.md#android-logcat-monitoring) - Capture logcat output **Quick reference**: ```bash @@ -165,12 +165,12 @@ dotnet build src/Controls/samples/Controls.Sample.Sandbox/Maui.Controls.Sample.S adb logcat | grep -E "(Issue|Console|ERROR)" ``` -See [Common Testing Patterns](../../common-testing-patterns.md) for commands with complete error checking. +See [Common Testing Patterns](../common-testing-patterns.md) for commands with complete error checking. ### Troubleshooting If builds or deployments fail, see: -- [Common Testing Patterns: Error Handling](../../common-testing-patterns.md#common-error-handling-patterns) +- [Common Testing Patterns: Error Handling](../common-testing-patterns.md#common-error-handling-patterns) - [Error Handling: Build Errors](error-handling.md#build-errors-during-reproduction) ## Verification Points diff --git a/.github/instructions/pr-reviewer-agent/sandbox-setup.md b/.github/instructions/pr-reviewer-agent/sandbox-setup.md index 5d98895de557..cf93c31ec7f9 100644 --- a/.github/instructions/pr-reviewer-agent/sandbox-setup.md +++ b/.github/instructions/pr-reviewer-agent/sandbox-setup.md @@ -33,11 +33,11 @@ After determining the handler type (if needed), modify the Sandbox app to test t ### Detailed Patterns and Techniques -**For comprehensive instrumentation patterns**, see **[Instrumentation Guide](../../instrumentation.instructions.md)**: -- [Key Techniques](../../instrumentation.instructions.md#key-instrumentation-techniques) - Console output, timing, measurements -- [Common Patterns](../../instrumentation.instructions.md#common-instrumentation-patterns) - Property testing, collections, nested content -- [Platform-Specific Positioning](../../instrumentation.instructions.md#platform-specific-positioning) - Screen coordinates -- [SafeArea Testing](../../safearea-testing.instructions.md) - SafeArea-specific patterns +**For comprehensive instrumentation patterns**, see **[Instrumentation Guide](../instrumentation.instructions.md)**: +- [Key Techniques](../instrumentation.instructions.md#key-instrumentation-techniques) - Console output, timing, measurements +- [Common Patterns](../instrumentation.instructions.md#common-instrumentation-patterns) - Property testing, collections, nested content +- [Platform-Specific Positioning](../instrumentation.instructions.md#platform-specific-positioning) - Screen coordinates +- [SafeArea Testing](../safearea-testing.instructions.md) - SafeArea-specific patterns ### Standard Workflow diff --git a/.github/prompts/pr-reviewer.prompt.md b/.github/prompts/pr-reviewer.prompt.md index 858f0aa4f5d6..85f7a10f59b4 100644 --- a/.github/prompts/pr-reviewer.prompt.md +++ b/.github/prompts/pr-reviewer.prompt.md @@ -143,7 +143,7 @@ Reviews .NET MAUI pull requests through code analysis AND hands-on device testin ## Related Resources -- [Core Guidelines](.github/instructions/pr-reviewer-agent/core-guidelines.md) - Full workflow details -- [Testing Guidelines](.github/instructions/pr-reviewer-agent/testing-guidelines.md) - Platform setup, build patterns -- [Appium Instructions](.github/instructions/appium-control.instructions.md) - UI automation patterns -- [Common Testing Patterns](.github/instructions/common-testing-patterns.md) - Device setup, error checking +- [Core Guidelines](../instructions/pr-reviewer-agent/core-guidelines.md) - Full workflow details +- [Testing Guidelines](../instructions/pr-reviewer-agent/testing-guidelines.md) - Platform setup, build patterns +- [Appium Instructions](../instructions/appium-control.instructions.md) - UI automation patterns +- [Common Testing Patterns](../instructions/common-testing-patterns.md) - Device setup, error checking