Metadata-Version: 2.4
Name: keep-the-why-lint
Version: 0.10.1.0
Summary: Structural CI linter for Keep the Why projects: validates .keep-the-why and context/ entry structure, schema-version-aware.
Author: Oliver Zehentleitner
License: MIT
Project-URL: Homepage, https://keepthewhy.com
Project-URL: Documentation, https://keepthewhy.com/linting/
Project-URL: Repository, https://github.com/oliver-zehentleitner/keep-the-why
Project-URL: Changelog, https://github.com/oliver-zehentleitner/keep-the-why/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/oliver-zehentleitner/keep-the-why/issues
Keywords: keep-the-why,linter,documentation,decision-records,ci
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Documentation
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Python: >=3.10
Description-Content-Type: text/markdown

# keep-the-why-lint

Structural CI linter for [Keep the Why](https://keepthewhy.com) projects. It validates the machine-checkable half of the schema — required entry fields, valid values, index consistency, `.keep-the-why` integrity, hidden-content red flags — and deliberately stops there: whether the recorded rationale is *true, complete, or honest* is not mechanically checkable, and this tool doesn't pretend otherwise.

Schema-version-aware: it reads the target project's `context-schema` and only enforces what that skill version defines, so an unmigrated project never fails on structure its version didn't have. Python 3.10+, no dependencies beyond the standard library.

```bash
pip install keep-the-why-lint
ktw-lint /path/to/project            # exit 0 clean, 1 findings
ktw-lint /path/to/project --strict   # warnings fail too
```

GitHub Actions (always the latest linter; no consumer-side pinning needed):

```yaml
- uses: oliver-zehentleitner/keep-the-why@latest
```

Full documentation — GitLab CI and pre-commit snippets, the version scheme, every finding code: **https://keepthewhy.com/linting/**

Part of the [keep-the-why](https://github.com/oliver-zehentleitner/keep-the-why) repository (`lint/`), versioned as `<schema>.<revision>`: the first three segments are the newest skill schema this release knows every structural gate of, the fourth is the linter's own revision. MIT.
