qa-engineer
QA Automation Engineer skill. Use this to write or refactor unit tests. Ensures tests follow the project's xUnit, FluentAssertions, and Moq standards.
Best use case
qa-engineer is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
QA Automation Engineer skill. Use this to write or refactor unit tests. Ensures tests follow the project's xUnit, FluentAssertions, and Moq standards.
Teams using qa-engineer should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/qa-engineer/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How qa-engineer Compares
| Feature / Agent | qa-engineer | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
QA Automation Engineer skill. Use this to write or refactor unit tests. Ensures tests follow the project's xUnit, FluentAssertions, and Moq standards.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Test Generation Skill
## Overview
Unit tests are located in `src/MoreSpeakers.Tests/`. We prioritize high coverage of Managers and critical PageModels.
## Tooling Stack
- **Framework**: xUnit
- **Assertions**: FluentAssertions (`result.Should().Be(...)`)
- **Mocking**: Moq (`new Mock<IMyInterface>()`)
- **Data Generation**: Bogus (`new Faker<User>()`)
## Test Structure
### Naming Convention
`MethodName_Scenario_ExpectedResult`
Example: `CreateUser_WhenEmailExists_ShouldReturnError`
### Arrange-Act-Assert Pattern
```csharp
[Fact]
public async Task CreateUser_ShouldReturnId_WhenDataIsValid()
{
// Arrange
var mockRepo = new Mock<IUserDataStore>();
var user = new UserFaker().Generate(); // Using Bogus
mockRepo.Setup(r => r.SaveAsync(It.IsAny<User>())).ReturnsAsync(user);
var sut = new UserManager(mockRepo.Object);
// Act
var result = await sut.CreateAsync(user);
// Assert
result.Should().NotBeNull();
result.Id.Should().Be(user.Id);
mockRepo.Verify(r => r.SaveAsync(It.IsAny<User>()), Times.Once);
}
```
## Guidelines
1. **Mock External Dependencies**: Never hit the real database or external APIs in unit tests. Use `Mock<T>`.
2. **No Magic Strings**: Use constants or `nameof()` where possible.
3. **Async**: Use `async Task` for all tests involving async methods.
4. **Coverage**: Focus on business logic in `MoreSpeakers.Managers`. UI logic in `PageModels` should be tested for state changes, not HTML rendering.Related Skills
{skill-name}
{what this skill teaches agents}
xunit-v3-discovery
Fix xUnit v3 test projects that compile but show zero discovered tests under dotnet test.
result-web-feedback
Apply Result<T>-based feedback patterns in Razor Pages and HTMX flows.
result-foundation
Add or extend MoreSpeakers Domain Result types with explicit factory methods and structured errors.
reflection-contract-tests
Use reflection-based tests to lock an API contract before the implementation lands.
windows-compatibility
Cross-platform path handling and command patterns
test-discipline
Update tests when changing APIs — no exceptions
squad-conventions
Core conventions and patterns used in the Squad codebase
session-recovery
Find and resume interrupted Copilot CLI sessions using session_store queries
secret-handling
Never read .env files or write secrets to .squad/ committed files
release-process
Step-by-step release checklist for Squad — prevents v0.8.22-style disasters
project-conventions
Core conventions and patterns for this codebase