Skip to content

Commit b9daaea

Browse files
committed
docs: update README and documentation to include Code Quality domain alongside Accessibility and FinOps
1 parent 2aea41c commit b9daaea

7 files changed

Lines changed: 148 additions & 70 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ Each domain has a scanner platform repo (demo-app) and a workshop template repo:
183183

184184
## DIY: Build a New Domain
185185

186-
Ready to build the Code Quality domain from scratch? The framework includes a `DomainScaffolder` agent and complete automation artifacts for generating scanner demo-app and workshop repositories with full parity to the existing Accessibility and FinOps domains.
186+
Ready to build the Code Quality domain from scratch? The framework includes a `DomainScaffolder` agent and complete automation artifacts for generating scanner demo-app and workshop repositories with full parity to the existing Accessibility, Code Quality, and FinOps domains.
187187

188188
See the **[DIY: Build the Code Quality Domain](docs/DIY-Code-Quality-Domain.md)** guide for step-by-step instructions covering repo creation, sample app development, SARIF converters, workshop labs, Power BI PBIP, and ADO pipeline setup.
189189

agents/domain-scaffolder.agent.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: DomainScaffolder
3-
description: "Scaffolds new domain scanner demo-app and workshop repositories with full parity to existing Accessibility and FinOps domains. Generates repo structures, bootstrap scripts, CI/CD pipelines, Power BI PBIP, and screenshot automation."
3+
description: "Scaffolds new domain scanner demo-app and workshop repositories with full parity to existing Accessibility, Code Quality, and FinOps domains. Generates repo structures, bootstrap scripts, CI/CD pipelines, Power BI PBIP, and screenshot automation."
44
tools:
55
# Read tools
66
- read/readFile
@@ -106,6 +106,9 @@ Generate the complete `{domain}-scan-workshop` repository structure following th
106106
12. Add `nav_exclude: true` frontmatter to ALL screenshot inventory pages (`images/lab-NN/README.md`) so they do not appear in the sidebar navigation. Only labs and the home page should appear in the sidebar.
107107
13. Update `.devcontainer/post-create.sh` to auto-fork or clone the scanner demo-app repo as a sibling directory for workshop participants.
108108
14. All code blocks in lab markdown MUST use a language identifier (`powershell`, `json`, `yaml`, `text`, etc.) to enable the Just the Docs copy-to-clipboard button on each code block. Never use bare fenced code blocks without a language tag.
109+
15. Create `.github/agents/{domain}-workshop.agent.md` — a Copilot agent definition for the workshop repository, following the naming pattern in the scaffolding skill.
110+
16. Create `.github/instructions/{domain}-workshop.instructions.md` — Copilot instructions specific to the workshop repository, covering lab conventions and domain context.
111+
17. Create `.github/copilot-instructions.md` — repo-wide Copilot instructions for the workshop repository, referencing the domain agent and instructions files.
109112

110113
### Step 6: Configure Repository Settings
111114

docs/domain-parity-and-contribution.md

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

