Skip to content
skyl

Rules of skyl

The commitments that shape every decision in the library.

These are not style guidelines. They are the commitments that decide arguments — when a tradeoff is unclear, the rule higher in this list wins. Each one is observable in the API, and each one has cost skyl something.

The four#

Why write them down#

A library that says "we value simplicity" has said nothing. A library that says "the core module has zero external dependencies, and here is the module split that proves it" has made a commitment you can check.

Each rule below is stated with the thing it costs, because a principle with no cost is a slogan. Pass-through model IDs cost you compile-time checking. Zero dependencies cost the maintainers a hand-written SSE parser. Refusing to drop data means some requests fail that could have half-worked.

Where they came from#

They are drawn from the project's own docs/idea.md and docs/rules.md — the latter being the checklist a reviewer actually applies. If you are contributing, read Engineering Rules, which covers the full ten sections including testing, concurrency and security.

What they are not#

skyl is deliberately not an agent framework, a prompt-template engine, a vector database, or an attempt to hide provider differences entirely. Some differences are real and matter; skyl unifies the common 90% and exposes the rest rather than pretending it away.

Edit this page on GitHub