Metadata-Version: 2.4
Name: tesserakit-schema
Version: 0.4.0
Summary: Schema job pack for Tessera: catalog and lint JSON Schema documents.
Project-URL: Homepage, https://github.com/ShaileshRawat1403/tessera
Project-URL: Repository, https://github.com/ShaileshRawat1403/tessera
Project-URL: Issues, https://github.com/ShaileshRawat1403/tessera/issues
Author: Shailesh Rawat
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Requires-Dist: pydantic>=2.7
Requires-Dist: rich>=13.7
Requires-Dist: tesserakit-core>=0.1.0
Requires-Dist: typer>=0.12
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == 'dev'
Description-Content-Type: text/markdown

# tesserakit-schema

Catalog and lint JSON Schema documents.

`tessera-schema` discovers JSON Schema files, extracts their structure (`$id`, dialect, type, properties, required, `$defs`), and flags structural problems. It reads schemas only: no validation of instance data, no network.

## Lint

```bash
tessera schema lint --input schemas/ --output ./out/schema_pack
tessera schema lint --input person.schema.json --output ./out/schema_pack
```

A JSON file is treated as a schema when it has `$schema`, `properties`, `$defs`/`definitions`, or a schema-style root `type`. Common non-schema files (`package.json`, `tsconfig.json`, ...) are skipped.

Artifacts written:

```text
schemas.jsonl            one SchemaDoc per schema (type, properties, required, defs)
index.md                 the schema catalog
validation_report.md     structural findings
coverage_report.md       root-type distribution + title/$schema coverage
```

## Findings

- `required_not_in_properties` (error) — a `required` field is not declared in `properties`
- `missing_type` (warning) — root schema has no `type`
- `object_without_properties` (warning) — `type: object` with no `properties`
- `additional_properties_unset` (info) — `additionalProperties` not set; the object is open by default
- `missing_schema_version` (info) — no `$schema` dialect
- `missing_title` (info)
- `parse_error`, `no_schemas`
