Repository files navigation

Power BI Model Docs Framework

A reusable markdown framework for documenting Power BI semantic models and reporting assets. It provides a consistent structure for model context, tables, measures, relationships, refresh details, and handover notes without requiring any specific tool or platform.

Who It Is For

  • Power BI developers documenting their own models
  • BI analysts maintaining shared reporting assets
  • Analytics engineers working across multiple semantic models
  • Consultants delivering models and reports to clients or internal teams
  • Reporting teams that need traceability, governance, and faster handovers

Minimum Starter Set

If you are starting from scratch, begin with these five files:

  • model-overview.md
  • table-inventory.md
  • measure-catalog.md
  • relationship-map.md
  • release-notes.md

That set is enough to explain what the model is for, how it is structured, what it calculates, how tables connect, and how the model has changed over time.

Concrete Example

Example: a support operations model with one fact table and six dimensions.

  1. Document the model purpose and audience in model-overview.md.
  2. List FactTicket, DimAssignee, and the other tables in table-inventory.md.
  3. Capture measures such as Total Tickets and SLA Compliance % in measure-catalog.md.
  4. Record the active FactTicket[OpenDateKey] -> DimDate[DateKey] relationship in relationship-map.md.
  5. Add an initial v1.0 - Initial documentation entry in release-notes.md.

The worked example in examples/support-operations-analytics/ shows the full set filled in end to end.

What This Framework Includes

  • 14 reusable markdown templates covering model overview, tables, columns, measures, relationships, Power Query, reports, KPIs, business glossary, refresh/deployment, handovers, decisions, and release notes
  • A complete worked example using a generic Support Operations Analytics model
  • 8 practical guides covering setup, maintenance, adaptation, and examples
  • Optional Claude Code support through project instructions and reusable skills

The framework is plain markdown. It works with any editor, any repository host, and any workflow.

Repository Structure

powerbi-model-docs-framework/
|-- templates/
| |-- model-overview.md
| |-- source-inventory.md
| |-- table-inventory.md
| |-- column-dictionary.md
| |-- measure-catalog.md
| |-- relationship-map.md
| |-- power-query-docs.md
| |-- report-page-inventory.md
| |-- kpi-definition.md
| |-- business-glossary.md
| |-- refresh-deployment-notes.md
| |-- handover-summary.md
| |-- issue-decision-log.md
| `-- release-notes.md
|-- examples/
| `-- support-operations-analytics/
|-- guides/
| |-- getting-started.md
| |-- documenting-a-new-model.md
| |-- keeping-docs-updated.md
| |-- using-the-examples.md
| |-- adapting-the-framework.md
| |-- claude-code-integration.md
| |-- best-practices.md
| `-- maintaining-the-framework.md
|-- .claude/
| `-- skills/
|-- CLAUDE.md
|-- CONTRIBUTING.md
|-- CODE_OF_CONDUCT.md
|-- CHANGELOG.md
|-- ROADMAP.md
|-- PROJECT_SCOPE.md
`-- LICENSE

Quick Start

  1. Clone or download this repository.
  2. Copy the templates you need into your project's documentation folder.
  3. Start with the minimum starter set.
  4. Fill in the templates and remove the instructional blockquotes.
  5. Add more templates as the model and reporting estate become more complex.

See guides/getting-started.md for a detailed walkthrough.

Templates

TemplatePurpose
model-overviewHigh-level summary of the semantic model
source-inventoryData sources feeding the model
table-inventoryAll tables with type, grain, and row counts
column-dictionaryColumn-level definitions and data types
measure-catalogAll measures with DAX, descriptions, and business context
relationship-mapTable relationships and cardinality
power-query-docsPower Query transformation logic
report-page-inventoryReport pages and their purpose
kpi-definitionKPI definitions with targets and thresholds
business-glossaryShared business terms and definitions
refresh-deployment-notesRefresh schedules and deployment details
handover-summaryContext for team transitions and handovers
issue-decision-logDesign decisions and open issues
release-notesVersion history and change log

Example

The examples/support-operations-analytics/ folder contains every template filled in for a fictional support ticket reporting model. It demonstrates:

  • A star schema with 1 fact table and 6 dimensions
  • 12 measures covering volume, SLA, satisfaction, backlog, and productivity
  • 5 KPIs with targets and thresholds
  • A business glossary with 14 defined terms
  • A complete decision log and release history

Use it as a reference for structure and level of detail.

Use Cases

  • New model setup
  • Existing model documentation audit
  • Team handover
  • Governance and traceability
  • Consulting delivery
  • Analyst and developer onboarding

Claude Code Support

If you use Claude Code, this repository includes:

  • A project-level CLAUDE.md with repo context, style rules, and public-safety guidance
  • 6 reusable skills for common documentation workflows
SkillPurpose
create-model-docsScaffold a full documentation set from templates
review-documentationReview docs against framework standards and flag gaps
generate-measure-catalog-entryCreate a measure entry from a DAX expression
update-release-notesAppend a formatted release entry
validate-completenessCheck for missing or incomplete templates
create-template-from-patternTurn a recurring pattern into a new template

Claude Code support is optional. The framework is fully usable without it. See guides/claude-code-integration.md for setup details.

AI-Assisted Documentation Workflows

This framework is designed to work well with AI-assisted development tools such as Claude Code.

Claude can help automate parts of the documentation workflow, including:

• generating measure catalog entries from DAX expressions
• reviewing model documentation for completeness
• scaffolding documentation templates for new semantic models
• validating that required documentation files exist in a project

The repository includes example Claude Code skills that demonstrate how AI can support consistent analytics documentation while keeping humans in control of the documentation process.

The goal is to combine structured documentation practices with AI-assisted workflows to make maintaining BI model documentation easier and more reliable.

Contributing

Contributions are welcome. See CONTRIBUTING.md for guidelines.

Good first contributions:

  • Improve template field descriptions
  • Add an example for a different domain
  • Write a guide for a specific documentation workflow
  • Fix typos or broken links

Roadmap

See ROADMAP.md for the full plan. Near-term items include:

  • RLS documentation template
  • Data lineage / source-to-target mapping template
  • Additional worked examples for different domains
  • Model review checklist
  • Metadata extraction helpers

License

MIT. See LICENSE.

About

A documentation framework for Power BI semantic models, with reusable templates, examples, and Claude Code-ready workflows.

Topics

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Power BI Model Docs Framework

A reusable markdown framework for documenting Power BI semantic models and reporting assets. It provides a consistent structure for model context, tables, measures, relationships, refresh details, and handover notes without requiring any specific tool or platform.

Who It Is For

  • Power BI developers documenting their own models
  • BI analysts maintaining shared reporting assets
  • Analytics engineers working across multiple semantic models
  • Consultants delivering models and reports to clients or internal teams
  • Reporting teams that need traceability, governance, and faster handovers

Minimum Starter Set

If you are starting from scratch, begin with these five files:

  • model-overview.md
  • table-inventory.md
  • measure-catalog.md
  • relationship-map.md
  • release-notes.md

That set is enough to explain what the model is for, how it is structured, what it calculates, how tables connect, and how the model has changed over time.

Concrete Example

Example: a support operations model with one fact table and six dimensions.

  1. Document the model purpose and audience in model-overview.md.
  2. List FactTicket, DimAssignee, and the other tables in table-inventory.md.
  3. Capture measures such as Total Tickets and SLA Compliance % in measure-catalog.md.
  4. Record the active FactTicket[OpenDateKey] -> DimDate[DateKey] relationship in relationship-map.md.
  5. Add an initial v1.0 - Initial documentation entry in release-notes.md.

The worked example in examples/support-operations-analytics/ shows the full set filled in end to end.

What This Framework Includes

  • 14 reusable markdown templates covering model overview, tables, columns, measures, relationships, Power Query, reports, KPIs, business glossary, refresh/deployment, handovers, decisions, and release notes
  • A complete worked example using a generic Support Operations Analytics model
  • 8 practical guides covering setup, maintenance, adaptation, and examples
  • Optional Claude Code support through project instructions and reusable skills

The framework is plain markdown. It works with any editor, any repository host, and any workflow.

Repository Structure

powerbi-model-docs-framework/
|-- templates/
| |-- model-overview.md
| |-- source-inventory.md
| |-- table-inventory.md
| |-- column-dictionary.md
| |-- measure-catalog.md
| |-- relationship-map.md
| |-- power-query-docs.md
| |-- report-page-inventory.md
| |-- kpi-definition.md
| |-- business-glossary.md
| |-- refresh-deployment-notes.md
| |-- handover-summary.md
| |-- issue-decision-log.md
| `-- release-notes.md
|-- examples/
| `-- support-operations-analytics/
|-- guides/
| |-- getting-started.md
| |-- documenting-a-new-model.md
| |-- keeping-docs-updated.md
| |-- using-the-examples.md
| |-- adapting-the-framework.md
| |-- claude-code-integration.md
| |-- best-practices.md
| `-- maintaining-the-framework.md
|-- .claude/
| `-- skills/
|-- CLAUDE.md
|-- CONTRIBUTING.md
|-- CODE_OF_CONDUCT.md
|-- CHANGELOG.md
|-- ROADMAP.md
|-- PROJECT_SCOPE.md
`-- LICENSE

