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.
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.
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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
requirements.mdsays two incompatible things about the plugin API, and the coverage figure is measuring the contradiction.The contradiction
| Plugin API | — |among the things deferred for v1 — a bare row, where most deferrals carry a justifying note.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: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 indeclared/expr.rs, andtests/declared_parity.rsasserting the compiled and interpreted backends compose byte-identical WGSL.code-health.md §3calls 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.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.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.