Metadata-Version: 2.4
Name: frontmattering
Version: 0.4.5
Summary: Governed frontmatter, freshness tethers, and validate-only runtime gates for agent-facing Markdown
Author: Lasse T.
License-Expression: LicenseRef-FRONTMATTERING-Individual-Use-1.2
Project-URL: Homepage, https://frontmattering.com
Project-URL: Repository, https://github.com/frontmattering/frontmattering
Project-URL: Issues, https://github.com/frontmattering/frontmattering/issues
Project-URL: Commercial, https://github.com/frontmattering/frontmattering/blob/main/COMMERCIAL_LICENSE_REQUIRED.md
Project-URL: License, https://github.com/frontmattering/frontmattering/blob/main/LICENSE.md
Keywords: markdown,frontmatter,documentation,governance,ai-agents,validation
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
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: Topic :: Documentation
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE.md
License-File: COMMERCIAL_LICENSE_REQUIRED.md
License-File: NOTICE
License-File: THIRD_PARTY_NOTICES.md
License-File: TRADEMARKS.md
Requires-Dist: PyYAML>=6.0
Requires-Dist: markdown-it-py>=4.0.0
Provides-Extra: markdown-plugins
Requires-Dist: mdit-py-plugins>=0.4.0; extra == "markdown-plugins"
Dynamic: license-file

# Frontmattering

Frontmattering makes Markdown safer for agents.

It adds governed frontmatter, task routing, body/frontmatter freshness tethers, and a vendorable validate-only runtime gate so an agent can consume a compact brief without silently relying on stale documentation.

## Install

```bash
python -m pip install frontmattering
frontmattering --version
frontmattering doctor
```

## First-hour path

`frontmattering init .` scaffolds a starter router under `docs/`, and `frontmattering new` creates governed documents. This block runs verbatim in an empty directory (it is executed as a release gate in CI):

```bash
frontmattering init . --set-id MYDOCS --title "My docs"
frontmattering new docs/10_GUIDE.md --profile guide --title "My guide"
frontmattering tether update --add .
frontmattering validate .
frontmattering brief .
```

Already have Markdown under `docs/`? Add governance to a file you already have with `promote` (one file per call):

```bash
frontmattering promote docs/YOUR_GUIDE.md --profile guide --in-place
```

Promoting a file outside the selected corpus fails before the file is touched (`FRONTMATTERING-AUTHORING-TARGET-OUTSIDE-CORPUS`).

For strict freshness enforcement, set `validation_profile: trust` in `.frontmattering/project.yaml`, then re-run `frontmattering validate .` and `frontmattering brief .`.

## Runtime gate

```bash
frontmattering runtime pack --out frontmattering-runtime.pyz
python frontmattering-runtime.pyz validate docs --format json
```

The runtime artifact is validate-only. It does not expose init, promote, new, index, tether update, or authoring surfaces.

## License

Frontmattering is source-available. It is free for individual personal use within the scope of `LICENSE.md`. Professional, organizational, employer, client, CI/CD, hosted, managed-service, platform, consulting, or revenue-connected use is permitted for a 30-day evaluation period under `LICENSE.md`; continued use after the evaluation requires a paid commercial license.

Frontmattering is not open-source software under the Open Source Definition because professional and organizational use is restricted without a commercial license.

Runtime dependency status is recorded in `THIRD_PARTY_NOTICES.md`; project notices are recorded in `NOTICE`.

## Claim boundary

A `FRESH` brief means the current body bytes and canonical trust-bearing frontmatter fields match their mechanical tether. It does not prove semantic summary correctness, human approval, external adoption, or production suitability.

A `STALE` or `UNTETHERED` summary must not be relied on without reading the body.


## Publication status

This v0.4.5 package makes the documented first-hour path executable verbatim from an empty directory — it uses `frontmattering new`, and the README's fenced quickstart block is executed as a CI release gate — and removes the dormant network-fetch helper from the distribution. No frontmatter-schema or canonical-model (`v0.1.5`) changes. Custom license text should still receive legal review before paid commercial sales.