Quick Start

  1. Clone or download this repository.
  2. Copy the templates you need into your project's documentation folder.
  3. Start with the minimum starter set.
  4. Fill in the templates and remove the instructional blockquotes.
  5. Add more templates as the model and reporting estate become more complex.

See guides/getting-started.md for a detailed walkthrough.

Templates

TemplatePurpose
model-overviewHigh-level summary of the semantic model
source-inventoryData sources feeding the model
table-inventoryAll tables with type, grain, and row counts
column-dictionaryColumn-level definitions and data types
measure-catalogAll measures with DAX, descriptions, and business context
relationship-mapTable relationships and cardinality
power-query-docsPower Query transformation logic
report-page-inventoryReport pages and their purpose
kpi-definitionKPI definitions with targets and thresholds
business-glossaryShared business terms and definitions
refresh-deployment-notesRefresh schedules and deployment details
handover-summaryContext for team transitions and handovers
issue-decision-logDesign decisions and open issues
release-notesVersion history and change log

Example

The examples/support-operations-analytics/ folder contains every template filled in for a fictional support ticket reporting model. It demonstrates:

  • A star schema with 1 fact table and 6 dimensions
  • 12 measures covering volume, SLA, satisfaction, backlog, and productivity
  • 5 KPIs with targets and thresholds
  • A business glossary with 14 defined terms
  • A complete decision log and release history

Use it as a reference for structure and level of detail.

Use Cases

  • New model setup
  • Existing model documentation audit
  • Team handover
  • Governance and traceability
  • Consulting delivery
  • Analyst and developer onboarding

Claude Code Support

If you use Claude Code, this repository includes:

  • A project-level CLAUDE.md with repo context, style rules, and public-safety guidance
  • 6 reusable skills for common documentation workflows
SkillPurpose
create-model-docsScaffold a full documentation set from templates
review-documentationReview docs against framework standards and flag gaps
generate-measure-catalog-entryCreate a measure entry from a DAX expression
update-release-notesAppend a formatted release entry
validate-completenessCheck for missing or incomplete templates
create-template-from-patternTurn a recurring pattern into a new template

Claude Code support is optional. The framework is fully usable without it. See guides/claude-code-integration.md for setup details.

AI-Assisted Documentation Workflows

This framework is designed to work well with AI-assisted development tools such as Claude Code.

Claude can help automate parts of the documentation workflow, including:

• generating measure catalog entries from DAX expressions
• reviewing model documentation for completeness
• scaffolding documentation templates for new semantic models
• validating that required documentation files exist in a project

The repository includes example Claude Code skills that demonstrate how AI can support consistent analytics documentation while keeping humans in control of the documentation process.

The goal is to combine structured documentation practices with AI-assisted workflows to make maintaining BI model documentation easier and more reliable.

Contributing

Contributions are welcome. See CONTRIBUTING.md for guidelines.

Good first contributions:

  • Improve template field descriptions
  • Add an example for a different domain
  • Write a guide for a specific documentation workflow
  • Fix typos or broken links

Roadmap

See ROADMAP.md for the full plan. Near-term items include:

  • RLS documentation template
  • Data lineage / source-to-target mapping template
  • Additional worked examples for different domains
  • Model review checklist
  • Metadata extraction helpers

License

MIT. See LICENSE.

About

A documentation framework for Power BI semantic models, with reusable templates, examples, and Claude Code-ready workflows.

