skyl is an open-source Go library under the Apache 2.0 licence. This section covers how the project is run, the standards a change has to meet, and the security and privacy commitments the library makes to the people who deploy it.
Contributing#
skyl is a small library with an unusually explicit standard for what "done" means. Before opening a pull request, read the Engineering Rules — they are the checklist a reviewer actually applies, and they will save you a round trip.
Contributing
How to propose a change, the DCO sign-off requirement, and what CI will run.
Writing an Adapter
Provider is four methods. An adapter in your own repository is a first-class citizen.
Engineering Rules
Ten sections covering API surface, errors, testing, dependencies, and concurrency.
Code of Conduct
The behaviour expected of everyone participating in the project.
Security and privacy#
skyl sits directly on the path between your users' prompts and a third-party vendor. That makes it a component a security review will look at closely, so the project documents its behaviour rather than asking you to read the source.
Security Policy
How to report a vulnerability, and how credentials are handled.
Data Handling
Exactly what leaves your process, what is kept in memory, and what is logged.
Threat Model
Trust boundaries, what an authenticated gateway caller can do, and what is out of scope.
Versions
The versioning policy, and what "pre-v1" means for breaking changes.
Project direction#
Roadmap
What stands between skyl and production use, from an honest audit.
Project Plan
Milestones, scope, and what is explicitly out of scope.
Decision Records
Seven ADRs recording the load-bearing decisions and why they were made.
Releasing
The multi-module release process. The order is not optional.
Current status#
This is stated on the front page of the repository too. skyl's first design principle after "never block the user from a model" is honesty over coverage — it is better to say "we have not proven this" than to ship something that looks proven and quietly is not.