Spec packs for coding agents
Hand your agent a spec pack. Skip the back‑and‑forth on the basics. Then customize it for your use case.
Each pack spells out every decision a product needs, with tests for each one. Your agent builds from it without stopping to ask you questions, runs the tests until everything passes, and the code lives in your own repo.
Why packs
Software isn't about the code anymore.
Every new product starts with the same groundwork: importing data, search, duplicates, deleting and restoring, the odd date format. None of it makes your product special, yet it takes the first weeks and is where many bugs hide. A coding agent can type the code quickly, but it still has to guess how each piece should behave.
A pack settles that groundwork in advance. Every behaviour is written down with a test, so your agent builds to a clear target, the tests tell it when it is done, and you start on the part that is actually yours.
Skip the groundwork
The everyday features most products need, worked out case by case. Your time goes to what makes your product different.
Nothing left to guess
Each behaviour has a written answer and a test that checks it. The Lightkone pack, for example, settles 66 decisions with 358 tests.
Yours to keep and change
The result is plain code in your own repo, with no runtime and no lock-in. Change it however you like, or rebuild it in another language from the same pack.
Browse packs
Ready-made specs for real products. The green dots show how much of each pack has a build that passes its tests.
2 packs
Lightkone core
A paper library you own: search, BibTeX import and export, citation keys, PDF filing, merging and duplicate finding.
Homeostat
Process-plant time series with full ground truth from a declarative scenario: validation with actionable errors, exact discretization, reproducible random streams, a scriptable CLI.
No packs match these filters.
Search inside every pack: obligations, briefs and assumptions
How it works
From a pack to running code in three steps.
Pick a pack
A pack holds the product's brief, every decision it needs, and the tests that check each one. Nothing is left for your agent to guess.
Your agent builds it
Give pack.md to Claude Code or any coding agent and pick a language. Questions it would normally stop and ask you are already answered.
The tests say when it's done
The pack's tests run as your agent works, so it knows what is still wrong and fixes it. When everything passes, the build is done and the code is yours.
Using a pack
You send three messages. Your coding agent does the rest, checked by the pack at every step.
One decision, end to end
A real rule from the kausalflow/lightkone pack, and how its test stops an agent from guessing wrong. The search data is simplified.
Obligation · decided
Trashed papers appear only with is:trash, and then only trashed papers appear; an empty trashed field is not trashed.
Two reasonable builders could easily disagree here. Should a deleted paper still turn up in search? The pack settles it once, so nobody has to guess.
Example check
| Search | Must return |
|---|---|
| causal | p2 |
| is:trash | p3 |
p3 matches "causal" too, but it is in the trash, so it must stay hidden.
Running the check
| Search | Expected | Build A, Go | Build B, Python |
|---|---|---|---|
| causal | p2 | p2 ✓ | p2, p3 ✗ |
| is:trash | p3 | p3 ✓ | p3 ✓ |
Both builds look fine in a quick demo. Build B guessed that trashed papers still match a search. The check catches it, so Build B gets no passing result for this part until it is fixed.
The finished result
This is Lightkone's own result for this part, shown on the pack page with the pack's other test results.
For publishers
Know how a product should work? Package it once, and every coding agent can build it.
Write it once, built everywhere
People you will never meet build your pack in Python, Go, TypeScript and more. Every build follows your decisions, because your tests check each one.
Your agent writes most of it
symbolon extract drafts a pack from software you already have. You read through the decisions, settle the open ones, and publish.
Credit and support
Each pack page shows who published it, with your profile and support links such as GitHub Sponsors or Buy Me a Coffee. Paid packs are coming later.
See it working in the wild
Builds that pass your tests are listed on your pack page, so you can see who is using your spec and in which languages.
- 1Start a pack
symbolon pack initorsymbolon extract - 2Settle the decisionsMark each one decided, a default, or open for builders
- 3Publish
symbolon publish, or upload it on the site
Built for agents to read
Every page has a plain-text twin.