Golang Testing
antoniopaya22/go-rest-template
Go testing patterns including table-driven tests, subtests, benchmarks, fuzzing, and test coverage.
Test strategy designer covering test pyramid, coverage strategies, fixture design, mock patterns, TDD/BDD workflows, property-based testing, and test isolation.
$ npx skills add FerroxLabs/wayland --skill test-architect -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install FerroxLabs/wayland test-architect --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/FerroxLabs/wayland.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/software-engineering/test-architect .claude/skills/test-architect && 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 "test-architect" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/software-engineering/test-architect into .claude/skills/test-architect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-architect", 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/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/software-engineering/test-architectType 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 FerroxLabs/wayland --skill test-architect -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install FerroxLabs/wayland test-architect --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/software-engineering/test-architect .agents/skills/test-architect && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "test-architect" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/software-engineering/test-architect into .agents/skills/test-architect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-architect", 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 FerroxLabs/wayland --skill test-architect -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install FerroxLabs/wayland test-architect --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/software-engineering/test-architect .cursor/skills/test-architect && 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 "test-architect" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/software-engineering/test-architect into .cursor/skills/test-architect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-architect", 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/FerroxLabs/wayland.git --path src/process/resources/skills-library/bodies/skills/software-engineering/test-architect--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 FerroxLabs/wayland --skill test-architect -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install FerroxLabs/wayland test-architect --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/software-engineering/test-architect .gemini/skills/test-architect && 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 "test-architect" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/software-engineering/test-architect into .gemini/skills/test-architect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-architect", 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 FerroxLabs/wayland test-architectInstalls 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 FerroxLabs/wayland --skill test-architect -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/software-engineering/test-architect .github/skills/test-architect && 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 "test-architect" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/software-engineering/test-architect into .github/skills/test-architect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-architect", 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 FerroxLabs/wayland --skill test-architect -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install FerroxLabs/wayland test-architect --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/software-engineering/test-architect .opencode/skills/test-architect && 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 "test-architect" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/software-engineering/test-architect into .opencode/skills/test-architect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-architect", 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.
test-architectTest strategy designer covering test pyramid, coverage strategies, fixture design, mock patterns, TDD/BDD workflows, property-based testing, and test isolation.
Test Architect is an agent skill from FerroxLabs/wayland. Test strategy designer covering test pyramid, coverage strategies, fixture design, mock patterns, TDD/BDD workflows, property-based testing, and test isolation. Use when the user asks about test architect, test architect best practices, or needs guidance on test architect implementation. Do NOT use when the user needs a different specialized skill or is asking about an unrelated technology domain.
Its SKILL.md is about 3.5k 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 Testing & QA, covering Test strategy and Test-driven development. The repository describes itself as: Wayland - The AI Agent That Perceives. Reasons. Acts. Evolves. The licence is Apache-2.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 4c030c7. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python, javascript, java, typescript, gherkin and markdown).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Test Architect loads about 3.5k tokens when it runs. Until then it costs about 104 tokens; SKILL.md has 1,111 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 FerroxLabs/wayland at commit 4c030c7, republished under its Apache-2.0 licence (© FerroxLabs). 1,111 words, ~3,456 tokens.
.claude/skills/test-architect/SKILL.md (or your agent's skills folder).You are an expert test architect. Design test strategies that maximize defect detection while minimizing maintenance cost. Write tests that document intent, catch regressions, and enable fearless refactoring.
The test pyramid is a cost-optimization framework. Tests at the bottom are fast, cheap, and stable. Tests at the top are slow, expensive, and brittle.
/ E2E \ Few (5-10%) Slow, brittle, high confidence
/----------\
/ Integration \ Some (15-25%) Moderate speed, moderate confidence
/----------------\
/ Unit Tests \ Many (60-80%) Fast, stable, low confidence per test
/____________________\Kent C. Dodds' testing trophy emphasizes integration tests:
/ E2E \ Few
/----------\
/ Integration \ MOST (focus here)
/----------------\
/ Unit \ Some
/____________________\
/ Static Analysis \ Linting, types
/________________________\Use this model when your application is primarily about composing components (React apps, API services).
| Category | What it tests | Dependencies | Speed |
|---|---|---|---|
| Unit | Single function/class | None (mocked) | < 10ms |
| Integration | Component interaction | Real DB, queues | < 5s |
| Contract | API compatibility | Schema/types | < 1s |
| E2E | Full user workflow | Entire system | < 60s |
| Smoke | System is alive | Deployed system | < 30s |
| Category | Goal | When to run |
|---|---|---|
| Regression | Catch broken behavior | Every commit |
| Acceptance | Verify requirements | Before release |
| Performance | Detect speed regressions | Nightly |
| Security | Find vulnerabilities | Before release |
| Chaos | Test resilience | Periodically |
Use descriptive names that form readable sentences.
methodName_scenario_expectedBehaviorcalculateTotal_emptyCart_returnsZero()
calculateTotal_singleItem_returnsItemPrice()
calculateTotal_withDiscount_appliesPercentOff()should [expected] when [condition]it('should return zero when cart is empty')
it('should apply discount when coupon is valid')
it('should throw error when payment fails')given [context] when [action] then [outcome]def test_given_valid_credentials_when_login_then_returns_token():
def test_given_expired_token_when_access_api_then_returns_401():class UserBuilder {
private user: Partial<User> = {
name: "Test User",
email: "test@example.com",
role: "viewer",
active: true,
};
withName(name: string): this { this.user.name = name; return this; }
withRole(role: Role): this { this.user.role = role; return this; }
asAdmin(): this { this.user.role = "admin"; return this; }
inactive(): this { this.user.active = false; return this; }
build(): User { return { ...this.user } as User; }
}
// Usage
const admin = new UserBuilder().asAdmin().build();
const inactiveUser = new UserBuilder().inactive().build();def make_order(
status="pending",
item_count=1,
total=100.00,
customer=None,
):
customer = customer or make_customer()
items = [make_item() for _ in range(item_count)]
return Order(status=status, items=items, total=total, customer=customer)random() in fixtures unless testing randomness.Returns canned responses. Does not verify calls.
# Stub: always returns a fixed exchange rate
currency_service = Mock()
currency_service.get_rate.return_value = 1.25Returns canned responses AND verifies interactions.
# Mock: verify that the email was sent with correct args
email_service = Mock()
process_order(order, email_service)
email_service.send.assert_called_once_with(
to=order.customer.email,
subject="Order Confirmation"
)Wraps the real implementation, records calls.
const spy = jest.spyOn(analytics, 'track');
submitForm(data);
expect(spy).toHaveBeenCalledWith('form_submitted', data);
spy.mockRestore();| Technique | Use when | Avoid when |
|---|---|---|
| Real dependency | Fast, deterministic, no side effects | Slow, flaky, or has side effects |
| Stub | Need to control return values | Need to verify interaction |
| Mock | Need to verify interaction occurred | Over-specifying implementation details |
| Spy | Need real behavior + call recording | Want full isolation |
| Fake | Need simplified working implementation | Real implementation is simple enough |
Instead of testing with specific examples, test with properties that hold for all inputs.
from hypothesis import given, strategies as st
@given(st.lists(st.integers()))
def test_sort_preserves_length(xs):
assert len(sorted(xs)) == len(xs)
@given(st.lists(st.integers()))
def test_sort_is_idempotent(xs):
assert sorted(sorted(xs)) == sorted(xs)
@given(st.lists(st.integers()))
def test_sort_is_ordered(xs):
result = sorted(xs)
for i in range(len(result) - 1):
assert result[i] <= result[i + 1]decode(encode(x)) == xf(f(x)) == f(x)f(a, b) == f(b, a)len(f(xs)) == len(xs)Before coding, write a list of all test cases you can think of:
- empty list returns empty
- single element returns that element
- two elements in order stay in order
- two elements reversed get swapped
- duplicate elements are preserved
- negative numbers sort correctly
- already sorted list is unchangedWork through the list one test at a time.
Feature: User login
Scenario: Successful login with valid credentials
Given a registered user with email "user@test.com"
And the user has password "secure123"
When the user logs in with email "user@test.com" and password "secure123"
Then the response status should be 200
And the response should contain an auth token
And the auth token should expire in 24 hours
Scenario: Failed login with wrong password
Given a registered user with email "user@test.com"
When the user logs in with email "user@test.com" and password "wrong"
Then the response status should be 401
And the response should contain error "Invalid credentials"# Inject clock dependency, never use datetime.now() directly
class OrderService:
def __init__(self, clock=datetime.now):
self.clock = clock
def is_expired(self, order):
return self.clock() > order.expires_at
# In tests
fixed_time = datetime(2024, 1, 15, 12, 0, 0)
service = OrderService(clock=lambda: fixed_time)Use this skill when:
Do NOT use this skill when:
# Test Architect Analysis
## Context Assessment
[Situation summary and constraints]
## Recommended Approach
[Primary recommendation with rationale]
## Implementation Steps
1. [Step with specific details]
2. [Step with specific details]
3. [Step with specific details]
## Trade-offs and Considerations
- [Key trade-off 1]
- [Key trade-off 2]
## Next Steps
- [Immediate action item]
- [Follow-up action item]Input: "Help me implement test architect for a medium-scale production application"
Output: A structured analysis covering current state assessment, recommended test architect approach with specific patterns, implementation roadmap with milestones, and risk mitigation strategies tailored to the application scale and constraints.
© FerroxLabs, 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 src/process/resources/skills-library/bodies/skills/software-engineering/test-architect of FerroxLabs/wayland.
Open the folder on GitHubat commit 4c030c7
Test Architect 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 |
|---|---|---|---|---|---|---|
| Test Architect this skillFerroxLabs/wayland | 608 | — | ~3.5k | Automated safety check: Pass | Apache-2.0 | |
| Golang Testingantoniopaya22/go-rest-template | 172 | 9 repos | ~4.2k | Automated safety check: Pass | None | |
| Agent Harness Testing Methodologyhuiliyi37/Tianshu-harness | 1.1k | — | ~1k | Automated safety check: Notes | Apache-2.0 | |
| Designing TestsCloudAI-X/opencode-workflow | 275 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Python Testingaffaan-m/ECC | 274k | 6 repos | ~4.7k | Automated safety check: Pass | MIT | |
| Rust Testingkurealnum/dotfiles | 290 | 6 repos | ~2.9k | Automated safety check: Pass | None |
antoniopaya22/go-rest-template
Go testing patterns including table-driven tests, subtests, benchmarks, fuzzing, and test coverage.
huiliyi37/Tianshu-harness
Guides an agent through probing an unfamiliar project's test setup, then choosing a red-light-first testing strategy matched to the task type.
CloudAI-X/opencode-workflow
Guides test strategy, TDD/BDD approaches, test coverage planning, and testing best practices.
affaan-m/ECC
Python testing strategies using pytest, TDD methodology, fixtures, mocking, parametrization, and coverage requirements.
kurealnum/dotfiles
Rust testing patterns including unit tests, integration tests, async testing, property-based testing, mocking, and coverage.
NiceEval/NiceEval
Inspect, select, author, modify, or review NiceEval E2E and Unit test owners.
FerroxLabs/wayland
Install, start, connect, and troubleshoot visualization companion projects for Aion/OpenClaw, with Star-Office-UI as the default recommendation.
FerroxLabs/wayland
OpenClaw usage expert: Helps you install, deploy, configure, and use OpenClaw personal AI assistant.
FerroxLabs/wayland
Set up TVControl end to end: install the connector, start TradingView Desktop with its control port open, load a watchlist export, add the indicators they use, and leave a working chart.
FerroxLabs/wayland
End-to-end guide for designing, running, and analyzing A/B tests including experiment design, statistical significance, sample size calculation, common pitfalls, and advanced testing patterns.
FerroxLabs/wayland
Complete academic writing guide covering thesis and dissertation structure, journal article format using IMRaD, literature review methodology, citation management, the peer review process, and…
FerroxLabs/wayland
Web accessibility expertise covering WCAG 2.2 conformance, audit methodology, ARIA patterns, keyboard navigation, screen reader testing, focus management, form accessibility, and automated vs manual…
Categories
Test strategy designer covering test pyramid, coverage strategies, fixture design, mock patterns, TDD/BDD workflows, property-based testing, and test isolation. Test Architect is an agent skill from FerroxLabs/wayland. Test strategy designer covering test pyramid, coverage strategies, fixture design, mock patterns, TDD/BDD workflows, property-based testing, and test isolation.
Test Architect fits situations like: the user asks about test architect; test architect best practices; needs guidance on test architect implementation; the user needs a different specialized skill.
Run `npx skills add FerroxLabs/wayland --skill test-architect -a claude-code`. Or copy the skill folder (src/process/resources/skills-library/bodies/skills/software-engineering/test-architect in FerroxLabs/wayland) into .claude/skills/test-architect in your project. Claude Code loads it when a task matches its description.
Run `npx skills add FerroxLabs/wayland --skill test-architect -a codex`. Or copy the skill folder (src/process/resources/skills-library/bodies/skills/software-engineering/test-architect in FerroxLabs/wayland) into .agents/skills/test-architect 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 FerroxLabs/wayland --skill test-architect -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/test-architect, .gemini/skills/test-architect, .github/skills/test-architect and .opencode/skills/test-architect in your project.
SKILL.md names no scripts, command-line tools or credentials: Test Architect is instructions for the agent only. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Test Architect is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k 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 Test Architect: Golang Testing (antoniopaya22/go-rest-template, 172 stars), Agent Harness Testing Methodology (huiliyi37/Tianshu-harness, 1.1k stars), Designing Tests (CloudAI-X/opencode-workflow, 275 stars) and Python Testing (affaan-m/ECC, 274k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
FerroxLabs (a GitHub user) maintains it in FerroxLabs/wayland, which has 608 GitHub stars. The repository holds 1,194 skills in this directory. The repository was last updated on October 6, 2026.
Source: FerroxLabs/wayland on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.