Topics

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Power BI Model Docs Framework

A reusable markdown framework for documenting Power BI semantic models and reporting assets. It provides a consistent structure for model context, tables, measures, relationships, refresh details, and handover notes without requiring any specific tool or platform.

Who It Is For

  • Power BI developers documenting their own models
  • BI analysts maintaining shared reporting assets
  • Analytics engineers working across multiple semantic models
  • Consultants delivering models and reports to clients or internal teams
  • Reporting teams that need traceability, governance, and faster handovers

Minimum Starter Set

If you are starting from scratch, begin with these five files:

  • model-overview.md
  • table-inventory.md
  • measure-catalog.md
  • relationship-map.md
  • release-notes.md

That set is enough to explain what the model is for, how it is structured, what it calculates, how tables connect, and how the model has changed over time.

Concrete Example

Example: a support operations model with one fact table and six dimensions.

  1. Document the model purpose and audience in model-overview.md.
  2. List FactTicket, DimAssignee, and the other tables in table-inventory.md.
  3. Capture measures such as Total Tickets and SLA Compliance % in measure-catalog.md.
  4. Record the active FactTicket[OpenDateKey] -> DimDate[DateKey] relationship in relationship-map.md.
  5. Add an initial v1.0 - Initial documentation entry in release-notes.md.

The worked example in examples/support-operations-analytics/ shows the full set filled in end to end.

What This Framework Includes

  • 14 reusable markdown templates covering model overview, tables, columns, measures, relationships, Power Query, reports, KPIs, business glossary, refresh/deployment, handovers, decisions, and release notes
  • A complete worked example using a generic Support Operations Analytics model
  • 8 practical guides covering setup, maintenance, adaptation, and examples
  • Optional Claude Code support through project instructions and reusable skills

The framework is plain markdown. It works with any editor, any repository host, and any workflow.

Repository Structure

powerbi-model-docs-framework/
|-- templates/
| |-- model-overview.md
| |-- source-inventory.md
| |-- table-inventory.md
| |-- column-dictionary.md
| |-- measure-catalog.md
| |-- relationship-map.md
| |-- power-query-docs.md
| |-- report-page-inventory.md
| |-- kpi-definition.md
| |-- business-glossary.md
| |-- refresh-deployment-notes.md
| |-- handover-summary.md
| |-- issue-decision-log.md
| `-- release-notes.md
|-- examples/
| `-- support-operations-analytics/
|-- guides/
| |-- getting-started.md
| |-- documenting-a-new-model.md
| |-- keeping-docs-updated.md
| |-- using-the-examples.md
| |-- adapting-the-framework.md
| |-- claude-code-integration.md
| |-- best-practices.md
| `-- maintaining-the-framework.md
|-- .claude/
| `-- skills/
|-- CLAUDE.md
|-- CONTRIBUTING.md
|-- CODE_OF_CONDUCT.md
|-- CHANGELOG.md
|-- ROADMAP.md
|-- PROJECT_SCOPE.md
`-- LICENSE

Quick Start

  1. Clone or download this repository.
  2. Copy the templates you need into your project's documentation folder.
  3. Start with the minimum starter set.
  4. Fill in the templates and remove the instructional blockquotes.
  5. Add more templates as the model and reporting estate become more complex.

See guides/getting-started.md for a detailed walkthrough.

Templates

TemplatePurpose
model-overviewHigh-level summary of the semantic model
source-inventoryData sources feeding the model
table-inventoryAll tables with type, grain, and row counts
column-dictionaryColumn-level definitions and data types
measure-catalogAll measures with DAX, descriptions, and business context
relationship-mapTable relationships and cardinality
power-query-docsPower Query transformation logic
report-page-inventoryReport pages and their purpose
kpi-definitionKPI definitions with targets and thresholds
business-glossaryShared business terms and definitions
refresh-deployment-notesRefresh schedules and deployment details
handover-summaryContext for team transitions and handovers
issue-decision-logDesign decisions and open issues
release-notesVersion history and change log

Example

The examples/support-operations-analytics/ folder contains every template filled in for a fictional support ticket reporting model. It demonstrates:

  • A star schema with 1 fact table and 6 dimensions
  • 12 measures covering volume, SLA, satisfaction, backlog, and productivity
  • 5 KPIs with targets and thresholds
  • A business glossary with 14 defined terms
  • A complete decision log and release history

Use it as a reference for structure and level of detail.

Use Cases

  • New model setup
  • Existing model documentation audit
  • Team handover
  • Governance and traceability
  • Consulting delivery
  • Analyst and developer onboarding

Claude Code Support

If you use Claude Code, this repository includes:

  • A project-level CLAUDE.md with repo context, style rules, and public-safety guidance
  • 6 reusable skills for common documentation workflows
SkillPurpose
create-model-docsScaffold a full documentation set from templates
review-documentationReview docs against framework standards and flag gaps
generate-measure-catalog-entryCreate a measure entry from a DAX expression
update-release-notesAppend a formatted release entry
validate-completenessCheck for missing or incomplete templates
create-template-from-patternTurn a recurring pattern into a new template

Claude Code support is optional. The framework is fully usable without it. See guides/claude-code-integration.md for setup details.

AI-Assisted Documentation Workflows

This framework is designed to work well with AI-assisted development tools such as Claude Code.

Claude can help automate parts of the documentation workflow, including:

• generating measure catalog entries from DAX expressions
• reviewing model documentation for completeness
• scaffolding documentation templates for new semantic models
• validating that required documentation files exist in a project

The repository includes example Claude Code skills that demonstrate how AI can support consistent analytics documentation while keeping humans in control of the documentation process.

The goal is to combine structured documentation practices with AI-assisted workflows to make maintaining BI model documentation easier and more reliable.

Contributing

Contributions are welcome. See CONTRIBUTING.md for guidelines.

Good first contributions:

  • Improve template field descriptions
  • Add an example for a different domain
  • Write a guide for a specific documentation workflow
  • Fix typos or broken links

Roadmap

See ROADMAP.md for the full plan. Near-term items include:

  • RLS documentation template
  • Data lineage / source-to-target mapping template
  • Additional worked examples for different domains
  • Model review checklist
  • Metadata extraction helpers

License

MIT. See LICENSE.

About

A documentation framework for Power BI semantic models, with reusable templates, examples, and Claude Code-ready workflows.

Topics

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Power BI Model Docs Framework

A reusable markdown framework for documenting Power BI semantic models and reporting assets. It provides a consistent structure for model context, tables, measures, relationships, refresh details, and handover notes without requiring any specific tool or platform.

Who It Is For

  • Power BI developers documenting their own models
  • BI analysts maintaining shared reporting assets
  • Analytics engineers working across multiple semantic models
  • Consultants delivering models and reports to clients or internal teams
  • Reporting teams that need traceability, governance, and faster handovers

Minimum Starter Set

If you are starting from scratch, begin with these five files:

  • model-overview.md
  • table-inventory.md
  • measure-catalog.md
  • relationship-map.md
  • release-notes.md

That set is enough to explain what the model is for, how it is structured, what it calculates, how tables connect, and how the model has changed over time.

Concrete Example

Example: a support operations model with one fact table and six dimensions.

  1. Document the model purpose and audience in model-overview.md.
  2. List FactTicket, DimAssignee, and the other tables in table-inventory.md.
  3. Capture measures such as Total Tickets and SLA Compliance % in measure-catalog.md.
  4. Record the active FactTicket[OpenDateKey] -> DimDate[DateKey] relationship in relationship-map.md.
  5. Add an initial v1.0 - Initial documentation entry in release-notes.md.

The worked example in examples/support-operations-analytics/ shows the full set filled in end to end.

What This Framework Includes

  • 14 reusable markdown templates covering model overview, tables, columns, measures, relationships, Power Query, reports, KPIs, business glossary, refresh/deployment, handovers, decisions, and release notes
  • A complete worked example using a generic Support Operations Analytics model
  • 8 practical guides covering setup, maintenance, adaptation, and examples
  • Optional Claude Code support through project instructions and reusable skills

The framework is plain markdown. It works with any editor, any repository host, and any workflow.

Repository Structure

powerbi-model-docs-framework/
|-- templates/
| |-- model-overview.md
| |-- source-inventory.md
| |-- table-inventory.md
| |-- column-dictionary.md
| |-- measure-catalog.md
| |-- relationship-map.md
| |-- power-query-docs.md
| |-- report-page-inventory.md
| |-- kpi-definition.md
| |-- business-glossary.md
| |-- refresh-deployment-notes.md
| |-- handover-summary.md
| |-- issue-decision-log.md
| `-- release-notes.md
|-- examples/
| `-- support-operations-analytics/
|-- guides/
| |-- getting-started.md
| |-- documenting-a-new-model.md
| |-- keeping-docs-updated.md
| |-- using-the-examples.md
| |-- adapting-the-framework.md
| |-- claude-code-integration.md
| |-- best-practices.md
| `-- maintaining-the-framework.md
|-- .claude/
| `-- skills/
|-- CLAUDE.md
|-- CONTRIBUTING.md
|-- CODE_OF_CONDUCT.md
|-- CHANGELOG.md
|-- ROADMAP.md
|-- PROJECT_SCOPE.md
`-- LICENSE

