Skip to content

Conversation

@akhundMurad
Copy link
Owner

Adds a full typeid explain feature: introduces a new explain subsystem (engine, models, registry, discovery, formatters), a CLI command, schema discovery rules, optional YAML schema support via an extra, rich examples, and comprehensive tests. The command explains TypeIDs with derived facts (UUID, timestamp, sortability), optionally enriches them from JSON/YAML schemas, supports JSON output, and remains non-breaking and offline-friendly.

#45

…introspection and optional schema support

Changes:
- Introduced a new CLI command: `typeid explain`, enabling human-readable and machine-readable (JSON) explanations for TypeID values.
- Enhanced documentation in README.md with detailed usage, configuration, and design principles for the new explain feature.
- Added support for schema-based explanations via JSON (default) and YAML (optional extra dependency).
- Described schema discovery rules, including support for both local and user config directory schemas.
- Updated `pyproject.toml` and `poetry.lock` to define a new optional extra dependency group: `yaml` (using PyYAML).
- Registered the `yaml` extra in [tool.poetry.extras], enabling users to install YAML support as needed.
- Added explanation formatting utilities and proper schema loading logic in CLI, robustly handling both errors and absence of schema.
- Provided new examples in documentation for using explain with and without schema, and illustrating output formats.
- Ensured backward compatibility by preserving all existing APIs and CLI commands.
@akhundMurad akhundMurad self-assigned this Dec 20, 2025
@akhundMurad akhundMurad added the enhancement New feature or request label Dec 20, 2025
@akhundMurad akhundMurad merged commit b1b5d50 into main Dec 20, 2025
3 checks passed
@akhundMurad akhundMurad deleted the feature/explain branch December 20, 2025 12:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants