Skip to content

Commit a39e295

Browse files
committed
Add Waza skill quality CI
1 parent f13cfd7 commit a39e295

94 files changed

Lines changed: 946 additions & 883 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/catalog-check.yml

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ on:
77
jobs:
88
check:
99
runs-on: ubuntu-latest
10+
env:
11+
WAZA_VERSION: v0.31.0
1012

1113
steps:
1214
- name: Check out repository
@@ -23,8 +25,18 @@ jobs:
2325
curl -fsSL https://carvel.dev/install.sh | K14SIO_INSTALL_BIN_DIR="$PWD/.tools" bash
2426
echo "$PWD/.tools" >> "$GITHUB_PATH"
2527
28+
- name: Install Waza CI checker
29+
run: |
30+
mkdir -p .tools
31+
curl -fsSL -o .tools/waza-linux-amd64 "https://github.com/microsoft/waza/releases/download/${WAZA_VERSION}/waza-linux-amd64"
32+
curl -fsSL -o .tools/waza-checksums.txt "https://github.com/microsoft/waza/releases/download/${WAZA_VERSION}/checksums.txt"
33+
(cd .tools && grep 'waza-linux-amd64' waza-checksums.txt | sha256sum -c --status)
34+
mv .tools/waza-linux-amd64 .tools/waza
35+
chmod +x .tools/waza
36+
echo "$PWD/.tools" >> "$GITHUB_PATH"
37+
2638
- name: Validate automation scripts
27-
run: python3 -m py_compile scripts/generate_catalog.py scripts/generate_catalog_definitions.py scripts/generate_agent_catalog.py scripts/generate_release_notes.py scripts/import_external_catalog_sources.py scripts/upstream_watch.py
39+
run: python3 -m py_compile scripts/generate_catalog.py scripts/generate_catalog_definitions.py scripts/generate_agent_catalog.py scripts/generate_release_notes.py scripts/import_external_catalog_sources.py scripts/upstream_watch.py scripts/waza_skill_quality.py
2840

2941
- name: Run automation regression tests
3042
run: python3 -m unittest discover -s scripts/tests -p 'test_*.py'
@@ -43,9 +55,19 @@ jobs:
4355
python3 scripts/generate_catalog.py --validate-only
4456
python3 scripts/generate_agent_catalog.py --validate-only
4557
58+
- name: Run Waza skill quality report
59+
run: python3 scripts/waza_skill_quality.py
60+
4661
- name: Validate upstream watch config
4762
run: python3 scripts/upstream_watch.py --validate-config
4863

64+
- name: Upload Waza skill quality report
65+
if: always()
66+
uses: actions/upload-artifact@v4
67+
with:
68+
name: waza-skill-quality
69+
path: artifacts/waza-skill-quality/
70+
4971
- name: Validate upstream watch JSON
5072
run: |
5173
python3 - <<'PY'

.waza.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
tokens:
2+
warningThreshold: 3500
3+
fallbackLimit: 5000
4+
limits:
5+
defaults:
6+
"catalog/**/SKILL.md": 5000
7+
"catalog/**/AGENT.md": 3000
8+
"catalog/**/references/**/*.md": 5000
9+
"agents/**/AGENT.md": 3000
10+
"*.md": 3000

AGENTS.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ Update this file when the user gives:
7474

7575
Treat explicit frustration, swearing, sarcasm, repeated rejection, or "don't do this again" as strong signals that a durable rule should likely be captured here.
7676

77+
- Waza is a repository CI quality-check dependency for evaluating catalog skill quality. Do not add Waza as a catalog skill, package, tool entry, install bundle, or public catalog surface.
78+
7779
- The repo is moving away from the repo-authored `dotnet-*` skill-id namespace. Prefer clean canonical skill ids without the `dotnet-` prefix for repo-authored skills, and when renaming public skill ids, do a clean cutover instead of keeping backward-compatible legacy aliases unless the user explicitly asks for a compatibility bridge.
7880

7981
- For interactive CLI UX changes in the publishable tools, run a dedicated Claude-led design pass before finalizing the console presentation.

README.md

Lines changed: 86 additions & 86 deletions
Large diffs are not rendered by default.

catalog/Frameworks/ASP.NET-Core/skills/aspnet-core/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: aspnet-core
3-
description: "Build, debug, modernize, or review ASP.NET Core applications with correct hosting, middleware, security, configuration, logging, and deployment patterns on current .NET."
3+
description: "Build, debug, modernize, or review ASP.NET Core applications with correct hosting, middleware, security, configuration, logging, and deployment patterns on current .NET. USE FOR: working on ASP.NET Core apps, services, or middleware; changing auth, routing, configuration, hosting, or deployment behavior; deciding between ASP.NET Core sub-stacks. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made."
44
compatibility: "Requires an ASP.NET Core project or solution."
55
---
66

