Skip to content

fix(scorecard): a required artifact nobody delivered stops being invisible - #130

Merged
beyondnetPeru merged 1 commit into
developfrom
feat/cp-02-scorecard-catalog
Aug 3, 2026
Merged

fix(scorecard): a required artifact nobody delivered stops being invisible#130
beyondnetPeru merged 1 commit into
developfrom
feat/cp-02-scorecard-catalog

Conversation

@beyondnetPeru

Copy link
Copy Markdown
Contributor

Closes CP-02 criterion 3 — and with it, CP-02.

The false green

The scorecard's facts came only from what was delivered (artefacto.Items), so an artifact the standard requires and nobody delivered did not appear at all.

A phase with an empty record did not score badly — it scored null, "nothing demandable yet", while the tenant's catalogue asked for three things. The dashboard said there was nothing to answer for exactly when everything was missing.

The fix

ScorecardProjection folds in the required artifacts from the same tenant-aware catalogue that governs the phase record, the read-only endpoint and the payload sent to the Core. Four surfaces, one catalogue.

It scores against the catalogue with the overlay, not the bare standard: punishing a tenant for not delivering what they themselves marked not-applicable would be the exact opposite of what CP-02 criterion 2 just allowed them to do.

What was not touched, and is right

A required-but-undelivered artifact still sits at pendiente while it is within its deadline, not red. Penalising before the due date would be punishing in advance, and that rule was already well reasoned.

My first version of the test asserted the score moves immediately — the assertion was wrong, not the rule. The test now pins the moment it must hurt: overdue and undelivered, where it turns missing and drags the score to 0.

Verification

4 new tests. Full suite: 1278 passed / 10 failed — the same environment-dependent set that fails on a clean worktree at HEAD, compared set-by-set.

🤖 Generated with Claude Code

…sible

Closes CP-02 criterion 3, and with it CP-02.

The scorecard's facts came ONLY from what was delivered (`artefacto.Items`), so
an artifact the standard requires and nobody delivered did not appear at all. A
phase with an empty record did not score badly -- it scored `null`, "nothing
demandable yet", while the tenant's catalogue asked for three things. The
dashboard said there was nothing to answer for exactly when everything was
missing.

`ScorecardProjection` now folds in the required artifacts from the SAME
tenant-aware catalogue that governs the phase record, the read-only endpoint and
the payload sent to the Core. Four surfaces, one catalogue.

WHAT WAS NOT TOUCHED, AND IS RIGHT: a required-but-undelivered artifact still
sits at `pendiente` while it is within its deadline, not red. Penalising before
the due date would be punishing in advance, and that rule was already well
reasoned. My first version of the test asserted the score moves immediately --
it was the assertion that was wrong, not the rule. The test now pins the moment
it must hurt: overdue and undelivered.

It scores against the catalogue WITH the overlay, not the bare standard.
Punishing a tenant for not delivering what they themselves marked
not-applicable would be the exact opposite of what CP-02 criterion 2 just
allowed them to do.

Verified: 4 new tests; full suite 1278 passed / 10 failed, the same
environment-dependent set that fails on a clean worktree at HEAD. Zero new.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@beyondnetPeru
beyondnetPeru merged commit 9338310 into develop Aug 3, 2026
6 checks passed
@beyondnetPeru
beyondnetPeru deleted the feat/cp-02-scorecard-catalog branch August 3, 2026 17:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant