Import requirements

Extract requirements from pasted text, documents, or URLs with the import wizard, and learn what connecting Jira, Linear, or GitHub Issues syncs.

This page shows you how to get many requirements into a project at once, from source material or from an issue tracker.

Prerequisites

  • A project you can write to.
  • For the import wizard: AI credits on your organization when you upload documents. A document run consumes one document_import credit; paste-text and URL runs are not charged. The spreadsheet Enhance with AI option costs one ai_requirement_analysis credit per row.
  • For issue trackers: permission in the tracker to authorise an OAuth app for your workspace.

Two different things called "import"

The import wizard reads text you give it and uses AI to extract a reviewable list of requirements, which you edit and then create. It is a one-shot, pull-based flow.

Connecting Jira, Linear, or GitHub Issues does not read your existing issues. It creates projects for your teams and then keeps them in sync from that point on through webhooks. Nothing already in the tracker is copied over.

The import wizard

Open a project and choose Add requirement → Import requirements (or go to /projects/<project-slug>/requirements/import). The wizard has five steps: Source → Clarify → Extract → Review → Create. Runs are saved as you go, so you can leave and resume from the banner on the project page.

Sources

SourceWhat it accepts
Paste textMeeting notes, a PRD, draft prose.
DocumentsUp to 10 files (any beyond the tenth are ignored), 50 MB each: .pdf, .docx, .md, .markdown, .txt, .xlsx, .xls, .csv.
URLUp to 5 URLs, one per line or comma-separated. Spectrace fetches each page and extracts its text. A URL that points at a PDF is rejected with "PDF URLs are not supported" — download it and upload the file instead.

Conversation and Audio appear in the source picker marked "soon" and cannot be selected. The one way to import a conversation today is the Slack message shortcut that captures a thread as a spec; it creates a run and replies with a link that opens this wizard on that run. See Slack, Jira and Linear.

Source text is capped at 100 000 characters per run.

Step 1: Source

Besides the material itself, step 1 asks for:

  • Extraction depthMinimal (about 5-8 requirements), Focused (about 12-18, the default), Standard (about 25-35), or Exhaustive (40 or more, uncapped). These set the extractor's maximum count.
  • Categories to review — the requirement types you want. Types you untick still get extracted but arrive in Review unchecked.
  • Constraints (optional) — org or project rules to bake into every requirement, one per line. A line such as "no more than 20" becomes a hard cap on the count.

Step 2: Clarify

The clarifier reads your source and asks up to nine questions about audience, edge cases, and constraints. Each question has options and a free-text answer. Every answer is optional: Skip moves past one question, Skip all starts extraction with whatever you have answered; skipped questions are left out. Answers are passed to the extractor. If the clarifier fails, the wizard continues without questions.

Step 3: Extract

Extraction runs as a background job and reports progress in the wizard. The extractor works in passes: a first extraction, a gap-fill pass toward a per-domain baseline of coverage areas, then decomposition of items that are too coarse. Each extracted requirement carries a title, description, type, priority, user story, acceptance criteria, suggested subtasks (each with an hour estimate), dependencies on other extracted items, and the source quote it came from.

Step 4: Review

Every extracted requirement is listed with a checkbox. You can edit the title, description, user story, acceptance criteria, and subtasks; untick individual acceptance criteria; and click Suggest more with AI on a requirement to ask for further criteria. The footer shows <selected> of <total> selected; Continue is disabled at zero.

Step 5: Create

Selected requirements are inserted into the project in the Backlog stage with their acceptance criteria, subtasks, and dependencies, and each gets a reference number. The extractor is given the project's existing requirements as context and instructed not to extract duplicates of them, but nothing in Review flags a duplicate for you — read the list before you continue.

From an AI agent

The spectrace_extract_requirements MCP tool runs a single extraction pass (no clarifier, gap-fill, or decomposition) on text and returns a draft list without saving; spectrace_requirements_batch_create then creates the ones you keep in one transaction. See Tool reference.

Issue trackers: connect and sync

Connect from Settings → Integrations. On connect, Spectrace runs an auto-setup and registers a webhook. From then on, issues created or updated in the tracker become or update requirements in Spectrace.

TrackerAuto-setup on connectWhat syncs inStage mapping
LinearOne project per Linear team, keyed by the team key. Workspace members are matched to Spectrace users by email.Issue create, update, remove.Mapped from the Linear state (Backlog → Backlog, Todo → Backlog, In Progress → In Dev, In Review → In Review, Done → Done). Cancelling an issue does not move the requirement.
JiraOne project per Jira project, keyed by the Jira key, with a default status mapping.Issue created, updated, deleted. Ticking or unticking a Spectrace-written acceptance-criteria checklist in the Jira description updates the matching criteria's completed state (Spectrace wins for PR-verified criteria).Mapped from the Jira status (To Do → Backlog, In Progress → In Dev, In Review → In Review, Done → Done).
GitHub IssuesOne project per repository among your 20 most recently updated owned repositories that have open issues.Issue opened, edited, closed, reopened, assigned, labelled.closed → Done; anything else → Backlog.

Auto-created projects have no product attached. Requirements that arrive by webhook are marked with their source and, when the project has auto-enrich on (the default), are enriched in the background with a user story and acceptance criteria.

Stage changes made in Spectrace are pushed back to the tracker, and Jira issues also receive the acceptance-criteria checklist in their description whenever criteria change. Pushing a Spectrace requirement to Jira as a new issue is available from the requirement page and the export dialog. Details, prerequisites, and environment variables are on Slack, Jira and Linear and GitHub App.

Not available today

  • Backfill: a "pull my existing Jira / Linear / GitHub issues" button. Only issues changed after you connect arrive.
  • Audio import.
  • Conversation import from the wizard itself (Slack thread capture is the only entry point; Slack export files, email, and Teams transcripts have no UI).
  • Azure DevOps sync and Confluence or Notion import. Spectrace can export to Azure DevOps CSV and Confluence HTML, but not read from them.

What done looks like

After the wizard, the project board shows the new requirements in Backlog, each with a reference number and acceptance criteria, and the run disappears from the resumable-imports banner. If extraction fails, the wizard stops polling and shows the run's error message; failed runs do not appear in the project banner, so start a new run. If a document parses to empty text (a scanned PDF, for example), the upload is rejected at step 1 with "No extractable text" — paste the text instead.

After connecting a tracker, new projects appear on /projects named after your teams or repositories, and the next issue you create there appears in Spectrace as a requirement with its source link. If it does not, the webhook secret or the tracker's webhook registration is the first thing to check.