Quick Start

  1. Clone or download this repository.
  2. Copy the templates you need into your project's documentation folder.
  3. Start with the minimum starter set.
  4. Fill in the templates and remove the instructional blockquotes.
  5. Add more templates as the model and reporting estate become more complex.

See guides/getting-started.md for a detailed walkthrough.

Templates

TemplatePurpose
model-overviewHigh-level summary of the semantic model
source-inventoryData sources feeding the model
table-inventoryAll tables with type, grain, and row counts
column-dictionaryColumn-level definitions and data types
measure-catalogAll measures with DAX, descriptions, and business context
relationship-mapTable relationships and cardinality
power-query-docsPower Query transformation logic
report-page-inventoryReport pages and their purpose
kpi-definitionKPI definitions with targets and thresholds
business-glossaryShared business terms and definitions
refresh-deployment-notesRefresh schedules and deployment details
handover-summaryContext for team transitions and handovers
issue-decision-logDesign decisions and open issues
release-notesVersion history and change log

Example

The examples/support-operations-analytics/ folder contains every template filled in for a fictional support ticket reporting model. It demonstrates:

  • A star schema with 1 fact table and 6 dimensions
  • 12 measures covering volume, SLA, satisfaction, backlog, and productivity
  • 5 KPIs with targets and thresholds
  • A business glossary with 14 defined terms
  • A complete decision log and release history

Use it as a reference for structure and level of detail.

Use Cases

  • New model setup
  • Existing model documentation audit
  • Team handover
  • Governance and traceability
  • Consulting delivery
  • Analyst and developer onboarding

Claude Code Support

If you use Claude Code, this repository includes:

  • A project-level CLAUDE.md with repo context, style rules, and public-safety guidance
  • 6 reusable skills for common documentation workflows
SkillPurpose
create-model-docsScaffold a full documentation set from templates
review-documentationReview docs against framework standards and flag gaps
generate-measure-catalog-entryCreate a measure entry from a DAX expression
update-release-notesAppend a formatted release entry
validate-completenessCheck for missing or incomplete templates
create-template-from-patternTurn a recurring pattern into a new template

Claude Code support is optional. The framework is fully usable without it. See guides/claude-code-integration.md for setup details.

AI-Assisted Documentation Workflows

This framework is designed to work well with AI-assisted development tools such as Claude Code.

Claude can help automate parts of the documentation workflow, including:

• generating measure catalog entries from DAX expressions
• reviewing model documentation for completeness
• scaffolding documentation templates for new semantic models
• validating that required documentation files exist in a project

The repository includes example Claude Code skills that demonstrate how AI can support consistent analytics documentation while keeping humans in control of the documentation process.

The goal is to combine structured documentation practices with AI-assisted workflows to make maintaining BI model documentation easier and more reliable.

Contributing

Contributions are welcome. See CONTRIBUTING.md for guidelines.

Good first contributions:

  • Improve template field descriptions
  • Add an example for a different domain
  • Write a guide for a specific documentation workflow
  • Fix typos or broken links

Roadmap

See ROADMAP.md for the full plan. Near-term items include:

  • RLS documentation template
  • Data lineage / source-to-target mapping template
  • Additional worked examples for different domains
  • Model review checklist
  • Metadata extraction helpers

License

MIT. See LICENSE.

About

A documentation framework for Power BI semantic models, with reusable templates, examples, and Claude Code-ready workflows.

Topics

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Power BI Model Docs Framework

A reusable markdown framework for documenting Power BI semantic models and reporting assets. It provides a consistent structure for model context, tables, measures, relationships, refresh details, and handover notes without requiring any specific tool or platform.

Who It Is For

  • Power BI developers documenting their own models
  • BI analysts maintaining shared reporting assets
  • Analytics engineers working across multiple semantic models
  • Consultants delivering models and reports to clients or internal teams
  • Reporting teams that need traceability, governance, and faster handovers

Minimum Starter Set

If you are starting from scratch, begin with these five files:

  • model-overview.md
  • table-inventory.md
  • measure-catalog.md
  • relationship-map.md
  • release-notes.md

That set is enough to explain what the model is for, how it is structured, what it calculates, how tables connect, and how the model has changed over time.

Concrete Example

Example: a support operations model with one fact table and six dimensions.

  1. Document the model purpose and audience in model-overview.md.
  2. List FactTicket, DimAssignee, and the other tables in table-inventory.md.
  3. Capture measures such as Total Tickets and SLA Compliance % in measure-catalog.md.
  4. Record the active FactTicket[OpenDateKey] -> DimDate[DateKey] relationship in relationship-map.md.
  5. Add an initial v1.0 - Initial documentation entry in release-notes.md.

The worked example in examples/support-operations-analytics/ shows the full set filled in end to end.

What This Framework Includes

  • 14 reusable markdown templates covering model overview, tables, columns, measures, relationships, Power Query, reports, KPIs, business glossary, refresh/deployment, handovers, decisions, and release notes
  • A complete worked example using a generic Support Operations Analytics model
  • 8 practical guides covering setup, maintenance, adaptation, and examples
  • Optional Claude Code support through project instructions and reusable skills

The framework is plain markdown. It works with any editor, any repository host, and any workflow.

Repository Structure

powerbi-model-docs-framework/
|-- templates/
| |-- model-overview.md
| |-- source-inventory.md
| |-- table-inventory.md
| |-- column-dictionary.md
| |-- measure-catalog.md
| |-- relationship-map.md
| |-- power-query-docs.md
| |-- report-page-inventory.md
| |-- kpi-definition.md
| |-- business-glossary.md
| |-- refresh-deployment-notes.md
| |-- handover-summary.md
| |-- issue-decision-log.md
| `-- release-notes.md
|-- examples/
| `-- support-operations-analytics/
|-- guides/
| |-- getting-started.md
| |-- documenting-a-new-model.md
| |-- keeping-docs-updated.md
| |-- using-the-examples.md
| |-- adapting-the-framework.md
| |-- claude-code-integration.md
| |-- best-practices.md
| `-- maintaining-the-framework.md
|-- .claude/
| `-- skills/
|-- CLAUDE.md
|-- CONTRIBUTING.md
|-- CODE_OF_CONDUCT.md
|-- CHANGELOG.md
|-- ROADMAP.md
|-- PROJECT_SCOPE.md
`-- LICENSE

Quick Start

  1. Clone or download this repository.
  2. Copy the templates you need into your project's documentation folder.
  3. Start with the minimum starter set.
  4. Fill in the templates and remove the instructional blockquotes.
  5. Add more templates as the model and reporting estate become more complex.

See guides/getting-started.md for a detailed walkthrough.

Templates

TemplatePurpose
model-overviewHigh-level summary of the semantic model
source-inventoryData sources feeding the model
table-inventoryAll tables with type, grain, and row counts
column-dictionaryColumn-level definitions and data types
measure-catalogAll measures with DAX, descriptions, and business context
relationship-mapTable relationships and cardinality
power-query-docsPower Query transformation logic
report-page-inventoryReport pages and their purpose
kpi-definitionKPI definitions with targets and thresholds
business-glossaryShared business terms and definitions
refresh-deployment-notesRefresh schedules and deployment details
handover-summaryContext for team transitions and handovers
issue-decision-logDesign decisions and open issues
release-notesVersion history and change log

Example

The examples/support-operations-analytics/ folder contains every template filled in for a fictional support ticket reporting model. It demonstrates:

  • A star schema with 1 fact table and 6 dimensions
  • 12 measures covering volume, SLA, satisfaction, backlog, and productivity
  • 5 KPIs with targets and thresholds
  • A business glossary with 14 defined terms
  • A complete decision log and release history

Use it as a reference for structure and level of detail.

Use Cases

  • New model setup
  • Existing model documentation audit
  • Team handover
  • Governance and traceability
  • Consulting delivery
  • Analyst and developer onboarding

Claude Code Support

If you use Claude Code, this repository includes:

  • A project-level CLAUDE.md with repo context, style rules, and public-safety guidance
  • 6 reusable skills for common documentation workflows
SkillPurpose
create-model-docsScaffold a full documentation set from templates
review-documentationReview docs against framework standards and flag gaps
generate-measure-catalog-entryCreate a measure entry from a DAX expression
update-release-notesAppend a formatted release entry
validate-completenessCheck for missing or incomplete templates
create-template-from-patternTurn a recurring pattern into a new template

Claude Code support is optional. The framework is fully usable without it. See guides/claude-code-integration.md for setup details.

AI-Assisted Documentation Workflows

This framework is designed to work well with AI-assisted development tools such as Claude Code.

Claude can help automate parts of the documentation workflow, including:

• generating measure catalog entries from DAX expressions
• reviewing model documentation for completeness
• scaffolding documentation templates for new semantic models
• validating that required documentation files exist in a project

The repository includes example Claude Code skills that demonstrate how AI can support consistent analytics documentation while keeping humans in control of the documentation process.

The goal is to combine structured documentation practices with AI-assisted workflows to make maintaining BI model documentation easier and more reliable.

Contributing

Contributions are welcome. See CONTRIBUTING.md for guidelines.

Good first contributions:

  • Improve template field descriptions
  • Add an example for a different domain
  • Write a guide for a specific documentation workflow
  • Fix typos or broken links

Roadmap

See ROADMAP.md for the full plan. Near-term items include:

  • RLS documentation template
  • Data lineage / source-to-target mapping template
  • Additional worked examples for different domains
  • Model review checklist
  • Metadata extraction helpers

License

MIT. See LICENSE.

About

A documentation framework for Power BI semantic models, with reusable templates, examples, and Claude Code-ready workflows.

Topics

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Power BI Model Docs Framework

A reusable markdown framework for documenting Power BI semantic models and reporting assets. It provides a consistent structure for model context, tables, measures, relationships, refresh details, and handover notes without requiring any specific tool or platform.

Who It Is For

  • Power BI developers documenting their own models
  • BI analysts maintaining shared reporting assets
  • Analytics engineers working across multiple semantic models
  • Consultants delivering models and reports to clients or internal teams
  • Reporting teams that need traceability, governance, and faster handovers

Minimum Starter Set

If you are starting from scratch, begin with these five files:

  • model-overview.md
  • table-inventory.md
  • measure-catalog.md
  • relationship-map.md
  • release-notes.md

That set is enough to explain what the model is for, how it is structured, what it calculates, how tables connect, and how the model has changed over time.

Concrete Example

Example: a support operations model with one fact table and six dimensions.

  1. Document the model purpose and audience in model-overview.md.
  2. List FactTicket, DimAssignee, and the other tables in table-inventory.md.
  3. Capture measures such as Total Tickets and SLA Compliance % in measure-catalog.md.
  4. Record the active FactTicket[OpenDateKey] -> DimDate[DateKey] relationship in relationship-map.md.
  5. Add an initial v1.0 - Initial documentation entry in release-notes.md.

The worked example in examples/support-operations-analytics/ shows the full set filled in end to end.

What This Framework Includes

  • 14 reusable markdown templates covering model overview, tables, columns, measures, relationships, Power Query, reports, KPIs, business glossary, refresh/deployment, handovers, decisions, and release notes
  • A complete worked example using a generic Support Operations Analytics model
  • 8 practical guides covering setup, maintenance, adaptation, and examples
  • Optional Claude Code support through project instructions and reusable skills

The framework is plain markdown. It works with any editor, any repository host, and any workflow.

Repository Structure

powerbi-model-docs-framework/
|-- templates/
| |-- model-overview.md
| |-- source-inventory.md
| |-- table-inventory.md
| |-- column-dictionary.md
| |-- measure-catalog.md
| |-- relationship-map.md
| |-- power-query-docs.md
| |-- report-page-inventory.md
| |-- kpi-definition.md
| |-- business-glossary.md
| |-- refresh-deployment-notes.md
| |-- handover-summary.md
| |-- issue-decision-log.md
| `-- release-notes.md
|-- examples/
| `-- support-operations-analytics/
|-- guides/
| |-- getting-started.md
| |-- documenting-a-new-model.md
| |-- keeping-docs-updated.md
| |-- using-the-examples.md
| |-- adapting-the-framework.md
| |-- claude-code-integration.md
| |-- best-practices.md
| `-- maintaining-the-framework.md
|-- .claude/
| `-- skills/
|-- CLAUDE.md
|-- CONTRIBUTING.md
|-- CODE_OF_CONDUCT.md
|-- CHANGELOG.md
|-- ROADMAP.md
|-- PROJECT_SCOPE.md
`-- LICENSE

Quick Start

  1. Clone or download this repository.
  2. Copy the templates you need into your project's documentation folder.
  3. Start with the minimum starter set.
  4. Fill in the templates and remove the instructional blockquotes.
  5. Add more templates as the model and reporting estate become more complex.

See guides/getting-started.md for a detailed walkthrough.

Templates

TemplatePurpose
model-overviewHigh-level summary of the semantic model
source-inventoryData sources feeding the model
table-inventoryAll tables with type, grain, and row counts
column-dictionaryColumn-level definitions and data types
measure-catalogAll measures with DAX, descriptions, and business context
relationship-mapTable relationships and cardinality
power-query-docsPower Query transformation logic
report-page-inventoryReport pages and their purpose
kpi-definitionKPI definitions with targets and thresholds
business-glossaryShared business terms and definitions
refresh-deployment-notesRefresh schedules and deployment details
handover-summaryContext for team transitions and handovers
issue-decision-logDesign decisions and open issues
release-notesVersion history and change log

Example

The examples/support-operations-analytics/ folder contains every template filled in for a fictional support ticket reporting model. It demonstrates:

  • A star schema with 1 fact table and 6 dimensions
  • 12 measures covering volume, SLA, satisfaction, backlog, and productivity
  • 5 KPIs with targets and thresholds
  • A business glossary with 14 defined terms
  • A complete decision log and release history

Use it as a reference for structure and level of detail.

Use Cases

  • New model setup
  • Existing model documentation audit
  • Team handover
  • Governance and traceability
  • Consulting delivery
  • Analyst and developer onboarding

Claude Code Support

If you use Claude Code, this repository includes:

  • A project-level CLAUDE.md with repo context, style rules, and public-safety guidance
  • 6 reusable skills for common documentation workflows
SkillPurpose
create-model-docsScaffold a full documentation set from templates
review-documentationReview docs against framework standards and flag gaps
generate-measure-catalog-entryCreate a measure entry from a DAX expression
update-release-notesAppend a formatted release entry
validate-completenessCheck for missing or incomplete templates
create-template-from-patternTurn a recurring pattern into a new template

Claude Code support is optional. The framework is fully usable without it. See guides/claude-code-integration.md for setup details.

AI-Assisted Documentation Workflows

This framework is designed to work well with AI-assisted development tools such as Claude Code.

Claude can help automate parts of the documentation workflow, including:

• generating measure catalog entries from DAX expressions
• reviewing model documentation for completeness
• scaffolding documentation templates for new semantic models
• validating that required documentation files exist in a project

The repository includes example Claude Code skills that demonstrate how AI can support consistent analytics documentation while keeping humans in control of the documentation process.

The goal is to combine structured documentation practices with AI-assisted workflows to make maintaining BI model documentation easier and more reliable.

Contributing

Contributions are welcome. See CONTRIBUTING.md for guidelines.

Good first contributions:

  • Improve template field descriptions
  • Add an example for a different domain
  • Write a guide for a specific documentation workflow
  • Fix typos or broken links

Roadmap

See ROADMAP.md for the full plan. Near-term items include:

  • RLS documentation template
  • Data lineage / source-to-target mapping template
  • Additional worked examples for different domains
  • Model review checklist
  • Metadata extraction helpers

License

MIT. See LICENSE.

About

A documentation framework for Power BI semantic models, with reusable templates, examples, and Claude Code-ready workflows.

