Add peer review evidence recertification guard#421
Conversation
|
Hardening update pushed in 05d75c3: inline comment anchors now become stale when the underlying artifact digest changes, even if the selector line remains unchanged. I added a regression that failed before the fix with current == stale and now passes. Validation refreshed locally: npm run check, npm test (6 tests), node --check on index/demo/test, ffprobe on demo.mp4, git diff --check, and sensitive-term scan returned no matches. |
|
Follow-up hardening pass for the peer review evidence recertification guard. What changed:
Validation:
|
|
Follow-up competitive hardening pass for the peer-review evidence recertification guard. What changed:
Why this matters:
Validation:
|
|
Follow-up competitive hardening pass for the peer-review evidence recertification guard. What changed in 631d59f:
Validation:
|
|
Hardening update pushed in I found and covered another recertification edge case: malformed inline-comment anchor evidence could previously throw during evaluation instead of producing a recertification task. The new coverage verifies both missing The new regressions failed before the implementation with:
Fresh validation after the commit:
|
|
Follow-up competitive hardening pass for the peer review evidence recertification guard. What changed in
Validation refreshed locally:
|
|
Follow-up competitive hardening pass for the peer review evidence recertification guard. What changed in
Validation refreshed locally:
|
|
Follow-up competitive hardening pass for the peer review evidence recertification guard. What changed in
Validation refreshed locally:
|
|
Follow-up competitive hardening pass for the peer review evidence recertification guard. What changed in
Validation refreshed locally:
|
|
Follow-up competitive hardening pass for the peer review evidence recertification guard. What changed in
Validation refreshed locally:
|
|
Follow-up competitive hardening pass for the peer review evidence recertification guard. What changed in
Validation refreshed locally:
|
|
Follow-up competitive hardening pass for the peer review evidence recertification guard. What changed in
Validation refreshed locally:
|
|
Follow-up competitive hardening pass for the peer review evidence recertification guard. What changed in
Validation refreshed locally:
|
|
Follow-up competitive hardening pass for the peer review evidence recertification guard. What changed in
Validation refreshed locally:
PR state after push: open at head |
|
Pushed an additional hardening commit: What changed:
Fresh verification:
|
|
Follow-up hardening pushed in What changed:
Validation refreshed locally:
|
@algora-pbc /claim #15
Summary
Adds a distinct
peer-review-evidence-recertification-guard/slice for the Community & User Reputation System.The guard evaluates whether structured peer reviews and inline comments still apply after reviewed documents, datasets, code, or notebooks change. It freezes stale review reputation deltas, blocks reputation updates when stale review or inline-comment evidence is present, validates reputation-delta evidence before profile credit is applied, marks inline comment anchors stale when artifact evidence changes even if a selector line did not move, holds missing or malformed review, artifact, and inline-comment timestamps for recertification, validates artifact timestamp evidence for both review and inline-comment recertification paths, freezes public/semi-private review credit when the reviewer identity is missing, converts malformed evidence entries and malformed non-array evidence collections into recertification holds, preserves anonymous/double-blind reviewer labels, emits deterministic JSON/Markdown/SVG/video audit artifacts, and tolerates sparse project snapshots that omit review, comment, or artifact collections.
Latest Hardening
e6a9df4: malformed non-arrayreviewsandinlineCommentscollections now create explicit recertification holds instead of being treated like omitted evidence.allow-reputation-update.malformed-review-listandmalformed-inline-comment-list, creates peer-review/comment recertification tasks, freezes reputation updates, and blocks profile updates until the evidence shape is fixed.reports/malformed-collection-packet.jsonand refreshed the Markdown reviewer evidence so maintainers can inspect the path directly.Prior Hardening Coverage
Double BlindandFully Anonymousdo not leak raw reviewer IDs.reviewer-identity-missinginstead of applying credit toreviewer:undefined.artifact-missingrecertification evidence.Non-overlap
This is scoped to stale peer-review and inline-comment evidence recertification before reputation updates. It does not duplicate reviewer workload equity, broad reputation ledgers, COI/recusal, civility, workload, accessibility, rubric validation, edit history, badge renewal, profile visibility, identity impersonation, citation venue integrity, or other issue #15 slices.
Validation
malformed-review-listdecision for an object-shaped review collection.npm testfrompeer-review-evidence-recertification-guardpassed: 27 tests.npm run demoregenerated deterministic packet/report/SVG artifacts, includingmalformed-collection-packet.json.npm run videoregeneratedreports/demo.mp4.npm run checkpassed: test, demo, video.ffprobeverifiedpeer-review-evidence-recertification-guard/reports/demo.mp4as H.264, 1280x720, 30 fps, 4.0s, 52,113 bytes.git diff --checkandgit diff --cached --checkpassed; only Windows line-ending normalization warnings appeared before staging.e6a9df4.Demo Artifacts
peer-review-evidence-recertification-guard/reports/recertification-packet.jsonpeer-review-evidence-recertification-guard/reports/empty-evidence-packet.jsonpeer-review-evidence-recertification-guard/reports/invalid-reputation-delta-packet.jsonpeer-review-evidence-recertification-guard/reports/malformed-evidence-packet.jsonpeer-review-evidence-recertification-guard/reports/malformed-collection-packet.jsonpeer-review-evidence-recertification-guard/reports/recertification-report.mdpeer-review-evidence-recertification-guard/reports/summary.svgpeer-review-evidence-recertification-guard/reports/demo.mp4Synthetic data only. No credentials, private user data, live profile systems, payment systems, or external APIs are used.
AI-assisted with OpenAI Codex; I reviewed and locally verified the diff before submitting.