Skip to content

Add dynamo-build-tests and dynamo-run-tests agent skills#17044

Open
jasonstratton wants to merge 3 commits intoDynamoDS:masterfrom
jasonstratton:master
Open

Add dynamo-build-tests and dynamo-run-tests agent skills#17044
jasonstratton wants to merge 3 commits intoDynamoDS:masterfrom
jasonstratton:master

Conversation

@jasonstratton
Copy link
Copy Markdown
Contributor

Purpose

Adds two new agent skills to fill the operational gap in build and test tooling guidance. No existing skill covered the concrete commands, flag sequences, and failure patterns needed to build and run tests in this repo.

dynamo-build-tests (.agents/skills/dynamo-build-tests/SKILL.md)

  • Resolves tool paths from the reference_build_tools.md memory file before searching
  • Preferred approach: dotnet build --no-dependencies (avoids MSB4803 satellite assembly errors from DynamoUnits/DesignScriptBuiltin)
  • Falls back to MSBuild with correctly quoted args (prevents bash from interpreting /p: as a path)
  • Documents known pre-existing errors to filter out (MSB4803, MSB3030)
  • Lists all common test projects and their coverage areas

dynamo-run-tests (.agents/skills/dynamo-run-tests/SKILL.md)

  • Always uses --no-restore --no-build to avoid triggering satellite assembly errors
  • Documents --filter syntax, verbosity levels, and how to interpret results
  • Troubleshooting table covering "discovered 0 of 0", stale DLLs, and filter mismatches
  • Links back to dynamo-build-tests for the rebuild step

Both skills cross-reference each other and dynamo-unit-testing. Index entries added to AGENTS.md and .agents/README.md (Quick Reference table, parity matrix, and folder structure).

These skills do not overlap with existing ones — dynamo-onboarding, dynamo-dotnet-expert, dynamo-unit-testing, and dynamo-dotnet-janitor all reference building/testing only in passing with no operational detail.

Declarations

Check these if you believe they are true

Release Notes

N/A — agent skill additions, no product code changes.

Reviewers

(FILL ME IN)

FYIs

(FILL ME IN, Optional)

  dynamo-build-tests (.agents/skills/dynamo-build-tests/SKILL.md)
  - Workflow: resolve tool paths from memory, build with dotnet build --no-dependencies (preferred), fall back to MSBuild
  - Documents the --no-dependencies trick that avoids the satellite assembly errors
  - Lists common test projects and their coverage areas

  dynamo-run-tests (.agents/skills/dynamo-run-tests/SKILL.md)
  - Workflow: ensure DLL is current, run with dotnet test --no-build, interpret results
  - Documents filter syntax, verbosity levels, and troubleshooting (e.g. "discovered 0 of 0")
  - Links back to build skill for the rebuild step

These skills do not overlap with the others.

 The two new skills cover the operational gap: the concrete flag sequences, the --no-dependencies trick, the known pre-existing errors to ignore, the stale DLL problem, and the tool path lookup pattern. None of the existing skills go anywhere near that.
Copilot AI review requested due to automatic review settings April 10, 2026 17:38
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds two new Dynamo agent skills focused on practical build/test execution guidance, and indexes them in the agent documentation.

Changes:

  • Added new skill docs: dynamo-build-tests and dynamo-run-tests with workflows, commands, and troubleshooting guidance.
  • Updated AGENTS.md to list the two new skills.
  • Updated .agents/README.md parity matrix, quick reference, and folder structure to include the new skills.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.

File Description
AGENTS.md Adds entries for the new build/tests skills in the skills index.
.agents/skills/dynamo-build-tests/SKILL.md New skill documenting how to build test projects (dotnet build + MSBuild fallback).
.agents/skills/dynamo-run-tests/SKILL.md New skill documenting how to run NUnit tests via dotnet test with filters and troubleshooting.
.agents/README.md Registers the new skills in the parity matrix, quick reference, and folder structure sections.

Comment thread .agents/skills/dynamo-build-tests/SKILL.md
Comment thread .agents/skills/dynamo-build-tests/SKILL.md Outdated
Comment thread .agents/skills/dynamo-build-tests/SKILL.md Outdated
Comment thread .agents/skills/dynamo-run-tests/SKILL.md
Comment thread .agents/skills/dynamo-run-tests/SKILL.md Outdated
jasonstratton and others added 2 commits April 10, 2026 13:44
…n names

The skill validator rejects internal links that escape the skill
directory (../other-skill/SKILL.md). Replaced all such links in
dynamo-build-tests and dynamo-run-tests with backtick skill name
references instead.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…tests

- Remove hardcoded tool paths; use <MSBuildPath> and <DotNetPath>
  placeholders resolved from memory file or vswhere/where dotnet
- Prefer MSBuild over dotnet build (repo standard); dotnet build
  --no-dependencies is now the fallback
- Clarify --no-dependencies failure case: rebuild production project
  then test project, both with --no-dependencies
- Fix VisualizationTests -> WpfVisualizationTests in both skills,
  with note about directory/project name mismatch
- Move OR filter example out of markdown table into a code block
  to avoid escaped pipe being copied literally
- Move "Finding test projects" into the dynamo-run-tests workflow
  as step 2, before "Ensure the DLL is current"
