Skip to main content

Import requirements as specs

Requirements your team already keeps in Markdown can become specs in Tiden. You can add specs manually in the web UI, one at a time with the CLI, or in bulk from draft files.

Create one spec​

tiden spec create \
--product-id <product-id> \
--title "User can resend an invitation" \
--content "Admins can resend a pending invite without changing its role."

Use a Markdown file for longer content:

tiden spec create \
--product-id <product-id> \
--title "Checkout tax calculation" \
--content-file ./requirements/checkout-tax.md

Use - to read the body from stdin:

cat ./requirements/checkout-tax.md | tiden spec create \
--product-id <product-id> \
--title "Checkout tax calculation" \
--content-file -

Include source provenance​

Create sources.json:

{
"sources": [
{
"sourceType": "repo_file",
"title": "Checkout handler",
"repoPath": "app/checkout/handler.ts",
"lineStart": 20,
"lineEnd": 84
}
]
}

Pass it during create or update:

tiden spec create \
--product-id <product-id> \
--title "Checkout validates inventory" \
--content-file ./requirements/inventory.md \
--sources-file ./sources.json

Push a draft tree​

For larger imports, create a draft JSON file and run a dry run:

tiden draft dry-run ./specs-draft.json

Push the draft:

tiden spec push ./specs-draft.json

If the push is interrupted:

tiden spec resume ./specs-draft.json

Rollback using the push log:

tiden spec rollback ./push-log.json

Import to a branch​

Create a branch first:

tiden branch create --product-id <product-id> --name import/initial-specs

Then create or update specs with:

--branch import/initial-specs

Review and merge the branch when the import looks correct.