Skip to content

Azure Diagrams Skill v2.0.0: diagrams 0.25.1, multi-AI portability, IaC parser, CI#7

Merged
cmb211087 merged 13 commits into
mainfrom
feature/world-class-enhancements
Jun 22, 2026
Merged

Azure Diagrams Skill v2.0.0: diagrams 0.25.1, multi-AI portability, IaC parser, CI#7
cmb211087 merged 13 commits into
mainfrom
feature/world-class-enhancements

Conversation

@cmb211087

Copy link
Copy Markdown
Owner

Summary

Brings the skill current after ~5 months and turns it into a verified, multi-tool diagramming skill. Upgrades to diagrams 0.25.1 (842 Azure icons, up from 232 on the old 0.24.x the docs targeted), fixes everything that failed on copy-paste, makes it work across Claude Code / GitHub Copilot / Cursor / Windsurf on Windows, macOS and Linux, adds a deterministic ARM-to-diagram parser, and puts the whole thing behind CI. Bumps to v2.0.0 (from the last release, v1.1.0).

Breaking changes

  • Requires diagrams >= 0.25.1 (was effectively 0.24.x), reinstall needed.
  • Default output is now PNG (was SVG); SVG is opt-in (Graphviz embeds local icon paths, so shared SVG shows broken icons).
  • Bastions now imports from diagrams.azure.networking (new module in 0.25.x).

What changed

  • Correctness: repaired 6 broken imports (Bastions, ACR, ExpressrouteDirect, Alerts, SAP), modernised the Terraform table to azurerm 4.x, corrected the icon count ("700+ official Microsoft icons" to the measured 842 node classes), fixed a Graphviz 14 crash in the overlap example, hardened verify_installation.py, removed emoji that crashed Windows consoles.
  • New capabilities: Mermaid zero-install lane, C4 model reference, accessible/colourblind palette guidance, CIDR hub-spoke and private-endpoint DNS patterns, plus AI/RAG, Container Apps and landing-zone governance patterns with example images.
  • Portability: AGENTS.md, tri-platform SETUP.md, portable ./diagrams/ output, Windows PowerShell execution path, compatibility list updated.
  • IaC: scripts/iac_to_diagram.py parses ARM dependsOn (and az bicep build output) into a runnable diagram, with a committed fixture and docs covering Terraform/AVM/azd.
  • Quality gates: CI (.github/workflows/ci.yml) runs import validation, example rendering (71 blocks, diagrams + graphviz), the IaC parser, and prereq checks; new evals/.
  • Housekeeping: pinned deps (requirements.txt + extras), CHANGELOG.md with a semver policy, gh skill install as the primary install path, PUBLISHING.md, LICENSE corrected and consistent.

Testing

Verified locally against diagrams 0.25.1 and Graphviz 14.1.2, and enforced in CI:

  • check_imports.py: 0 unresolved imports
  • render_examples.py: 71 example blocks render
  • iac_to_diagram.py: renders the ARM fixture
  • verify_installation.py: passes

Notes

Example content was genericised to neutral fictional (Contoso) content. Registry submissions are drafted in PUBLISHING.md and intentionally not posted.

cmb211087 added 13 commits June 22, 2026 13:12
…rnise install and license

- Pin diagrams>=0.25.1 (842 Azure node classes across 32 modules vs 232 on 0.24.x); add requirements.txt + requirements-extras.txt
- Add scripts/list_azure_nodes.py (icon inventory, ground truth) and scripts/check_imports.py (validates every doc import against the pinned library)
- Fix 6 broken imports: Bastions (now azure.networking), ACR (azure.compute), ExpressrouteDirect, Alerts (managementgovernance), SAP (onprem alias)
- Default all diagram output to PNG (Graphviz 14 SVG quirks; SVG embeds local icon paths and breaks when shared); keep one labelled SVG opt-in
- Modernise Terraform mapping to azurerm 4.x
- Harden verify_installation.py: real 0.25.1 floor, dot-on-PATH preflight, cairosvg warning, Windows-safe ASCII output
- winget as the primary Windows Graphviz install across all docs
- Fix emoji UnicodeEncodeError in generator scripts; ERD keys use PK/FK markers
- LICENSE: Carl Brindle on both files, 2025-2026; correct frontmatter repository URL; expand .gitignore
…ern patterns

- Correct the stale "700+ official Microsoft icons" claim to the measured 842 Azure node classes in diagrams 0.25.1 (SKILL.md, README, azure-components.md)
- azure-components.md: reframe the "New Icons" section, add the Microsoft icon redistribution caveat (use Custom(), do not bundle icons), point to scripts/list_azure_nodes.py
- common-patterns.md: add 3 patterns that exploit the new 0.25.x modules, each verified to render - Azure AI/RAG (aimachinelearning), Container Apps microservices, Landing Zone governance (managementgovernance)
…t>>list example

