From 1377caf2f21c18e5843c3a79542130f514fa003d Mon Sep 17 00:00:00 2001 From: HunterCML <5335527+HunterCML@users.noreply.github.com> Date: Sat, 16 May 2026 11:31:19 -0500 Subject: [PATCH] Add reputation correction impact ledger --- reputation-correction-impact-ledger/README.md | 24 +++ .../acceptance-notes.md | 31 ++++ reputation-correction-impact-ledger/demo.js | 65 +++++++ reputation-correction-impact-ledger/demo.mp4 | Bin 0 -> 90116 bytes reputation-correction-impact-ledger/demo.svg | 23 +++ reputation-correction-impact-ledger/index.js | 172 ++++++++++++++++++ .../requirements-map.md | 18 ++ reputation-correction-impact-ledger/test.js | 97 ++++++++++ 8 files changed, 430 insertions(+) create mode 100644 reputation-correction-impact-ledger/README.md create mode 100644 reputation-correction-impact-ledger/acceptance-notes.md create mode 100644 reputation-correction-impact-ledger/demo.js create mode 100644 reputation-correction-impact-ledger/demo.mp4 create mode 100644 reputation-correction-impact-ledger/demo.svg create mode 100644 reputation-correction-impact-ledger/index.js create mode 100644 reputation-correction-impact-ledger/requirements-map.md create mode 100644 reputation-correction-impact-ledger/test.js diff --git a/reputation-correction-impact-ledger/README.md b/reputation-correction-impact-ledger/README.md new file mode 100644 index 0000000..6fbe097 --- /dev/null +++ b/reputation-correction-impact-ledger/README.md @@ -0,0 +1,24 @@ +# Reputation Correction Impact Ledger + +This submission targets [SCIBASE issue #15](https://github.com/SCIBASE-AI/SCIBASE.AI/issues/15) with a focused Community & User Reputation System module. + +It handles corrections, retractions, and appeals after reputation receipts already affected a profile. The original receipt remains auditable, while profile score, domain scores, and leaderboard eligibility use corrected evidence only. + +## What It Adds + +- Immutable receipt digests for reviews, credits, badges, endorsements, and bounty completions. +- Correction events for retractions, amended points, appeal holds, and restores. +- Transparent before/after score deltas for profile review. +- Domain score recomputation so corrected evidence is not double-counted. +- Leaderboard eligibility gating while correction or appeal risk is open. + +## Demo + +```powershell +node reputation-correction-impact-ledger/test.js +node reputation-correction-impact-ledger/demo.js +``` + +`demo.mp4` is the reviewer-facing video artifact for the bounty submission. It walks through the problem, implementation, acceptance path, and command validation in 8.4 seconds. `demo.svg` provides a static workflow diagram. + +See `acceptance-notes.md` for the payout-gate evidence checklist. diff --git a/reputation-correction-impact-ledger/acceptance-notes.md b/reputation-correction-impact-ledger/acceptance-notes.md new file mode 100644 index 0000000..aa101d4 --- /dev/null +++ b/reputation-correction-impact-ledger/acceptance-notes.md @@ -0,0 +1,31 @@ +# Acceptance Notes + +This is a focused implementation for SCIBASE issue #15, not a generic AI-generated content drop. The slice targets a specific reputation-system failure mode: profile scores become misleading when peer reviews, contribution credits, or reproducibility badges are corrected after they have already been counted. + +## What Changed + +- Added immutable receipt digests for profile reputation evidence. +- Added correction events for retractions, amended points, appeal holds, and restores. +- Added transparent before/after score deltas and per-domain recomputation. +- Added leaderboard eligibility gating while unresolved correction risk exists. +- Added focused dependency-free tests and demo data. + +## Video Demo + +- `demo.mp4` shows the problem, implementation, acceptance behavior, and validation command. +- `demo.svg` provides a static workflow diagram. + +## Validation + +Run from the repository root: + +```powershell +node reputation-correction-impact-ledger/test.js +node reputation-correction-impact-ledger/demo.js +``` + +Expected result: the test prints `reputation-correction-impact-ledger tests passed`, and the demo prints the original-to-corrected profile score, revoked receipts, amended receipts, appeal windows, leaderboard eligibility, and correction packet digest. + +## Integration Notes + +The module is dependency-free and uses plain profile receipt and correction objects. The next integration step is wiring receipts to SCIBASE review, contributor-credit, badge, and profile timeline events. diff --git a/reputation-correction-impact-ledger/demo.js b/reputation-correction-impact-ledger/demo.js new file mode 100644 index 0000000..845cc8b --- /dev/null +++ b/reputation-correction-impact-ledger/demo.js @@ -0,0 +1,65 @@ +"use strict"; + +const { buildCorrectionLedger } = require("./index"); + +const ledger = buildCorrectionLedger({ + profileId: "researcher-ada", + receipts: [ + { + id: "review-7", + kind: "peer_review", + projectId: "neuro-biomarker-atlas", + domain: "review", + points: 28 + }, + { + id: "credit-3", + kind: "contribution_credit", + projectId: "neuro-biomarker-atlas", + domain: "credit", + points: 18 + }, + { + id: "badge-2", + kind: "reproducibility_badge", + projectId: "climate-model-rerun", + domain: "reproducibility", + points: 26 + } + ], + corrections: [ + { + id: "corr-1", + targetReceiptId: "review-7", + action: "retract", + reason: "reviewer conflict disclosed after publication", + decidedAt: "2026-05-10T09:00:00Z" + }, + { + id: "corr-2", + targetReceiptId: "credit-3", + action: "amend_points", + correctedPoints: 8, + reason: "role changed from primary curation to verification support", + decidedAt: "2026-05-11T12:00:00Z" + }, + { + id: "corr-3", + targetReceiptId: "badge-2", + action: "appeal_hold", + reason: "rerun package is under independent review", + appealUntil: "2026-05-22T23:59:59Z", + decidedAt: "2026-05-12T12:00:00Z" + } + ] +}); + +console.log(JSON.stringify({ + profileId: ledger.profileId, + score: `${ledger.originalScore} -> ${ledger.correctedScore}`, + revokedReceiptIds: ledger.revokedReceiptIds, + amendedReceiptIds: ledger.amendedReceiptIds, + appealWindows: ledger.appealWindows, + leaderboardEligible: ledger.leaderboardEligible, + correctionPacketDigest: ledger.correctionPacketDigest +}, null, 2)); diff --git a/reputation-correction-impact-ledger/demo.mp4 b/reputation-correction-impact-ledger/demo.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..129fa27d24f1462967925baf8f1028934ca48b46 GIT binary patch literal 90116 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 CH4MQ3 literal 0 HcmV?d00001 diff --git a/reputation-correction-impact-ledger/demo.svg b/reputation-correction-impact-ledger/demo.svg new file mode 100644 index 0000000..1426a51 --- /dev/null +++ b/reputation-correction-impact-ledger/demo.svg @@ -0,0 +1,23 @@ + + Reputation correction impact workflow + Immutable reputation receipts receive correction events, recompute scores, and emit reviewer-safe packets. + + + + + + Receipt + review, credit, badge + Correction + retract or amend + Recompute + domain and profile + Packet + auditable delta + + + + + review-7 retracted + score 82 -> 44, original receipt retained, leaderboard hold open + diff --git a/reputation-correction-impact-ledger/index.js b/reputation-correction-impact-ledger/index.js new file mode 100644 index 0000000..6f0e181 --- /dev/null +++ b/reputation-correction-impact-ledger/index.js @@ -0,0 +1,172 @@ +"use strict"; + +const crypto = require("crypto"); + +function stableJson(value) { + if (Array.isArray(value)) return value.map(stableJson); + if (value && typeof value === "object") { + return Object.keys(value).sort().reduce((accumulator, key) => { + accumulator[key] = stableJson(value[key]); + return accumulator; + }, {}); + } + return value; +} + +function digest(value) { + return crypto + .createHash("sha256") + .update(JSON.stringify(stableJson(value))) + .digest("hex"); +} + +function asArray(value) { + return Array.isArray(value) ? value : []; +} + +function receiptPoints(receipt) { + if (typeof receipt.points === "number") return receipt.points; + const defaults = { + peer_review: 18, + contribution_credit: 12, + reproducibility_badge: 24, + endorsement: 8, + bounty_completion: 30 + }; + return defaults[receipt.kind] || 0; +} + +function buildCorrectionIndex(corrections) { + const index = new Map(); + for (const correction of asArray(corrections).slice().sort((a, b) => + String(a.decidedAt || "").localeCompare(String(b.decidedAt || "")) + )) { + const list = index.get(correction.targetReceiptId) || []; + list.push(correction); + index.set(correction.targetReceiptId, list); + } + return index; +} + +function applyReceiptCorrections(receipt, corrections) { + let correctedPoints = receiptPoints(receipt); + let status = "active"; + const appliedCorrections = []; + const appealWindows = []; + + for (const correction of asArray(corrections)) { + appliedCorrections.push({ + id: correction.id, + action: correction.action, + reason: correction.reason || "not provided", + decidedAt: correction.decidedAt || null + }); + + if (correction.action === "retract") { + correctedPoints = 0; + status = "retracted"; + } + + if (correction.action === "amend_points") { + correctedPoints = correction.correctedPoints; + status = "amended"; + } + + if (correction.action === "appeal_hold") { + status = status === "active" ? "under_appeal" : status; + appealWindows.push({ + correctionId: correction.id, + appealUntil: correction.appealUntil, + reason: correction.reason || "appeal pending" + }); + } + + if (correction.action === "restore") { + correctedPoints = correction.restoredPoints ?? receiptPoints(receipt); + status = "restored"; + } + } + + return { + receiptId: receipt.id, + kind: receipt.kind, + projectId: receipt.projectId || null, + domain: receipt.domain || "general", + originalPoints: receiptPoints(receipt), + correctedPoints, + status, + appliedCorrections, + appealWindows, + originalDigest: digest(receipt), + correctedDigest: digest({ + receiptId: receipt.id, + correctedPoints, + status, + appliedCorrections + }) + }; +} + +function summarizeDomainScores(adjustedReceipts) { + const scores = {}; + for (const receipt of adjustedReceipts) { + scores[receipt.domain] = (scores[receipt.domain] || 0) + receipt.correctedPoints; + } + return Object.keys(scores).sort().map((domain) => ({ + domain, + score: scores[domain] + })); +} + +function buildCorrectionLedger({ profileId, receipts, corrections }) { + if (!profileId) { + throw new Error("profileId is required"); + } + + const correctionIndex = buildCorrectionIndex(corrections); + const adjustedReceipts = asArray(receipts).map((receipt) => + applyReceiptCorrections(receipt, correctionIndex.get(receipt.id)) + ); + + const originalScore = adjustedReceipts.reduce((sum, receipt) => sum + receipt.originalPoints, 0); + const correctedScore = adjustedReceipts.reduce((sum, receipt) => sum + receipt.correctedPoints, 0); + const revokedReceiptIds = adjustedReceipts + .filter((receipt) => receipt.status === "retracted") + .map((receipt) => receipt.receiptId) + .sort(); + const amendedReceiptIds = adjustedReceipts + .filter((receipt) => receipt.status === "amended") + .map((receipt) => receipt.receiptId) + .sort(); + const appealWindows = adjustedReceipts.flatMap((receipt) => + receipt.appealWindows.map((window) => ({ + receiptId: receipt.receiptId, + ...window + })) + ); + + return { + profileId, + originalScore, + correctedScore, + scoreDelta: correctedScore - originalScore, + revokedReceiptIds, + amendedReceiptIds, + appealWindows, + leaderboardEligible: appealWindows.length === 0 && revokedReceiptIds.length === 0, + domainScores: summarizeDomainScores(adjustedReceipts), + adjustedReceipts, + correctionPacketDigest: digest({ + profileId, + adjustedReceipts, + correctedScore, + appealWindows + }) + }; +} + +module.exports = { + applyReceiptCorrections, + buildCorrectionLedger, + digest +}; diff --git a/reputation-correction-impact-ledger/requirements-map.md b/reputation-correction-impact-ledger/requirements-map.md new file mode 100644 index 0000000..a79a610 --- /dev/null +++ b/reputation-correction-impact-ledger/requirements-map.md @@ -0,0 +1,18 @@ +# Requirements Map + +| Issue requirement | Implementation | +| --- | --- | +| Peer reviews and comments influence reputation | Peer-review receipts carry points and immutable evidence digests. | +| Contributor credits are timestamped and credited | Contribution receipts can be amended without deleting the original record. | +| Transparent reputation metrics | `originalScore`, `correctedScore`, `scoreDelta`, and domain scores explain exactly what changed. | +| Reproducibility badge and peer validation support | Badge receipts can enter appeal hold while independent review completes. | +| Leaderboards and badge system | `leaderboardEligible` blocks profiles with unresolved retractions or appeal windows. | +| Profile history and project timelines | Original receipt digests are preserved in each adjusted receipt. | + +## Reviewer Checklist + +- Run `node reputation-correction-impact-ledger/test.js`. +- Run `node reputation-correction-impact-ledger/demo.js`. +- Confirm retracted review receipts score as zero but keep their original digest. +- Confirm amended contribution credits replace points instead of double-counting. +- Confirm appeal holds block leaderboard eligibility. diff --git a/reputation-correction-impact-ledger/test.js b/reputation-correction-impact-ledger/test.js new file mode 100644 index 0000000..28a5502 --- /dev/null +++ b/reputation-correction-impact-ledger/test.js @@ -0,0 +1,97 @@ +"use strict"; + +const assert = require("assert"); +const { + applyReceiptCorrections, + buildCorrectionLedger, + digest +} = require("./index"); + +const receipts = [ + { + id: "review-7", + kind: "peer_review", + projectId: "neuro-biomarker-atlas", + domain: "review", + points: 28, + createdAt: "2026-05-01T10:00:00Z", + evidence: "structured review with reproducibility notes" + }, + { + id: "credit-3", + kind: "contribution_credit", + projectId: "neuro-biomarker-atlas", + domain: "credit", + points: 18, + role: "data curation" + }, + { + id: "badge-2", + kind: "reproducibility_badge", + projectId: "climate-model-rerun", + domain: "reproducibility", + points: 26 + }, + { + id: "endorsement-5", + kind: "endorsement", + projectId: "climate-model-rerun", + domain: "community", + points: 10 + } +]; + +const corrections = [ + { + id: "corr-1", + targetReceiptId: "review-7", + action: "retract", + reason: "reviewer conflict disclosed after publication", + decidedAt: "2026-05-10T09:00:00Z", + appealUntil: "2026-05-20T23:59:59Z" + }, + { + id: "corr-2", + targetReceiptId: "credit-3", + action: "amend_points", + reason: "role changed from primary curation to verification support", + correctedPoints: 8, + decidedAt: "2026-05-11T12:00:00Z" + }, + { + id: "corr-3", + targetReceiptId: "badge-2", + action: "appeal_hold", + reason: "rerun package is under independent review", + appealUntil: "2026-05-22T23:59:59Z", + decidedAt: "2026-05-12T12:00:00Z" + } +]; + +const retracted = applyReceiptCorrections(receipts[0], [corrections[0]]); +assert.strictEqual(retracted.status, "retracted"); +assert.strictEqual(retracted.correctedPoints, 0); +assert.strictEqual(retracted.originalDigest.length, 64); + +const amended = applyReceiptCorrections(receipts[1], [corrections[1]]); +assert.strictEqual(amended.status, "amended"); +assert.strictEqual(amended.correctedPoints, 8); +assert.ok(amended.appliedCorrections[0].reason.includes("verification")); + +const ledger = buildCorrectionLedger({ + profileId: "researcher-ada", + receipts, + corrections +}); + +assert.strictEqual(ledger.originalScore, 82); +assert.strictEqual(ledger.correctedScore, 44); +assert.strictEqual(ledger.scoreDelta, -38); +assert.deepStrictEqual(ledger.revokedReceiptIds, ["review-7"]); +assert.deepStrictEqual(ledger.amendedReceiptIds, ["credit-3"]); +assert.strictEqual(ledger.leaderboardEligible, false); +assert.strictEqual(ledger.appealWindows.length, 1); +assert.ok(ledger.domainScores.find((domain) => domain.domain === "review").score === 0); +assert.strictEqual(digest(ledger).length, 64); + +console.log("reputation-correction-impact-ledger tests passed");