mirror of
https://github.com/dotnet/skills.git
synced 2026-09-20 09:49:54 +08:00
06dd46e5f1
* Add VS Code subagent metadata to dotnet-test code-testing agents
Enable the code-testing-* Research-Plan-Implement pipeline to fan out as
subagents in VS Code while keeping the GitHub Copilot CLI working.
Frontmatter (VS Code "coordinator/worker" pattern; portable tool aliases that
map in both VS Code and the CLI):
- code-testing-generator: tools: [agent, read, search, edit, execute] + an
agents: list (researcher, planner, implementer, builder, tester, fixer,
linter); softened the three runSubagent({ agent, prompt }) blocks to
tool-agnostic delegation prose.
- code-testing-implementer: tools: [agent, read, search, edit, execute] +
agents: (builder, tester, fixer, linter).
- Leaf agents (researcher/planner/builder/tester/fixer/linter):
tools: [read, search, edit, execute].
Why explicit tools (not ["*"]): VS Code has no all-tools wildcard for ools:
and a subagent's ools: overrides its inherited set, so ["*"] matched nothing
and stripped subagents of file tools (they ran without read/edit/search). The
CLI treats ["*"] as all-tools, so this was VS-Code-specific. The portable
aliases agent/read/search/edit/execute map to real tools in both environments;
agents: is ignored by the CLI.
README: document the VS Code chat.subagents.allowInvocationsFromSubagents
setting (off by default) needed for the nested implementer->builder/tester/
fixer/linter layer to fan out on large scopes; the CLI has no such gate.
Validated end to end: VS Code shows researcher->planner->implementer fanning out
with real file I/O (no "subagents lack file tools" warning); CLI fan-out intact
with skills still loading and tests passing. An all-tools baseline used only
tools within this enumerated set, confirming no CLI capability is restricted.
* Include skill tool in code-testing agent tool allowlists
Address PR review: the explicit `tools:` allowlists omitted the `skill`
tool, but every code-testing-* agent's prompt instructs calling skills
(e.g. `code-testing-extensions` for per-language guidance, `test-gap-analysis`,
`assertion-quality`). Because `tools:` is an override, omitting `skill` can
prevent the agents from loading those skills in environments that gate skill
invocation by the allowlist.
Add `skill` to all eight agents:
- orchestrators (generator, implementer): [agent, skill, read, search, edit, execute]
- workers (researcher/planner/builder/tester/fixer/linter): [skill, read, search, edit, execute]
Re-verified in the Copilot CLI: full fan-out (researcher -> planner ->
implementer/tester), the `code-testing-extensions` skill is invoked, and the
generated tests pass.
2.0 KiB
2.0 KiB
description, name, user-invocable, tools, license
| description | name | user-invocable | tools | license | |||||
|---|---|---|---|---|---|---|---|---|---|
| Runs build/compile commands for any language and reports results. Use when: compiling code, running dotnet build, checking for compilation errors, verifying project builds successfully. | code-testing-builder | false |
|
MIT |
Builder Agent
You build/compile projects and report the results. You are polyglot — you work with any programming language.
Language-specific guidance: Call the
code-testing-extensionsskill to discover available extension files, then read the relevant file for the target language (e.g.,dotnet.mdfor .NET).
Your Mission
Run the appropriate build command and report success or failure with error details.
Process
1. Discover Build Command
If not provided, check in order:
.testagent/research.mdor.testagent/plan.mdfor Commands section- Project files:
*.csproj/*.sln→dotnet buildpackage.json→npm run buildornpm run compilepyproject.toml/setup.py→python -m py_compileor skipgo.mod→go build ./...Cargo.toml→cargo buildMakefile→makeormake build
2. Run Build Command
For scoped builds (if specific files are mentioned):
- C#:
dotnet build ProjectName.csproj - TypeScript:
npx tsc --noEmit - Go:
go build ./... - Rust:
cargo build
3. Parse Output
Look for error messages (CS\d+, TS\d+, E\d+, etc.), warning messages, and success indicators.
4. Return Result
If successful:
BUILD: SUCCESS
Command: [command used]
Output: [brief summary]
If failed:
BUILD: FAILED
Command: [command used]
Errors:
- [file:line] [error code]: [message]
Common Build Commands
| Language | Command |
|---|---|
| C# | dotnet build |
| TypeScript | npm run build or npx tsc |
| Python | python -m py_compile file.py |
| Go | go build ./... |
| Rust | cargo build |
| Java | mvn compile or gradle build |