- Add scripts/render_examples.py: executes every runnable diagram example block in the docs (skips fragments, sandbox-path and asset-dependent snippets); 51 blocks render clean
- Fix migration-patterns.md: "[logic, func] >> [sql, cosmos]" is invalid (list >> list) and raised TypeError; split into per-node edges
- Add .github/workflows/ci.yml: installs graphviz + diagrams, then runs verify_installation, check_imports and render_examples on every push/PR
…le gallery

- Portable execution in SKILL.md: write to ./diagrams/ (works in any tool and OS), use the sandbox path only when present; add a Windows PowerShell variant alongside the POSIX heredoc; reconcile the no-scratch-file guidance
- Add AGENTS.md (root): cross-tool fallback for agents that do not load SKILL.md
- Add SETUP.md (root): tri-platform (Windows/macOS/Linux) install + troubleshooting (dot-on-PATH, Apple Silicon Homebrew, venv)
- SKILL.md compatibility now lists Cursor, Windsurf and AGENTS.md
- README: lead with the title (move Buy-Me-a-Coffee to a Support section), correct "700+ official Microsoft icons" to 800+ Azure service icons, drop the empty Quick Start heading, add SETUP/AGENTS links and a Gallery
- Add 3 example images: Azure AI/RAG, Container Apps, landing-zone governance
- Replace client-specific names throughout the example diagrams with neutral Contoso / finance-generic content
- Remove a stale internal reference from migration-patterns.md
- Fix a Graphviz 14 crash in the overlap-prevention example (a rank=same subgraph conflicted with cluster membership)
- Bump 2025 sample dates to 2026 in the timeline/Gantt and wireframe examples
- render_examples.py now also executes graphviz Digraph examples: 65 blocks verified (was 51)
- common-patterns.md: colourblind-safe (Wong palette) accessibility guidance + a not-colour-alone example, a CIDR-annotated hub-spoke, and a private-endpoint DNS resolution flow
- all verified to render against the pinned library (68 example blocks now checked)
- Add references/mermaid-output.md: text-based flowchart / sequence / ER / Gantt that render natively in GitHub, Azure DevOps and Confluence with no Graphviz; clearly distinguished from the icon pipeline
- SKILL.md: link the three previously-orphaned reference files (integration-services, large-diagram-strategies, migration-patterns) and the new helper scripts
- references/c4-model.md: verified L1 (system context), L2 (containers) and L3 (components) templates using diagrams Blank boxes, plus Mermaid C4Context/C4Container variants for zero-install rendering
- linked from SKILL.md reference table
- scripts/iac_to_diagram.py: parse an ARM template (also `az bicep build` output) - resources + dependsOn edges - and emit a runnable diagrams script via a maintained Microsoft.* -> node-class map; unmapped types fall back to a labelled generic node. --render writes the PNG.
- tests/fixtures/sample-arm.json: committed fixture
- iac-to-diagram.md: document the deterministic recipe (ARM/Bicep via az bicep build, Terraform show -json, Azure Verified Modules module paths, azd layout)
- CI now verifies the parser renders the fixture
…de wedge

- Add a "Why this skill" section: runs in your coding agent, architecture stays local, reads your actual IaC, diagrams are version-controlled, works across AI tools, free/MIT
- Add a "How this differs" comparison table vs browser/SaaS AI diagram tools
- evals/README.md: maps the automated CI checks (imports, rendering, IaC parser, prereqs) and how to run them locally
- evals/scenarios.md: triggering scenarios (positive + negative) and 4 task scenarios (IaC-to-diagram, swimlane, hub-spoke, Windows portability) with expected behaviours and pass criteria; gate for any trigger-description change
- Bump skill version to 4.0.0 and add CHANGELOG.md with a semver policy for the skill
- README: lead install with `gh skill install <owner>/<repo> <skill>` (verified two-arg syntax, gh >= v2.90.0, gh skill preview); correct agr to its slash-joined path
- Add PUBLISHING.md: release steps, registry submission blurb (draft), and a pre-post checklist (verify gh account = cmb211087/github.com, no client content)
The SKILL.md frontmatter had read "3.0", which never matched a release (last tag was v1.1.0). Set this release to 2.0.0 (major bump for the breaking changes) and align CHANGELOG and PUBLISHING accordingly.
@cmb211087 cmb211087 merged commit d751300 into main Jun 22, 2026
4 checks passed
@cmb211087 cmb211087 deleted the feature/world-class-enhancements branch June 22, 2026 13:32
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.

1 participant