What's actually in the box.
devrel-origin is a Python CLI that operates on your project repo the way git does. devrel init scaffolds a .devrel/ directory; from then on, every command reads and writes inside it.
devrel-origin is a Python CLI that operates on your project repo the way git does. devrel init scaffolds a .devrel/ directory; from then on, every command reads and writes inside it.
.devrel/ directory.Eight files and folders. Four are version-controlled (the editorial contract + config). Three are runtime (kb, deliverables, state.db). One is local secrets (.env, gitignored).
.devrel/config.tomlProduct identity (name, URL, github_repo), model routing per agent, budget caps..devrel/voice.mdThree to five short samples of your best published content. The editorial north star..devrel/style.mdReadability targets, structural rules, header conventions, code-block voice..devrel/slop-blocklist.mdPhrases that must never appear. The Kai pipeline checks every revision against this..devrel/kb/Markdown harvested from your docs site, README, or pasted by hand. Source of grounded evidence..devrel/deliverables/Generated content lands here, partitioned by ISO week. Each piece ships with a trace JSON..devrel/state.dbSQLite. Run history, OKR rollups, schedule registrations, agent state..devrel/.envANTHROPIC_API_KEY or OPENROUTER_API_KEY. chmod 600. Written by devrel auth.Hub-and-spoke. Atlas orchestrates; fourteen specialists execute. Each agent is purpose-built for one job, has its own prompt under prompts/, and persists structured output to state.db so downstream agents have receipts.
Every piece of content Kai produces passes through this pipeline before it lands in deliverables/. Each stage has explicit pass/fail criteria; failures trigger a force-rewrite loop, not a soft skip. The full revision trace is persisted next to the deliverable as <slug>-trace.json.
Kai refuses to generate when no KB, official-docs, or repository evidence is available, returning status="insufficient_evidence" with an evidence-gaps list instead of producing ungrounded content. The forbidden-claims list bans inventing SDK methods, endpoints, install commands, file paths, benchmarks, or issue numbers.
Code blocks get validated. Bash, sh, zsh, Python, JS/TS, YAML syntax-check via parser; failures surface in the trace JSON and block ship until the rewrite loop produces working code.