Files
DarkRoom/docs/traceability.md
T
dtourolle 12d320cf33 Record what the spec got wrong about the model that exists
docs/segmentation.md §4 priced arm B as costing a C dependency under the
NDK and treated that as most of the difference between the arms. It is not
a cost that has to be paid: `ort`'s `alternative-backend` disables its
linking entirely and `ort-tract` supplies the API from tract, which is pure
Rust. D13's "largest exception the policy would tolerate" turns out not to
be needed, and the answer generalises to the face pipeline — so D13's
runtime half is now answered and only its licensing half is open.

Three findings contradict §4 outright and are recorded as F4-F6 rather than
quietly designed around. There is no ADE20K-trained YOLO, so the shipped
vocabulary selects subjects and not stuff — "select the sky" comes from the
watershed or from nowhere. It is instance segmentation, so it partitions
nothing and two people come back as two instances. And tract cannot parse a
dynamic-shape export, which fixes the input at 640 square and makes tiling
the only route to more semantic resolution.

Arm C ships, but §8's criteria are not what decided it, and saying so
matters more than claiming the process worked. §8 asked for a two-
interaction margin over arm A on a traced corpus. That comparison was never
run: F4 and F5 changed what the arms are, and a model that recognises
subjects but has no word for sky cannot be a selection tool alone, while a
watershed cannot tell a person from the wall behind them. They stopped
being candidates and became complements.

What is *not* done is written down as plainly: the 24-image corpus is
untraced, so M1-M4 have no numbers and "this feels right" has not become
one. M5 is answered on one device only, and region ids now reach the
sidecar — so a cross-vendor divergence would mean a mask written on the
desktop meaning something else on Android. F3 stands.
2026-08-22 08:39:17 +02:00

38 KiB

Requirements traceability matrix

Denominators are parsed from requirements.md at run time, never hardcoded. Coverage is the intersection of tagged and defined IDs over defined IDs, so it cannot exceed 100%.

Summary

Metric Value
Source files scanned 143
TRACES tags found 330
Requirements defined 151
Requirements covered 83
Coverage 55.0% (83/151)

By type

Type Covered Defined
FR 65 97
NFR 16 48
R 2 6

Orphan tags

A tag naming an ID requirements.md does not define — what renumbering produces, and what a typo produces.

None.

Tagged requirements

