From 2736c69580db8d87ed9971eedc416e3703f0ae21 Mon Sep 17 00:00:00 2001 From: Aishanee Shah Date: Tue, 14 Apr 2026 22:27:59 +0000 Subject: [PATCH] feat(skills): add mermaid-diagrammer skill and request flow diagram --- .gemini/skills/mermaid-diagrammer/SKILL.md | 36 ++++++++++ .../references/mermaid_syntax.md | 62 ++++++++++++++++++ .../mermaid-diagrammer/scripts/convert.cjs | 53 +++++++++++++++ .../scripts/validate_png.cjs | 54 +++++++++++++++ gemini_cli_request.png | Bin 0 -> 42403 bytes 5 files changed, 205 insertions(+) create mode 100644 .gemini/skills/mermaid-diagrammer/SKILL.md create mode 100644 .gemini/skills/mermaid-diagrammer/references/mermaid_syntax.md create mode 100755 .gemini/skills/mermaid-diagrammer/scripts/convert.cjs create mode 100755 .gemini/skills/mermaid-diagrammer/scripts/validate_png.cjs create mode 100644 gemini_cli_request.png diff --git a/.gemini/skills/mermaid-diagrammer/SKILL.md b/.gemini/skills/mermaid-diagrammer/SKILL.md new file mode 100644 index 0000000000..3705e2eba8 --- /dev/null +++ b/.gemini/skills/mermaid-diagrammer/SKILL.md @@ -0,0 +1,36 @@ +--- +name: mermaid-diagrammer +description: Create, convert, and validate Mermaid diagrams. Use this skill when asked to generate visual diagrams (flowcharts, sequence diagrams, class diagrams, etc.) and export them to PNG images. Follows best practices for syntax robustness, accessibility, and professional styling. +--- + +# Mermaid Diagrammer + +This skill enables the creation of professional Mermaid diagrams and their conversion to high-quality PNG images. It emphasizes robust syntax, accessibility, and maintainable styling. + +## Workflow + +### 1. Create Mermaid Diagram +Select the appropriate diagram type based on the task (see `references/mermaid_syntax.md`). +- **Syntax Guardrails:** Always use double quotes for labels containing special characters: `A["Label (with Parens)"]`. +- **Accessibility:** Include `accTitle` and `accDescr` for all diagrams. +- **Styling:** Use `classDef` and `subgraph` for complex diagrams to ensure readability. +- Save to a `.mmd` file. + +### 2. Convert to PNG +Use the `scripts/convert.cjs` script. +- **Command:** `node /scripts/convert.cjs ` +- If conversion fails, check the Mermaid CLI output for syntax errors (e.g., mismatched brackets or unquoted special characters). + +### 3. Validate & Verify +Validate the PNG using `scripts/validate_png.cjs`. +- **Command:** `node /scripts/validate_png.cjs ` +- **Human Verification:** Inform the user when the PNG is ready and where it is located. + +## Resources + +### scripts/ +- `convert.cjs`: Converts Mermaid to PNG via `mermaid-cli`. +- `validate_png.cjs`: PNG integrity check. + +### references/ +- `mermaid_syntax.md`: Comprehensive reference with best practices for AI-generated Mermaid code, accessibility, and theming. diff --git a/.gemini/skills/mermaid-diagrammer/references/mermaid_syntax.md b/.gemini/skills/mermaid-diagrammer/references/mermaid_syntax.md new file mode 100644 index 0000000000..ec2e2a0b79 --- /dev/null +++ b/.gemini/skills/mermaid-diagrammer/references/mermaid_syntax.md @@ -0,0 +1,62 @@ +# Mermaid Syntax & Best Practices + +Use this reference as a template and guide for generating high-quality, robust Mermaid diagrams. + +## Core Rules for AI Generation +- **Syntax Robustness:** Always wrap labels in double quotes if they contain special characters (parentheses, brackets, etc.) to prevent renderer crashes. + - *Correct:* `A["User (Admin)"]` + - *Incorrect:* `A[User (Admin)]` +- **Reserved Words:** Avoid using reserved words (e.g., `end`, `graph`, `subgraph`) as node IDs. +- **Accessibility:** Always include `accTitle` and `accDescr` for screen readers. + +## Diagram Selection Guide +| Use Case | Recommended Type | Layout | +| :--- | :--- | :--- | +| **Logic/Algorithms** | `flowchart` | `TD` (Top-Down) | +| **Data Pipelines/Process** | `flowchart` | `LR` (Left-Right) | +| **API/Interactions** | `sequenceDiagram` | N/A | +| **Database Schema** | `erDiagram` | N/A | +| **State Machines** | `stateDiagram-v2` | N/A | + +## Flowchart (Best Practices) +Use `classDef` for consistent styling instead of inline styles. + +```mermaid +graph TD + accTitle: System Logic + accDescr: High-level logic for the authentication service. + + classDef primary fill:#f9f,stroke:#333,stroke-width:2px; + classDef database fill:#f96,stroke:#333,stroke-width:2px; + + Start --> Auth{{"Authorized?"}} + Auth -- Yes --> Process[Process Request]:::primary + Auth -- No --> DB[(Log Error)]:::database +``` + +## Sequence Diagram +Use `participant` aliases for cleaner code. + +```mermaid +sequenceDiagram + accTitle: API Authentication + participant U as User + participant A as Auth Service + U->>A: Request Token + A-->>U: JWT Token +``` + +## Styling and Theming +Prefer logical grouping using `subgraph` to manage complexity. + +```mermaid +graph LR + subgraph Client + A[Mobile] + B[Web] + end + subgraph Server + C[API] + end + Client --> Server +``` diff --git a/.gemini/skills/mermaid-diagrammer/scripts/convert.cjs b/.gemini/skills/mermaid-diagrammer/scripts/convert.cjs new file mode 100755 index 0000000000..be93942dad --- /dev/null +++ b/.gemini/skills/mermaid-diagrammer/scripts/convert.cjs @@ -0,0 +1,53 @@ +#!/usr/bin/env node + +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const { spawnSync } = require('child_process'); +const path = require('path'); +const fs = require('fs'); + +const args = process.argv.slice(2); +if (args.length < 2) { + console.error('Usage: node convert.cjs '); + process.exit(1); +} + +const inputPath = path.resolve(args[0]); +const outputPath = path.resolve(args[1]); + +if (!fs.existsSync(inputPath)) { + console.error(`Error: Input file not found: ${inputPath}`); + process.exit(1); +} + +console.log(`Converting ${inputPath} to ${outputPath}...`); + +const result = spawnSync('npx', [ + '--yes', + '@mermaid-js/mermaid-cli', + '-i', inputPath, + '-o', outputPath, + '-b', 'transparent' +], { stdio: 'pipe', encoding: 'utf-8' }); + +if (result.status !== 0) { + console.error('Failed to convert Mermaid diagram:'); + console.error(result.stderr); + process.exit(1); +} + +console.log('Successfully converted Mermaid diagram to PNG.'); diff --git a/.gemini/skills/mermaid-diagrammer/scripts/validate_png.cjs b/.gemini/skills/mermaid-diagrammer/scripts/validate_png.cjs new file mode 100755 index 0000000000..d5538df9cf --- /dev/null +++ b/.gemini/skills/mermaid-diagrammer/scripts/validate_png.cjs @@ -0,0 +1,54 @@ +#!/usr/bin/env node + +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const fs = require('fs'); +const path = require('path'); + +const args = process.argv.slice(2); +if (args.length < 1) { + console.error('Usage: node validate_png.cjs '); + process.exit(1); +} + +const filePath = path.resolve(args[0]); + +if (!fs.existsSync(filePath)) { + console.error(`Error: File not found: ${filePath}`); + process.exit(1); +} + +const stats = fs.statSync(filePath); +if (stats.size === 0) { + console.error(`Error: File is empty: ${filePath}`); + process.exit(1); +} + +const buffer = Buffer.alloc(8); +const fd = fs.openSync(filePath, 'r'); +fs.readSync(fd, buffer, 0, 8, 0); +fs.closeSync(fd); + +// PNG Magic Numbers: 89 50 4E 47 0D 0A 1A 0A +const pngHeader = Buffer.from([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A]); + +if (!buffer.equals(pngHeader)) { + console.error(`Error: File is not a valid PNG: ${filePath}`); + process.exit(1); +} + +console.log(`Success: ${filePath} is a valid PNG file (${stats.size} bytes).`); diff --git a/gemini_cli_request.png b/gemini_cli_request.png new file mode 100644 index 0000000000000000000000000000000000000000..be8b5df1c3f6ec1a4b13e9f590089700fcb529f5 GIT binary patch literal 42403 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 literal 0 HcmV?d00001