Skip to content

ask 3: add a by-BRD rollup to build-plan-status.sh as a new View C, without reintroducing the shared module overclaim #67

Description

@MendixMau

What Studio needs

A by-BRD rollup in project-bin/build-plan-status.sh, so progress can be read per functional domain and not only per Mendix module.

Blast radius

Rating: needs care.

Additive as a new View C. Behaviour changing if it replaces View B, because that changes the meaning of "reviewed" for every existing project. Keep View B.

The failure mode to design against, stated plainly. A naive join attributes one module's summary.tsv result to every BRD that lists that module. One real project has eight domains inside a single Practice module. One journey run and one FAULT would render as eight domains each reporting a fault, and a human reading build-plan.html sees eight failures where there is one. Studio hit exactly this and fixed it (commit 0e9f11b, "give a shared module's test result to the module, not to every domain in it"). A toolkit view that joins naively would reintroduce it, and the two tools would then disagree on screen.

Suggested rule, which is the one Studio already uses:

  1. Join on requirement id first, using the requirement field on docs/report.json rows.
  2. Fall back to module only when that module is claimed by exactly one BRD.
  3. Otherwise print "shared by N domains, not measured on its own" rather than a verdict.
  4. When claims: blocks are absent, print "no claims, cannot roll up" rather than zeros. project-bin/coverage-preflight.sh already treats that as a lower level and its ledger derivation can be reused rather than writing a second parser.

Each row should say which join source produced it.

Decision needed

Which source is authoritative when they disagree: BRD modules[], the claims: blocks in build-plan.md, or requirement on report.json rows. All three exist and can contradict each other.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions