Packs for coding agents
Software, shipped as decisions.
Your agent is the new compiler. Decisions are the new source code.
A pack holds every decision a product needs, each with a test. Your coding agent builds the product in your language, in your own repo, without stopping to ask how anything should work. Then you change it however you like.
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 74 decisions with 390 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
Real products, shipped as decisions. The green dots show how much of each pack has a build that passes its tests.
5 packs
Aura
A calm, serverless baby and child log for the phone: feeds, sleep, diapers, sick mode with a fever chart and doctor summary, paper documents kept page by page, and German vaccination and checkup reminders. The merge and backup rules, migrations, growth percentiles, schedules, reminders, AI redaction and calendar files specified exactly.
Lightkone
A research-paper library you own, as a static web app: add, search, read and highlight papers, with BibTeX, PDF filing, sync and duplicate finding specified exactly.
powerbi-cli
A command line tool for Power BI admins that saves workspaces, apps, reports, report users and workspace scans as JSON and Excel files: auth profiles for user and admin tokens, a versioned offline cache, file converters and batch scans from a YAML config, with every API call it makes written down.
Rondel
End-to-end encrypted retrospectives and team meetings with no accounts, as a static web app plus a tiny room server: the meeting model, recurring series, link keys and sealing, backups, the room protocol and meeting templates specified exactly.
Homeostat
A Python package and command line that turn a declarative plant scenario into historian data with full ground truth: a process library of loops, reactors and faults, plans and plant families, and errors that say how to fix them.
No packs match these filters.
Search inside every pack: decisions, 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
Tell your AI which pack, and what you want different.
Paste the link
Copy a pack's page link into your coding agent and say how you want it: the language, and anything to add or leave out. The agent reads the pack, builds the product in your repo, and checks its own work as it goes.
Works with Claude Code, Codex, Cursor, Copilot, or any agent that can open a web page.
Build https://symbola.sh/packs/kausalflow/lightkone/ in Go. Add a dark theme and Zotero sync. Add the Symbola connector
Ask for a pack in plain words, read what it decides, and get the steps to build it.
- ClaudeIn Claude's connector directory. How to add it
- ChatGPTComing soon
Use the command line
Download the pack into a folder, then point your agent at it.
$ uv tool install symbola $ symbola pull kausalflow/lightkone 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.
Decision · 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
From code you already have, alongside the code you are writing, or by asking you questions before there is any code. You settle the decisions; it writes the files.
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 pack and in which languages.
Three ways to start
Your agent reads the code and drafts the decisions. You check them.
symbola extract ./my-app --pack you/my-app How it works Your agent records each decision as you make it, next to the code.
npx skills add kausalflow/symbola --skill symbola-pack How it works Your agent asks you multiple-choice questions and writes the pack from your answers.
npx skills add kausalflow/symbola --skill symbola-decide How it works All three end the same way: have a fresh agent build the pack once
(symbola replicate spec --builds 1), then symbola publish spec --evidence ….
Packs published without a test build say so on their page.
Built for agents to read
Every page has a plain-text twin.