docs/related-repositories.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ agentic-accelerator-workshop ← Framework workshop
1818
├── accessibility-scan-workshop ← 8 labs teaching accessibility scanning
1919
├── finops-scan-demo-app ← FinOps scanner + 5 demo apps
2020
├── finops-scan-workshop ← 8 labs teaching FinOps scanning
21-
├── code-quality-scan-demo-app ← Code Quality scanner + 5 demo apps (planned)
22-
└── code-quality-scan-workshop ← 8 labs teaching code quality scanning (planned)
21+
├── code-quality-scan-demo-app ← Code Quality scanner + 5 demo apps
22+
└── code-quality-scan-workshop ← 8 labs teaching code quality scanning
2323
```
2424

2525
## Repository Catalog
@@ -32,8 +32,8 @@ agentic-accelerator-workshop ← Framework workshop
3232
| 4 | `accessibility-scan-workshop` | Workshop | Accessibility | Active | PowerShell |
3333
| 5 | `finops-scan-demo-app` | Scanner Demo | FinOps | Active | PowerShell |
3434
| 6 | `finops-scan-workshop` | Workshop | FinOps | Active | PowerShell |
35-
| 7 | `code-quality-scan-demo-app` | Scanner Demo | Code Quality | Planned | TypeScript/Multi |
36-
| 8 | `code-quality-scan-workshop` | Workshop | Code Quality | Planned | PowerShell |
35+
| 7 | `code-quality-scan-demo-app` | Scanner Demo | Code Quality | Active | TypeScript/Multi |
36+
| 8 | `code-quality-scan-workshop` | Workshop | Code Quality | Active | PowerShell |
3737

3838
All repositories live under the `devopsabcs-engineering` GitHub organization.
3939

@@ -97,7 +97,7 @@ Eight hands-on labs teaching FinOps scanning and cost governance. Delivered as a
9797

9898
## Code Quality Domain
9999

100-
### `code-quality-scan-demo-app` (Planned)
100+
### `code-quality-scan-demo-app`
101101

102102
Multi-language code quality scanner using MegaLinter, jscpd, Lizard, and per-language coverage tools. Follows the 4-tool architecture defined in the framework's [code-quality-scan skill](../skills/code-quality-scan/SKILL.md).
103103

@@ -108,9 +108,9 @@ Multi-language code quality scanner using MegaLinter, jscpd, Lizard, and per-lan
108108
| SARIF generation | Mixed: MegaLinter and jscpd native; Lizard via `lizard-to-sarif.py`, coverage via `coverage-to-sarif.py` |
109109
| Copilot artifacts | 2 agents (CodeQualityDetector, TestGenerator), 2 prompts, instructions, 1 skill |
110110
| SARIF category | `code-quality/coverage/` |
111-
| Power BI PBIP | `power-bi/` (planned — 4 pages: Quality Overview, Coverage by Repository, Complexity Analysis, Test Generation Tracking) |
111+
| Power BI PBIP | `power-bi/` (4 pages: Quality Overview, Coverage by Repository, Complexity Analysis, Test Generation Tracking) |
112112

113-
### `code-quality-scan-workshop` (Planned)
113+
### `code-quality-scan-workshop`
114114

115115
Eight hands-on labs teaching code quality scanning across multiple languages.
116116

@@ -119,7 +119,7 @@ Eight hands-on labs teaching code quality scanning across multiple languages.
119119
| Labs | 8 labs (Lab 00–07) covering ESLint, Pylint, Checkstyle, dotnet-coverage, SARIF, CI/CD |
120120
| Delivery tiers | 5 tiers following the standard half-day/full-day/dual pattern |
121121
| Dual platform | GitHub Actions (Lab 06-github, Lab 07-github) and ADO Pipelines (Lab 06-ado, Lab 07-ado) |
122-
| Template repo | Yes (planned) |
122+
| Template repo | Yes |
123123

124124
## Two-Repo Pattern
125125

instructions/domain-scaffolding.instructions.md

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ applyTo: "**"
55

66
# Domain Scaffolding Conventions
77

8-
These conventions apply when generating new domain scanner and workshop repositories. All scaffolded repos MUST follow these standards to maintain parity with existing Accessibility and FinOps domains.
8+
These conventions apply when generating new domain scanner and workshop repositories. All scaffolded repos MUST follow these standards to maintain parity with existing Accessibility, Code Quality, and FinOps domains.
99

1010
## Naming Conventions
1111

@@ -561,6 +561,46 @@ The workshop `_includes/head_custom.html` MUST use `startOnLoad: false` with an
561561
</style>
562562
```
563563

564+
## Workshop Copilot Artifacts
565+
566+
Workshop repositories MUST include a `.github/` directory with Copilot customization artifacts. These artifacts enable GitHub Copilot to provide domain-aware assistance to workshop participants.
567+
568+
### Required Directory Structure
569+
570+
```text
571+
{domain}-scan-workshop/
572+
└── .github/
573+
├── agents/
574+
│ └── {domain}-workshop.agent.md # Workshop-specific Copilot agent
575+
├── instructions/
576+
│ └── {domain}-workshop.instructions.md # Workshop-specific Copilot instructions
577+
└── copilot-instructions.md # Repo-wide Copilot instructions
578+
```
579+
580+
### Minimum Artifacts
581+
582+
| Artifact | File | Purpose |
583+
|----------|------|---------|
584+
| Agent | `.github/agents/{domain}-workshop.agent.md` | Defines a workshop-aware Copilot agent with domain context, lab navigation, and troubleshooting capabilities |
585+
| Instructions | `.github/instructions/{domain}-workshop.instructions.md` | Provides domain-specific conventions, lab structure, and coding patterns for Copilot |
586+
| Copilot Instructions | `.github/copilot-instructions.md` | Repo-wide Copilot instructions referencing the domain agent and instructions files |
587+
588+
### Agent File Conventions
589+
590+
The workshop agent MUST:
591+
592+
1. Reference the domain scan skill for scanning methodology context.
593+
2. Include tools for reading files, searching the codebase, and running terminal commands.
594+
3. Provide guidance on lab completion, troubleshooting common errors, and navigating the workshop structure.
595+
596+
### Instructions File Conventions
597+
598+
The workshop instructions MUST:
599+
600+
1. Define the lab numbering scheme and directory structure.
601+
2. Specify the domain-specific tool stack and configuration.
602+
3. Reference the demo-app repository as the working directory for scanning labs.
603+
564604
## Power BI PBIP Conventions
565605

566606
### Directory Structure
@@ -590,6 +630,15 @@ One `.tmdl` file per table in `definition/tables/`. Use descriptive table names
590630

591631
Connect to Azure Data Lake Storage Gen2 via `AzureStorage.DataLake()` with OAuth (Organizational Account). Store scan results in date-partitioned paths: `{yyyy}/{MM}/{dd}/{appId}-{tool}.json`.
592632

