Specifica is a directory and file convention '.specifica/feature-name/` with three optional markdown files — spec.md (what), design.md (how), tasks.md (work).
Two npm packages:
- `@specifica/format` — parser + serializer, ~200 lines, zero deps. parseTasks(md) → Task[], validate directory structure, roundtrip serialize.
- `@specifica/store` — StorageAdapter interface. Defines a contract for items, content, tasks, memory, chat, git sync. Implement it with SQLite, filesystem, PostgreSQL, whatever.
The format works with vim, VS Code, or any editor. Clone the repo and you have everything — no account, no SaaS dependency.
We're building a web editor at specifica.app (not ready yet — will be a GitHub-connected UI with LLM chat for refining specs). But the format is the point. It's MIT licensed and designed to be adopted independently of any tool.
GitHub: https://github.com/cogniumhq/specifica
Happy to answer any questions about the format decisions, the three-file convention, or why we chose to separate the spec from the tooling.