ID Tagged in
FR-CAT-1 core/dr-catalog/src/scan.rs:1, core/dr-catalog/src/walk.rs:109, core/dr-catalog/src/walk.rs:162, core/dr-catalog/src/walk.rs:1, core/dr-sync/src/scan.rs:93, core/dr-types/src/lib.rs:196, core/dr-types/src/lib.rs:265, core/dr-types/src/lib.rs:298, tools/traceability/src/lib.rs:479, tools/traceability/src/lib.rs:511, ui/dr-ui/src/activity.rs:1, ui/dr-ui/src/library.rs:1
FR-CAT-11 ui/dr-ui/src/library.rs:152
FR-CAT-12 core/dr-pipeline/src/sidecar.rs:109
FR-CAT-15 core/dr-catalog/src/schema.rs:258, core/dr-catalog/src/trash.rs:1, core/dr-sync-nextcloud/src/lib.rs:447, core/dr-sync/src/lib.rs:122, core/dr-sync/src/scan.rs:426, core/dr-sync/src/scan.rs:57, core/dr-thumbs/src/lib.rs:376, ui/dr-ui/src/collections_ui.rs:1087, ui/dr-ui/src/collections_ui.rs:1762, ui/dr-ui/src/library.rs:152, ui/dr-ui/src/library.rs:169, ui/dr-ui/src/library.rs:2576, ui/dr-ui/src/library.rs:2608, ui/dr-ui/src/library_ui.rs:112, ui/dr-ui/src/library_ui.rs:616, ui/dr-ui/src/trash.rs:1, ui/dr-ui/ui/collections.slint:572
FR-CAT-1a core/dr-catalog/src/walk.rs:1, core/dr-types/src/lib.rs:49
FR-CAT-2 core/dr-catalog/src/lib.rs:1, core/dr-catalog/src/schema.rs:1, tools/traceability/src/lib.rs:479
FR-CAT-3 core/dr-catalog/src/jobs.rs:1, core/dr-catalog/src/walk.rs:66, core/dr-sync/src/scan.rs:69, core/dr-thumbs/src/codec.rs:1, core/dr-thumbs/src/lib.rs:1, ui/dr-ui/src/derived_sync.rs:1
FR-CAT-4 core/dr-catalog/src/lib.rs:1, core/dr-catalog/src/query.rs:1, ui/dr-ui/src/library.rs:1, ui/dr-ui/src/library_ui.rs:1
FR-CAT-5 core/dr-catalog/src/rating.rs:1, core/dr-decode/src/lib.rs:240, core/dr-decode/src/lib.rs:307, core/dr-pipeline/src/sidecar.rs:126
FR-CAT-6 core/dr-catalog/src/collections.rs:1, core/dr-catalog/src/lib.rs:1, core/dr-catalog/src/query.rs:1, core/dr-catalog/src/rating.rs:1, core/dr-types/src/selector.rs:1, ui/dr-ui/src/library.rs:179
FR-CAT-7 core/dr-catalog/src/collections.rs:1, core/dr-catalog/src/merge.rs:1, core/dr-catalog/src/sync.rs:1, core/dr-types/src/selector.rs:1, ui/dr-ui/src/collections_ui.rs:1460, ui/dr-ui/src/collections_ui.rs:1, ui/dr-ui/src/derived_sync.rs:1, ui/dr-ui/ui/app.slint:492, ui/dr-ui/ui/collections.slint:4, ui/dr-ui/ui/library.slint:492, ui/dr-ui/ui/library.slint:511
FR-CAT-8 core/dr-pipeline/src/sidecar.rs:90, ui/dr-ui/src/develop.rs:1429, ui/dr-ui/src/export.rs:697, ui/dr-ui/src/lib.rs:1051, ui/dr-ui/src/lib.rs:1384, ui/dr-ui/src/lib.rs:1489, ui/dr-ui/src/lib.rs:460, ui/dr-ui/src/lib.rs:734, ui/dr-ui/src/library.rs:1475, ui/dr-ui/src/library.rs:340, ui/dr-ui/src/library.rs:398, ui/dr-ui/src/library.rs:626, ui/dr-ui/src/library_ui.rs:3496, ui/dr-ui/src/sidecar_cache.rs:1
FR-CAT-9 core/dr-catalog/src/cache.rs:1, core/dr-catalog/src/scan.rs:1, core/dr-catalog/src/schema.rs:230, core/dr-catalog/src/walk.rs:162, core/dr-catalog/src/walk.rs:1, core/dr-catalog/src/walk.rs:435, core/dr-catalog/src/walk.rs:704, core/dr-sync-nextcloud/src/desktop_client.rs:30, core/dr-sync/src/reachability.rs:1, core/dr-types/src/lib.rs:115, ui/dr-ui/src/library.rs:138, ui/dr-ui/src/library.rs:1435, ui/dr-ui/src/library.rs:1512, ui/dr-ui/src/library.rs:196, ui/dr-ui/src/library.rs:2791, ui/dr-ui/src/library.rs:398, ui/dr-ui/src/library.rs:610, ui/dr-ui/src/library.rs:626, ui/dr-ui/src/library.rs:680, ui/dr-ui/src/library_ui.rs:1400, ui/dr-ui/src/library_ui.rs:1426, ui/dr-ui/src/library_ui.rs:1442, ui/dr-ui/src/library_ui.rs:1536, ui/dr-ui/src/library_ui.rs:154, ui/dr-ui/src/library_ui.rs:1806, ui/dr-ui/src/library_ui.rs:187, ui/dr-ui/src/library_ui.rs:2071, ui/dr-ui/src/library_ui.rs:2405, ui/dr-ui/src/library_ui.rs:2477, ui/dr-ui/src/library_ui.rs:2642, ui/dr-ui/src/library_ui.rs:331, ui/dr-ui/src/library_ui.rs:3692, ui/dr-ui/src/library_ui.rs:3807, ui/dr-ui/src/library_ui.rs:389, ui/dr-ui/src/sidecar_cache.rs:1
FR-CULL-1 core/dr-decode/src/preview.rs:134
FR-CULL-2 core/dr-decode/src/locate.rs:1, core/dr-decode/src/preview.rs:161
FR-CULL-4 core/dr-catalog/src/rating.rs:1, core/dr-pipeline/src/sidecar.rs:126, ui/dr-ui/src/library.rs:179, ui/dr-ui/src/library.rs:340
FR-DEV-3 core/dr-gpu/src/adjust.rs:1388, core/dr-gpu/src/adjust.rs:297, core/dr-pipeline/src/framing.rs:185, core/dr-pipeline/src/operation.rs:196, core/dr-pipeline/src/sidecar.rs:147, ui/dr-ui/src/develop.rs:49, ui/dr-ui/src/develop.rs:621, ui/dr-ui/src/develop.rs:732, ui/dr-ui/src/lib.rs:1732, ui/dr-ui/src/lib.rs:286
FR-DEV-3a core/dr-pipeline/build.rs:1734, core/dr-pipeline/ops/exposure.yaml:1, core/dr-pipeline/src/descriptor.rs:117, core/dr-pipeline/src/descriptor.rs:157, core/dr-pipeline/src/descriptor.rs:177, core/dr-pipeline/src/descriptor.rs:232, core/dr-pipeline/src/framing.rs:256, core/dr-pipeline/src/graph.rs:151, core/dr-pipeline/src/graph.rs:18, core/dr-pipeline/src/graph.rs:42, core/dr-pipeline/src/mask.rs:237, core/dr-pipeline/src/operation.rs:107
FR-DEV-3b core/dr-pipeline/src/descriptor.rs:177, core/dr-pipeline/src/framing.rs:256, core/dr-pipeline/src/graph.rs:42, core/dr-pipeline/src/operation.rs:107
FR-DEV-3c core/dr-pipeline/build.rs:1734, core/dr-pipeline/ops/exposure.yaml:1, core/dr-pipeline/src/graph.rs:151, core/dr-pipeline/src/mask.rs:237, ui/dr-ui/src/develop.rs:2121
FR-DEV-3d core/dr-pipeline/src/framing.rs:185
FR-DEV-3e core/dr-decode/src/lib.rs:501, core/dr-decode/src/lib.rs:643, core/dr-decode/src/lib.rs:683
FR-DEV-3h core/dr-decode/src/lib.rs:307, core/dr-decode/src/preview.rs:29, core/dr-pipeline/src/framing.rs:199, core/dr-types/src/lib.rs:332
FR-DEV-4 core/dr-gpu/src/lib.rs:211
FR-DEV-5 core/dr-pipeline/src/history.rs:124, core/dr-pipeline/src/history.rs:1, core/dr-pipeline/src/history.rs:55, core/dr-pipeline/src/history.rs:71, core/dr-pipeline/src/history.rs:79, ui/dr-ui/src/develop.rs:1445, ui/dr-ui/src/develop.rs:1455, ui/dr-ui/src/develop.rs:31, ui/dr-ui/src/lib.rs:1079
FR-DEV-6 core/dr-pipeline/src/preset.rs:1, core/dr-types/src/settings.rs:61, ui/dr-ui/src/develop.rs:1406, ui/dr-ui/src/develop.rs:1416, ui/dr-ui/src/lib.rs:1051, ui/dr-ui/src/library.rs:1475, ui/dr-ui/src/library.rs:340, ui/dr-ui/src/library.rs:368, ui/dr-ui/src/library_ui.rs:1902, ui/dr-ui/src/library_ui.rs:357, ui/dr-ui/src/presets.rs:1, ui/dr-ui/src/settings_ui.rs:506, ui/dr-ui/ui/adjust.slint:569, ui/dr-ui/ui/library.slint:464, ui/dr-ui/ui/library.slint:521, ui/dr-ui/ui/library.slint:856, ui/dr-ui/ui/settings.slint:79
FR-DSP-1 core/dr-gpu/src/adjust.rs:1311, core/dr-gpu/src/adjust.rs:1388, core/dr-gpu/src/adjust.rs:1473, core/dr-gpu/src/adjust.rs:42, core/dr-gpu/src/lib.rs:48, core/dr-gpu/src/lib.rs:88, ui/dr-ui/src/develop.rs:1593, ui/dr-ui/src/develop.rs:1667, ui/dr-ui/src/develop.rs:1701, ui/dr-ui/src/develop.rs:992, ui/dr-ui/src/lib.rs:56, ui/dr-ui/src/lib.rs:633
FR-DSP-6 core/dr-pipeline/src/operation.rs:169, core/dr-types/src/colour.rs:1
FR-DSP-7 core/dr-gpu/src/histogram.rs:147, core/dr-gpu/src/histogram.rs:1, core/dr-gpu/src/histogram.rs:281, core/dr-gpu/src/histogram.rs:50, core/dr-gpu/src/shaders/histogram.wgsl:1, ui/dr-ui/src/develop.rs:1043, ui/dr-ui/src/develop.rs:2624, ui/dr-ui/src/develop.rs:2656, ui/dr-ui/src/develop.rs:42, ui/dr-ui/src/histogram.rs:1, ui/dr-ui/src/lib.rs:1131, ui/dr-ui/src/lib.rs:281, ui/dr-ui/ui/app.slint:242, ui/dr-ui/ui/histogram.slint:122, ui/dr-ui/ui/histogram.slint:1
FR-EXP-1 core/dr-export/src/encode.rs:1, core/dr-export/src/lib.rs:1, core/dr-types/src/settings.rs:1, ui/dr-ui/src/settings_ui.rs:1
FR-EXP-2 core/dr-export/src/encode.rs:1, core/dr-export/src/error.rs:26, core/dr-export/src/icc.rs:1, core/dr-export/src/lib.rs:137, core/dr-export/src/lib.rs:1, core/dr-export/src/lib.rs:50, core/dr-gpu/src/adjust.rs:1621, core/dr-pipeline/src/graph.rs:322, core/dr-pipeline/src/operation.rs:169, core/dr-types/src/colour.rs:1, core/dr-types/src/settings.rs:1, core/dr-types/src/settings.rs:454, ui/dr-ui/src/settings_ui.rs:1
FR-EXP-3 core/dr-export/src/lib.rs:1, core/dr-export/src/size.rs:1, core/dr-export/src/size.rs:25, core/dr-types/src/settings.rs:1, ui/dr-ui/src/settings_ui.rs:1
FR-EXP-4 core/dr-export/src/lib.rs:1, core/dr-export/src/sharpen.rs:1, core/dr-export/src/size.rs:1, ui/dr-ui/src/settings_ui.rs:1
FR-EXP-5 ui/dr-ui/src/settings_store.rs:1
FR-EXP-6 core/dr-export/src/lib.rs:1, core/dr-export/src/name.rs:1, core/dr-types/src/settings.rs:1, ui/dr-ui/src/export.rs:1, ui/dr-ui/src/lib.rs:324, ui/dr-ui/src/settings_ui.rs:1, ui/dr-ui/src/settings_ui.rs:48, ui/dr-ui/src/settings_ui.rs:561
FR-EXP-7 ui/dr-ui/src/activity.rs:83, ui/dr-ui/src/export.rs:1, ui/dr-ui/src/export.rs:879, ui/dr-ui/src/lib.rs:1655, ui/dr-ui/src/lib.rs:172, ui/dr-ui/src/lib.rs:324, ui/dr-ui/src/lib.rs:359, ui/dr-ui/src/lib.rs:386, ui/dr-ui/src/library_ui.rs:2494, ui/dr-ui/src/library_ui.rs:4245, ui/dr-ui/src/library_ui.rs:4257, ui/dr-ui/src/library_ui.rs:4269, ui/dr-ui/src/library_ui.rs:448, ui/dr-ui/src/library_ui.rs:519, ui/dr-ui/src/library_ui.rs:576, ui/dr-ui/ui/app.slint:1089, ui/dr-ui/ui/app.slint:778, ui/dr-ui/ui/library.slint:468, ui/dr-ui/ui/library.slint:536, ui/dr-ui/ui/library.slint:864
FR-EXP-8 core/dr-export/src/encode.rs:1, ui/dr-ui/src/settings_ui.rs:1
FR-EXP-9 core/dr-decode/src/lib.rs:409, core/dr-export/src/lib.rs:125, core/dr-export/src/lib.rs:1, core/dr-gpu/src/adjust.rs:415, ui/dr-ui/src/develop.rs:1121, ui/dr-ui/src/lib.rs:324
FR-NC-1 core/dr-sync-nextcloud/src/auth.rs:132, core/dr-sync-nextcloud/src/auth.rs:44, core/dr-sync-nextcloud/src/session.rs:128, ui/dr-ui/src/launch.rs:256, ui/dr-ui/src/launch.rs:49, ui/dr-ui/src/launch_ui.rs:344
FR-NC-10 ui/dr-ui/src/export.rs:1, ui/dr-ui/src/lib.rs:386, ui/dr-ui/src/library.rs:1512, ui/dr-ui/src/library.rs:398, ui/dr-ui/src/library.rs:680, ui/dr-ui/src/library.rs:877, ui/dr-ui/src/library_ui.rs:1442, ui/dr-ui/src/library_ui.rs:2494, ui/dr-ui/src/library_ui.rs:389, ui/dr-ui/src/sidecar_cache.rs:1
FR-NC-12 core/dr-sync-nextcloud/src/lib.rs:34, core/dr-sync-nextcloud/src/lib.rs:892, core/dr-sync/src/lib.rs:155, core/dr-sync/src/lib.rs:38, core/dr-sync/src/reachability.rs:1
FR-NC-2 core/dr-sync-nextcloud/src/session.rs:128, core/dr-sync-nextcloud/src/session.rs:34
FR-NC-3 core/dr-decode/src/locate.rs:1, core/dr-decode/src/preview.rs:161, core/dr-sync/src/capability.rs:41, core/dr-thumbs/src/lib.rs:1, ui/dr-ui/src/library.rs:1, ui/dr-ui/src/library_ui.rs:1
FR-NC-4 core/dr-sync-nextcloud/src/propfind.rs:100, core/dr-sync-nextcloud/src/propfind.rs:51, core/dr-sync/src/capability.rs:6, core/dr-sync/src/lib.rs:155, core/dr-sync/src/scan.rs:93, ui/dr-ui/src/launch.rs:49
FR-NC-5 core/dr-sync-nextcloud/src/propfind.rs:51
FR-NC-6 ui/dr-ui/src/activity.rs:1
FR-NC-6a core/dr-catalog/src/cache.rs:1, core/dr-catalog/src/schema.rs:230, core/dr-catalog/src/schema.rs:631, core/dr-types/src/selector.rs:1, core/dr-types/src/settings.rs:1, ui/dr-ui/src/collections_ui.rs:2847, ui/dr-ui/src/collections_ui.rs:490, ui/dr-ui/src/collections_ui.rs:552, ui/dr-ui/src/lib.rs:1415, ui/dr-ui/src/lib.rs:2095, ui/dr-ui/src/library.rs:1254, ui/dr-ui/src/library.rs:1277, ui/dr-ui/src/library.rs:1435, ui/dr-ui/src/library_ui.rs:1075, ui/dr-ui/src/library_ui.rs:1130, ui/dr-ui/src/library_ui.rs:1248, ui/dr-ui/src/library_ui.rs:1367, ui/dr-ui/src/library_ui.rs:1599, ui/dr-ui/src/library_ui.rs:195, ui/dr-ui/src/library_ui.rs:199, ui/dr-ui/src/library_ui.rs:207, ui/dr-ui/src/library_ui.rs:219, ui/dr-ui/src/library_ui.rs:228, ui/dr-ui/src/library_ui.rs:290, ui/dr-ui/src/library_ui.rs:300, ui/dr-ui/src/library_ui.rs:342, ui/dr-ui/src/library_ui.rs:3709, ui/dr-ui/src/library_ui.rs:3727, ui/dr-ui/src/library_ui.rs:3739, ui/dr-ui/src/library_ui.rs:405, ui/dr-ui/src/library_ui.rs:436, ui/dr-ui/src/library_ui.rs:448, ui/dr-ui/src/library_ui.rs:901, ui/dr-ui/src/library_ui.rs:974, ui/dr-ui/src/settings_store.rs:1, ui/dr-ui/src/settings_ui.rs:1, ui/dr-ui/ui/app.slint:1880, ui/dr-ui/ui/app.slint:486, ui/dr-ui/ui/collections.slint:249, ui/dr-ui/ui/collections.slint:369, ui/dr-ui/ui/collections.slint:52, ui/dr-ui/ui/collections.slint:682, ui/dr-ui/ui/collections.slint:84, ui/dr-ui/ui/icons.slint:260, ui/dr-ui/ui/library.slint:582
FR-NC-6b ui/dr-ui/src/library_ui.rs:1130
FR-NC-6c core/dr-sync-nextcloud/src/desktop_client.rs:30, core/dr-types/src/lib.rs:115, core/dr-types/src/lib.rs:197, ui/dr-ui/src/activity.rs:1, ui/dr-ui/src/collections_ui.rs:2847, ui/dr-ui/src/collections_ui.rs:490, ui/dr-ui/src/collections_ui.rs:552, ui/dr-ui/src/library_ui.rs:901, ui/dr-ui/src/library_ui.rs:974, ui/dr-ui/ui/collections.slint:249, ui/dr-ui/ui/collections.slint:682, ui/dr-ui/ui/icons.slint:260
FR-NC-7 core/dr-sync-nextcloud/src/lib.rs:95, ui/dr-ui/src/derived_sync.rs:1
FR-NC-8 core/dr-pipeline/src/sidecar.rs:109, core/dr-pipeline/src/sidecar.rs:90, ui/dr-ui/src/lib.rs:1384, ui/dr-ui/src/library.rs:340, ui/dr-ui/src/library_ui.rs:357
FR-NC-9 core/dr-catalog/src/merge.rs:1, core/dr-catalog/src/sync.rs:1, core/dr-pipeline/src/sidecar.rs:147, core/dr-pipeline/src/sidecar.rs:301, ui/dr-ui/src/library.rs:680, ui/dr-ui/src/library.rs:810
FR-PLAT-AND-1 core/dr-types/src/lib.rs:49
FR-PLAT-AND-3 core/dr-catalog/src/jobs.rs:1
FR-PLAT-LIN-1 core/dr-types/src/settings.rs:1, ui/dr-ui/src/settings_store.rs:1
FR-RAW-1 core/dr-decode/src/lib.rs:198, core/dr-types/src/lib.rs:125, core/dr-types/src/lib.rs:196
FR-RAW-3 core/dr-decode/src/lib.rs:409, core/dr-decode/src/lib.rs:94
FR-RAW-4 core/dr-decode/src/error.rs:1, ui/dr-ui/src/lib.rs:172
FR-RAW-5 core/dr-decode/src/lib.rs:122, core/dr-gpu/src/demosaic.rs:34, core/dr-gpu/src/demosaic.rs:573, core/dr-gpu/src/demosaic.rs:652, core/dr-gpu/src/demosaic.rs:776
FR-UI-1 ui/dr-ui/src/lib.rs:2177, ui/dr-ui/src/lib.rs:64, ui/dr-ui/ui/library.slint:628
FR-UI-2 ui/dr-ui/src/collections_ui.rs:1364, ui/dr-ui/src/collections_ui.rs:1378, ui/dr-ui/src/collections_ui.rs:1423, ui/dr-ui/src/collections_ui.rs:1433, ui/dr-ui/src/collections_ui.rs:390, ui/dr-ui/src/collections_ui.rs:418, ui/dr-ui/src/collections_ui.rs:70, ui/dr-ui/src/collections_ui.rs:857, ui/dr-ui/src/collections_ui.rs:867, ui/dr-ui/src/collections_ui.rs:98, ui/dr-ui/src/lib.rs:64, ui/dr-ui/src/library_ui.rs:207, ui/dr-ui/src/library_ui.rs:3739, ui/dr-ui/ui/app.slint:497, ui/dr-ui/ui/app.slint:504, ui/dr-ui/ui/library.slint:1456, ui/dr-ui/ui/library.slint:456, ui/dr-ui/ui/library.slint:492, ui/dr-ui/ui/library.slint:766, ui/dr-ui/ui/library.slint:773, ui/dr-ui/ui/library.slint:779
FR-UI-3 ui/dr-ui/ui/collections.slint:4, ui/dr-ui/ui/collections.slint:682
FR-UI-4 ui/dr-ui/src/collections_ui.rs:1364, ui/dr-ui/src/collections_ui.rs:1378, ui/dr-ui/src/collections_ui.rs:1423, ui/dr-ui/src/collections_ui.rs:1433, ui/dr-ui/src/collections_ui.rs:1460, ui/dr-ui/src/collections_ui.rs:390, ui/dr-ui/src/collections_ui.rs:418, ui/dr-ui/src/collections_ui.rs:70, ui/dr-ui/src/collections_ui.rs:857, ui/dr-ui/src/collections_ui.rs:867, ui/dr-ui/src/collections_ui.rs:98, ui/dr-ui/src/library_ui.rs:3727, ui/dr-ui/src/library_ui.rs:3739, ui/dr-ui/ui/app.slint:1296, ui/dr-ui/ui/app.slint:492, ui/dr-ui/ui/app.slint:504, ui/dr-ui/ui/library.slint:1456, ui/dr-ui/ui/library.slint:456, ui/dr-ui/ui/library.slint:492, ui/dr-ui/ui/library.slint:511, ui/dr-ui/ui/library.slint:766, ui/dr-ui/ui/library.slint:773, ui/dr-ui/ui/library.slint:779
FR-UI-5 ui/dr-ui/src/collections_ui.rs:1, ui/dr-ui/src/lib.rs:2211, ui/dr-ui/ui/collections.slint:4
FR-UI-7 core/dr-pipeline/src/descriptor.rs:100, core/dr-pipeline/src/framing.rs:256
NFR-ARCH-2 core/dr-catalog/src/jobs.rs:1
NFR-ARCH-3 ui/dr-ui/src/export.rs:1490, ui/dr-ui/src/export.rs:1516, ui/dr-ui/src/export.rs:410, ui/dr-ui/src/export.rs:436, ui/dr-ui/src/lib.rs:1689, ui/dr-ui/ui/app.slint:789, ui/dr-ui/ui/library.slint:536
NFR-ARCH-4 core/dr-catalog/src/error.rs:1, core/dr-export/src/error.rs:1, core/dr-thumbs/src/error.rs:1, ui/dr-ui/src/export.rs:500
NFR-OPS-1 tools/traceability/src/lib.rs:266
NFR-P1 core/dr-catalog/src/lib.rs:1, core/dr-catalog/src/scan.rs:1, core/dr-catalog/src/walk.rs:162, core/dr-catalog/src/walk.rs:1, tools/traceability/src/lib.rs:479
NFR-P13 core/dr-decode/src/preview.rs:134
NFR-P9 ui/dr-ui/src/collections_ui.rs:1, ui/dr-ui/src/export.rs:879, ui/dr-ui/src/library.rs:1, ui/dr-ui/src/library_ui.rs:1, ui/dr-ui/src/trash.rs:1
NFR-PORT-1 core/dr-catalog/src/walk.rs:1, core/dr-types/src/lib.rs:265, core/dr-types/src/lib.rs:298
NFR-R1 core/dr-catalog/src/sync.rs:1, ui/dr-ui/src/library.rs:877
NFR-R2 core/dr-catalog/src/trash.rs:1
NFR-R5 core/dr-catalog/src/collections.rs:1, core/dr-catalog/src/error.rs:1, core/dr-catalog/src/schema.rs:1
NFR-R7 core/dr-gpu/src/error.rs:1
NFR-R8 core/dr-gpu/src/error.rs:1
NFR-RES-1 core/dr-pipeline/src/history.rs:55, ui/dr-ui/src/lib.rs:56
NFR-RES-4 core/dr-catalog/src/cache.rs:1, core/dr-catalog/src/schema.rs:230, core/dr-thumbs/src/codec.rs:1, core/dr-thumbs/src/lib.rs:1, core/dr-thumbs/src/lib.rs:376
NFR-SEC-1 core/dr-decode/src/error.rs:1
R1 tools/traceability/src/lib.rs:495, tools/traceability/src/lib.rs:499
R4 core/dr-gpu/src/lib.rs:211

