Engineering Specs
Engineering specs are technical documents that describe how we plan to implement features and solve problems. They help us align on requirements, communicate progress, and document our architectural decisions.
Why Write Specs?
As the company gets bigger and gains adoption, it's important to evolve how we work together. There are more teams and more stakeholders than ever, and with that, more opportunities for mis-communication and untimely disagreements.
Writing specs for reasonably complicated projects has many benefits:
- Improves clarity of implementation
- Reduces time to implementation
- Often times, after a spec is written, it's fed into an LLM to implement the changes
- Allows for discussion (and maybe some healthy bike shedding) prior to implementation
- Importantly, aligns on requirements prior to implementation
- Communicates upward and outward
- Helps leadership understand the progress of a project
- Helps teammates understand how various parts of our application is architected
It is useful to start with an outline/template for specs. For that, refer to the SPEC: Template document.
Current Specs
| Spec | Description |
|---|---|
| Enterprise MCP Controls | Admin controls for MCP server allowlists |
| Onboarding Improvements | User onboarding and engagement features |
| Organization Modes Library | Shared modes for teams and enterprise |
| Agentic Security Reviews | AI-powered security vulnerability analysis |
| Track Repo URL | Usage tracking by repository/project |
| Voice Transcription | Live voice input for chat |
Private specs, for example backend non-user facing features, can be found on the company handbook (Kilo internal).
Contributing a Spec
If you're working on a significant feature, consider writing a spec:
- Copy the Spec Template
- Fill in the sections with your proposal
- Submit a PR for review
- Discuss and iterate with the team
- Once approved, create GitHub issues from the implementation plan