Current state of the product

Updated Oct 13, 2026

Stilyagi is still in the roadmap phase where architectural contracts are being ratified before feature-complete releases land.[^2][^3] The stable user-facing surface is still the Python package API, but stilyagi check is now available for Markdown, Python, and Rust repositories.

Use engine.extract_document() to extract Markdown through the public engine boundary. Non-blank Markdown input returns typed document.regions for source-backed regions such as heading, paragraph, and table_cell, plus container and decoded-text region kinds when the source contains lists, blockquotes, frontmatter, images, or link titles. Blank Markdown input returns zero regions.

Markdown input also carries a canonical IR envelope on Document.ir, and Python docstring plus Rust doc-comment inputs expose python_docstring and rust_doc_comment regions with owner metadata through the same payload. engine.supported_region_kinds() returns the region-kind vocabulary supported by the installed package version.

The fix workflows (--diff, --fix, and --unsafe-fixes) have landed alongside stilyagi check, and this guide records their contract above. No builtin rules ship yet, so a run currently reports no diagnostics whatever the source; the remaining CLI subcommands (config, clean, and dump-ir) land in later roadmap slices. Treat this guide as a record of the settled user-facing v1 contract rather than as a complete operating manual.