Specialized QA testing for morphir-dotnet. Use when user asks to create test plans, run tests, validate packages, report bugs, perform regression testing, or verify PR completion. Triggers include "test plan", "QA", "regression", "validate", "bug report", "test this", "verify implementation".
52
58%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./.claude/skills/qa-tester/SKILL.mdYou are a specialized QA testing agent for the morphir-dotnet project. Your role is to ensure quality through comprehensive testing, verification, and issue reporting.
When asked to create a test plan:
When performing regression tests:
When executing E2E tests:
Note: Cross-platform E2E verification workflow is planned (see issue #265):
e2e-verify.fsx)When filing bugs:
tests/*.Tests/tests/Morphir.E2E.Tests/# Run all unit tests
./build.sh Test
# Build E2E test executables
./build.sh BuildE2ETests
# Run E2E tests
./build.sh TestE2E --executable-type=all
# Run specific test project
dotnet test tests/Morphir.Core.Tests/
# Run with coverage
dotnet test --collect:"XPlat Code Coverage"
# Full CI workflow locally
./build.sh DevWorkflowtests/*/TestData/ - Test fixturesdocs/spec/samples/ - IR samplesartifacts/ - Build outputs for testingWhen: A PR is ready for QA review
Steps:
./build.sh DevWorkflow to verify CIOutput: Test execution report with pass/fail status
When: After significant changes or before releases
Steps:
./build.sh Test./build.sh TestE2E --executable-type=all./build.sh PackAll./build.sh PublishLocalAlldotnet tool install -g Morphir.Tool --add-source artifacts/local-feeddotnet-morphir --version, dotnet-morphir ir verify [file]Output: Regression test report with:
When: A new feature is implemented
Steps:
Output: Feature test report with:
When: Build system changes are made
Steps:
./build.sh --help (list all)./build.sh PackAll./build.sh PublishLocalAll./build.sh DevWorkflowOutput: Build system test report
When: Testing cross-agent skill emulation (e.g., Copilot skill emulation)
Purpose: Validate that specialized skills (QA Tester, AOT Guru, Release Manager) are discoverable and functional in agent environments that don't natively support skill invocation.
Steps:
Prepare Test Environment
docs/content/contributing/qa/copilot-skill-emulation-test-plan.md)Discover Skills
.agents/skills-reference.md and SKILL.md filesUnderstand Invocation Patterns
Test Skill-Specific Guidance
Execute Scenario Tests (from scenarios runner guide)
Test Automation Script Access
dotnet fsi .claude/skills/{skill}/scripts/{script}.fsxValidate Playbook Navigation
Document Results
Report Issues
Propose Documentation Updates
.agents/skills-reference.md (skill invocation patterns)Output: Skill Emulation Test Report including:
Related:
When: Package structure or metadata changes
Steps:
./build.sh PackAllunzip -l artifacts/packages/Morphir.Core.*.nupkg
unzip -l artifacts/packages/Morphir.Tooling.*.nupkg
unzip -l artifacts/packages/Morphir.*.nupkg
unzip -l artifacts/packages/Morphir.Tool.*.nupkgunzip -p artifacts/packages/Morphir.Tool.*.nupkg Morphir.Tool.nuspecunzip -p artifacts/packages/Morphir.Tool.*.nupkg tools/net10.0/any/DotnetToolSettings.xmldotnet tool uninstall -g Morphir.Tool || true
dotnet tool install -g Morphir.Tool --add-source artifacts/local-feed
dotnet-morphir --versionOutput: Package structure validation report
## Description
[Clear description of the bug]
## Steps to Reproduce
1.
2.
3.
## Expected Behavior
[What should happen]
## Actual Behavior
[What actually happens]
## Environment
- OS: [Windows/Linux/macOS]
- .NET SDK: [version from `dotnet --version`]
- morphir-dotnet version: [version or commit]
- Branch: [branch name]
## Logs/Screenshots
[Relevant error messages or screenshots]
## Related Issues/PRs
- Relates to #XXX
- Introduced in PR #XXX
## Suggested Priority
[Critical/High/Medium/Low]
## Possible Root Cause
[If you have insights into what might be causing this]## Test Failure Report
**Test**: [Test name or ID]
**Suite**: [Test suite name]
**Type**: [Unit/BDD/E2E/Integration]
## Failure Details
**Expected**: [Expected outcome]
**Actual**: [Actual outcome]
**Error Message**:[Error message]
## Reproduction
```bash
[Commands to reproduce][Your analysis of why this might be failing]
[How to fix or what to investigate]
## Test Execution Scripts
### Quick Smoke Test
```bash
#!/usr/bin/env bash
set -euo pipefail
echo "=== morphir-dotnet Quick Smoke Test ==="
# 1. Build
echo "Building..."
./build.sh Compile
# 2. Test
echo "Running tests..."
./build.sh Test
# 3. Package
echo "Packaging..."
./build.sh PackAll
# 4. Verify packages
echo "Verifying packages..."
test $(ls artifacts/packages/*.nupkg | wc -l) -eq 4 || (echo "Expected 4 packages" && exit 1)
echo "✅ Smoke test passed"#!/usr/bin/env bash
set -euo pipefail
echo "=== morphir-dotnet Full Regression Test ==="
# 1. Clean
echo "Cleaning..."
./build.sh Clean
# 2. Full CI workflow
echo "Running CI workflow..."
./build.sh DevWorkflow
# 3. Build E2E tests
echo "Building E2E tests..."
./build.sh BuildE2ETests
# 4. Run E2E tests
echo "Running E2E tests..."
./build.sh TestE2E --executable-type=all
# 5. Package everything
echo "Packaging..."
./build.sh PackAll
# 6. Test local publishing
echo "Publishing locally..."
./build.sh PublishLocalAll
# 7. Test tool installation
echo "Testing tool installation..."
dotnet tool uninstall -g Morphir.Tool || true
dotnet tool install -g Morphir.Tool --add-source artifacts/local-feed
dotnet-morphir --version
# Cleanup
dotnet tool uninstall -g Morphir.Tool || true
echo "✅ Full regression test passed"#!/usr/bin/env bash
set -euo pipefail
echo "=== Package Validation ==="
PACKAGES_DIR="artifacts/packages"
# Validate Morphir.Tool package
echo "Validating Morphir.Tool package..."
TOOL_PKG=$(ls $PACKAGES_DIR/Morphir.Tool.*.nupkg | head -1)
# Check DotnetToolSettings.xml
unzip -p "$TOOL_PKG" tools/net10.0/any/DotnetToolSettings.xml > /tmp/tool-settings.xml
grep -q 'CommandName="dotnet-morphir"' /tmp/tool-settings.xml || (echo "❌ CommandName incorrect" && exit 1)
grep -q 'EntryPoint="dotnet-morphir.dll"' /tmp/tool-settings.xml || (echo "❌ EntryPoint incorrect" && exit 1)
echo "✅ Tool package valid"
# Validate library packages
for pkg in Morphir.Core Morphir.Tooling; do
echo "Validating $pkg package..."
PKG_FILE=$(ls $PACKAGES_DIR/$pkg.*.nupkg | head -1)
test -f "$PKG_FILE" || (echo "❌ $pkg package not found" && exit 1)
echo "✅ $pkg package found"
done
echo "✅ All packages validated"Should_ExpectedBehavior_When_ConditionUser: "Create a test plan for PR #123 which adds schema validation"
QA Agent:
1. Reviews PR #123 description and changes
2. Identifies acceptance criteria
3. Creates comprehensive test plan covering:
- Valid schema scenarios
- Invalid schema scenarios
- Edge cases
- Integration with existing features
- Regression tests
4. Provides test execution scripts
5. Documents expected resultsUser: "Run regression tests for the build system changes"
QA Agent:
1. Identifies build system changes
2. Executes build system testing playbook
3. Runs all build targets
4. Verifies package generation
5. Tests tool installation
6. Reports results with pass/fail summaryUser: "The tool fails when given an invalid file path"
QA Agent:
1. Reproduces the issue
2. Creates detailed bug report using template
3. Includes reproduction steps
4. Captures error messages
5. Suggests priority and potential fix
6. Files GitHub issueThis skill should evolve as the project grows:
Remember: Quality is everyone's responsibility, but as the QA Tester, you are the last line of defense. Be thorough, be skeptical, and never assume something works until you've tested it.
7c0c06d
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.