Markdown Style Guide
For AI agents: Read this file for all core formatting rules. When creating any markdown document, follow these conventions for consistent, professional output. When a template exists for your document type, start from it — see Templates.
For humans: This guide ensures every markdown document in your project is clean, scannable, well-cited, and renders beautifully on GitHub. Reference it from your AGENTS.md or contributing guide.
Target platform: GitHub Markdown (Issues, PRs, Discussions, Wikis, .md files)
Design goal: Clear, professional documents that communicate effectively through consistent structure, meaningful formatting, proper citations, and strategic use of diagrams.
Quick Start for Agents
- Identify the document type → Check if a template exists
- Structure first → Heading hierarchy, then content
- Apply formatting from this guide → Headings, text, lists, tables, images, links
- Add citations → Footnote references for all claims and sources
- Consider diagrams → Would a Mermaid diagram communicate this better than text?
- Add collapsible sections → For supplementary detail, speaker notes, or lengthy context
- Verify → Run through the quality checklist
Core Principles
| # |
Principle |
Rule |
| 1 |
Answer before they ask |
Anticipate reader questions and address them inline. A great document resolves doubts as they form — the reader finishes with no lingering "but what about...?" |
| 2 |
Scannable first |
Readers skim before they read. Use headings, bold, and lists to make the structure visible at a glance. |
| 3 |
Cite everything |
Every claim, statistic, or external reference gets a footnote citation with a full URL. No orphan claims. |
| 4 |
Diagrams over walls of text |
If a concept involves flow, relationships, or structure, use a Mermaid diagram alongside the text. |
| 5 |
Generous with information |
Don't hide the details — surface them. Use collapsible sections for depth without clutter, but never omit information because "they probably don't need it." If it's relevant, include it. |
| 6 |
Consistent structure |
Same heading hierarchy, same formatting patterns, same emoji placement across every document. |
| 7 |
One idea per section |
Each heading should cover one topic. If you're covering two ideas, split into two headings. |
| 8 |
Professional but approachable |
Clean formatting, no clutter, no decorative noise — but not stiff or academic. Write like a senior engineer explains to a colleague. |
🗂️ Everything is Code
Everything is code. PRs, issues, kanban boards — they're all markdown files in your repo, not data trapped in a platform's database.
Why this matters
- Portable — GitHub → GitLab → Gitea → anywhere. Your project management data isn't locked into any vendor. Switch platforms and your issues, PR records, and boards come with you — they're just files.
- AI-native — Agents can read every issue, PR record, and kanban board with local file access. No API tokens, no rate limits, no platform-specific queries.
grep beats gh api every time.
- Auditable — Project management changes go through the same PR review process as code changes. Every board update, every issue status change — it's all in git history with attribution and timestamps.
How it works
| What |
Where it lives |
What GitHub does |
| Pull requests |
docs/project/pr/pr-NNNNNNNN-short-description.md |
GitHub PR is a thin pointer — humans go there to comment on diffs, approve, and watch CI. The record of what changed, why, and what was learned lives in the file. |
| Issues |
docs/project/issues/issue-NNNNNNNN-short-description.md |
GitHub Issues is a notification and comment layer. Bug reports, feature requests, investigation logs, and resolutions live in the file. |
| Kanban boards |
docs/project/kanban/{scope}-{id}-short-description.md |
No external board tool needed. Modify the board in your branch, merge it with your PR. The board evolves with the codebase. |
| Decision records |
docs/decisions/NNN-{slug}.md |
Not tracked in GitHub at all — purely repo-native. |
The rule
📌 Don't capture information in GitHub's UI that should be captured in a file. Approve PRs in GitHub. Watch CI in GitHub. Comment in GitHub. But the actual content — the description, the investigation, the decision — lives in a committed file. If it's worth writing down, it's worth committing.
Templates for tracked documents
- Pull request record — the PR description IS this file
- Issue record — bug reports and feature requests as repo files
- Kanban board — sprint/project boards that merge with your code
See File conventions for directory structure and naming.
Document Structure
Title and metadata
Every document starts with exactly one H1 title, followed by a brief context line and a separator:
# Document Title Here
_Brief context — project name, date, or purpose in one line_
---
- One H1 per document — never more
- Context line in italics — what this document is, when, and for whom
- Horizontal rule separates metadata from content
Heading hierarchy
| Level |
Syntax |
Use |
Max per document |
| H1 |
# Title |
Document title |
1 (exactly one) |
| H2 |
## Section |
Major sections |
4–10 |
| H3 |
### Topic |
Topics within a section |
2–5 per H2 |
| H4 |
#### Subtopic |
Subtopics when needed |
2–4 per H3 |
| H5+ |
Never use |
— |
0 |
Rules:
- Never skip levels — don't jump from H2 to H4
- Emoji in H2 headings — one emoji per H2, at the start:
## 📋 Project Overview
- No emoji in H3/H4 — keep sub-headings clean
- Sentence case —
## 📋 Project overview not ## 📋 Project Overview (exception: proper nouns)
- Descriptive headings —
### Authentication flow not ### Details
Text Formatting
Bold, italic, code
| Format |
Syntax |
When to use |
Example |
| Bold |
**text** |
Key terms, important concepts, emphasis |
Primary database handles writes |
| Italic |
*text* |
Definitions, titles, subtle emphasis |
The process is called sharding |
Code |
`text` |
Technical terms, commands, file names, values |
Run npm install to install |
Strike |
~~text~~ |
Deprecated content, corrections |
Old approach replaced by v2 |
Rules:
- Bold sparingly — if everything is bold, nothing is. Max 2–3 bold terms per paragraph.
- Don't combine bold and italic (
***text***) — pick one
- Code for anything technical — file names (
README.md), commands (git push), config values (true), environment variables (NODE_ENV)
- Never bold entire sentences — bold the key word(s) within the sentence
Blockquotes
Use blockquotes for definitions, callouts, and important notes:
> **Definition:** A _load balancer_ distributes incoming network traffic
> across multiple servers to ensure no single server bears too much demand.
For warnings and callouts:
> ⚠️ **Warning:** This operation is destructive and cannot be undone.
> 💡 **Tip:** Use `--dry-run` to preview changes before applying.
> 📌 **Note:** This requires admin permissions on the repository.
- Prefix with emoji + bold label for typed callouts
- Keep blockquotes to 1–3 lines
- Don't nest blockquotes (
>>)
Lists
When to use each type
| List type |
Syntax |
Use when |
| Bullet |
- item |
Items have no inherent order |
| Numbered |
1. step |
Steps must happen in sequence |
| Checkbox |
- [ ] item |
Tracking completion (agendas, checklists) |
Formatting rules
- Consistent indentation — 2 spaces for sub-items (some renderers use 4; pick one, stick with it)
- Parallel structure — every item in a list should have the same grammatical form
- No period at end unless items are full sentences
- Keep items concise — if a bullet needs a paragraph, it should be a sub-section instead
- Max nesting depth: 2 levels — if you need a third level, restructure
✅ Good — parallel structure, concise:
- Configure the database connection
- Run the migration scripts
- Verify the schema changes
❌ Bad — mixed structure, verbose:
- You need to configure the database
- Migration scripts
- After that, you should verify that the schema looks correct
Links and Citations
Inline links
See the [Mermaid Style Guide](mermaid_style_guide.md) for diagram conventions.
- Meaningful link text —
[Mermaid Style Guide] not [click here] or [link]
- Relative paths for internal links —
[Guide](./README.md) not absolute URLs
- Full URLs for external links — always
https://
Footnote citations
Every claim, statistic, or reference to external work MUST have a footnote citation. This is non-negotiable for credibility.
Markdown was created by John Gruber in 2004 as a lightweight
markup language designed for readability[^1]. GitHub adopted
Mermaid diagram support in February 2022[^2].
[^1]: Gruber, J. (2004). "Markdown." _Daring Fireball_. https://daringfireball.net/projects/markdown/
[^2]: GitHub Blog. (2022). "Include diagrams in your Markdown files with Mermaid." https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/
Citation format:
[^N]: Author/Org. (Year). "Title." *Publication*. https://full-url
Rules:
- Number sequentially —
[^1], [^2], [^3] in order of appearance
- Full URL always included — the reader must be able to reach the source
- Group all footnotes at the document bottom — under a
## References section or at the very end
- Every external claim needs one — statistics, quotes, methodologies, tools mentioned
- Internal project links don't need footnotes — use inline links instead
Reference-style links (for repeated URLs)
When the same URL appears multiple times, use reference-style links to keep the text clean:
The [official docs][mermaid-docs] cover all diagram types.
See [Mermaid documentation][mermaid-docs] for the full syntax.
[mermaid-docs]: https://mermaid.js.org/ 'Mermaid Documentation'
Images and Figures
Placement and syntax