- Fix duplicate step 3 numbering in dynamo-run-tests

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jasonstratton
Copy link
Copy Markdown
Contributor Author

Addressed all Copilot review comments:

  • Hardcoded tool paths (comments 1 & 2): Removed all hardcoded paths. <MSBuildPath> and <DotNetPath> are now placeholders resolved at runtime from the Claude Code memory file or via vswhere/where dotnet. The reference_build_tools.md memory file is called out as Claude Code-specific and not part of the repo.
  • MSBuild vs dotnet: Restructured dynamo-build-tests to prefer MSBuild (the repo standard); dotnet build --no-dependencies is now the documented fallback, with a clear two-step recovery when dependency DLLs are missing.
  • VisualizationTestsWpfVisualizationTests (comments 3 & 5): Fixed in both skills. Replaced the static project tables entirely with a find test -name "*.csproj" | sort discovery command, with a note about the directory/assembly name mismatch for visualization tests.
  • OR filter escaped pipe (comment 4): Moved the OR filter example out of the markdown table into a fenced code block with a literal |.

Additional improvements made during review:

  • dynamo-run-tests workflow restructured into 5 explicit steps: resolve path → find project → ensure DLL current → run tests → interpret results.
  • Duplicate step numbering fixed.

@sonarqubecloud
Copy link
Copy Markdown

@jasonstratton jasonstratton requested a review from a team April 10, 2026 18:12
Copy link
Copy Markdown
Contributor

@aparajit-pratap aparajit-pratap left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jasonstratton from what I read about using skills in ClaudeCode, I believe they are portable to CC only if the skills are in .claude/skills. Therefore, IMO, we should create this directory and mirror the .agents/skills in it - add lightweight wrappers that point to the main skill content from .claude/skills -> .agents/skills.

Comment thread .agents/README.md
| `dynamo-ecosystem-reviewer` | Loaded directly from `.agents/skills/dynamo-ecosystem-reviewer/SKILL.md` | Wrapper: `.github/agents/dynamo-ecosystem-reviewer.agent.md` | Loaded directly from `.agents/skills/dynamo-ecosystem-reviewer/SKILL.md` |
| `dynamo-onboarding` | Loaded directly from `.agents/skills/dynamo-onboarding/SKILL.md` | Wrapper: `.github/agents/dynamo-onboarding.agent.md` | Loaded directly from `.agents/skills/dynamo-onboarding/SKILL.md` |
| `dynamo-pr-description` | Loaded directly from `.agents/skills/dynamo-pr-description/SKILL.md` | Wrapper: `.github/agents/dynamo-pr-description.agent.md` | Loaded directly from `.agents/skills/dynamo-pr-description/SKILL.md` |
| `dynamo-run-tests` | Loaded directly from `.agents/skills/dynamo-run-tests/SKILL.md` | — | Loaded directly from `.agents/skills/dynamo-run-tests/SKILL.md` |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Loaded directly ... is repeated twice?

@aparajit-pratap
Copy link
Copy Markdown
Contributor

aparajit-pratap commented Apr 10, 2026

@jasonstratton from what I read about using skills in ClaudeCode, I believe they are portable to CC only if the skills are in .claude/skills. Therefore, IMO, we should create this directory and mirror the .agents/skills in it - add lightweight wrappers that point to the main skill content from .claude/skills -> .agents/skills.

This is what I'm talking about. This list doesn't appear using slash commands directly unless you do the above. Not that you have to do this (at least not as part of this PR; definitely not); I just wanted to confirm with you as this was one of my sources of confusion regarding skills.

image

@avidit
Copy link
Copy Markdown
Contributor

avidit commented Apr 13, 2026

@aparajit-pratap We have another repo https://github.com/DynamoDS/skills which is structured as a claude plugin, that is makes install and update very and also makes it easy to launch the skills as slash commands. Can you try it out and let me know if it works https://dynamods.github.io/skills/

If that makes things easier, we can add these skills to the shared skills repo. FYI @jasonstratton

@aparajit-pratap
Copy link
Copy Markdown
Contributor

@aparajit-pratap We have another repo https://github.com/DynamoDS/skills which is structured as a claude plugin, that is makes install and update very and also makes it easy to launch the skills as slash commands. Can you try it out and let me know if it works https://dynamods.github.io/skills/

If that makes things easier, we can add these skills to the shared skills repo. FYI @jasonstratton

@avidit, thanks. I will check https://github.com/DynamoDS/skills out the next time I send a PR. However, I believe these skills here are specific to the Dynamo repo, not the whole DynamoDS org, unlike the skills repo, so IMO it make sense to keep them here.

@jasonstratton
Copy link
Copy Markdown
Contributor Author

@aparajit-pratap , very sorry for any confusion. I was just adding to what I thought @QilongTang had established ... and I was able to use them in Claude.

Thank you @avidit for your help and clarifications.

I will dig into it a little deeper and speak with Aaron for best course. I figured the PR may/may not get approved, but I was throwing out the skills as suggestions. I did find it helpful when working with Claude. I could tell it to go ahead and build/run the tests while I went ahead and tested manually. So we were working in parallel and it was a pretty good workflow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants