/standardize-naming-conventions
Interactive naming convention standardization for TMDL-based Power BI semantic models. Automatically invoke when the user asks to "standardize naming conventions", "fix naming conventions", "clean up model names", "apply naming standards", "audit naming", "make names human
$ npx -y skills add data-goblin/power-bi-agentic-development --skill standardize-naming-conventions --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/standardize-naming-conventions
Context preview
The summary Claude sees to decide when to auto-load this skill.
Interactive naming convention standardization for TMDL-based Power BI semantic models. Automatically invoke when the user asks to "standardize naming conventions", "fix naming conventions", "clean up model names", "apply naming standards", "audit naming", "make names human
SKILL.md
standardize-naming-conventions.SKILL.mdname: standardize-naming-conventions
description: Interactive naming convention standardization for TMDL-based Power BI semantic models. Automatically invoke when the user asks to "standardize naming conventions", "fix naming conventions", "clean up model names", "apply naming standards", "audit naming", "make names human readable", "rename fields", "fix abbreviations in model", or mentions renaming measures, columns, or tables for consistency across a model.
Standardize Naming Conventions
Interactive workflow for auditing and standardizing naming conventions in Power BI semantic models stored as TMDL files. Ensures tables, columns, measures, and display folders follow human-readable, consistent, business-aligned naming standards.
Primary Workflow
Phase 1: Discover the Model
Locate the TMDL files. Ask the user for the path to the `.SemanticModel/definition/` directory if not obvious from context. Then scan the model structure:
# Count tables and get an overview
ls <path>/tables/*.tmdl
Read all table TMDL files to build a complete picture of current naming patterns. Focus on:
- Table names (check for DIM_, FACT_, or other technical prefixes)
- Measure names (check for abbreviations, programming conventions, inconsistent syntax)
- Column names (check for CamelCase, snake_case, abbreviations)
- Display folder structure (check for organization and consistency)
- Presence of descriptions (`///` comments)
Phase 2: Understand Business Context
**CRITICAL: Do not rename anything without understanding the business terminology.**
Use `AskUserQuestion` to gather context:
1. **Business terminology**: "What terminology does your organization use for key metrics? For example, do you call it Revenue, Turnover, Sales, or Gross Sales?" 2. **Existing conventions**: "Do you have any documented naming conventions or standards already?" 3. **Period conventions**: "How do you typically refer to prior periods? (e.g., 1YP, PY, Prior Year, Last Year)" 4. **Unit conventions**: "How do you typically express units in measure names? (e.g., parentheses like (%), (Value), (Quantity))" 5. **Downstream impact**: "Are there downstream reports connected to this model that would need visual rebinding after renaming?"
Adapt the naming rules to the user's business context. The rules in `references/naming-rules.md` are defaults -- override them when the user's organization has established conventions.
Phase 3: Audit and Report
Before making changes, produce an audit report. Present a markdown table showing each proposed rename:
| Object Type | Current Name | Proposed Name | Issues Found |
|-------------|-------------|---------------|-------------|
| Table | FACT_Invoices | Invoices | Technical prefix |
| Measure | NetSls | Net Sales | CamelCase, abbreviation |
| Column | shp_dt | Ship Date | snake_case, abbreviation |
Group findings by issue type:
- **Programming conventions**: CamelCase, snake_case, UPPER_CASE
- **Abbreviations/acronyms**: Shortened or opaque names
- **Inconsistent syntax**: Mixed period, unit, or aggregation patterns
- **Technical prefixes**: DIM_, FACT_, STG_ on tables
- **Missing descriptions**: Objects without `///` docstrings
- **Disorganized folders**: Missing or flat display folder hierarchy
Ask the user to confirm or adjust the proposed renames before proceeding.
Phase 4: Apply Changes
After user approval, edit the TMDL files. For each table file:
1. **Rename the table** (if needed): Change the `table` declaration 2. **Rename measures**: Change measure names in their declarations. IMPORTANT: Also update all internal DAX references to renamed measures using `[Old Name]` -> `[New Name]` patterns across ALL table files in the model 3. **Rename columns**: Change column names in their declarations. IMPORTANT: Also update DAX references using `'Table'[Old Column]` -> `'Table'[New Column]` across ALL table files 4. **Reorganize display folders**: Add or restructure `displayFolder:` properties 5. **Add descriptions**: Add `///` comments for measures and columns that lack them 6. **Update relationship references**: Check `relationships.tmdl` for renamed tables/columns
**Cross-file reference updates are critical.** When renaming a measure or column, search the entire `definition/` directory for all references:
# Find all references to a renamed measure
rg "OldMeasureName" <path>/definition/tables/
rg "OldMeasureName" <path>/definition/relationships.tmdl
Phase 5: Validate
After applying changes, verify: 1. All TMDL files still parse correctly (no syntax errors) 2. No orphaned references to old names remain in any file 3. Display folders are consistent across tables 4. Descriptions are present on all visible measures and columns
Run a final search to check for any missed references:
# Check for any remaining old names
rg -n "old_name_pattern" <path>/definition/
Naming Convention Rules
Consult `references/naming-rules.md` for the complete rule set including:
- Human-readable name requirements
- Abbreviation and acronym rules
- Technical prefix rules
- Aggregation, unit, and period syntax standards
- Display folder organization patterns
- Measure name construction order: `[Aggregation] [Base Name] [Period] ([Unit])`
- Column naming patterns
Key Anti-Patterns to Detect
Quick-reference checklist for the most common issues:
| Anti-Pattern | Rule | Example Fix | |-------------|------|-------------| | `snake_case` | Use spaces | `net_sales` -> `Net Sales` | | `CamelCase` | Use spaces | `NetSales` -> `Net Sales` | | `UPPER_CASE` | Use spaces | `TOTAL_COST` -> `Total Cost` | | Abbreviations | Spell out | `Del. Mrgn` -> `Delivery Margin` | | Opaque acronyms | Spell out | `TFS` -> `Total Freight Surcharge` | | Technical prefix | Remove | `FACT_Orders` -> `Orders` | | Inconsistent periods | Standardize | `LY`/`PY`/`Last Year` -> `1YP` | | Inconsistent units | Standardize | `pct`/`%`/`(%)` -> `(%)` | | Missing desc
Read more
name: standardize-naming-conventions description: Interactive naming convention standardization for TMDL-based Power BI semantic models. Automatically invoke when the user asks to "standardize naming conventions", "fix naming conventions", "clean up model names", "apply naming standards", "audit naming", "make names human readable", "rename fields", "fix abbreviations in model", or mentions renaming measures, columns, or tables for consistency across a model.
Standardize Naming Conventions
Interactive workflow for auditing and standardizing naming conventions in Power BI semantic models stored as TMDL files. Ensures tables, columns, measures, and display folders follow human-readable, consistent, business-aligned naming standards.
Primary Workflow
Phase 1: Discover the Model
Locate the TMDL files. Ask the user for the path to the `.SemanticModel/definition/` directory if not obvious from context. Then scan the model structure:
# Count tables and get an overview ls <path>/tables/*.tmdl
Read all table TMDL files to build a complete picture of current naming patterns. Focus on:
- Table names (check for DIM_, FACT_, or other technical prefixes)
- Measure names (check for abbreviations, programming conventions, inconsistent syntax)
- Column names (check for CamelCase, snake_case, abbreviations)
- Display folder structure (check for organization and consistency)
- Presence of descriptions (`///` comments)
Phase 2: Understand Business Context
**CRITICAL: Do not rename anything without understanding the business terminology.**
Use `AskUserQuestion` to gather context:
1. **Business terminology**: "What terminology does your organization use for key metrics? For example, do you call it Revenue, Turnover, Sales, or Gross Sales?" 2. **Existing conventions**: "Do you have any documented naming conventions or standards already?" 3. **Period conventions**: "How do you typically refer to prior periods? (e.g., 1YP, PY, Prior Year, Last Year)" 4. **Unit conventions**: "How do you typically express units in measure names? (e.g., parentheses like (%), (Value), (Quantity))" 5. **Downstream impact**: "Are there downstream reports connected to this model that would need visual rebinding after renaming?"
Adapt the naming rules to the user's business context. The rules in `references/naming-rules.md` are defaults -- override them when the user's organization has established conventions.
Phase 3: Audit and Report
Before making changes, produce an audit report. Present a markdown table showing each proposed rename:
| Object Type | Current Name | Proposed Name | Issues Found | |-------------|-------------|---------------|-------------| | Table | FACT_Invoices | Invoices | Technical prefix | | Measure | NetSls | Net Sales | CamelCase, abbreviation | | Column | shp_dt | Ship Date | snake_case, abbreviation |
Group findings by issue type:
- **Programming conventions**: CamelCase, snake_case, UPPER_CASE
- **Abbreviations/acronyms**: Shortened or opaque names
- **Inconsistent syntax**: Mixed period, unit, or aggregation patterns
- **Technical prefixes**: DIM_, FACT_, STG_ on tables
- **Missing descriptions**: Objects without `///` docstrings
- **Disorganized folders**: Missing or flat display folder hierarchy
Ask the user to confirm or adjust the proposed renames before proceeding.
Phase 4: Apply Changes
After user approval, edit the TMDL files. For each table file:
1. **Rename the table** (if needed): Change the `table` declaration 2. **Rename measures**: Change measure names in their declarations. IMPORTANT: Also update all internal DAX references to renamed measures using `[Old Name]` -> `[New Name]` patterns across ALL table files in the model 3. **Rename columns**: Change column names in their declarations. IMPORTANT: Also update DAX references using `'Table'[Old Column]` -> `'Table'[New Column]` across ALL table files 4. **Reorganize display folders**: Add or restructure `displayFolder:` properties 5. **Add descriptions**: Add `///` comments for measures and columns that lack them 6. **Update relationship references**: Check `relationships.tmdl` for renamed tables/columns
**Cross-file reference updates are critical.** When renaming a measure or column, search the entire `definition/` directory for all references:
# Find all references to a renamed measure rg "OldMeasureName" <path>/definition/tables/ rg "OldMeasureName" <path>/definition/relationships.tmdl
Phase 5: Validate
After applying changes, verify: 1. All TMDL files still parse correctly (no syntax errors) 2. No orphaned references to old names remain in any file 3. Display folders are consistent across tables 4. Descriptions are present on all visible measures and columns
Run a final search to check for any missed references:
# Check for any remaining old names rg -n "old_name_pattern" <path>/definition/
Naming Convention Rules
Consult `references/naming-rules.md` for the complete rule set including:
- Human-readable name requirements
- Abbreviation and acronym rules
- Technical prefix rules
- Aggregation, unit, and period syntax standards
- Display folder organization patterns
- Measure name construction order: `[Aggregation] [Base Name] [Period] ([Unit])`
- Column naming patterns
Key Anti-Patterns to Detect
Quick-reference checklist for the most common issues:
| Anti-Pattern | Rule | Example Fix | |-------------|------|-------------| | `snake_case` | Use spaces | `net_sales` -> `Net Sales` | | `CamelCase` | Use spaces | `NetSales` -> `Net Sales` | | `UPPER_CASE` | Use spaces | `TOTAL_COST` -> `Total Cost` | | Abbreviations | Spell out | `Del. Mrgn` -> `Delivery Margin` | | Opaque acronyms | Spell out | `TFS` -> `Total Freight Surcharge` | | Technical prefix | Remove | `FACT_Orders` -> `Orders` | | Inconsistent periods | Standardize | `LY`/`PY`/`Last Year` -> `1YP` | | Inconsistent units | Standardize | `pct`/`%`/`(%)` -> `(%)` | | Missing desc
Power BI AI skills and Power BI agents for Claude Code and GitHub Copilot: a plugin marketplace of Power BI skills, subagents, and hooks for semantic models, DAX, TMDL, reports, and AI dashboards. Includes Microsoft Fabric skills and Fabric agents. Weekly updates.
Repo: data-goblin/power-bi-agentic-development
Other skills on power-bi-agentic-development.
- /deneb-visuals
Deneb visual creation, Vega/Vega-Lite spec authoring, and Deneb best practices for PBIR reports. Automatically invoke whenever the user mentions "Deneb" in any context, or asks about Vega/Vega-Lite specs in Power BI, Deneb cross-filtering, Deneb interactivity, pbiColor theme
Open skill - /powerbi-custom-visuals
Power BI custom visual (.pbiviz) development with the pbiviz toolchain and its MCP server. Automatically invoke when the user mentions "custom visual", "pbiviz", "develop a Power BI visual", "powerbi-visuals-tools", "IVisual", "capabilities.json", "visual formatting model",
Open skill - /python-visuals
Python visual creation and matplotlib/seaborn patterns for PBIR reports. Automatically invoke when the user mentions "Python visual", "matplotlib in Power BI", "seaborn in Power BI", "pythonVisual", or asks to "create a Python visual", "add a matplotlib chart", "write a Python
Open skill - /r-visuals
R visual creation and ggplot2 patterns for PBIR reports. Automatically invoke when the user mentions "R visual", "ggplot2", "ggplot in Power BI", or asks to "create an R visual", "add an R chart", "write an R visual script", "inject an R script into Power BI".
Open skill - /svg-visuals
SVG generation via DAX measures and extension measures with ImageUrl data category for inline visualizations in PBIR reports. Automatically invoke when the user mentions "SVG visual", "DAX sparkline", "SVG measure", "inline graphics with DAX", "ImageUrl data category",
Open skill - /executing-spark
Execute arbitrary Python or PySpark code on Fabric Spark compute without creating a notebook artifact; ephemeral Livy sessions with full Delta table access. Automatically invoke when the user asks to "run PySpark in Fabric", "create a Livy session", "execute Python on Fabric
Open skill

