Markdown Mermaid Writing
K-DenseCommunityCreated by Clayton Young / Superior Byte Works, LLC (@borealBytes)Distributed by K-Dense
- Skill
- Tool integration
- Documents and content
- Apache-2.0
- Low risk
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a structured approach to creating technical and scientific documentation using Markdown and Mermaid. It emphasizes the use of text-based diagrams for structural clarity, ensuring that workflows, architectures, and data models remain editable, version-controlled, and accessible. The skill includes templates for various document types and comprehensive guides for 23 different Mermaid diagram types, ensuring consistent formatting and adherence to accessibility standards.
What it does
- Writes scientific Markdown reports, READMEs, and research documentation.
- Creates structural Mermaid diagrams for workflows, timelines, schemas, and architectures.
- Provides templates for common technical documents like ADRs, pull requests, and status reports.
- Offers style guides for consistent Markdown formatting and Mermaid diagram design.
- Includes accessibility guidance for diagrams using titles and descriptions.
- Supports version-aware rendering checks for Mermaid diagrams.
When to use it
- When you need to document complex workflows, system architectures, or data relationships.
- When you want to maintain diagrams as editable text within a Git repository.
- When creating technical reports that require a consistent, professional house style.
- When you need to ensure your diagrams are accessible and renderable across different platforms.
Advantages
- Diagrams are stored as plain text, making them easily diffable and version-controlled.
- Reduces token usage compared to long-form text descriptions of relationships.
- Promotes a consistent documentation style across projects.
- Supports accessibility through standardized metadata.
- Facilitates easy updates to diagrams without needing specialized image editing software.
Usage examples
- “Create a Mermaid flowchart for a data processing pipeline.”
- Generates a Markdown-formatted document containing a Mermaid flowchart block that maps the data pipeline steps, following the established style guide.
- “Draft an Architecture Decision Record (ADR) for a new database choice.”
- Produces a structured Markdown document using the ADR template, including placeholders for context, decision, and consequences.
- “How do I create a sequence diagram for an API interaction?”
- Provides the specific Mermaid sequence diagram syntax, a copy-paste template, and tips on how to style it according to the project's guidelines.
- “Check if my Mermaid diagram is accessible.”
- Reviews the diagram code for required accessibility metadata (accTitle/accDescr) and suggests improvements based on the Mermaid style guide.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/k-dense-ai/markdown-mermaid-writing/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip markdown-mermaid-writing.zip -d .agents/skills
Documentation by Clayton Young / Superior Byte Works, LLC (@borealBytes)
Markdown and Mermaid Writing
Overview
This skill provides an optional house style for Markdown documentation with Mermaid structural diagrams. Follow the requested output format, existing repository conventions, and journal requirements first. This skill does not replace scientific analysis or plotting.
A relationship expressed as Mermaid inside a .md file is editable text that diffs
cleanly in git. A compatible host renders it without a separate user build step.
It renders where the host has Mermaid support; plain Markdown viewers may show only code,
and platforms/extensions ship different Mermaid versions. It uses
a compact source representation, though token use depends on the diagram. Exporting
SVG/PNG requires a renderer; retain the diagram source alongside exported figures.
"The more you get your reports and files in .md in just regular text, which mermaid is as well as being a simple 'script language'. This just helps with any downstream rendering and especially AI generated images (using mermaid instead of just long form text to describe relationships < tokens). Additionally mermaid can render along with markdown for easy use almost anywhere by humans or AI."
— Clayton Young (@borealBytes), K-Dense Discord, 2026-02-19
When to Use This Skill
Use this skill when:
Writing a requested Markdown report, README, methods overview, or research note
Diagramming a workflow, data pipeline, schema, state machine, or conceptual relationship
Maintaining editable Mermaid sources and their rendered SVG/PNG exports
Use scientific plotting tools directly for measured data, uncertainty, statistical graphics, exact geometry, or publication figures that Mermaid cannot faithfully represent. Mermaid is not a required precursor to a quantitative chart or an existing SVG/code-native asset.
🎨 The Source Format Philosophy
Why text-based diagrams win
| What matters | Mermaid in Markdown | Python / AI Image |
|---|---|---|
| Git diff readable | ✅ text source | Plotting code/SVG can also be text |
| Editable source | ✅ | Plotting scripts and vector sources are editable |
| Compact relationship notation | Often | Depends on representation |
| Native preview | Host/version dependent | Viewer/format dependent |
| Parseable by AI without vision | ✅ | ❌ |
| Works in destination | Check Mermaid support and version | Check image format support |
| Accessible (screen readers) | Check SVG metadata and text alternative | Provide alt text/data table |
| Convertible to image later | ✅ anytime | — already image |
The three-phase workflow
flowchart LR
accTitle: Three-Phase Documentation Workflow
accDescr: Markdown holds the structural diagram source. Quantitative charts come from data and plotting code; optional illustrations require a separate factual review.
p1["📄 Phase 1<br/>Mermaid in Markdown<br/>(structural source)"]
p2["🐍 Phase 2<br/>Python Generated<br/>(optional — data charts)"]
p3["🎨 Phase 3<br/>AI Generated Visuals<br/>(optional — polish)"]
out["📊 Final Deliverable"]
p1 --> out
data["Data and plotting code"] --> p2
p1 -.->|"when needed"| p3
p2 --> out
p3 --> out
classDef required fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#1e3a5f
classDef optional fill:#fef9c3,stroke:#ca8a04,stroke-width:2px,color:#713f12
classDef output fill:#dcfce7,stroke:#16a34a,stroke-width:2px,color:#14532d
class p1 required
class p2,p3 optional
class out outputRetain Mermaid for structural diagrams and data/code for quantitative charts. An AI illustration is not a quantitative conversion; verify every label and relationship against its sources.
What Mermaid can express
This skill includes 23 diagram-type guides plus a composition guide. Mermaid supports additional types; these references are a curated subset, not an exhaustive version catalogue:
| Use case | Diagram type | File |
|---|---|---|
| Experimental workflow / decision logic | Flowchart | references/diagrams/flowchart.md |
| Service interactions / API calls / messaging | Sequence | references/diagrams/sequence.md |
| Data model / schema | ER diagram | references/diagrams/er.md |
| State machine / lifecycle | State | references/diagrams/state.md |
| Project timeline / roadmap | Gantt | references/diagrams/gantt.md |
| Proportions / composition | Pie | references/diagrams/pie.md |
| System architecture (zoom levels) | C4 | references/diagrams/c4.md |
| Concept hierarchy / brainstorm | Mindmap | references/diagrams/mindmap.md |
| Chronological events / history | Timeline | references/diagrams/timeline.md |
| Class hierarchy / type relationships | Class | references/diagrams/class.md |
| User journey / satisfaction map | User Journey | references/diagrams/user_journey.md |
| Two-axis comparison / prioritization | Quadrant | references/diagrams/quadrant.md |
| Requirements traceability | Requirement | references/diagrams/requirement.md |
| Flow magnitude / resource distribution | Sankey | references/diagrams/sankey.md |
| Numeric trends / bar + line charts | XY Chart | references/diagrams/xy_chart.md |
| Component layout / spatial arrangement | Block | references/diagrams/block.md |
| Work item status / task columns | Kanban | references/diagrams/kanban.md |
| Cloud infrastructure / service topology | Architecture | references/diagrams/architecture.md |
| Multi-dimensional comparison / skills radar | Radar | references/diagrams/radar.md |
| Hierarchical proportions / budget | Treemap | references/diagrams/treemap.md |
| Binary protocol / data format | Packet | references/diagrams/packet.md |
| Git branching / merge strategy | Git Graph | references/diagrams/git_graph.md |
| Code-style sequence (programming syntax) | ZenUML | references/diagrams/zenuml.md |
| Multi-diagram composition patterns | Complex Examples | references/diagrams/complex_examples.md |
💡 Pick the right type, not the easy one. Don't default to flowcharts for everything. A timeline beats a flowchart for chronological events. A sequence beats a flowchart for service interactions. Scan the table and match.
🔧 Core workflow
Step 1: Identify the document type
Check if a template exists before writing from scratch:
| Document type | Template |
|---|---|
| Pull request record | templates/pull_request.md |
| Issue / bug / feature request | templates/issue.md |
| Sprint / project board | templates/kanban.md |
| Architecture decision (ADR) | templates/decision_record.md |
| Presentation / briefing | templates/presentation.md |
| Research paper / analysis | templates/research_paper.md |
| Project documentation | templates/project_documentation.md |
| How-to / tutorial | templates/how_to_guide.md |
| Status report | templates/status_report.md |
Step 2: Read the style guide
For this Markdown workflow, read references/markdown_style_guide.md. Treat emoji,
heading counts, and horizontal rules as house style rather than Markdown syntax requirements.
Key rules to internalize:
One H1 per document — the title. Never more.
Emoji on H2 headings only — one emoji per H2, none in H3/H4
Support factual claims — use verified sources and the requested citation format
Bold sparingly — max 2-3 bold terms per paragraph, never full sentences
Optional horizontal rules after
</details>when they improve separationTables over prose for comparisons, configurations, structured data
Diagrams over walls of text — if it describes flow, structure, or relationships, add Mermaid
Step 3: Pick the diagram type and read its guide
Before creating any Mermaid diagram: read references/mermaid_style_guide.md.
Then open the specific type file (e.g., references/diagrams/flowchart.md) for the exemplar, tips, and copy-paste template.
Add accessibility metadata for types that emit it in the chosen renderer:
accTitle: Short Name 3-8 Words
accDescr: One or two sentences explaining what this diagram shows.Prefer host themes;
%%{init}directives are deprecated in favor of YAML configurationPrefer reusable
classDefwhere supported; style syntax is diagram-specificOne emoji per node max — at the start of the label
Use descriptive IDs with the type's syntax:
snake_caseworks for flowcharts; ER/class/state conventions differ
Step 4: Write the document
Start from the template. Apply the markdown style guide. Place diagrams inline with related text — not in a separate "Figures" section.
Render in the actual destination before delivery. Check its Mermaid version and
plugin requirements before choosing newer diagram types; GitHub documents an info
diagram for this check.
A successful latest-version local preview does not establish GitHub or another host
will render it. Where Mermaid is unsupported, supply a rendered SVG/PNG with a text
description alongside the retained .md source.
Step 5: Retain source and verification
Keep the .md source, rendered deliverable, and tested renderer version together.
Follow the project's version-control workflow; this skill does not itself authorize a commit or publication.
For CLI export, embedding, and the tested accessibility matrix, read
Current rendering and validation.
⚠️ Common pitfalls
Radar chart syntax (radar-beta)
WRONG (shown as text so it does not break the document renderer):
radar
title Example
x-axis ["A", "B", "C"]
"Series" : [1, 2, 3]CORRECT:
radar-beta
accTitle: Example Radar Scores
accDescr: Illustrative values of one, two, and three on a shared zero-to-three scale.
title Example
axis a["A"], b["B"], c["C"]
curve series["Series"]{1, 2, 3}
max 3Use
radar-betanotradar(the bare keyword doesn't exist)Use
axisto define dimensions, notx-axisUse
curveto define data series, not quoted labels with colonMermaid 12.0.0 radar emits
accTitle/accDescr; check older hosts and retain a visible description
XY Chart vs Radar confusion
| Diagram | Keyword | Axis syntax | Data syntax |
|---|---|---|---|
| XY Chart (bars/lines) | xychart-beta | x-axis ["Label1", "Label2"] | bar [10, 20] or line [10, 20] |
| Radar (spider/web) | radar-beta | axis id["Label"] | curve id["Label"]{10, 20} |
Forgetting accTitle/accDescr on supported types
Only some diagram types support accTitle/accDescr. For those that don't, always place a descriptive italic paragraph directly above the code block:
Radar chart comparing three methods on a stated, common score scale. See the data table for exact values.
radar-beta
...🔗 Integration with other skills
With scientific-schematics
scientific-schematics generates AI-powered publication-quality images (PNG). Use the Mermaid diagram as the brief for the schematic:
Workflow:
1. Create the concept as Mermaid in .md (this skill — Phase 1)
2. Describe the same concept to scientific-schematics for a polished PNG (Phase 3)
3. Commit both — the .md as source, the PNG as a supplementary figureWith scientific-writing
For a manuscript that uses Mermaid structural figures, this skill handles diagram syntax. Follow the manuscript's required figure formats and scientific visualization conventions.
Workflow:
1. Use scientific-writing to draft the manuscript
2. For every figure that shows a workflow, architecture, or relationship:
- Replace placeholder with a Mermaid diagram following this skill's guide
3. Use plotting or schematic tools where appropriate to the scientific contentWith literature-review
Literature review produces summaries with lots of relationship data. Use this skill to:
Create concept maps (Mindmap) of the literature landscape
Show publication timelines (Timeline or Gantt)
Compare methodologies (Quadrant or Radar)
Diagram data flows described in papers (Sequence or Flowchart)
With any skill that produces output documents
Before finalizing a document using this skill, check:
[ ] Does the document use a template? If so, did I start from the right one?
[ ] Is each diagram in an appropriate format, with working accessibility metadata or a text alternative?
[ ] Is configuration supported by the destination and tested in light/dark themes?
[ ] Do citations support external claims, and are synthetic values labeled?
[ ] One H1, emoji on H2 only?
[ ] Does the final Markdown/HTML structure render correctly?
📚 Reference index
Style guides
| Guide | Path | Lines | What it covers |
|---|---|---|---|
| Markdown Style Guide | references/markdown_style_guide.md | see file | Headings, formatting, citations, tables, Mermaid integration, templates, quality checklist |
| Mermaid Style Guide | references/mermaid_style_guide.md | see file | Accessibility, emoji set, color classes, theme neutrality, type selection, complexity tiers |
| Current Rendering | references/current-rendering.md | see file | Mermaid 12 changes, CLI export, browser APIs, tested accessibility matrix, scientific checks |
Diagram guides (23 types plus composition)
Each file contains: production-quality exemplar, tips specific to that type, and a copy-paste template.
references/diagrams/ — architecture, block, c4, class, complex_examples, er, flowchart, gantt, git_graph, kanban, mindmap, packet, pie, quadrant, radar, requirement, sankey, sequence, state, timeline, treemap, user_journey, xy_chart, zenuml
Document templates (9 types)
templates/ — decision_record, how_to_guide, issue, kanban, presentation, project_documentation, pull_request, research_paper, status_report
Examples
assets/examples/example-research-report.md — a synthetic quality-control report with explicitly invented data, an auditable count table, a structural flowchart, a bar chart, and a chronology. It makes no experimental or software API claims.
📝 Attribution
All style guides, diagram type guides, and document templates in this skill are ported from the SuperiorByteWorks-LLC/agent-project repository under the Apache-2.0 License.
Source: https://github.com/SuperiorByteWorks-LLC/agent-project
Author: Clayton Young / Superior Byte Works, LLC (@borealBytes)
License: Apache-2.0
This skill (as part of scientific-agent-skills) is distributed under the MIT License. The included Apache-2.0 content is compatible for downstream use with attribution retained, as preserved in the file headers throughout this skill.
[^1]: GitHub Blog. (2022). "Include diagrams in your Markdown files with Mermaid." https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/
[^2]: Mermaid. "Mermaid Diagramming and Charting Tool." https://mermaid.js.org/
Files
- ATTRIBUTION.mdAdded by AutoGineer1.1 KiB
- LICENSEAdded by AutoGineer10.0 KiB
- SKILL.md16.3 KiB
- assets/examples/example-research-report.md3.4 KiB
- references/current-rendering.md7.6 KiB
- references/diagrams/architecture.md5.0 KiB
- references/diagrams/block.md5.0 KiB
- references/diagrams/c4.md6.7 KiB
- references/diagrams/class.md8.6 KiB
- references/diagrams/complex_examples.md16.8 KiB
- references/diagrams/er.md8.0 KiB
- references/diagrams/flowchart.md7.0 KiB
- references/diagrams/gantt.md6.0 KiB
- references/diagrams/git_graph.md2.2 KiB
- references/diagrams/kanban.md4.0 KiB
- references/diagrams/mindmap.md2.5 KiB
- references/diagrams/packet.md2.4 KiB
- references/diagrams/pie.md1.9 KiB
- references/diagrams/quadrant.md2.6 KiB
- references/diagrams/radar.md2.8 KiB
- references/diagrams/requirement.md3.0 KiB
- references/diagrams/sankey.md2.6 KiB
- references/diagrams/sequence.md5.9 KiB
- references/diagrams/state.md5.7 KiB
- references/diagrams/timeline.md4.5 KiB
- references/diagrams/treemap.md2.6 KiB
- references/diagrams/user_journey.md5.2 KiB
- references/diagrams/xy_chart.md2.6 KiB
- references/diagrams/zenuml.md2.5 KiB
- references/markdown_style_guide.md32.4 KiB
- references/mermaid_style_guide.md26.6 KiB
- templates/decision_record.md7.2 KiB
- templates/how_to_guide.md7.1 KiB
- templates/issue.md11.6 KiB
- templates/kanban.md10.6 KiB
- templates/presentation.md8.1 KiB
- templates/project_documentation.md11.5 KiB
- templates/pull_request.md11.8 KiB
- templates/research_paper.md10.1 KiB
- templates/status_report.md7.2 KiB
references/diagrams/complex_examples.md
<!-- Source: https://github.com/SuperiorByteWorks-LLC/agent-project | License: Apache-2.0 | Author: Clayton Young / Superior Byte Works, LLC (Boreal Bytes) -->
Composing Complex Diagram Sets
Back to Style Guide — This file covers how to combine multiple diagram types to document complex systems comprehensively.
Purpose: A single diagram captures a single perspective. Real documentation often needs multiple diagram types working together — an overview flowchart linked to a detailed sequence diagram, an ER schema paired with a state machine showing entity lifecycle, a Gantt timeline complemented by architecture before/after views. This file teaches you when and how to compose diagrams for maximum clarity.
When to Compose Multiple Diagrams
| What you're documenting | Diagram combination | Why it works |
|---|---|---|
| Full system architecture | C4 Context + Architecture + Sequence (key flows) | Context for stakeholders, infrastructure for ops, sequences for developers |
| API design documentation | ER (data model) + Sequence (request flows) + State (entity lifecycle) | Schema for the database team, interactions for backend, states for business logic |
| Feature specification | Flowchart (happy path) + Sequence (service interactions) + User Journey (UX) | Process for PM, implementation for engineers, experience for design |
| Migration project | Gantt (timeline) + Architecture (before/after) + Flowchart (migration process) | Schedule for leadership, topology for infra, steps for the migration team |
| Onboarding documentation | User Journey + Flowchart (setup steps) + Sequence (first API call) | Experience map for product, checklist for new hires, technical walkthrough for devs |
| Incident response | State (alert lifecycle) + Sequence (escalation flow) + Flowchart (decision tree) | Status tracking for on-call, communication for management, triage for responders |
Pattern 1: Overview + Detail
When to use: You need both the big picture AND the specifics. Leadership sees the overview; engineers drill into the detail.
The overview diagram shows high-level phases or components. One or more detail diagrams zoom into specific phases showing the internal interactions.
Overview — Release Pipeline
flowchart LR
accTitle: Release Pipeline Overview
accDescr: High-level four-phase release pipeline from code commit through build, staging, and production deployment
subgraph source ["📥 Source"]
commit[📝 Code commit] --> pr_review[🔍 PR review]
end
subgraph build ["🔧 Build"]
compile[⚙️ Compile] --> test[🧪 Test suite]
test --> scan[🔐 Security scan]
end
subgraph staging ["🚀 Staging"]
deploy_stg[☁️ Deploy staging] --> smoke[🧪 Smoke tests]
smoke --> approval{👤 Approved?}
end
subgraph production ["✅ Production"]
canary[🚀 Canary 5%] --> rollout[🚀 Full rollout]
rollout --> monitor[📊 Monitor metrics]
end
source --> build
build --> staging
approval -->|Yes| production
approval -->|No| source
classDef phase_start fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#1e3a5f
classDef phase_test fill:#fef9c3,stroke:#ca8a04,stroke-width:2px,color:#713f12
classDef phase_deploy fill:#dcfce7,stroke:#16a34a,stroke-width:2px,color:#14532d
class commit,pr_review,compile phase_start
class test,scan,smoke,approval phase_test
class deploy_stg,canary,rollout,monitor phase_deployThe production deployment phase involves multiple service interactions. See the detail sequence below for the canary rollout process.
Detail — Canary Deployment Sequence
sequenceDiagram
accTitle: Canary Deployment Service Interactions
accDescr: Detailed sequence showing how the CI server orchestrates a canary deployment through the container registry, Kubernetes cluster, and monitoring stack with automated rollback on failure
participant ci as ⚙️ CI Server
participant registry as 📦 Container Registry
participant k8s as ☁️ Kubernetes
participant monitor as 📊 Monitoring
participant oncall as 👤 On-Call Engineer
ci->>registry: 📤 Push tagged image
registry-->>ci: ✅ Image stored
ci->>k8s: 🚀 Deploy canary (5% traffic)
k8s-->>ci: ✅ Canary pods running
ci->>monitor: 📊 Start canary analysis
Note over monitor: ⏰ Observe for 15 minutes
loop 📊 Every 60 seconds
monitor->>k8s: 🔍 Query error rate
k8s-->>monitor: 📊 Metrics response
end
alt ✅ Error rate below threshold
monitor-->>ci: ✅ Canary healthy
ci->>k8s: 🚀 Promote to 100%
k8s-->>ci: ✅ Full rollout complete
ci->>monitor: 📊 Continue monitoring
else ❌ Error rate above threshold
monitor-->>ci: ❌ Canary failing
ci->>k8s: 🔄 Rollback to previous
k8s-->>ci: ✅ Rollback complete
ci->>oncall: ⚠️ Alert: canary failed
Note over oncall: 📋 Investigate root cause
endHow these connect
The overview flowchart shows the full pipeline with subgraph-to-subgraph connections — leadership reads this to understand the release process
The detail sequence zooms into "Canary 5% → Full rollout" from the Production subgraph, showing the actual service interactions an engineer would debug
Naming is consistent — "Canary" and "Monitor metrics" appear in both diagrams, creating a clear bridge between overview and detail
Pattern 2: Multi-Perspective Documentation
When to use: The same system needs to be documented for different audiences — database teams, backend engineers, and product managers each need a different view of the same feature.
This example documents a User Authentication feature from three perspectives.
Data Model — for database team
erDiagram
accTitle: Authentication Data Model
accDescr: Five-entity schema for user authentication covering users, sessions, refresh tokens, login attempts, and MFA devices with cardinality relationships
USER ||..o{ SESSION : "has"
USER ||..o{ REFRESH_TOKEN : "owns"
USER ||..o{ LOGIN_ATTEMPT : "produces"
USER ||..o{ MFA_DEVICE : "registers"
SESSION ||..|| REFRESH_TOKEN : "paired with"
USER {
uuid id PK "🔑 Primary key"
string email "📧 Unique login"
string password_hash "🔐 Bcrypt hash"
boolean mfa_enabled "🔒 MFA flag"
timestamp last_login "⏰ Last active"
}
SESSION {
uuid id PK "🔑 Primary key"
uuid user_id FK "👤 Session owner"
string ip_address "🌐 Client IP"
string user_agent "📋 Browser info"
timestamp expires_at "⏰ Expiration"
}
REFRESH_TOKEN {
uuid id PK "🔑 Primary key"
uuid user_id FK "👤 Token owner"
uuid session_id FK "🔗 Paired session"
string token_hash "🔐 Hashed token"
boolean revoked "❌ Revoked flag"
timestamp expires_at "⏰ Expiration"
}
LOGIN_ATTEMPT {
uuid id PK "🔑 Primary key"
uuid user_id FK "👤 Attempting user"
string ip_address "🌐 Source IP"
boolean success "✅ Outcome"
string failure_reason "⚠️ Why failed"
timestamp attempted_at "⏰ Attempt time"
}
MFA_DEVICE {
uuid id PK "🔑 Primary key"
uuid user_id FK "👤 Device owner"
string device_type "📱 TOTP or WebAuthn"
string credential_reference "🔐 Credential storage reference"
boolean verified "✅ Setup complete"
timestamp registered_at "⏰ Registered"
}Authentication Flow — for backend team
sequenceDiagram
accTitle: Login Flow with MFA
accDescr: Step-by-step authentication sequence showing credential validation, conditional MFA challenge, token issuance, and failure handling between browser, API, auth service, and database
participant B as 👤 Browser
participant API as 🌐 API Gateway
participant Auth as 🔐 Auth Service
participant DB as 💾 Database
B->>API: 📤 POST /login (email, password)
API->>Auth: 🔐 Validate credentials
Auth->>DB: 🔍 Fetch user by email
DB-->>Auth: 👤 User record
Auth->>Auth: 🔐 Verify password hash
alt ❌ Invalid password
Auth->>DB: 📝 Log failed attempt
Auth-->>API: ❌ 401 Unauthorized
API-->>B: ❌ Invalid credentials
else ✅ Password valid
alt 🔒 MFA enabled
Auth-->>API: ⚠️ 202 MFA required
API-->>B: 📱 Show MFA prompt
B->>API: 📤 POST /login/mfa (code)
API->>Auth: 🔐 Verify MFA code
Auth->>DB: 🔍 Fetch MFA device
DB-->>Auth: 📱 Device record
Auth->>Auth: 🔐 Validate TOTP
alt ❌ Invalid code
Auth-->>API: ❌ 401 Invalid code
API-->>B: ❌ Try again
else ✅ Code valid
Auth->>DB: 📝 Create session + tokens
Auth-->>API: ✅ 200 + tokens
API-->>B: ✅ Set cookies + redirect
end
else 🔓 No MFA
Auth->>DB: 📝 Create session + tokens
Auth-->>API: ✅ 200 + tokens
API-->>B: ✅ Set cookies + redirect
end
endLogin Experience — for product team
journey
accTitle: Login Experience Journey Map
accDescr: User satisfaction scores across the sign-in experience for password-only users and MFA users showing friction points in the multi-factor flow
title 👤 Login Experience
section 🔐 Sign In
Navigate to login : 4 : User
Enter email and password : 3 : User
Click sign in button : 4 : User
section 📱 MFA Challenge
Receive MFA prompt : 3 : MFA User
Open authenticator app : 2 : MFA User
Enter 6-digit code : 2 : MFA User
Handle expired code : 1 : MFA User
section ✅ Post-Login
Land on dashboard : 5 : User
See personalized content : 5 : User
Resume previous session : 4 : UserHow these connect
Same entities, different views — "User", "Session", "MFA Device" appear in the ER diagram as tables, in the sequence as participants/operations, and in the journey as experience touchpoints
Each audience gets actionable information — the DB team sees candidate fields and cardinality, the backend team sees illustrative request/error flows, and the product team sees hypothetical experience scores; these are not verified implementations or measurements
The journey reveals what the sequence hides — the sequence diagram shows MFA as a clean conditional branch, but the invented low scores indicate where a real study might look for friction. Gather evidence before making a product decision
Pattern 3: Before/After Architecture
When to use: Migration documentation where stakeholders need to see the current state, the target state, and understand the transformation.
Current State — Monolith
flowchart TB
accTitle: Current State Monolith Architecture
accDescr: Single Rails monolith handling all traffic through one server connected to one database showing the scaling bottleneck
client([👤 All traffic]) --> mono[🖥️ Rails Monolith]
mono --> db[(💾 Single PostgreSQL)]
mono --> jobs[⏰ Background jobs]
jobs --> db
classDef bottleneck fill:#fee2e2,stroke:#dc2626,stroke-width:2px,color:#7f1d1d
classDef neutral fill:#f3f4f6,stroke:#6b7280,stroke-width:2px,color:#1f2937
class mono,db bottleneck
class client,jobs neutral⚠️ Illustrative assumption: This deployment has a shared database bottleneck and restarts on deployment. These are properties to measure, not inherent facts about monoliths.
Target State — Microservices
flowchart TB
accTitle: Target State Microservices Architecture
accDescr: Decomposed microservices architecture with API gateway routing to independent services each with their own data store and a shared message queue for async communication
client([👤 All traffic]) --> gw[🌐 API Gateway]
subgraph services ["⚙️ Services"]
user_svc[👤 User Service]
order_svc[📋 Order Service]
product_svc[📦 Product Service]
end
subgraph data ["💾 Data Stores"]
user_db[(💾 Users DB)]
order_db[(💾 Orders DB)]
product_db[(💾 Products DB)]
end
gw --> user_svc
gw --> order_svc
gw --> product_svc
user_svc --> user_db
order_svc --> order_db
product_svc --> product_db
order_svc --> mq[📥 Message Queue]
mq --> user_svc
mq --> product_svc
classDef gateway fill:#ede9fe,stroke:#7c3aed,stroke-width:2px,color:#3b0764
classDef service fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#1e3a5f
classDef datastore fill:#dcfce7,stroke:#16a34a,stroke-width:2px,color:#14532d
classDef infra fill:#fef9c3,stroke:#ca8a04,stroke-width:2px,color:#713f12
class gw gateway
class user_svc,order_svc,product_svc service
class user_db,order_db,product_db datastore
class mq infra✅ Proposed outcome: Independent services and data stores may reduce the measured shared bottleneck. Verify scaling, consistency, operational cost, and failure recovery before claiming improvement.
How these connect
Same layout, different complexity — both diagrams use
flowchart TBso the structural transformation is visually obvious. The monolith is 4 nodes; the target is 11 nodes with subgraphs.Color tells the story — the monolith uses red (danger) on the bottleneck components. The target uses blue/green/purple to show healthy, differentiated components.
Prose bridges the diagrams — the ⚠️ problem callout and ✅ result callout explain why the architecture changes, not just what changed.
Linking Diagrams in Documentation
When composing diagrams in a real document, follow these practices:
| Practice | Example |
|---|---|
| Use headers as anchors | See [Authentication Flow](#authentication-flow-for-backend-team) for the full login sequence |
| Reference specific nodes | "The API Gateway from the overview connects to the services detailed below" |
| Consistent naming | Same entity = same name in every diagram (User Service, not "User Svc" in one and "Users API" in another) |
| Adjacent placement | Keep related diagrams in consecutive sections, not scattered across the document |
| Bridging prose | One sentence between diagrams explaining how they connect: "The sequence below zooms into the Deploy phase from the pipeline above" |
| Audience labels | Mark sections: "### Data Model — for database team" so readers skip to their view |
Choosing Your Composition Strategy
flowchart TB
accTitle: Diagram Composition Decision Tree
accDescr: Decision flowchart for choosing between single diagram, overview plus detail, multi-perspective, or before-after composition strategies based on audience and documentation needs
start([📋 What are you documenting?]) --> audience{👥 Multiple audiences?}
audience -->|Yes| perspectives[📐 Multi-Perspective]
audience -->|No| depth{📏 Need both summary and detail?}
depth -->|Yes| overview[🔍 Overview + Detail]
depth -->|No| change{🔄 Showing a change over time?}
change -->|Yes| before_after[⚡ Before / After]
change -->|No| single[📊 Single diagram is fine]
classDef decision fill:#fef9c3,stroke:#ca8a04,stroke-width:2px,color:#713f12
classDef result fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#1e3a5f
classDef start_style fill:#ede9fe,stroke:#7c3aed,stroke-width:2px,color:#3b0764
class audience,depth,change decision
class perspectives,overview,before_after,single result
class start start_styleRequirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Declares allowed tools, Needs Node.js
The author says: Markdown authoring needs no runtime. Local rendering targets Mermaid and Mermaid CLI 12.0.0, Node.js 22.13+ and a supported Chromium browser. Package or CDN installation needs network access; no credentials required.
Security
What our scanner noticed· Low risk
- Instructions that use the network
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- Clayton Young / Superior Byte Works, LLC (@borealBytes)
- Publisher
- K-Dense (Community)
- Distributed by
- K-Dense
- Source
- K-Dense-AI/scientific-agent-skills · skills/markdown-mermaid-writing · commit a25cf9e
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (written by AutoGineer)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Clayton Young / Superior Byte Works, LLC (@borealBytes) or K-Dense.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download markdown-mermaid-writing.zip