catalog/Frameworks/Aspire/skills/aspire/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: aspire
3-
description: "Build, upgrade, and operate .NET Aspire 13.2.x application hosts with current CLI, AppHost, ServiceDefaults, integrations, dashboard, testing, and Azure deployment patterns for distributed apps."
3+
description: "Build, upgrade, and operate .NET Aspire 13.2.x application hosts with current CLI, AppHost, ServiceDefaults, integrations, dashboard, testing, and Azure deployment patterns for distributed apps. USE FOR: Aspire.AppHost.Sdk, Aspire.Hosting.*, DistributedApplication.CreateBuilder, WithReference, WaitFor, AddProject, AddRedis, AddPostgres, aspire run, aspire init, aspire. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made."
44
compatibility: "Best for current Aspire 13.2.x tooling on .NET 10; use version-aware upgrade guidance for older 8.x or 9.x Aspire solutions."
55
---
66

catalog/Frameworks/Azure-Functions/skills/azure-functions/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: azure-functions
3-
description: "Build, review, or migrate Azure Functions in .NET with correct execution model, isolated worker setup, bindings, DI, and Durable Functions patterns."
3+
description: "Build, review, or migrate Azure Functions in .NET with correct execution model, isolated worker setup, bindings, DI, and Durable Functions patterns. USE FOR: working on Azure Functions in .NET; migrating from the in-process model to the isolated worker model; adding Durable Functions, bindings, or host configuration. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made."
44
compatibility: "Requires an Azure Functions project or a migration plan for one."
55
---
66

catalog/Frameworks/Blazor/skills/blazor/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: blazor
3-
description: "Build and review Blazor applications across server, WebAssembly, web app, and hybrid scenarios with correct component design, state flow, rendering, and hosting choices."
3+
description: "Build and review Blazor applications across server, WebAssembly, web app, and hybrid scenarios with correct component design, state flow, rendering, and hosting choices. USE FOR: building interactive web UIs with C# instead of JavaScript; choosing between Server, WebAssembly, or Auto render modes; designing component hierarchies and state. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made."
44
compatibility: "Requires Blazor project (.NET 6+, preferably .NET 8+ for unified model)."
55
---
66

catalog/Frameworks/Entity-Framework-6/skills/entity-framework6/SKILL.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: entity-framework6
3-
description: "Maintain or migrate EF6-based applications with realistic guidance on what to keep, what to modernize, and when EF Core is or is not the right next step. Use when working in an EF6 codebase or planning a data layer migration."
3+
description: "Maintain or migrate EF6-based applications with realistic guidance on what to keep, what to modernize, and when EF Core is or is not the right next step. USE FOR: EF6 codebases; runtime versus ORM migration decisions; EDMX, code-first, ObjectContext, and legacy data-access review. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made."
44
compatibility: "Requires EF6 or a transition plan from EF6 to EF Core or modern .NET."
55
---
66

@@ -34,12 +34,12 @@ compatibility: "Requires EF6 or a transition plan from EF6 to EF Core or modern
3434
| EF6 → EF Core | Clean data layer, no EDMX, minimal stored-procedure mapping |
3535

3636
3. **For maintenance work** — keep EF6 stable:
37-
- use repository + unit of work patterns to isolate data access (see references/patterns.md)
37+
- use repository + unit of work patterns to isolate data access (see [references/patterns.md](references/patterns.md))
3838
- prefer `DbContext` over `ObjectContext` for new code
3939
- use `AsNoTracking()` for read-only queries
4040
- configure concurrency tokens with `[ConcurrencyCheck]` or `IsRowVersion()`
4141
4. **For migration work** — validate each slice:
42-
- map EF6 features to EF Core equivalents (see references/migration.md)
42+
- map EF6 features to EF Core equivalents (see [references/migration.md](references/migration.md))
4343
- migrate one bounded context at a time, not the entire data layer
4444
- run integration tests against the real database provider, not InMemory
4545
- verify: `dotnet ef migrations add` succeeds, queries produce equivalent results, lazy loading behavior matches expectations
@@ -74,5 +74,5 @@ flowchart LR
7474

7575
## References
7676

77-
- references/migration.md - decision framework, migration approaches, EF6-to-EF Core feature mapping, and common pitfalls
78-
- references/patterns.md - repository and unit of work patterns, query optimization, concurrency handling, auditing, and testing strategies for EF6 codebases
77+
- [references/migration.md](references/migration.md) - decision framework, migration approaches, EF6-to-EF Core feature mapping, and common pitfalls
78+
- [references/patterns.md](references/patterns.md) - repository and unit of work patterns, query optimization, concurrency handling, auditing, and testing strategies for EF6 codebases

catalog/Frameworks/Entity-Framework-Core/skills/entity-framework-core/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: entity-framework-core
3-
description: "Design, tune, or review EF Core data access with proper modeling, migrations, query translation, performance, and lifetime management for modern .NET applications."
3+
description: "Design, tune, or review EF Core data access with proper modeling, migrations, query translation, performance, and lifetime management for modern .NET applications. USE FOR: DbContext, migrations, model configuration, EF queries, tracking, loading, performance, transactions, and EF6 migration decisions. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made."
44
compatibility: "Requires EF Core 7+ (preferably 8/9 for latest features)."
55
---
66

0 commit comments

Comments
 (0)