633+
### Centralized Dashboard Integration
634+
635+
In addition to per-domain PBIPs, the framework provides a centralized `advsec-pbi-report-ado` dashboard that aggregates Advanced Security findings across all domains. New domain PBIPs MUST integrate with this centralized dashboard:
636+
637+
1. **Shared `Repositories` dimension** — use the `scan_domain` column to identify the domain (e.g., `Accessibility`, `CodeQuality`, `FinOps`). This enables cross-domain filtering in the centralized report.
638+
2. **Consistent fact table schema** — align `finding_id`, `repo_name`, `rule_id`, `severity`, `tool_name`, and `scan_date` columns with the centralized schema so the AdvSec report can union findings across domains.
639+
3. **ADLS Gen2 path convention** — store scan results in `{domain}/{yyyy}/{MM}/{dd}/{appId}-{tool}.json` so the centralized report's Power Query expressions can discover data from all domains.
640+
4. **Three-tier architecture** — the centralized `advsec-pbi-report-ado` provides the Advanced Security cross-domain view, while per-domain PBIPs provide domain-specific deep dives. Together they offer a holistic view across all scanning domains.
641+
593642
## Workshop Lab Conventions
594643

595644
### Lab Numbering

prompts/scaffold-domain.prompt.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,5 @@ argument-hint: "[domain=...] [tools=...]"
1717
1. Load the domain scaffolding skill and the domain-specific scan skill.
1818
2. Generate the complete `{domain}-scan-demo-app` repository structure with 5 sample apps, CI/CD pipelines, bootstrap scripts, SARIF converters, and Power BI PBIP.
1919
3. Generate the complete `{domain}-scan-workshop` repository structure with 10 labs, screenshot automation, dev container, and Jekyll site.
20-
4. Ensure structural parity with accessibility-scan-demo-app and finops-scan-demo-app.
20+
4. Ensure structural parity with accessibility-scan-demo-app, code-quality-scan-demo-app, and finops-scan-demo-app.
2121
5. Produce a scaffolding summary with file counts and next steps.

skills/domain-scaffolding/SKILL.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ The demo-app repo owns all scanning logic, Copilot customization artifacts, and
2323
| Domain | Demo App | Workshop |
2424
|--------|----------|----------|
2525
| Accessibility | `accessibility-scan-demo-app` | `accessibility-scan-workshop` |
26+
| Code Quality | `code-quality-scan-demo-app` | `code-quality-scan-workshop` |
2627
| FinOps | `finops-scan-demo-app` | `finops-scan-workshop` |
2728

2829
## Demo App Repository Template
@@ -154,6 +155,12 @@ The following directory tree is the canonical structure for any `{domain}-scan-w
154155
├── _config.yml # Jekyll configuration
155156
├── index.md # Workshop home / GitHub Pages landing
156157
├── Gemfile # Jekyll dependencies
158+
├── .github/
159+
│ ├── agents/
160+
│ │ └── {domain}-workshop.agent.md # Workshop-specific Copilot agent
161+
│ ├── instructions/
162+
│ │ └── {domain}-workshop.instructions.md # Workshop-specific Copilot instructions
163+
│ └── copilot-instructions.md # Repo-wide Copilot instructions
157164
├── _includes/
158165
│ └── head_custom.html # Mermaid v11 ESM support
159166
├── .devcontainer/
@@ -608,6 +615,15 @@ Path pattern: {yyyy}/{MM}/{dd}/{appId}-{tool}.json
608615
| `power-bi/scripts/deploy.ps1` | Deploy PBIP to Power BI workspace using `FabricPS-PBIP` module |
609616
| `power-bi/scripts/setup-parameters.ps1` | Configure data source parameters (storage account, container) |
610617

618+
### Centralized Dashboard Integration
619+
620+
In addition to per-domain PBIPs, the framework maintains a centralized `advsec-pbi-report-ado` dashboard that aggregates Advanced Security findings across all domains. Per-domain PBIPs integrate with this centralized dashboard through:
621+
622+
1. **Shared `Repositories` dimension** — the `scan_domain` column identifies each domain (`Accessibility`, `CodeQuality`, `FinOps`), enabling cross-domain filtering.
623+
2. **Consistent fact table schema**`finding_id`, `repo_name`, `rule_id`, `severity`, `tool_name`, and `scan_date` columns align across all domain PBIPs.
624+
3. **ADLS Gen2 path convention** — scan results stored at `{domain}/{yyyy}/{MM}/{dd}/{appId}-{tool}.json` allow the centralized report to discover data from all domains.
625+
4. **Three-tier architecture** — the centralized `advsec-pbi-report-ado` provides the cross-domain Advanced Security view, per-domain PBIPs provide deep dives, and together they offer a holistic view across all scanning domains.
626+
611627
## CI/CD Pipeline Templates
612628

613629
### GitHub Actions

0 commit comments

Comments
 (0)