Skip to content

Commit d5c09e2

Browse files
aviditQilongTang
andauthored
DYN-10279 Add workflow - validate-skills (#16961)
Co-authored-by: Aaron (Qilong) <173288704@qq.com>
1 parent e501a4b commit d5c09e2

34 files changed

Lines changed: 269 additions & 207 deletions

.agents/README.md

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ Use the wrapper sync script to keep `.github/agents/` aligned with canonical ski
1515

1616
```powershell
1717
# Regenerate wrappers from canonical skills
18-
./tools/agents/sync-agent-wrappers.ps1
18+
./.github/scripts/sync_agent_wrappers.ps1
1919
2020
# Validate wrappers are in sync (non-zero exit code on drift)
21-
./tools/agents/sync-agent-wrappers.ps1 -Check
21+
./.github/scripts/sync_agent_wrappers.ps1 -Check
2222
2323
# Print a compact diagnostics summary (does not change pass/fail)
24-
./tools/agents/sync-agent-wrappers.ps1 -Check -VerboseReport
24+
./.github/scripts/sync_agent_wrappers.ps1 -Check -VerboseReport
2525
```
2626

2727
Check mode validates:
@@ -43,7 +43,7 @@ This matrix documents how canonical skills in `.agents/skills/` are exposed in e
4343

4444
Notes:
4545
- Skill logic lives only in `.agents/skills/`.
46-
- Copilot wrappers are generated/validated by `tools/agents/sync-agent-wrappers.ps1`.
46+
- Copilot wrappers are generated/validated by `.github/scripts/sync_agent_wrappers.ps1`.
4747
- If mirrors differ from canonical files, canonical files win.
4848

4949
## Quick Reference
@@ -86,16 +86,19 @@ Templates are co-located inside the skill folder that uses them:
8686
│ ├── dynamo-onboarding/
8787
│ │ └── SKILL.md
8888
│ ├── dynamo-pr-description/
89-
│ │ ── SKILL.md ← workflow for writing PR descriptions
89+
│ │ ── SKILL.md
9090
│ ├── dynamo-jira-ticket/
91-
│ │ ├── SKILL.md ← workflow for writing Jira tickets
92-
│ │ └── template.md ← copy/paste Jira template
91+
│ │ ├── SKILL.md
92+
│ │ └── assets/
93+
│ │ └── template.md ← copy/paste Jira template
9394
│ ├── dynamo-skill-writer/
94-
│ │ └── SKILL.md ← workflow for authoring and syncing skills
95+
│ │ └── SKILL.md
9596
│ └── dynamo-unit-testing/
96-
│ ├── SKILL.md ← workflow for writing tests
97-
│ ├── test-patterns.md ← code templates & examples
98-
│ └── quality-checklist.md ← guidelines & best practices
97+
│ ├── SKILL.md
98+
│ ├── assets/
99+
│ │ └── test-patterns.md ← code templates & examples
100+
│ └── references/
101+
│ └── quality-checklist.md ← guidelines & best practices
99102
├── rules/
100103
│ └── dynamo-core-rules.md
101104
└── README.md ← you are here

.agents/skills/dynamo-dotnet-expert/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: dynamo-dotnet-expert
33
description: Write and review C#/.NET code in Dynamo following Dynamo coding standards, modern C# patterns, and repo conventions. Use this skill whenever writing C# code, reviewing a PR diff, designing types, managing PublicAPI surface files, choosing patterns, making performance decisions, or refactoring in the Dynamo codebase. Also use when asking about NUnit testing, async patterns, error handling, immutability, or security in Dynamo.
44
---
55

6-
# Dynamo .NET Expert
6+
# Dynamo dotNet Expert
77

88
## When to use
99

.agents/skills/dynamo-jira-ticket/SKILL.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: dynamo-jira-ticket
33
description: Create structured Jira tickets for Dynamo from bug reports, failing tests, or feature requests. Use this skill whenever writing a Jira ticket, triaging a bug, turning a vague issue into an actionable ticket, or writing acceptance criteria. Also use when the user mentions "file a ticket", "write a bug report", or "create a Jira issue" for Dynamo.
44
---
55

6-
# Dynamo Jira Ticket Writer
6+
# Dynamo Jira Ticket
77

88
## When to use
99

@@ -22,7 +22,7 @@ A bug description, error log, failing test output, feature request, or code inve
2222

2323
## Output format
2424

25-
A complete Jira ticket body ready to paste, following the canonical template in `template.md`.
25+
A complete Jira ticket body ready to paste, following the canonical template in [template](./assets/template.md).
2626

2727
---
2828

@@ -34,7 +34,7 @@ A complete Jira ticket body ready to paste, following the canonical template in
3434
- For UI issues: check `src/DynamoCoreWpf/` and the relevant view extension.
3535
- For PublicAPI errors: check `PublicAPI.Unshipped.txt` / `PublicAPI.Shipped.txt` in the affected project.
3636
- For test failures: read the NUnit test output and the relevant test file.
37-
2. **Write the ticket** using `template.md` in this folder.
37+
2. **Write the ticket** using `./assets/template.md` in this folder.
3838
3. **Review** -- ensure every section has concrete, verifiable content. No vague language.
3939

4040
## Writing Rules
@@ -47,7 +47,7 @@ A complete Jira ticket body ready to paste, following the canonical template in
4747

4848
## Ticket Template
4949

50-
Use the canonical template at `template.md` in this folder.
50+
Use the canonical template at `./assets/template.md` in this folder.
5151

5252
Required sections in each generated ticket:
5353
- Title
File renamed without changes.

.agents/skills/dynamo-pr-description/SKILL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: dynamo-pr-description
33
description: Generate PR descriptions for Dynamo that align with the team template section names and order. Use this skill whenever writing a pull request description, cleaning up a PR body, or generating a review-ready summary from a diff in the Dynamo repo. Also use when the user says "write a PR", "PR description", or "prep this for review."
44
---
55

6-
# Dynamo PR Description Writer
6+
# Dynamo PR Description
77

88
## When to use
99

@@ -14,7 +14,7 @@ description: Generate PR descriptions for Dynamo that align with the team templa
1414
## When not to use
1515

1616
- PRs targeting the DynamoMCP repo -- that repo has its own PR description skill.
17-
- Jira ticket triage -- use [template](../dynamo-jira-ticket/template.md) instead.
17+
- Jira ticket triage -- use [template](../dynamo-jira-ticket/assets/template.md) instead.
1818

1919
## Inputs expected
2020

.agents/skills/dynamo-skill-writer/SKILL.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ A request to add/update a skill, or a request to sync skill surfaces across Copi
2525

2626
A concrete set of file edits and validation steps that:
2727
- updates canonical skill content in `.agents/skills/`
28-
- updates sync metadata in `tools/agents/sync-agent-wrappers.ps1` when Copilot exposure is needed
28+
- updates sync metadata in `.github/scripts/sync_agent_wrappers.ps1` when Copilot exposure is needed
2929
- regenerates and validates wrappers in `.github/agents/`
3030
- updates index/docs references in `.agents/README.md`, `.github/copilot-instructions.md`, and `CLAUDE.md` when applicable
3131

@@ -35,11 +35,11 @@ A concrete set of file edits and validation steps that:
3535

3636
1. Determine whether this is a **new skill** or an **update to an existing skill**.
3737
2. Author or update canonical content in `.agents/skills/<skill-name>/SKILL.md`.
38-
3. If the skill should be available as a Copilot agent, add an entry to the wrapper map in `tools/agents/sync-agent-wrappers.ps1`.
38+
3. If the skill should be available as a Copilot agent, add an entry to the `canonicalSkills` array in `.github/scripts/sync_agent_wrappers.ps1`.
3939
4. Regenerate wrappers:
40-
- `./tools/agents/sync-agent-wrappers.ps1`
40+
- `./.github/scripts/sync_agent_wrappers.ps1`
4141
5. Validate sync:
42-
- `./tools/agents/sync-agent-wrappers.ps1 -Check -VerboseReport`
42+
- `./.github/scripts/sync_agent_wrappers.ps1 -Check -VerboseReport`
4343
6. Update discovery docs when skill inventory changed:
4444
- `.agents/README.md`
4545
- `.github/copilot-instructions.md`
@@ -59,9 +59,9 @@ A concrete set of file edits and validation steps that:
5959
- [ ] Created `.agents/skills/<skill-name>/SKILL.md` with frontmatter (`name`, `description`)
6060
- [ ] Added skill to `.agents/README.md` Quick Reference table
6161
- [ ] Added skill to `.agents/README.md` parity matrix (if cross-tool surfaced)
62-
- [ ] Added skill to `tools/agents/sync-agent-wrappers.ps1` wrapper map (if Copilot surfaced)
62+
- [ ] Added skill to `.github/scripts/sync_agent_wrappers.ps1` wrapper map (if Copilot surfaced)
6363
- [ ] Regenerated `.github/agents/*` wrappers
64-
- [ ] Ran `./tools/agents/sync-agent-wrappers.ps1 -Check -VerboseReport`
64+
- [ ] Ran `./.github/scripts/sync_agent_wrappers.ps1 -Check -VerboseReport`
6565
- [ ] Updated `.github/copilot-instructions.md` skill list
6666
- [ ] Updated `CLAUDE.md` skill list
6767

.agents/skills/dynamo-unit-testing/SKILL.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Complete test classes with proper setup, test methods using Dynamo patterns, and
2828

2929
## Workflow
3030

31-
> 🚀 **Quick Start**: [test-patterns.md](test-patterns.md) has ready-to-use templates
31+
> 🚀 **Quick Start**: [test-patterns.md](./assets/test-patterns.md) has ready-to-use templates
3232
3333
### 1. Choose Your Base Class
3434
Select the appropriate test base class based on what you're testing:
@@ -37,7 +37,6 @@ Select the appropriate test base class based on what you're testing:
3737
- **DSEvaluationUnitTestBase** - DesignScript expression evaluation
3838

3939
### 2. Apply Testing Standards
40-
Follow NUnit conventions and Dynamo patterns. See [quality-checklist.md](quality-checklist.md) for guidelines and anti-patterns and Dynamo coding standards for general coding practices.
4140
- [Dynamo Coding Standards](https://github.com/DynamoDS/Dynamo/wiki/Coding-Standards)
4241
- [Dynamo Naming Standards](https://github.com/DynamoDS/Dynamo/wiki/Naming-Standards)
4342

@@ -53,8 +52,8 @@ One behavior per test, descriptive names, Arrange-Act-Assert structure.
5352
## Documentation
5453

5554
**Assets & References:**
56-
- **[test-patterns.md](test-patterns.md)** - Base classes, code templates, common scenarios, complete examples
57-
- **[quality-checklist.md](quality-checklist.md)** - Quality guidelines, anti-patterns, best practices
55+
- **[test-patterns.md](./assets/test-patterns.md)** - Base classes, code templates, common scenarios, complete examples
56+
- **[quality-checklist.md](./references/quality-checklist.md)** - Quality guidelines, anti-patterns, best practices
5857

5958
**Related Skills:**
6059
[dynamo-dotnet-expert](../dynamo-dotnet-expert/SKILL.md)[dynamo-onboarding](../dynamo-onboarding/SKILL.md)

.agents/skills/dynamo-unit-testing/test-patterns.md renamed to .agents/skills/dynamo-unit-testing/assets/test-patterns.md

File renamed without changes.

.agents/skills/dynamo-unit-testing/quality-checklist.md renamed to .agents/skills/dynamo-unit-testing/references/quality-checklist.md

File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)