Linear Integration
SpecWright integrates with Linear (opens in a new tab) to sync your projects and issues. Push specification-backed tasks directly to your Linear workspace so your team can track implementation alongside your existing workflow.
What gets synced
When you push a SpecWright project to Linear, the full specification package is synced:
- Project — Created in your Linear team with name and description
- Specification documents — PRD, Design Brief, and Technical Specification attached as Linear documents
- Issues — All implementation tasks created as Linear issues with full context
- Dependencies — Blocking relationships between issues are set up in Linear
- External links — A "SpecWright Resources" document with links to Screen Designs, Technology Choices, Acceptance Criteria, and the full project overview
Setting up
Open Settings
Launch the Web UI (specwright view) and navigate to Settings from the sidebar.
Enter your Linear API key
In the Linear section, enter your personal API key. You can generate one from Linear Settings → API (opens in a new tab).
SpecWright validates your API key before saving. The key needs read/write access to issues, projects, and documents.
Select your team
After validation, SpecWright fetches your available Linear teams. Select the team that should receive your projects and issues.
The sync process
When you click "Sync to Linear" on a project, SpecWright executes a 6-step sync:
- Create Linear project — A project in your selected team with the SpecWright project name and description
- Sync PRD — Attaches the Product Requirements Document as a Linear document
- Sync Design Brief — Attaches the design specification as a Linear document
- Sync Technical Specification — Attaches the architecture document as a Linear document
- Create issues — Creates a Linear issue for each SpecWright issue with full context
- Set up dependencies — Creates blocking relationships between issues that match SpecWright's dependency chain
What issues look like in Linear
Each synced issue includes:
- Title — The issue title from SpecWright
- Description — Rich Markdown with all fields: key decisions, acceptance criteria, technical details, testing strategy, dependencies
- Priority — Mapped from estimated hours (default: Normal)
- Estimate — Fibonacci story points derived from estimated hours:
| Estimated hours | Story points |
|---|---|
| 1-2h | 1 |
| 2-4h | 2 |
| 4-6h | 3 |
| 6-10h | 5 |
| 10-16h | 8 |
| 16-24h | 13 |
| 24h+ | 21 |
External links
SpecWright creates a "SpecWright Resources" attachment on the Linear project with links to:
- Screen Designs (visual wireframes in the Web UI)
- Technology Choices (decision matrix in the Web UI)
- Acceptance Criteria (testable criteria viewer)
- Full Project Overview (complete project in the Web UI)
These are localhost links (http://localhost:5174/...) — they work when SpecWright is running locally.
Sync state tracking
After syncing, SpecWright saves a linear_sync.json file in the project directory. This tracks:
- When the sync happened
- The Linear project ID and URL
- Mappings between SpecWright issue IDs and Linear issue IDs
- Mappings between SpecWright documents and Linear document IDs
This prevents duplicate syncs and enables future re-sync capabilities.
What's next?
- Ship to AI Tools — Send issues to your AI coding tool
- Output Files — Understand the
linear_sync.jsonformat