Topics

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Power BI Model Docs Framework

A reusable markdown framework for documenting Power BI semantic models and reporting assets. It provides a consistent structure for model context, tables, measures, relationships, refresh details, and handover notes without requiring any specific tool or platform.

Who It Is For

  • Power BI developers documenting their own models
  • BI analysts maintaining shared reporting assets
  • Analytics engineers working across multiple semantic models
  • Consultants delivering models and reports to clients or internal teams
  • Reporting teams that need traceability, governance, and faster handovers

Minimum Starter Set

If you are starting from scratch, begin with these five files:

  • model-overview.md
  • table-inventory.md
  • measure-catalog.md
  • relationship-map.md
  • release-notes.md

That set is enough to explain what the model is for, how it is structured, what it calculates, how tables connect, and how the model has changed over time.

Concrete Example

Example: a support operations model with one fact table and six dimensions.

  1. Document the model purpose and audience in model-overview.md.
  2. List FactTicket, DimAssignee, and the other tables in table-inventory.md.
  3. Capture measures such as Total Tickets and SLA Compliance % in measure-catalog.md.
  4. Record the active FactTicket[OpenDateKey] -> DimDate[DateKey] relationship in relationship-map.md.
  5. Add an initial v1.0 - Initial documentation entry in release-notes.md.

The worked example in examples/support-operations-analytics/ shows the full set filled in end to end.

What This Framework Includes

  • 14 reusable markdown templates covering model overview, tables, columns, measures, relationships, Power Query, reports, KPIs, business glossary, refresh/deployment, handovers, decisions, and release notes
  • A complete worked example using a generic Support Operations Analytics model
  • 8 practical guides covering setup, maintenance, adaptation, and examples
  • Optional Claude Code support through project instructions and reusable skills

The framework is plain markdown. It works with any editor, any repository host, and any workflow.

Repository Structure

powerbi-model-docs-framework/
|-- templates/
| |-- model-overview.md
| |-- source-inventory.md
| |-- table-inventory.md
| |-- column-dictionary.md
| |-- measure-catalog.md
| |-- relationship-map.md
| |-- power-query-docs.md
| |-- report-page-inventory.md
| |-- kpi-definition.md
| |-- business-glossary.md
| |-- refresh-deployment-notes.md
| |-- handover-summary.md
| |-- issue-decision-log.md
| `-- release-notes.md
|-- examples/
| `-- support-operations-analytics/
|-- guides/
| |-- getting-started.md
| |-- documenting-a-new-model.md
| |-- keeping-docs-updated.md
| |-- using-the-examples.md
| |-- adapting-the-framework.md
| |-- claude-code-integration.md
| |-- best-practices.md
| `-- maintaining-the-framework.md
|-- .claude/
| `-- skills/
|-- CLAUDE.md
|-- CONTRIBUTING.md
|-- CODE_OF_CONDUCT.md
|-- CHANGELOG.md
|-- ROADMAP.md
|-- PROJECT_SCOPE.md
`-- LICENSE

Quick Start

  1. Clone or download this repository.
  2. Copy the templates you need into your project's documentation folder.
  3. Start with the minimum starter set.
  4. Fill in the templates and remove the instructional blockquotes.
  5. Add more templates as the model and reporting estate become more complex.

See guides/getting-started.md for a detailed walkthrough.

Templates

TemplatePurpose
model-overviewHigh-level summary of the semantic model
source-inventoryData sources feeding the model
table-inventoryAll tables with type, grain, and row counts
column-dictionaryColumn-level definitions and data types
measure-catalogAll measures with DAX, descriptions, and business context
relationship-mapTable relationships and cardinality
power-query-docsPower Query transformation logic
report-page-inventoryReport pages and their purpose
kpi-definitionKPI definitions with targets and thresholds
business-glossaryShared business terms and definitions
refresh-deployment-notesRefresh schedules and deployment details
handover-summaryContext for team transitions and handovers
issue-decision-logDesign decisions and open issues
release-notesVersion history and change log

Example

The examples/support-operations-analytics/ folder contains every template filled in for a fictional support ticket reporting model. It demonstrates:

  • A star schema with 1 fact table and 6 dimensions
  • 12 measures covering volume, SLA, satisfaction, backlog, and productivity
  • 5 KPIs with targets and thresholds
  • A business glossary with 14 defined terms
  • A complete decision log and release history

Use it as a reference for structure and level of detail.

Use Cases

  • New model setup
  • Existing model documentation audit
  • Team handover
  • Governance and traceability
  • Consulting delivery
  • Analyst and developer onboarding

Claude Code Support

If you use Claude Code, this repository includes:

  • A project-level CLAUDE.md with repo context, style rules, and public-safety guidance
  • 6 reusable skills for common documentation workflows
SkillPurpose
create-model-docsScaffold a full documentation set from templates
review-documentationReview docs against framework standards and flag gaps
generate-measure-catalog-entryCreate a measure entry from a DAX expression
update-release-notesAppend a formatted release entry
validate-completenessCheck for missing or incomplete templates
create-template-from-patternTurn a recurring pattern into a new template

Claude Code support is optional. The framework is fully usable without it. See guides/claude-code-integration.md for setup details.

AI-Assisted Documentation Workflows

This framework is designed to work well with AI-assisted development tools such as Claude Code.

Claude can help automate parts of the documentation workflow, including:

• generating measure catalog entries from DAX expressions
• reviewing model documentation for completeness
• scaffolding documentation templates for new semantic models
• validating that required documentation files exist in a project

The repository includes example Claude Code skills that demonstrate how AI can support consistent analytics documentation while keeping humans in control of the documentation process.

The goal is to combine structured documentation practices with AI-assisted workflows to make maintaining BI model documentation easier and more reliable.

Contributing

Contributions are welcome. See CONTRIBUTING.md for guidelines.

Good first contributions:

  • Improve template field descriptions
  • Add an example for a different domain
  • Write a guide for a specific documentation workflow
  • Fix typos or broken links

Roadmap

See ROADMAP.md for the full plan. Near-term items include:

  • RLS documentation template
  • Data lineage / source-to-target mapping template
  • Additional worked examples for different domains
  • Model review checklist
  • Metadata extraction helpers

License

MIT. See LICENSE.

About

A documentation framework for Power BI semantic models, with reusable templates, examples, and Claude Code-ready workflows.

Topics

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Power BI Model Docs Framework

A reusable markdown framework for documenting Power BI semantic models and reporting assets. It provides a consistent structure for model context, tables, measures, relationships, refresh details, and handover notes without requiring any specific tool or platform.

Who It Is For

  • Power BI developers documenting their own models
  • BI analysts maintaining shared reporting assets
  • Analytics engineers working across multiple semantic models
  • Consultants delivering models and reports to clients or internal teams
  • Reporting teams that need traceability, governance, and faster handovers

Minimum Starter Set

If you are starting from scratch, begin with these five files:

  • model-overview.md
  • table-inventory.md
  • measure-catalog.md
  • relationship-map.md
  • release-notes.md

That set is enough to explain what the model is for, how it is structured, what it calculates, how tables connect, and how the model has changed over time.

Concrete Example

Example: a support operations model with one fact table and six dimensions.

  1. Document the model purpose and audience in model-overview.md.
  2. List FactTicket, DimAssignee, and the other tables in table-inventory.md.
  3. Capture measures such as Total Tickets and SLA Compliance % in measure-catalog.md.
  4. Record the active FactTicket[OpenDateKey] -> DimDate[DateKey] relationship in relationship-map.md.
  5. Add an initial v1.0 - Initial documentation entry in release-notes.md.

The worked example in examples/support-operations-analytics/ shows the full set filled in end to end.

What This Framework Includes

  • 14 reusable markdown templates covering model overview, tables, columns, measures, relationships, Power Query, reports, KPIs, business glossary, refresh/deployment, handovers, decisions, and release notes
  • A complete worked example using a generic Support Operations Analytics model
  • 8 practical guides covering setup, maintenance, adaptation, and examples
  • Optional Claude Code support through project instructions and reusable skills

The framework is plain markdown. It works with any editor, any repository host, and any workflow.

Repository Structure

powerbi-model-docs-framework/
|-- templates/
| |-- model-overview.md
| |-- source-inventory.md
| |-- table-inventory.md
| |-- column-dictionary.md
| |-- measure-catalog.md
| |-- relationship-map.md
| |-- power-query-docs.md
| |-- report-page-inventory.md
| |-- kpi-definition.md
| |-- business-glossary.md
| |-- refresh-deployment-notes.md
| |-- handover-summary.md
| |-- issue-decision-log.md
| `-- release-notes.md
|-- examples/
| `-- support-operations-analytics/
|-- guides/
| |-- getting-started.md
| |-- documenting-a-new-model.md
| |-- keeping-docs-updated.md
| |-- using-the-examples.md
| |-- adapting-the-framework.md
| |-- claude-code-integration.md
| |-- best-practices.md
| `-- maintaining-the-framework.md
|-- .claude/
| `-- skills/
|-- CLAUDE.md
|-- CONTRIBUTING.md
|-- CODE_OF_CONDUCT.md
|-- CHANGELOG.md
|-- ROADMAP.md
|-- PROJECT_SCOPE.md
`-- LICENSE