_Figure 1: System architecture showing the three-tier deployment model_
Rules:
- Inline with content — place images where they're relevant, not in a separate "Images" section
- Descriptive alt text —
![Three-tier architecture diagram] not ![image] or ![screenshot]
- Italic caption below —
*Figure N: What this image shows*
- Number figures sequentially — Figure 1, Figure 2, etc. if multiple images
- Relative paths —
images/file.png not absolute paths
- Reasonable file sizes — compress PNGs, use SVG where possible
Image naming convention
{document-slug}_{description}.{ext}
Examples:
auth_flow_overview.png
deployment_architecture.svg
api_response_example.png
When NOT to use an image
If the content could be expressed as a Mermaid diagram, prefer that over a static image:
| Scenario |
Use |
| Architecture diagram |
Mermaid flowchart or architecture-beta |
| Sequence/interaction |
Mermaid sequenceDiagram |
| Data model |
Mermaid erDiagram |
| Timeline |
Mermaid timeline or gantt |
| Screenshot of UI |
Image (Mermaid can't do this) |
| Photo / real-world image |
Image |
| Complex data visualization |
Image or Mermaid xychart-beta |
See the Mermaid Style Guide for diagram type selection and styling.
Tables
When to use tables
- Structured comparisons — features, options, tradeoffs
- Reference data — configuration values, API parameters, status codes
- Schedules and matrices — timelines, responsibility assignments
When NOT to use tables
- Narrative content — use paragraphs instead
- Simple lists — use bullet points
- More than 5 columns — becomes unreadable on mobile; restructure
Formatting
| Feature | Free Tier | Pro Tier | Enterprise |
| ------- | --------- | -------- | ---------- |
| Users | 5 | 50 | Unlimited |
| Storage | 1 GB | 100 GB | Custom |
| Support | Community | Email | Dedicated |
Rules:
- Header row always — no headerless tables
- Left-align text columns —
|---| (default)
- Right-align number columns —
|---:| when appropriate
- Concise cell content — 1–5 words per cell. If you need more, it's not a table problem
- Bold key column — the first column or the column the reader scans first
- Consistent formatting within columns — don't mix sentences and fragments
Code Blocks
Inline code
Use backticks for technical terms within prose:
Run `git status` to check for uncommitted changes.
The `NODE_ENV` variable controls the runtime environment.
Fenced code blocks
Always specify the language for syntax highlighting:
```python
def calculate_average(values: list[float]) -> float:
"""Return the arithmetic mean of a list of values."""
return sum(values) / len(values)
```
Rules:
- Always include language identifier —
```python, ```bash, ```json, etc.
- **Use
```text for plain output** — not ``` with no language
- Keep blocks focused — show the relevant snippet, not the entire file
- Add a comment if context needed —
# Configure the database connection at the top of the block
Collapsible Sections
Use HTML <details> for supplementary content that shouldn't clutter the main flow — speaker notes, implementation details, verbose logs, or optional deep-dives.
<details>
<summary><strong>💬 Speaker Notes</strong></summary>
- Key talking point one
- Transition to next topic
- **Bold** emphasis works inside details
- [Links](https://example.com) work too
</details>
---
Rules:
- Collapsed by default — the
<details> tag collapses automatically
- Descriptive summary —
<strong>💬 Speaker Notes</strong> or <strong>📋 Implementation Details</strong>
- Blank line after
<summary> tag — required for markdown to render inside the block
- ALWAYS follow with
--- — horizontal rule after every </details> for visual separation
- Any markdown works inside — bullets, bold, links, code blocks, tables
Common collapsible patterns
| Summary label |
Use for |
| 💬 Speaker Notes |
Presentation talking points, timing, transitions |
| 📋 Details |
Extended explanation, verbose context |
| 🔧 Implementation |
Technical details, code samples, config |
| 📊 Raw Data |
Full output, logs, data tables |
| 💡 Background |
Context that helps but isn't essential |
Horizontal Rules
Use --- (three hyphens) for visual separation:
---
When to use:
- After every
</details> block — mandatory, creates clear separation
- After title/metadata — separates document header from content
- Between major sections — when an H2 heading alone doesn't create enough visual break
- Before footnotes/references — separates content from citation list
When NOT to use:
- Between every paragraph (too busy)
- Between H3 sub-sections within the same H2 (use whitespace instead)
Approved Emoji Set
One emoji per H2 heading, at the start. Use sparingly in body text for callouts and emphasis only.
Section headings
| Emoji |
Use for |
| 📋 |
Overview, summary, agenda, checklist |
| 🎯 |
Goals, objectives, outcomes, targets |
| 📚 |
Content, documentation, main body |
| 🔗 |
Resources, references, links |
| 📍 |
Agenda, navigation, current position |
| 🏠 |
Housekeeping, logistics, announcements |
| ✍️ |
Tasks, assignments, action items |
Status and outcomes
| Emoji |
Meaning |
| ✅ |
Success, complete, correct, approved |
| ❌ |
Failure, incorrect, avoid, rejected |
| ⚠️ |
Warning, caution, important notice |
| 💡 |
Tip, insight, idea, best practice |
| 📌 |
Important, key point, remember |
| 🚫 |
Prohibited, do not, blocked |
Technical and process
| Emoji |
Meaning |
| ⚙️ |
Configuration, settings, process |
| 🔧 |
Tools, utilities, setup |
| 🔍 |
Analysis, investigation, review |
| 📊 |
Data, metrics, analytics |
| 📈 |
Growth, trends, improvement |
| 🔄 |
Cycle, refresh, iteration |
| ⚡ |
Performance, speed, quick action |
| 🔐 |
Security, authentication, privacy |
| 🌐 |
Web, API, network, global |
| 💾 |
Storage, database, persistence |
| 📦 |
Package, artifact, deployment |
People and collaboration
| Emoji |
Meaning |
| 👤 |
User, person, individual |
| 👥 |
Team, group, collaboration |
| 💬 |
Discussion, comments, speaker notes |
| 🎓 |
Learning, education, knowledge |
| 🤔 |
Question, consideration, reflection |
Emoji rules
- One per H2 heading at the start —
## 📋 Overview
- None in H3/H4 — keep sub-headings clean
- Sparingly in body text — for callouts (
> ⚠️ **Warning:**) and key markers only
- Never in: titles (H1), code blocks, link text, table data cells
- No decorative emoji — 🎉 💯 🔥 🎊 💥 ✨ add noise, not meaning
- Consistency — same emoji = same meaning across all documents in the project
Mermaid Diagram Integration
Whenever content describes flow, structure, relationships, or processes, consider whether a Mermaid diagram would communicate it better than prose alone. Diagrams and text together are more effective than either alone.
When to add a diagram
Any time your text describes flow, structure, relationships, timing, or comparisons, there's a Mermaid diagram that communicates it better. Scan the table below to identify the right type, then follow this workflow:
- Read the Mermaid Style Guide first — emoji, color palette, accessibility, complexity management
- Then open the specific type file — exemplar, tips, template, complex example
| Your content describes... |
Add a... |
Type file |
| Steps in a process, workflow, decision logic |
Flowchart |
flowchart.md |
| Who talks to whom and when (API calls, messages) |
Sequence diagram |
sequence.md |
| Class hierarchy, type relationships, interfaces |
Class diagram |
class.md |
| Status transitions, entity lifecycle, state machine |
State diagram |
state.md |
| Database schema, data model, entity relationships |
ER diagram |
er.md |
| Project timeline, roadmap, task dependencies |
Gantt chart |
gantt.md |
| Parts of a whole, proportions, distribution |
Pie chart |
pie.md |
| Git branching strategy, merge/release flow |
Git Graph |
git_graph.md |
| Concept hierarchy, brainstorm, topic map |
Mindmap |
mindmap.md |
| Chronological events, milestones, history |
Timeline |
timeline.md |
| User experience, satisfaction scores, journey |
User Journey |
user_journey.md |
| Two-axis comparison, prioritization matrix |
Quadrant chart |
quadrant.md |
| Requirements traceability, compliance mapping |
Requirement diagram |
requirement.md |
| System architecture at varying zoom levels |
C4 diagram |
c4.md |
| Flow magnitude, resource distribution, budgets |
Sankey diagram |
sankey.md |
| Numeric trends, bar charts, line charts |
XY Chart |
xy_chart.md |
| Component layout, spatial arrangement, layers |
Block diagram |
block.md |
| Work item tracking, status board, task columns |
Kanban board |
kanban.md |
| Binary protocol layout, data packet format |
Packet diagram |
packet.md |
| Cloud infrastructure, service topology, networking |
Architecture diagram |
architecture.md |
| Multi-dimensional comparison, skills, radar analysis |
Radar chart |
radar.md |
| Hierarchical proportions, budget breakdown |
Treemap |
treemap.md |
💡 Pick the right type, not the easy type. Don't default to flowcharts for everything — a timeline is better than a flowchart for chronological events, a sequence diagram is better for service interactions, an ER diagram is better for data models. Scan the table above and match your content to the most specific type. If you catch yourself writing a paragraph that describes a visual concept, stop and diagram it.
How to integrate
Place the diagram inline with the related text, not in a separate section:
### Authentication Flow
The login process validates credentials, checks MFA status,
and issues session tokens. Failed attempts are logged for
security monitoring.
```mermaid
sequenceDiagram
accTitle: Login Authentication Flow
accDescr: User login sequence through API and auth service
participant U as 👤 User
participant A as 🌐 API
participant S as 🔐 Auth Service
U->>A: POST /login
A->>S: Validate credentials
S-->>A: ✅ Token issued
A-->>U: 200 OK + session
```
The token expires after 24 hours. See [Authentication flow](#authentication-flow)
for refresh token details.
Always follow the Mermaid Style Guide for diagram styling — emoji, color classes, accessibility (accTitle/accDescr), and type-specific conventions.
Whitespace and Spacing
- Blank line between paragraphs — always
- Blank line before and after headings — always
- Blank line before and after code blocks — always
- Blank line before and after blockquotes — always
- No blank line between list items — keep lists tight
- No trailing whitespace — clean line endings
- One blank line at end of file — standard convention
- No more than one consecutive blank line — two blank lines = too much space
Quality Checklist
Structure
Content
Visual elements
Collapsible sections
Polish
Templates
Templates provide pre-built structures for common document types. Copy the template, fill in your content, and follow this style guide for formatting. Every template enforces the principles above — citations, diagrams, collapsible depth, and self-answering structure.
| Document type |
Template |
Best for |
| Presentation / briefing |
presentation.md |
Slide-deck-style documents with speaker notes, structured sections, and visual flow |
| Research paper / analysis |
research_paper.md |
Data-driven analysis, literature reviews, methodology + findings with heavy citations |
| Project documentation |
project_documentation.md |
Software/product docs — architecture, getting started, API reference, contribution guide |
| Decision record (ADR/RFC) |
decision_record.md |
Recording why a decision was made — context, options evaluated, outcome, consequences |
| How-to / tutorial guide |
how_to_guide.md |
Step-by-step instructions with prerequisites, verification steps, and troubleshooting |
| Status report / executive brief |
status_report.md |
Progress updates, risk summaries, decisions needed — for leadership and stakeholders |
| Pull request record |
pull_request.md |
PR documentation with change inventory, testing evidence, rollback plan, and review notes |
| Issue record |
issue.md |
Bug reports (reproduction steps, root cause) and feature requests (acceptance criteria, user stories) |
| Kanban board |
kanban.md |
Sprint/release/project work tracking with visual board, WIP limits, metrics, and blocked items |
File conventions for tracked documents
Some templates produce documents that accumulate over time. Use these directory conventions:
| Document type |
Directory |
Naming pattern |
Example |
| Pull requests |
docs/project/pr/ |
pr-NNNNNNNN-short-description.md |
docs/project/pr/pr-00000123-fix-auth-timeout.md |
| Issues |
docs/project/issues/ |
issue-NNNNNNNN-short-description.md |
docs/project/issues/issue-00000456-add-export-filter.md |
| Kanban boards |
docs/project/kanban/ |
{scope}-{identifier}-short-description.md |
docs/project/kanban/sprint-2026-w07-agentic-template-modernization.md |
| Decision records |
docs/decisions/ |
NNN-{slug}.md |
docs/decisions/001-use-postgresql.md |
| Status reports |
docs/status/ |
status-{date}.md |
docs/status/status-2026-02-14.md |
Choosing a template
- Presenting to people? → Presentation
- Publishing analysis or research? → Research paper
- Documenting a codebase or product? → Project documentation
- Recording why you chose X over Y? → Decision record
- Teaching someone how to do something? → How-to guide
- Updating leadership on progress? → Status report
- Documenting a PR for posterity? → Pull request record
- Tracking a bug or requesting a feature? → Issue record
- Managing work items for a sprint or project? → Kanban board
- None of these fit? → Start from this style guide's rules directly — no template required
Common Mistakes
❌ Multiple emoji per heading
## 📚📊📈 Content Topics ← Too many
✅ Fix: One emoji per H2
## 📚 Content topics
❌ Missing citations
Studies show 73% of developers prefer Markdown. ← Where's the source?
✅ Fix: Add footnote
Studies show 73% of developers prefer Markdown[^1].
[^1]: Stack Overflow. (2024). "Developer Survey Results." https://survey.stackoverflow.co/2024
❌ Wall of text without structure
The system handles authentication by first checking the JWT token
validity, then verifying the user exists in the database, then
checking their permissions against the requested resource...
✅ Fix: Use a list, heading, or diagram
### Authentication flow
1. Validate JWT token signature and expiration
2. Verify user exists in the database
3. Check user permissions against the requested resource
❌ Images in a separate section
## Content
[paragraphs of text]
## Screenshots
[all images grouped here] ← Disconnected from context
✅ Fix: Place images inline where relevant
❌ No horizontal rule after collapsible sections
</details>
### Next Topic ← Runs together visually
✅ Fix: Always add --- after </details>
</details>
---
### Next topic ← Clear separation
Resources
1---2name: 2555-markdown-style-guide-013384383description: <!-- Source: https://github.com/SuperiorByteWorks-LLC/agent-project | License: Apache-2.0 | Author: Clayton Young / Superior Byte Works, LLC (Boreal Bytes) -->4---5<!-- Source: https://github.com/SuperiorByteWorks-LLC/agent-project | License: Apache-2.0 | Author: Clayton Young / Superior Byte Works, LLC (Boreal Bytes) -->67# Markdown Style Guide89> **For AI agents:** Read this file for all core formatting rules. When creating any markdown document, follow these conventions for consistent, professional output. When a template exists for your document type, start from it — see [Templates](#templates).10>11> **For humans:** This guide ensures every markdown document in your project is clean, scannable, well-cited, and renders beautifully on GitHub. Reference it from your `AGENTS.md` or contributing guide.1213**Target platform:** GitHub Markdown (Issues, PRs, Discussions, Wikis, `.md` files)14**Design goal:** Clear, professional documents that communicate effectively through consistent structure, meaningful formatting, proper citations, and strategic use of diagrams.1516---1718## Quick Start for Agents19201. **Identify the document type** → Check if a [template](#templates) exists212. **Structure first** → Heading hierarchy, then content223. **Apply formatting from this guide** → Headings, text, lists, tables, images, links234. **Add citations** → Footnote references for all claims and sources245. **Consider diagrams** → Would a [Mermaid diagram](mermaid_style_guide.md) communicate this better than text?256. **Add collapsible sections** → For supplementary detail, speaker notes, or lengthy context267. **Verify** → Run through the [quality checklist](#quality-checklist)2728---2930## Core Principles3132| # | Principle | Rule |33| --- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |34| 1 | **Answer before they ask** | Anticipate reader questions and address them inline. A great document resolves doubts as they form — the reader finishes with no lingering "but what about...?" |35| 2 | **Scannable first** | Readers skim before they read. Use headings, bold, and lists to make the structure visible at a glance. |36| 3 | **Cite everything** | Every claim, statistic, or external reference gets a footnote citation with a full URL. No orphan claims. |37| 4 | **Diagrams over walls of text** | If a concept involves flow, relationships, or structure, use a [Mermaid diagram](mermaid_style_guide.md) alongside the text. |38| 5 | **Generous with information** | Don't hide the details — surface them. Use collapsible sections for depth without clutter, but never omit information because "they probably don't need it." If it's relevant, include it. |39| 6 | **Consistent structure** | Same heading hierarchy, same formatting patterns, same emoji placement across every document. |40| 7 | **One idea per section** | Each heading should cover one topic. If you're covering two ideas, split into two headings. |41| 8 | **Professional but approachable** | Clean formatting, no clutter, no decorative noise — but not stiff or academic. Write like a senior engineer explains to a colleague. |4243---4445## 🗂️ Everything is Code4647Everything is code. PRs, issues, kanban boards — they're all markdown files in your repo, not data trapped in a platform's database.4849### Why this matters5051- **Portable** — GitHub → GitLab → Gitea → anywhere. Your project management data isn't locked into any vendor. Switch platforms and your issues, PR records, and boards come with you — they're just files.52- **AI-native** — Agents can read every issue, PR record, and kanban board with local file access. No API tokens, no rate limits, no platform-specific queries. `grep` beats `gh api` every time.53- **Auditable** — Project management changes go through the same PR review process as code changes. Every board update, every issue status change — it's all in git history with attribution and timestamps.5455### How it works5657| What | Where it lives | What GitHub does |58| -------------------- | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |59| **Pull requests** | `docs/project/pr/pr-NNNNNNNN-short-description.md` | GitHub PR is a thin pointer — humans go there to comment on diffs, approve, and watch CI. The record of what changed, why, and what was learned lives in the file. |60| **Issues** | `docs/project/issues/issue-NNNNNNNN-short-description.md` | GitHub Issues is a notification and comment layer. Bug reports, feature requests, investigation logs, and resolutions live in the file. |61| **Kanban boards** | `docs/project/kanban/{scope}-{id}-short-description.md` | No external board tool needed. Modify the board in your branch, merge it with your PR. The board evolves with the codebase. |62| **Decision records** | `docs/decisions/NNN-{slug}.md` | Not tracked in GitHub at all — purely repo-native. |6364### The rule6566> 📌 **Don't capture information in GitHub's UI that should be captured in a file.** Approve PRs in GitHub. Watch CI in GitHub. Comment in GitHub. But the actual content — the description, the investigation, the decision — lives in a committed file. If it's worth writing down, it's worth committing.6768### Templates for tracked documents6970- [Pull request record](markdown_templates/pull_request.md) — the PR description IS this file71- [Issue record](markdown_templates/issue.md) — bug reports and feature requests as repo files72- [Kanban board](markdown_templates/kanban.md) — sprint/project boards that merge with your code7374See [File conventions](#file-conventions-for-tracked-documents) for directory structure and naming.7576---7778## Document Structure7980### Title and metadata8182Every document starts with exactly one H1 title, followed by a brief context line and a separator:8384```markdown85# Document Title Here8687_Brief context — project name, date, or purpose in one line_8889---90```9192- **One H1 per document** — never more93- Context line in italics — what this document is, when, and for whom94- Horizontal rule separates metadata from content9596### Heading hierarchy9798| Level | Syntax | Use | Max per document |99| ----- | --------------- | ----------------------- | ------------------- |100| H1 | `# Title` | Document title | **1** (exactly one) |101| H2 | `## Section` | Major sections | 4–10 |102| H3 | `### Topic` | Topics within a section | 2–5 per H2 |103| H4 | `#### Subtopic` | Subtopics when needed | 2–4 per H3 |104| H5+ | Never use | — | 0 |105106**Rules:**107108- **Never skip levels** — don't jump from H2 to H4109- **Emoji in H2 headings** — one emoji per H2, at the start: `## 📋 Project Overview`110- **No emoji in H3/H4** — keep sub-headings clean111- **Sentence case** — `## 📋 Project overview` not `## 📋 Project Overview` (exception: proper nouns)112- **Descriptive headings** — `### Authentication flow` not `### Details`113114---115116## Text Formatting117118### Bold, italic, code119120| Format | Syntax | When to use | Example |121| ---------- | ------------ | --------------------------------------------- | ----------------------------------- |122| **Bold** | `**text**` | Key terms, important concepts, emphasis | **Primary database** handles writes |123| _Italic_ | `*text*` | Definitions, titles, subtle emphasis | The process is called _sharding_ |124| `Code` | `` `text` `` | Technical terms, commands, file names, values | Run `npm install` to install |125| ~~Strike~~ | `~~text~~` | Deprecated content, corrections | ~~Old approach~~ replaced by v2 |126127**Rules:**128129- **Bold sparingly** — if everything is bold, nothing is. Max 2–3 bold terms per paragraph.130- **Don't combine** bold and italic (`***text***`) — pick one131- **Code for anything technical** — file names (`README.md`), commands (`git push`), config values (`true`), environment variables (`NODE_ENV`)132- **Never bold entire sentences** — bold the key word(s) within the sentence133134### Blockquotes135136Use blockquotes for definitions, callouts, and important notes:137138```markdown139> **Definition:** A _load balancer_ distributes incoming network traffic140> across multiple servers to ensure no single server bears too much demand.141```142143For warnings and callouts:144145```markdown146> ⚠️ **Warning:** This operation is destructive and cannot be undone.147148> 💡 **Tip:** Use `--dry-run` to preview changes before applying.149150> 📌 **Note:** This requires admin permissions on the repository.151```152153- Prefix with emoji + bold label for typed callouts154- Keep blockquotes to 1–3 lines155- Don't nest blockquotes (`>>`)156157---158159## Lists160161### When to use each type162163| List type | Syntax | Use when |164| --------- | ------------ | ----------------------------------------- |165| Bullet | `- item` | Items have no inherent order |166| Numbered | `1. step` | Steps must happen in sequence |167| Checkbox | `- [ ] item` | Tracking completion (agendas, checklists) |168169### Formatting rules170171- **Consistent indentation** — 2 spaces for sub-items (some renderers use 4; pick one, stick with it)172- **Parallel structure** — every item in a list should have the same grammatical form173- **No period at end** unless items are full sentences174- **Keep items concise** — if a bullet needs a paragraph, it should be a sub-section instead175- **Max nesting depth: 2 levels** — if you need a third level, restructure176177```markdown178✅ Good — parallel structure, concise:179180- Configure the database connection181- Run the migration scripts182- Verify the schema changes183184❌ Bad — mixed structure, verbose:185186- You need to configure the database187- Migration scripts188- After that, you should verify that the schema looks correct189```190191---192193## Links and Citations194195### Inline links196197```markdown198See the [Mermaid Style Guide](mermaid_style_guide.md) for diagram conventions.199```200201- **Meaningful link text** — `[Mermaid Style Guide]` not `[click here]` or `[link]`202- **Relative paths** for internal links — `[Guide](./README.md)` not absolute URLs203- **Full URLs** for external links — always `https://`204205### Footnote citations206207**Every claim, statistic, or reference to external work MUST have a footnote citation.** This is non-negotiable for credibility.208209```markdown210Markdown was created by John Gruber in 2004 as a lightweight211markup language designed for readability[^1]. GitHub adopted212Mermaid diagram support in February 2022[^2].213214[^1]: Gruber, J. (2004). "Markdown." _Daring Fireball_. https://daringfireball.net/projects/markdown/215216[^2]: GitHub Blog. (2022). "Include diagrams in your Markdown files with Mermaid." https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/217```218219**Citation format:**220221```222[^N]: Author/Org. (Year). "Title." *Publication*. https://full-url223```224225**Rules:**226227- **Number sequentially** — `[^1]`, `[^2]`, `[^3]` in order of appearance228- **Full URL always included** — the reader must be able to reach the source229- **Group all footnotes at the document bottom** — under a `## References` section or at the very end230- **Every external claim needs one** — statistics, quotes, methodologies, tools mentioned231- **Internal project links don't need footnotes** — use inline links instead232233### Reference-style links (for repeated URLs)234235When the same URL appears multiple times, use reference-style links to keep the text clean:236237```markdown238The [official docs][mermaid-docs] cover all diagram types.239See [Mermaid documentation][mermaid-docs] for the full syntax.240241[mermaid-docs]: https://mermaid.js.org/ 'Mermaid Documentation'242```243244---245246## Images and Figures247248### Placement and syntax249250```markdown251252_Figure 1: System architecture showing the three-tier deployment model_253```254255**Rules:**256257- **Inline with content** — place images where they're relevant, not in a separate "Images" section258- **Descriptive alt text** — `![Three-tier architecture diagram]` not `![image]` or `![screenshot]`259- **Italic caption below** — `*Figure N: What this image shows*`260- **Number figures sequentially** — Figure 1, Figure 2, etc. if multiple images261- **Relative paths** — `images/file.png` not absolute paths262- **Reasonable file sizes** — compress PNGs, use SVG where possible263264### Image naming convention265266```267{document-slug}_{description}.{ext}268269Examples:270 auth_flow_overview.png271 deployment_architecture.svg272 api_response_example.png273```274275### When NOT to use an image276277If the content could be expressed as a **Mermaid diagram**, prefer that over a static image:278279| Scenario | Use |280| -------------------------- | ------------------------------------------ |281| Architecture diagram | Mermaid `flowchart` or `architecture-beta` |282| Sequence/interaction | Mermaid `sequenceDiagram` |283| Data model | Mermaid `erDiagram` |284| Timeline | Mermaid `timeline` or `gantt` |285| Screenshot of UI | Image (Mermaid can't do this) |286| Photo / real-world image | Image |287| Complex data visualization | Image or Mermaid `xychart-beta` |288289See the [Mermaid Style Guide](mermaid_style_guide.md) for diagram type selection and styling.290291---292293## Tables294295### When to use tables296297- **Structured comparisons** — features, options, tradeoffs298- **Reference data** — configuration values, API parameters, status codes299- **Schedules and matrices** — timelines, responsibility assignments300301### When NOT to use tables302303- **Narrative content** — use paragraphs instead304- **Simple lists** — use bullet points305- **More than 5 columns** — becomes unreadable on mobile; restructure306307### Formatting308309```markdown310| Feature | Free Tier | Pro Tier | Enterprise |311| ------- | --------- | -------- | ---------- |312| Users | 5 | 50 | Unlimited |313| Storage | 1 GB | 100 GB | Custom |314| Support | Community | Email | Dedicated |315```316317**Rules:**318319- **Header row always** — no headerless tables320- **Left-align text columns** — `|---|` (default)321- **Right-align number columns** — `|---:|` when appropriate322- **Concise cell content** — 1–5 words per cell. If you need more, it's not a table problem323- **Bold key column** — the first column or the column the reader scans first324- **Consistent formatting within columns** — don't mix sentences and fragments325326---327328## Code Blocks329330### Inline code331332Use backticks for technical terms within prose:333334```markdown335Run `git status` to check for uncommitted changes.336The `NODE_ENV` variable controls the runtime environment.337```338339### Fenced code blocks340341Always specify the language for syntax highlighting:342343````markdown344```python345def calculate_average(values: list[float]) -> float:346 """Return the arithmetic mean of a list of values."""347 return sum(values) / len(values)348```349````350351**Rules:**352353- **Always include language identifier** — ` ```python `, ` ```bash `, ` ```json `, etc.354- **Use ` ```text ` for plain output** — not ` ``` ` with no language355- **Keep blocks focused** — show the relevant snippet, not the entire file356- **Add a comment if context needed** — `# Configure the database connection` at the top of the block357358---359360## Collapsible Sections361362Use HTML `<details>` for supplementary content that shouldn't clutter the main flow — speaker notes, implementation details, verbose logs, or optional deep-dives.363364```markdown365<details>366<summary><strong>💬 Speaker Notes</strong></summary>367368- Key talking point one369- Transition to next topic370- **Bold** emphasis works inside details371- [Links](https://example.com) work too372373</details>374375---376```377378**Rules:**379380- **Collapsed by default** — the `<details>` tag collapses automatically381- **Descriptive summary** — `<strong>💬 Speaker Notes</strong>` or `<strong>📋 Implementation Details</strong>`382- **Blank line after `<summary>` tag** — required for markdown to render inside the block383- **ALWAYS follow with `---`** — horizontal rule after every `</details>` for visual separation384- **Any markdown works inside** — bullets, bold, links, code blocks, tables385386### Common collapsible patterns387388| Summary label | Use for |389| --------------------- | ------------------------------------------------ |390| 💬 **Speaker Notes** | Presentation talking points, timing, transitions |391| 📋 **Details** | Extended explanation, verbose context |392| 🔧 **Implementation** | Technical details, code samples, config |393| 📊 **Raw Data** | Full output, logs, data tables |394| 💡 **Background** | Context that helps but isn't essential |395396---397398## Horizontal Rules399400Use `---` (three hyphens) for visual separation:401402```markdown403---404```405406**When to use:**407408- **After every `</details>` block** — mandatory, creates clear separation409- **After title/metadata** — separates document header from content410- **Between major sections** — when an H2 heading alone doesn't create enough visual break411- **Before footnotes/references** — separates content from citation list412413**When NOT to use:**414415- Between every paragraph (too busy)416- Between H3 sub-sections within the same H2 (use whitespace instead)417418---419420## Approved Emoji Set421422One emoji per H2 heading, at the start. Use sparingly in body text for callouts and emphasis only.423424### Section headings425426| Emoji | Use for |427| ----- | -------------------------------------- |428| 📋 | Overview, summary, agenda, checklist |429| 🎯 | Goals, objectives, outcomes, targets |430| 📚 | Content, documentation, main body |431| 🔗 | Resources, references, links |432| 📍 | Agenda, navigation, current position |433| 🏠 | Housekeeping, logistics, announcements |434| ✍️ | Tasks, assignments, action items |435436### Status and outcomes437438| Emoji | Meaning |439| ----- | ------------------------------------ |440| ✅ | Success, complete, correct, approved |441| ❌ | Failure, incorrect, avoid, rejected |442| ⚠️ | Warning, caution, important notice |443| 💡 | Tip, insight, idea, best practice |444| 📌 | Important, key point, remember |445| 🚫 | Prohibited, do not, blocked |446447### Technical and process448449| Emoji | Meaning |450| ----- | --------------------------------- |451| ⚙️ | Configuration, settings, process |452| 🔧 | Tools, utilities, setup |453| 🔍 | Analysis, investigation, review |454| 📊 | Data, metrics, analytics |455| 📈 | Growth, trends, improvement |456| 🔄 | Cycle, refresh, iteration |457| ⚡ | Performance, speed, quick action |458| 🔐 | Security, authentication, privacy |459| 🌐 | Web, API, network, global |460| 💾 | Storage, database, persistence |461| 📦 | Package, artifact, deployment |462463### People and collaboration464465| Emoji | Meaning |466| ----- | ----------------------------------- |467| 👤 | User, person, individual |468| 👥 | Team, group, collaboration |469| 💬 | Discussion, comments, speaker notes |470| 🎓 | Learning, education, knowledge |471| 🤔 | Question, consideration, reflection |472473### Emoji rules4744751. **One per H2 heading** at the start — `## 📋 Overview`4762. **None in H3/H4** — keep sub-headings clean4773. **Sparingly in body text** — for callouts (`> ⚠️ **Warning:**`) and key markers only4784. **Never in**: titles (H1), code blocks, link text, table data cells4795. **No decorative emoji** — 🎉 💯 🔥 🎊 💥 ✨ add noise, not meaning4806. **Consistency** — same emoji = same meaning across all documents in the project481482---483484## Mermaid Diagram Integration485486**Whenever content describes flow, structure, relationships, or processes, consider whether a Mermaid diagram would communicate it better than prose alone.** Diagrams and text together are more effective than either alone.487488### When to add a diagram489490**Any time your text describes flow, structure, relationships, timing, or comparisons, there's a Mermaid diagram that communicates it better.** Scan the table below to identify the right type, then follow this workflow:4914921. **Read the [Mermaid Style Guide](mermaid_style_guide.md) first** — emoji, color palette, accessibility, complexity management4932. **Then open the specific type file** — exemplar, tips, template, complex example494495| Your content describes... | Add a... | Type file |496| ---------------------------------------------------- | ------------------------ | --------------------------------------------------- |497| Steps in a process, workflow, decision logic | **Flowchart** | [flowchart.md](mermaid_diagrams/flowchart.md) |498| Who talks to whom and when (API calls, messages) | **Sequence diagram** | [sequence.md](mermaid_diagrams/sequence.md) |499| Class hierarchy, type relationships, interfaces | **Class diagram** | [class.md](mermaid_diagrams/class.md) |500| Status transitions, entity lifecycle, state machine | **State diagram** | [state.md](mermaid_diagrams/state.md) |501| Database schema, data model, entity relationships | **ER diagram** | [er.md](mermaid_diagrams/er.md) |502| Project timeline, roadmap, task dependencies | **Gantt chart** | [gantt.md](mermaid_diagrams/gantt.md) |503| Parts of a whole, proportions, distribution | **Pie chart** | [pie.md](mermaid_diagrams/pie.md) |504| Git branching strategy, merge/release flow | **Git Graph** | [git_graph.md](mermaid_diagrams/git_graph.md) |505| Concept hierarchy, brainstorm, topic map | **Mindmap** | [mindmap.md](mermaid_diagrams/mindmap.md) |506| Chronological events, milestones, history | **Timeline** | [timeline.md](mermaid_diagrams/timeline.md) |507| User experience, satisfaction scores, journey | **User Journey** | [user_journey.md](mermaid_diagrams/user_journey.md) |508| Two-axis comparison, prioritization matrix | **Quadrant chart** | [quadrant.md](mermaid_diagrams/quadrant.md) |509| Requirements traceability, compliance mapping | **Requirement diagram** | [requirement.md](mermaid_diagrams/requirement.md) |510| System architecture at varying zoom levels | **C4 diagram** | [c4.md](mermaid_diagrams/c4.md) |511| Flow magnitude, resource distribution, budgets | **Sankey diagram** | [sankey.md](mermaid_diagrams/sankey.md) |512| Numeric trends, bar charts, line charts | **XY Chart** | [xy_chart.md](mermaid_diagrams/xy_chart.md) |513| Component layout, spatial arrangement, layers | **Block diagram** | [block.md](mermaid_diagrams/block.md) |514| Work item tracking, status board, task columns | **Kanban board** | [kanban.md](mermaid_diagrams/kanban.md) |515| Binary protocol layout, data packet format | **Packet diagram** | [packet.md](mermaid_diagrams/packet.md) |516| Cloud infrastructure, service topology, networking | **Architecture diagram** | [architecture.md](mermaid_diagrams/architecture.md) |517| Multi-dimensional comparison, skills, radar analysis | **Radar chart** | [radar.md](mermaid_diagrams/radar.md) |518| Hierarchical proportions, budget breakdown | **Treemap** | [treemap.md](mermaid_diagrams/treemap.md) |519520> 💡 **Pick the right type, not the easy type.** Don't default to flowcharts for everything — a timeline is better than a flowchart for chronological events, a sequence diagram is better for service interactions, an ER diagram is better for data models. Scan the table above and match your content to the most specific type. **If you catch yourself writing a paragraph that describes a visual concept, stop and diagram it.**521522### How to integrate523524Place the diagram **inline with the related text**, not in a separate section:525526````markdown527### Authentication Flow528529The login process validates credentials, checks MFA status,530and issues session tokens. Failed attempts are logged for531security monitoring.532533```mermaid534sequenceDiagram535accTitle: Login Authentication Flow536accDescr: User login sequence through API and auth service537538 participant U as 👤 User539 participant A as 🌐 API540 participant S as 🔐 Auth Service541542 U->>A: POST /login543 A->>S: Validate credentials544 S-->>A: ✅ Token issued545 A-->>U: 200 OK + session546547```548549The token expires after 24 hours. See [Authentication flow](#authentication-flow)550for refresh token details.551````552553**Always follow the [Mermaid Style Guide](mermaid_style_guide.md)** for diagram styling — emoji, color classes, accessibility (`accTitle`/`accDescr`), and type-specific conventions.554555---556557## Whitespace and Spacing558559- **Blank line between paragraphs** — always560- **Blank line before and after headings** — always561- **Blank line before and after code blocks** — always562- **Blank line before and after blockquotes** — always563- **No blank line between list items** — keep lists tight564- **No trailing whitespace** — clean line endings565- **One blank line at end of file** — standard convention566- **No more than one consecutive blank line** — two blank lines = too much space567568---569570## Quality Checklist571572### Structure573574- [ ] Exactly one H1 title575- [ ] Heading hierarchy is correct (H1 → H2 → H3 → H4, no skips)576- [ ] Each H2 has exactly one emoji at the start577- [ ] H3 and H4 have no emoji578- [ ] Horizontal rules after title metadata and after every `</details>` block579580### Content581582- [ ] Every external claim has a footnote citation583- [ ] All footnotes have full URLs584- [ ] All links tested and working585- [ ] Meaningful link text (no "click here")586- [ ] Bold used for key terms, not entire sentences587- [ ] Code formatting for all technical terms588589### Visual elements590591- [ ] Images have descriptive alt text592- [ ] Images have italic figure captions593- [ ] Images placed inline with related content (not in separate section)594- [ ] Tables have header rows and consistent formatting595- [ ] Mermaid diagrams considered where applicable (with `accTitle`/`accDescr`)596597### Collapsible sections598599- [ ] `<details>` blocks have descriptive `<summary>` labels600- [ ] Blank line after `<summary>` tag (for markdown rendering)601- [ ] Horizontal rule `---` after every `</details>` block602- [ ] Content inside collapses renders correctly603604### Polish605606- [ ] No spelling or grammar errors607- [ ] Consistent whitespace (no trailing spaces, no double blanks)608- [ ] Parallel grammatical structure in lists609- [ ] Renders correctly in GitHub light and dark mode610611---612613## Templates614615Templates provide pre-built structures for common document types. Copy the template, fill in your content, and follow this style guide for formatting. Every template enforces the principles above — citations, diagrams, collapsible depth, and self-answering structure.616617| Document type | Template | Best for |618| ------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |619| Presentation / briefing | [presentation.md](markdown_templates/presentation.md) | Slide-deck-style documents with speaker notes, structured sections, and visual flow |620| Research paper / analysis | [research_paper.md](markdown_templates/research_paper.md) | Data-driven analysis, literature reviews, methodology + findings with heavy citations |621| Project documentation | [project_documentation.md](markdown_templates/project_documentation.md) | Software/product docs — architecture, getting started, API reference, contribution guide |622| Decision record (ADR/RFC) | [decision_record.md](markdown_templates/decision_record.md) | Recording why a decision was made — context, options evaluated, outcome, consequences |623| How-to / tutorial guide | [how_to_guide.md](markdown_templates/how_to_guide.md) | Step-by-step instructions with prerequisites, verification steps, and troubleshooting |624| Status report / executive brief | [status_report.md](markdown_templates/status_report.md) | Progress updates, risk summaries, decisions needed — for leadership and stakeholders |625| Pull request record | [pull_request.md](markdown_templates/pull_request.md) | PR documentation with change inventory, testing evidence, rollback plan, and review notes |626| Issue record | [issue.md](markdown_templates/issue.md) | Bug reports (reproduction steps, root cause) and feature requests (acceptance criteria, user stories) |627| Kanban board | [kanban.md](markdown_templates/kanban.md) | Sprint/release/project work tracking with visual board, WIP limits, metrics, and blocked items |628629### File conventions for tracked documents630631Some templates produce documents that accumulate over time. Use these directory conventions:632633| Document type | Directory | Naming pattern | Example |634| ---------------- | ---------------------- | ------------------------------------------- | ----------------------------------------------------------------------- |635| Pull requests | `docs/project/pr/` | `pr-NNNNNNNN-short-description.md` | `docs/project/pr/pr-00000123-fix-auth-timeout.md` |636| Issues | `docs/project/issues/` | `issue-NNNNNNNN-short-description.md` | `docs/project/issues/issue-00000456-add-export-filter.md` |637| Kanban boards | `docs/project/kanban/` | `{scope}-{identifier}-short-description.md` | `docs/project/kanban/sprint-2026-w07-agentic-template-modernization.md` |638| Decision records | `docs/decisions/` | `NNN-{slug}.md` | `docs/decisions/001-use-postgresql.md` |639| Status reports | `docs/status/` | `status-{date}.md` | `docs/status/status-2026-02-14.md` |640641### Choosing a template642643- **Presenting to people?** → Presentation644- **Publishing analysis or research?** → Research paper645- **Documenting a codebase or product?** → Project documentation646- **Recording why you chose X over Y?** → Decision record647- **Teaching someone how to do something?** → How-to guide648- **Updating leadership on progress?** → Status report649- **Documenting a PR for posterity?** → Pull request record650- **Tracking a bug or requesting a feature?** → Issue record651- **Managing work items for a sprint or project?** → Kanban board652- **None of these fit?** → Start from this style guide's rules directly — no template required653654---655656## Common Mistakes657658### ❌ Multiple emoji per heading659660```markdown661## 📚📊📈 Content Topics ← Too many662```663664✅ Fix: One emoji per H2665666```markdown667## 📚 Content topics668```669670### ❌ Missing citations671672```markdown673Studies show 73% of developers prefer Markdown. ← Where's the source?674```675676✅ Fix: Add footnote677678```markdown679Studies show 73% of developers prefer Markdown[^1].680681[^1]: Stack Overflow. (2024). "Developer Survey Results." https://survey.stackoverflow.co/2024682```683684### ❌ Wall of text without structure685686```markdown687The system handles authentication by first checking the JWT token688validity, then verifying the user exists in the database, then689checking their permissions against the requested resource...690```691692✅ Fix: Use a list, heading, or diagram693694```markdown695### Authentication flow6966971. Validate JWT token signature and expiration6982. Verify user exists in the database6993. Check user permissions against the requested resource700```701702### ❌ Images in a separate section703704```markdown705## Content706707[paragraphs of text]708709## Screenshots710711[all images grouped here] ← Disconnected from context712```713714✅ Fix: Place images inline where relevant715716### ❌ No horizontal rule after collapsible sections717718```markdown719</details>720### Next Topic ← Runs together visually721```722723✅ Fix: Always add `---` after `</details>`724725```markdown726</details>727728---729730### Next topic ← Clear separation731```732733---734735## Resources736737- [GitHub Flavored Markdown Spec](https://github.github.com/gfm/) · [Mermaid Style Guide](mermaid_style_guide.md) · [GitHub Basic Formatting](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax)