Metadata-Version: 2.4
Name: rulestamp-geg-87-listing-lint
Version: 1.0.4
Summary: 13 rules over German property-ad HTML: the five mandatory Section 87 GModG fields, the ten-year certificate limit, and the Anlage 10 class band that has to match the kWh value. The bundled broken Leip (bundled Node.js runtime)
Author-email: Rulestamp <support@getreadystack.com>
License: Proprietary - see LICENSE.txt
Project-URL: Homepage, https://getreadystack.com/tools/geg-87-listing-lint?ref=pypi
Project-URL: Documentation, https://getreadystack.com/tools/geg-87-listing-lint?ref=pypi
Project-URL: Support, https://getreadystack.com/support
Keywords: immobilienanzeige,energieausweis,geg,real-estate,html-lint,energieeffizienzklasse,germany
Classifier: Programming Language :: Python :: 3
Classifier: Environment :: Console
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: nodejs-wheel-binaries>=20
Dynamic: license-file

# Immobilienanzeige GEG 87 Lint

> Runs the same checker as our npm package on a Node.js runtime that pip installs for you (`nodejs-wheel-binaries`) - no system Node.js needed. Your files are checked locally.

![Immobilienanzeige GEG 87 Lint — finds the line](https://getreadystack.com/img/promo/geg-87-listing-lint_demo.gif)

![Immobilienanzeige GEG 87 Lint](https://getreadystack.com/img/promo/sku142248_result_card.jpg)

13 rules over German property-ad HTML: the five mandatory Section 87 GModG fields, the ten-year certificate limit, and the Anlage 10 class band that has to match the kWh value. The bundled broken Leipzig template returns seven findings, among them 182 kWh/(m2*a) printed as class C when Anlage 10 makes it class F.

## Install

```
geg-87-listing-lint file
```

Node 18+. The same 13 rules as the VS Code extension, from a terminal or CI.

## Free

- Lints the property ad you have open and names every Section 87 field that is missing, expired or contradicted by the kWh value, with the line number and the clause.
- `--rules` lists every rule

## With a licence ($29 once)

- Scans every listing template in the workspace or the CI feed in one run and writes a dated audit record you keep as proof of what each ad said on the day it went live.

```
geg-87-listing-lint --dir ./templates --report html --out report.html
```

A Bedarfsausweis drawn up by an Energieberater with an on-site visit costs about 300 to 500 euro in 2026, while a missing or wrong mandatory field in the ad is an Ordnungswidrigkeit fined up to 10,000 euro per ad under Section 108 (1) no. 16 GModG.

## Use from an AI agent (MCP)

Claude Code · Cursor · Windsurf · any MCP client - add to your MCP config:

```json
{ "mcpServers": { "geg-87-listing-lint": { "command": "geg-87-listing-lint", "args": ["--mcp"] } } }
```

Tools: `check_text` and `check_file` (free) · `check_dir` (licence). The agent gets every finding with the line number.

## Use in CI

```yaml
- name: Immobilienanzeige GEG 87 Lint
  run: pip install rulestamp-geg-87-listing-lint && geg-87-listing-lint --dir . --ci
```


The folder sweep, reports and CI mode need one licence — one payment, no subscription. Set `READYSTACK_LICENSE=<key>` or run `--license <key>` once.

[Get a licence](https://getreadystack.com/api/buy/cl/polar_cl_sOwHAKyyi7buuu6frpXCErjfL8UmizPvqNmPz0ptuox)


<!-- geg 87 listing lint -->


## Install (PyPI)

```
pip install rulestamp-geg-87-listing-lint
geg-87-listing-lint --help
```