Quick Start

  1. Clone or download this repository.
  2. Copy the templates you need into your project's documentation folder.
  3. Start with the minimum starter set.
  4. Fill in the templates and remove the instructional blockquotes.
  5. Add more templates as the model and reporting estate become more complex.

See guides/getting-started.md for a detailed walkthrough.

Templates

TemplatePurpose
model-overviewHigh-level summary of the semantic model
source-inventoryData sources feeding the model
table-inventoryAll tables with type, grain, and row counts
column-dictionaryColumn-level definitions and data types
measure-catalogAll measures with DAX, descriptions, and business context
relationship-mapTable relationships and cardinality
power-query-docsPower Query transformation logic
report-page-inventoryReport pages and their purpose
kpi-definitionKPI definitions with targets and thresholds
business-glossaryShared business terms and definitions
refresh-deployment-notesRefresh schedules and deployment details
handover-summaryContext for team transitions and handovers
issue-decision-logDesign decisions and open issues
release-notesVersion history and change log

Example

The examples/support-operations-analytics/ folder contains every template filled in for a fictional support ticket reporting model. It demonstrates:

  • A star schema with 1 fact table and 6 dimensions
  • 12 measures covering volume, SLA, satisfaction, backlog, and productivity
  • 5 KPIs with targets and thresholds
  • A business glossary with 14 defined terms
  • A complete decision log and release history

Use it as a reference for structure and level of detail.

Use Cases

  • New model setup
  • Existing model documentation audit
  • Team handover
  • Governance and traceability
  • Consulting delivery
  • Analyst and developer onboarding

Claude Code Support

If you use Claude Code, this repository includes:

  • A project-level CLAUDE.md with repo context, style rules, and public-safety guidance
  • 6 reusable skills for common documentation workflows
SkillPurpose
create-model-docsScaffold a full documentation set from templates
review-documentationReview docs against framework standards and flag gaps
generate-measure-catalog-entryCreate a measure entry from a DAX expression
update-release-notesAppend a formatted release entry
validate-completenessCheck for missing or incomplete templates
create-template-from-patternTurn a recurring pattern into a new template

Claude Code support is optional. The framework is fully usable without it. See guides/claude-code-integration.md for setup details.

AI-Assisted Documentation Workflows

This framework is designed to work well with AI-assisted development tools such as Claude Code.

Claude can help automate parts of the documentation workflow, including:

• generating measure catalog entries from DAX expressions
• reviewing model documentation for completeness
• scaffolding documentation templates for new semantic models
• validating that required documentation files exist in a project

The repository includes example Claude Code skills that demonstrate how AI can support consistent analytics documentation while keeping humans in control of the documentation process.

The goal is to combine structured documentation practices with AI-assisted workflows to make maintaining BI model documentation easier and more reliable.

Contributing

Contributions are welcome. See CONTRIBUTING.md for guidelines.

Good first contributions:

  • Improve template field descriptions
  • Add an example for a different domain
  • Write a guide for a specific documentation workflow
  • Fix typos or broken links

Roadmap

See ROADMAP.md for the full plan. Near-term items include:

  • RLS documentation template
  • Data lineage / source-to-target mapping template
  • Additional worked examples for different domains
  • Model review checklist
  • Metadata extraction helpers

License

MIT. See LICENSE.

About

A documentation framework for Power BI semantic models, with reusable templates, examples, and Claude Code-ready workflows.

Topics

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors