pbiplint 0.2.4 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/NOTICE CHANGED
@@ -2,6 +2,12 @@ pbiplint itself is licensed under the GNU Affero General Public License,
2
2
  version 3 or later; see LICENSE. The MIT license text below applies only
3
3
  to the third-party material described here, not to pbiplint.
4
4
 
5
+ One file of pbiplint's own is MIT-licensed instead: the skill for AI
6
+ assistants (packages/cli/skill/SKILL.md, skill/SKILL.md in the npm
7
+ package), which pbiplint skill prints and installs, so it can be
8
+ committed to any repository. Its license notice is at the end of the
9
+ file.
10
+
5
11
  pbiplint bundles rule definitions derived from BPARules.json in the
6
12
  microsoft/Analysis-Services repository (https://github.com/microsoft/Analysis-Services),
7
13
  which is licensed under the MIT License:
package/README.md CHANGED
@@ -15,16 +15,40 @@ npx pbiplint --sample # a bundled project,
15
15
  npx pbiplint path/to/model --format sarif --output pbiplint.sarif
16
16
  npx pbiplint path/to/model --format markdown
17
17
  npx pbiplint rules # every rule with status and severity
18
+ npx pbiplint explain HIDE_FOREIGN_KEYS # one rule's guidance, offline (--format json too)
19
+ npx pbiplint path/to/model --quiet # the counts, one line per rule
20
+ npx pbiplint path/to/model --rule HIDE_FOREIGN_KEYS # one rule's findings (repeatable)
21
+ npx pbiplint skill --install claude # the skill for AI assistants (--install copilot, codex, gemini; --show)
22
+ npx pbiplint mcp # a local MCP server for an AI assistant to start
18
23
  npx pbiplint --help # every option, in one screen
19
24
  npx pbiplint --version
20
25
  ```
21
26
 
27
+ An AI assistant that edits a project can keep its context small: `--quiet` for the counts, one line
28
+ per rule; `--rule <RULE_ID>`, repeatable, for those rules' findings (every rule still runs, the
29
+ summary says how many are shown of how many, and `--fail-on` counts only those); and
30
+ `pbiplint explain <RULE_ID>` for the rule's guidance, from this version, with no network. When there
31
+ are findings, the quiet output's last line names the other two.
32
+
33
+ `pbiplint skill` prints a skill, in the [Agent Skills](https://agentskills.io/home) format, that tells
34
+ a coding assistant how to use pbiplint. `--install claude`, `copilot`, `codex`, or `gemini` writes it
35
+ where that assistant reads a project's skills, below the current folder; it never replaces a copy
36
+ that differs unless given `--force`, and `--dry-run` writes nothing. `--show` lists where it is and
37
+ whether each copy matches this version.
38
+
39
+ `pbiplint mcp` is a local MCP server over stdin and stdout, for an assistant that runs local
40
+ servers (Claude Desktop, Claude Code, VS Code, Cursor) to start. Its three tools only read: `lint`
41
+ (what `--format json` prints, or with `quiet` the short summary), `explain_rule`, and `list_rules`.
42
+ It opens no port. See [the CLI page](https://pbiplint.com/cli/#mcp) for each app's setup.
43
+
22
44
  Formats: `text` (default), `json`, `sarif` (for GitHub code scanning and editors), `markdown`.
23
45
  The Markdown export writes an email address, an `@name`, a `#123` or `GH-123`, and text
24
46
  holding two or more `$` as code, so pasted into a GitHub issue or comment it links no one,
25
47
  notifies no one, and renders no math.
26
48
 
27
- Exit codes: `0` no findings at or above `--fail-on`, `1` findings, `2` usage or input error.
49
+ Exit codes: `0` no findings at or above `--fail-on`, `1` findings, `2` a usage error, an input it
50
+ cannot read, or nothing to lint. [What a script can rely on](https://pbiplint.com/cli/#contract)
51
+ states what stdout carries, every exit code, and the JSON documents' fields.
28
52
  `--fail-on error` is the default; `--fail-on warning` and `--fail-on info` tighten the gate;
29
53
  `--fail-on none` exits 0 on any run that lints something. A run that can read nothing in the input,
30
54
  such as a report saved as a single `report.json` (PBIR-Legacy) with no model beside it, exits `2`
@@ -81,8 +105,10 @@ community's published rule files, and are checked against Tabular Editor on the
81
105
  the Microsoft rules need statistics only a live model has; they are listed but not run. A column
82
106
  whose TMDL names no type, as Power BI Desktop saves most calculated columns, is left out of the
83
107
  thirteen ported rules that test a column's type, where Tabular Editor reads the type from the
84
- column's DAX. Each rule has a page at https://pbiplint.com/rules with what it checks, why, how to
85
- fix it, and quirks.
108
+ column's DAX. A TMDL line the parser cannot place gets a `PARSE_ISSUE` error on that line rather
109
+ than being dropped silently; that includes a declaration its object does not hold, such as a
110
+ misspelt `columm` under a table or a hierarchy's `level` that lost its tab. Each rule has a page at
111
+ https://pbiplint.com/rules with what it checks, why, how to fix it, and quirks.
86
112
 
87
113
  The report layer (PBIR) is read beside the model: a `.Report` folder alone is valid input, and with
88
114
  the model beside it the two are paired through `definition.pbir` and checked together. The report
@@ -101,4 +127,6 @@ https://github.com/pbiplint/pbiplint.
101
127
 
102
128
  Copyright (C) 2026 McKinley Consulting. GNU Affero General Public License, version 3 or later; see
103
129
  LICENSE. The vendored Microsoft ruleset and PBI Inspector rule metadata are MIT-licensed; see
104
- NOTICE. The name pbiplint and its logo are trademarks of McKinley Consulting.
130
+ NOTICE. The skill for AI assistants (`skill/SKILL.md`, which `pbiplint skill` prints and installs) is
131
+ MIT-licensed, so it can be committed to any repository; its notice is at the end of the file. The
132
+ name pbiplint and its logo are trademarks of McKinley Consulting.