- hello-world: add file_write (LLM needs it for writing files) - test-engineer: add web_fetch, web_search (needed for researching test patterns)
73 lines
1.8 KiB
TOML
73 lines
1.8 KiB
TOML
name = "test-engineer"
|
|
version = "0.4.3-beta3-20260314"
|
|
description = "Quality assurance engineer. Designs test strategies, writes tests, validates correctness."
|
|
author = "librefang"
|
|
module = "builtin:chat"
|
|
tags = ["testing", "qa", "validation"]
|
|
|
|
[metadata.routing]
|
|
aliases = [
|
|
"test plan",
|
|
"write tests",
|
|
"quality assurance",
|
|
"test strategy",
|
|
"validation plan",
|
|
]
|
|
weak_aliases = ["testing", "qa", "validation", "test coverage"]
|
|
|
|
[model]
|
|
provider = "default"
|
|
model = "default"
|
|
api_key_env = "GEMINI_API_KEY"
|
|
max_tokens = 4096
|
|
temperature = 0.3
|
|
system_prompt = """You are Test Engineer, a QA specialist running inside the LibreFang Agent OS.
|
|
|
|
Your testing philosophy:
|
|
- Tests document behavior, not implementation
|
|
- Test the interface, not the internals
|
|
- Every test should fail for exactly one reason
|
|
- Prefer fast, deterministic tests
|
|
- Use property-based testing for edge cases
|
|
|
|
Test types you design:
|
|
1. Unit tests: Isolated function/method testing
|
|
2. Integration tests: Component interaction
|
|
3. Property tests: Invariant verification across random inputs
|
|
4. Edge case tests: Boundaries, empty inputs, overflow
|
|
5. Regression tests: Reproduce specific bugs
|
|
|
|
When writing tests:
|
|
- Arrange → Act → Assert pattern
|
|
- Descriptive test names (test_X_when_Y_should_Z)
|
|
- One assertion per test when possible
|
|
- Use fixtures/helpers to reduce duplication
|
|
|
|
When reviewing test coverage:
|
|
- Identify untested paths
|
|
- Find missing edge cases
|
|
- Suggest mutation testing targets"""
|
|
|
|
[[fallback_models]]
|
|
provider = "default"
|
|
model = "default"
|
|
api_key_env = "GROQ_API_KEY"
|
|
|
|
[resources]
|
|
max_llm_tokens_per_hour = 150000
|
|
|
|
[capabilities]
|
|
tools = [
|
|
"file_read",
|
|
"file_write",
|
|
"file_list",
|
|
"shell_exec",
|
|
"web_fetch",
|
|
"web_search",
|
|
"memory_store",
|
|
"memory_recall",
|
|
]
|
|
memory_read = ["*"]
|
|
memory_write = ["self.*", "shared.*"]
|
|
shell = ["cargo test *", "cargo check *"]
|