§3.10 vs §7 — the register says the plugin API is both deferred and specified #15

Closed
opened 2026-09-05 16:20:06 +00:00 by dtourolle · 2 comments
Owner

requirements.md says two incompatible things about the plugin API, and the coverage figure is measuring the contradiction.

The contradiction

  • §7 lists | Plugin API | — | among the things deferred for v1 — a bare row, where most deferrals carry a justifying note.
  • §3.10 then spends ~280 lines and 23 requirement IDs specifying that same Plugin API in detail.

Both are in the register of record, and the traceability denominator counts the second: 21 IDs, 12% of all defined requirements, worth about twelve points of coverage on their own and nearly a third of everything the matrix reports as uncovered. A reader looking at 70.6% has no way to know that, or that the subsystem behind it is one the same document says is not in this version.

What resolves it

An edit to requirements.md, not code. Either:

  • §7 drops the row, and §3.10 is genuinely in scope; or
  • §3.10 is marked deferred with FR-PLG-2 and FR-PLG-2d carved out, since those two are built and tagged.

Until one of those happens, the coverage figure is measuring a decision that has already been taken, and taking it again every time somebody reads the matrix.

Note

FR-PLG-2 and FR-PLG-2d — the declarative node format — are the interesting two, and they are done: core/dr-pipeline/ops/*.yaml, build.rs, the restricted grammar in declared/expr.rs, and tests/declared_parity.rs asserting the compiled and interpreted backends compose byte-identical WGSL. code-health.md §3 calls it "a working plugin system that happens to resolve at build time". Whatever §3.10 becomes must not swallow that.

See docs/outstanding.md §1.

`requirements.md` says two incompatible things about the plugin API, and the coverage figure is measuring the contradiction. ## The contradiction - **§7** lists `| Plugin API | — |` among the things deferred for v1 — a bare row, where most deferrals carry a justifying note. - **§3.10** then spends ~280 lines and 23 requirement IDs specifying that same Plugin API in detail. Both are in the register of record, and the traceability denominator counts the second: **21 IDs, 12% of all defined requirements**, worth about twelve points of coverage on their own and nearly a third of everything the matrix reports as uncovered. A reader looking at 70.6% has no way to know that, or that the subsystem behind it is one the same document says is not in this version. ## What resolves it An edit to `requirements.md`, not code. Either: - §7 drops the row, and §3.10 is genuinely in scope; or - §3.10 is marked deferred **with FR-PLG-2 and FR-PLG-2d carved out**, since those two are built and tagged. Until one of those happens, the coverage figure is measuring a decision that has already been taken, and taking it again every time somebody reads the matrix. ## Note FR-PLG-2 and FR-PLG-2d — the declarative node format — are the interesting two, and they are **done**: `core/dr-pipeline/ops/*.yaml`, `build.rs`, the restricted grammar in `declared/expr.rs`, and `tests/declared_parity.rs` asserting the compiled and interpreted backends compose byte-identical WGSL. `code-health.md §3` calls it "a working plugin system that happens to resolve at build time". Whatever §3.10 becomes must not swallow that. See `docs/outstanding.md` §1.
dtourolle added the size:Spluginsdecisiondocs labels 2026-09-05 16:20:06 +00:00
Author
Owner

Blocks #16. Nothing in the plugin host should be built while the register says both that it is deferred and that it is specified.
Settle alongside #17 (D16) and #49 (D12) — all three are edits to requirements.md, and §3.10 is the single largest candidate D12 names.

**Blocks** #16. Nothing in the plugin host should be built while the register says both that it is deferred and that it is specified. **Settle alongside** #17 (D16) and #49 (D12) — all three are edits to `requirements.md`, and §3.10 is the single largest candidate D12 names.
Author
Owner

Resolved 2026-09-19 in favour of §7 (1da91b7): every §3.10 clause and NFR-SEC-6 carry (post-v1) on their defining line, the traceability tool lists deferred clauses in their own table instead of counting them, and coverage moved from 72.2% of 194 to 80.6% of 170. §3.10 stays as the design of record.

Resolved 2026-09-19 in favour of §7 (1da91b7): every §3.10 clause and NFR-SEC-6 carry `(post-v1)` on their defining line, the traceability tool lists deferred clauses in their own table instead of counting them, and coverage moved from 72.2% of 194 to 80.6% of 170. §3.10 stays as the design of record.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dtourolle/DarkRoom#15