Repository navigation
Reading OpenSpec state from outside the CLI (a handoff tool): what I rely on, and what I hope stays stable #2197
ECG-Rudy-Glt
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
The problem I kept hitting. I work alone on about sixteen repositories, with several coding agents, and Relai itself is developed with
OpenSpec. Every new agent session started the same way:
claude -pcall is already about 29k tokens before itreads anything of yours);
thread "How do you keep specs aligned with the code after implementation?" is the same worry);
What Relai does about it. A small open-source CLI (Go, one binary, no server, only git), plus an optional board:
relai handoff: the state of one repo in a few hundred tokens, generated from files (not by an LLM): branch, recent commits, open tasks, theactive OpenSpec changes with progress and the next unchecked task, decisions and pitfalls from a notes file.
relai workspace: one page for every project in a folder, about 400 tokens for my 16 repos. A repo's git worktrees count as one project.relai.yamlper repo andrelai find <capability>to check whether another project already provides something;relai discoverproposes links between repos and a person confirms them.
relai tidy: closes a task only when a commit on the default branch says "Closes ", never on a guess.two never start the same one. It speaks MCP. Relai never needs it.
How it reads OpenSpec (it only reads; it never writes to
openspec/):openspec list --jsonfor the active changes (name,completedTasks,totalTasks,status);openspec/changes/<name>/tasks.mddirectly: the- [ ]/- [x]lines as progress, the first unchecked one as "next";openspec/changes/archive/as "not active". When theopenspecbinary is missing or fails, it lists the changes from files and says so,instead of printing "no changes".
Two questions I could not answer from the docs.
tasks.mdand the JSON shape ofopenspec list --jsonmeant to be stable, or would you prefer another entrypoint? A versioned "next task of each active change" from the CLI would let me stop parsing Markdown.
relai.yaml(id, summary, optionalprovides/consumes/links). If you have aconvention for linking specs across repos, I would rather follow it than invent one.
Honest limits. I use it alone; nobody has tested it with several humans. Agents tested: Claude only, n=1 per case. On my 16 real repos the
overview plus handoff saved a median of roughly 100k tokens per task, and one case cost more. The optional board also reads Beads and plain
TODO.mdchecklists.Relai: https://github.com/ECG-Rudy-Glt/RELAI · RELAI-TEAM (optional board): https://github.com/ECG-Rudy-Glt/RELAI-TEAM
All reactions