mirror of
https://github.com/dotnet/skills.git
synced 2026-09-20 09:49:54 +08:00
77154137e8
* dotnet-test: make code-testing agent tools declarations Claude Code-compatible PR #847 added `tools: ["agent", "skill", "read", "search", "edit", "execute"]` to the code-testing-* agents to enable VS Code / Copilot CLI subagent fan-out. Those lowercase aliases map to real tools in VS Code and the Copilot CLI, but Claude Code matches `tools:` against its own vocabulary (Task, Skill, Read, Glob, Grep, Edit, Write, Bash). None of the aliases matched, so when these agents are loaded into Claude Code via --plugin-dir and selected with `claude --agent`, the agent was granted ZERO tools. A tool-less model asked to generate tests emits a textual <tool_call> block and exits after one turn, producing no file changes. Append the Claude Code tool names to each agent's `tools:` list so the same declaration works across all three runtimes (each honors the names it knows and ignores the foreign ones): - Orchestrators (generator, implementer): add Task, Skill, Read, Glob, Grep, Edit, Write, Bash (Task is the Claude Code equivalent of the `agent` fan-out tool). - Workers (researcher, planner, builder, tester, fixer, linter): add Skill, Read, Glob, Grep, Edit, Write, Bash. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * skill-validator: complete built-in tools + add cross-host tool portability check Two related follow-ups to the agent tools fix: 1. Address the skill-check review feedback. The validator's BuiltInTools set was missing three legitimate host tool spellings that are not case-insensitive matches of existing entries, so they were flagged as non-built-in: - "write" — Claude Code file-creation tool (Copilot CLI / VS Code: "create") - "agent" — Copilot CLI / VS Code subagent fan-out tool (Claude Code: "task") - "execute" — Copilot CLI / VS Code run-command tool (Claude Code: "bash") "agent" and "execute" were already flagged before this branch (introduced by the fan-out PR); adding them to BuiltInTools clears the pre-existing warnings. 2. Add a cross-host tool portability check (CheckAgentToolPortability) so an agent that declares a capability for only one host is flagged. Tool names are matched case-sensitively (hosts resolve tools by exact spelling), so an agent that lists e.g. only "edit" (Copilot / VS Code) without "Edit"/"Write" (Claude Code) is reported as working on one host and silently tool-less on the other. Findings are advisory (do not fail CI) and allowlistable via "agent-tool-portability:AGENT:capability". Wired into the agents loop in CheckCommand and covered by unit tests. Also make the one existing single-host agent (optimizing-dotnet-performance) portable by adding its Claude Code tool spellings, so the new check reports a clean tree. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2.2 KiB
2.2 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 |