Not yet tagged

68 of 151 requirements have no implementation tag. Expected while the codebase is young; each should gain one as it is built.

Show untagged requirements
  • FR-CAT-10
  • FR-CAT-13
  • FR-CAT-14
  • FR-CULL-10
  • FR-CULL-11
  • FR-CULL-12
  • FR-CULL-3
  • FR-CULL-5
  • FR-CULL-6
  • FR-CULL-7
  • FR-CULL-8
  • FR-CULL-9
  • FR-DEV-1
  • FR-DEV-2
  • FR-DEV-3f
  • FR-DEV-3g
  • FR-DEV-7
  • FR-DEV-8
  • FR-DSP-2
  • FR-DSP-3
  • FR-DSP-4
  • FR-DSP-5
  • FR-DSP-8
  • FR-NC-11
  • FR-PLAT-AND-2
  • FR-PLAT-AND-4
  • FR-PLAT-AND-5
  • FR-PLAT-AND-6
  • FR-PLAT-LIN-2
  • FR-PLAT-LIN-3
  • FR-RAW-2
  • FR-UI-6
  • NFR-A11Y-1
  • NFR-A11Y-2
  • NFR-A11Y-3
  • NFR-ARCH-1
  • NFR-COMPAT-1
  • NFR-COMPAT-2
  • NFR-OPS-2
  • NFR-OPS-3
  • NFR-OPS-4
  • NFR-P10
  • NFR-P11
  • NFR-P12
  • NFR-P14
  • NFR-P15
  • NFR-P2
  • NFR-P3
  • NFR-P4
  • NFR-P5
  • NFR-P6
  • NFR-P7
  • NFR-P8
  • NFR-PORT-2
  • NFR-PORT-3
  • NFR-R3
  • NFR-R4
  • NFR-R6
  • NFR-RES-2
  • NFR-RES-3
  • NFR-SEC-2
  • NFR-SEC-3
  • NFR-SEC-4
  • NFR-SEC-5
  • R2
  • R3
  • R5
  • R6