Sync Specs, Sync Work
Make your OpenSpec changes and your issue tracker the same thing.
An OpenSpec change and a tracker issue describe the same work in two forms — the rich, local, spec-driven form and the shareable, durable, human-facing form. specsync renders one into the other, idempotently. It is a single self-contained binary that depends only on the Go standard library, so it runs in any OpenSpec project regardless of that project's language.
This repo dogfoods itself: every issue here is generated from an OpenSpec change in openspec/changes/ by specsync — via the Sync specs → issues workflow. The backlog you see is the spec set: open any issue to read its proposal and live task checklist. That workflow is also a copy-pasteable reference for keeping your own repo's specs and issues in sync.
Why
OpenSpec keeps requirements out of chat history and in reviewable spec files. But teams often want those specs to also live where the rest of the world tracks work — a backlog, a board, a set of issues. Maintaining both by hand means writing intent twice and reconciling it forever. specsync removes the double-entry: write the spec once, and it appears (and stays current) as an issue.
Features
- Sync specs to GitHub issues (idempotent)
- Pull existing issues into local OpenSpec changes
- Dry-run preview mode (always check first!)
- Label management with
stage:andpriority:tags - Works with any language (Go stdlib only)
- Dogfoods itself (repo's issues are the spec set)
How to start
specsync -dry-runspecsyncspecsync pull -issue 42Use cases
Spec-first workflow
Author local change in openspec/changes/<slug>/, then run specsync to project it as an issue. Both paths are first-class — spec-first and issue-first.
Team collaboration
Rich, local, spec-driven form and shareable, durable, human-facing form — two representations of the same work.
Any language
Single self-contained binary that depends only on the Go standard library — runs in any OpenSpec project regardless of that project's language.
Open source
Free forever, with a transparent roadmap and community-driven development. More providers planned.
Dogfood itself
Every issue here is generated from an OpenSpec change in openspec/changes/ by specsync — via the Sync specs → issues workflow.
Installation
npm i -g @androidand/specsyncgo install github.com/androidand/specsync/cmd/specsync@latest