17 Migrating from Other Tools
Quarto-Needs provides conservative migration adapters for bringing requirements from other docs-as-code and requirements-management ecosystems into Quarto Markdown declarations. Migration is deliberately review-first: generating a plan never rewrites authored files.
17.1 Supported Tools
| Source Tool | Input Format | Plan command |
|---|---|---|
| Sphinx-Needs | needs.json |
quarto-needs migrate sphinx-needs <path> --output <plan.json> |
| Doorstop | Directory of YAML/JSON documents | quarto-needs migrate doorstop <dir> --output <plan.json> |
| StrictDoc |
.sdoc files / folder |
quarto-needs migrate strictdoc <path> --output <plan.json> |
| OpenFastTrace | XML trace exchange | quarto-needs migrate openfasttrace <path> --output <plan.json> |
--output is the migration-plan JSON, not a destination .qmd file.
17.2 Migration Workflow
-
Generate and review the migration plan. This does not modify destination files:
quarto-needs migrate sphinx-needs docs/needs.json \ --output .quarto-needs/migrations/sphinx-needs-plan.json -
Build a reviewed apply plan by assigning each source ID an explicit project-relative destination. Add any required type/relation mappings for the source model:
quarto-needs migrate sphinx-needs docs/needs.json \ --type-map req=functional-requirement \ --destination REQ_001=requirements.qmd \ --apply-planWithout
--write, this still does not change authored files; the apply plan is written to.quarto-needs/migrations/sphinx-needs-apply-plan.jsonby default. -
Write only a ready, reviewed plan by repeating the reviewed mappings with
--write:quarto-needs migrate sphinx-needs docs/needs.json \ --type-map req=functional-requirement \ --destination REQ_001=requirements.qmd \ --apply-plan --write -
Validate the converted project:
quarto-needs scan quarto-needs check
For more than one source object, repeat --destination SOURCE_ID=path.qmd. --id-map SOURCE_ID=CANONICAL_ID is available when preserving the source ID is not appropriate. Writes are create-only and reject unresolved mappings, collisions, or unsafe destination paths rather than inferring identity.
17.3 Mapping Principles
-
Stable Identity: Existing IDs (e.g.
REQ_001orSYS-042) are preserved by default; remapping is explicit. - Relation Translation: Source links are mapped into the Quarto-Needs canonical relation catalog through explicit relation mappings where needed.
-
Review Before Mutation: Planning and apply-planning are non-mutating;
--writeis a separate, explicit step. -
Quarto-Native Output: Ready candidates are rendered as standard Pandoc Div declarations (
::: {.need ...} ... :::).